Skip to content

Commit 11d5abf

Browse files
authored
b133
1 parent ecc5b8a commit 11d5abf

File tree

7 files changed

+298
-94
lines changed

7 files changed

+298
-94
lines changed

KMZRebuilder.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@
138138
</Compile>
139139
<Compile Include="MapsForgeReader.cs" />
140140
<Compile Include="MapViewerForm.cs">
141-
<SubType>Component</SubType>
141+
<SubType>Form</SubType>
142142
</Compile>
143143
<Compile Include="MapViewerForm.Designer.cs">
144144
<DependentUpon>MapViewerForm.cs</DependentUpon>

KMZRebuilederForm.Designer.cs

Lines changed: 166 additions & 78 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

KMZRebuilederForm.cs

Lines changed: 125 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,11 @@ public KMZRebuilederForm(string[] args)
9999
MapIcons.InitZip(CurrentDirectory() + @"\mapicons\default.zip");
100100
}
101101

102+
private void AfterLoadPrefs()
103+
{
104+
convertToToolStripMenuItem.Visible = Properties.GetBoolValue("gpiwriter_hide_old_menus_items");
105+
}
106+
102107
public static void ConvertGPI2KMZ(string gpiFile, string kmzFile)
103108
{
104109
if (String.IsNullOrEmpty(gpiFile)) return;
@@ -764,6 +769,8 @@ private void Save2WPT(string filename, KMLayer kml)
764769
if ((std != null) && (std.ChildNodes.Count > 0))
765770
desc = std.ChildNodes[0].Value;
766771

772+
if (desc.Contains("wpt_skip=true")) continue;
773+
767774
bool toTop = false;
768775
if (!String.IsNullOrEmpty(desc))
769776
{
@@ -954,10 +961,15 @@ private void Save2ReportHTML(string filename, IDictionary<string, string[]> fiel
954961

955962
private string Save2KMZ(string filename, bool multilayers)
956963
{
957-
return Save2KMZ(filename, multilayers, true);
964+
return Save2KMZ(filename, multilayers, true, null);
958965
}
959966

960967
private string Save2KMZ(string filename, bool multilayers, bool createArchive)
968+
{
969+
return Save2KMZ(filename, multilayers, createArchive, null);
970+
}
971+
972+
private string Save2KMZ(string filename, bool multilayers, bool createArchive, string desc_filter_skip)
961973
{
962974
log.Text = "";
963975

@@ -991,20 +1003,37 @@ private string Save2KMZ(string filename, bool multilayers, bool createArchive)
9911003
int ttlpm = 0;
9921004
for (int i = 0; i < kmzLayers.CheckedItems.Count; i++)
9931005
{
1006+
bool skiplay = false;
1007+
9941008
KMLayer kml = (KMLayer)kmzLayers.CheckedItems[i];
9951009
CopySounds(kml.file, zdir);
9961010
XmlNode xn = kml.file.kmlDoc.SelectNodes("kml/Document/Folder")[kml.id];
9971011

998-
ttlpm += kml.placemarks;
999-
10001012
// remove names
10011013
if (!multilayers)
10021014
{
10031015
XmlNode nn = xn.SelectSingleNode("name");
10041016
if (nn != null) xn.RemoveChild(nn);
10051017
nn = xn.SelectSingleNode("description");
1006-
if (nn != null) xn.RemoveChild(nn);
1007-
};
1018+
if (nn != null)
1019+
{
1020+
if (!String.IsNullOrEmpty(desc_filter_skip))
1021+
{
1022+
try
1023+
{
1024+
string description = nn.ChildNodes[0].Value;
1025+
if (!String.IsNullOrEmpty(description))
1026+
if (description.Contains(desc_filter_skip))
1027+
skiplay = true;
1028+
}
1029+
catch { };
1030+
};
1031+
xn.RemoveChild(nn);
1032+
};
1033+
};
1034+
1035+
if (skiplay) continue;
1036+
ttlpm += kml.placemarks;
10081037

10091038
// styles
10101039
{
@@ -1899,6 +1928,14 @@ public int Compare(DictionaryEntry a, DictionaryEntry b)
18991928
}
19001929
}
19011930

1931+
private static string GetFolderDesc(XmlNode placemark)
1932+
{
1933+
string desc = "";
1934+
try { desc = placemark.ParentNode.SelectSingleNode("description").ChildNodes[0].Value; }
1935+
catch { return ""; };
1936+
return desc;
1937+
}
1938+
19021939
private static void Save2GPIInt(string gpifile, KMFile kmfile, string proj_name, GPIReader.Add2LogProc Add2Log, Preferences Props)
19031940
{
19041941
GPIReader.LOCALE_LANGUAGE = Props["gpi_localization"].ToUpper();
@@ -1953,6 +1990,9 @@ private static void Save2GPIInt(string gpifile, KMFile kmfile, string proj_name,
19531990
catch { };
19541991
string[] ll = n.ChildNodes[0].Value.Split(new string[] { "," }, StringSplitOptions.None);
19551992

1993+
if (GetFolderDesc(n.ParentNode.ParentNode).Contains("gpi_skip=true")) continue;
1994+
if (desc.Contains("gpi_skip=true")) continue;
1995+
19561996
string styleUrl = "";
19571997
if (n.ParentNode.ParentNode.SelectSingleNode("styleUrl") != null) styleUrl = n.ParentNode.ParentNode.SelectSingleNode("styleUrl").ChildNodes[0].Value;
19581998
if (styleUrl.IndexOf("#") == 0) styleUrl = styleUrl.Remove(0, 1);
@@ -3564,6 +3604,8 @@ private void Export2WPT(KMLayer kml)
35643604
if ((std != null) && (std.ChildNodes.Count > 0))
35653605
desc = std.ChildNodes[0].Value;
35663606

3607+
if (desc.Contains("wpt_skip=true")) continue;
3608+
35673609
bool toTop = false;
35683610
if (!String.IsNullOrEmpty(desc))
35693611
{
@@ -3760,7 +3802,10 @@ private void contextMenuStrip3_Opening(object sender, CancelEventArgs e)
37603802
export2DatToolStripMenuItem.Enabled = kmzLayers.CheckedIndices.Count > 0;
37613803
export2GDBToolStripMenuItem.Enabled = kmzLayers.CheckedIndices.Count > 0;
37623804
export2WPTnoIconsToolStripMenuItem.Enabled = kmzLayers.CheckedIndices.Count > 0;
3805+
3806+
convertToToolStripMenuItem.Visible = !Properties.GetBoolValue("gpiwriter_hide_old_menus_items");
37633807
convertToGarminPointsOfInterestsFileGPIToolStripMenuItem.Enabled = saveBTNG.Enabled;
3808+
37643809
c2DGPIToolStripMenuItem.Enabled = saveBTNG.Enabled;
37653810
}
37663811

@@ -5465,6 +5510,8 @@ private void Export2Dat(KMLayer kml)
54655510
if ((std != null) && (std.ChildNodes.Count > 0))
54665511
desc = std.ChildNodes[0].Value;
54675512

5513+
if (desc.Contains("progorod_skip=true")) continue;
5514+
54685515
ProGorodPOI.FavRecord rec = new ProGorodPOI.FavRecord();
54695516
rec.Name = name;
54705517
rec.Lat = double.Parse(llz[1].Replace("\r", "").Replace("\n", "").Replace(" ", ""), System.Globalization.CultureInfo.InvariantCulture);
@@ -6617,6 +6664,8 @@ private void Export2GDB(KMLayer kml)
66176664
if ((std != null) && (std.ChildNodes.Count > 0))
66186665
desc = std.ChildNodes[0].Value;
66196666

6667+
if (desc.Contains("navitel_skip=true")) continue;
6668+
66206669
bool toTop = false;
66216670
if (!String.IsNullOrEmpty(desc))
66226671
{
@@ -7664,7 +7713,7 @@ private void ReloadOriginalFiles()
76647713
private void exportToWPTToolStripMenuItem_Click(object sender, EventArgs e)
76657714
{
76667715
if (kmzLayers.CheckedIndices.Count == 0) return;
7667-
string zdir = Save2KMZ(null, false, false);
7716+
string zdir = Save2KMZ(null, false, false, "wpt_skip=true");
76687717
KMFile kf = KMFile.FromZDir(zdir);
76697718
Export2WPT(kf.kmLayers[0]);
76707719
ReloadOriginalFiles();
@@ -7673,7 +7722,7 @@ private void exportToWPTToolStripMenuItem_Click(object sender, EventArgs e)
76737722
private void export2DatToolStripMenuItem_Click(object sender, EventArgs e)
76747723
{
76757724
if (kmzLayers.CheckedIndices.Count == 0) return;
7676-
string zdir = Save2KMZ(null, false, false);
7725+
string zdir = Save2KMZ(null, false, false, "progorod_skip=true");
76777726
KMFile kf = KMFile.FromZDir(zdir);
76787727
Export2Dat(kf.kmLayers[0]);
76797728
ReloadOriginalFiles();
@@ -7682,7 +7731,7 @@ private void export2DatToolStripMenuItem_Click(object sender, EventArgs e)
76827731
private void export2GDBToolStripMenuItem_Click(object sender, EventArgs e)
76837732
{
76847733
if (kmzLayers.CheckedIndices.Count == 0) return;
7685-
string zdir = Save2KMZ(null, false, false);
7734+
string zdir = Save2KMZ(null, false, false, "navitel_skip=true");
76867735
KMFile kf = KMFile.FromZDir(zdir);
76877736
Export2GDB(kf.kmLayers[0]);
76887737
ReloadOriginalFiles();
@@ -7691,17 +7740,19 @@ private void export2GDBToolStripMenuItem_Click(object sender, EventArgs e)
76917740
private void export2WPTnoIconsToolStripMenuItem_Click(object sender, EventArgs e)
76927741
{
76937742
if (kmzLayers.CheckedIndices.Count == 0) return;
7694-
string zdir = Save2KMZ(null, false, false);
7743+
string zdir = Save2KMZ(null, false, false, "wpt_skip=true");
76957744
KMFile kf = KMFile.FromZDir(zdir);
76967745
Save2WPTNoIcons(kf.kmLayers[0]);
76977746
ReloadOriginalFiles();
76987747
}
76997748

77007749
private void HelpDesc_Click(object sender, EventArgs e)
77017750
{
7702-
string help = "To Create GPI:\r\n";
7703-
help += " gpi_name_<IMAGECRC>=<FULLNAME>\r\n";
7704-
help += " gpi_subname_<IMAGECRC>=<SUBNAME>\r\n";
7751+
string help = "To Export GPI/WPT/DAT/GDB:\r\n";
7752+
help += " gpi_skip=true\r\n";
7753+
help += " wpt_skip=true\r\n";
7754+
help += " navitel_skip=true\r\n";
7755+
help += " progorod_skip=true\r\n";
77057756
help += "\r\nFor Route Planner\r\n";
77067757
help += " route_planner_skip=true\r\n";
77077758
help += " route_planner_skip=false\r\n";
@@ -8540,6 +8591,67 @@ private void bchelpb_Click(object sender, EventArgs e)
85408591
helptext += " MapPolygonCreator: /mpc\r\n\r\n";
85418592
MessageBox.Show(helptext, "Command Line Syntax", MessageBoxButtons.OK, MessageBoxIcon.Information);
85428593
}
8594+
8595+
private void SetLayersCheckByDescIf(string condition, bool check)
8596+
{
8597+
if (kmzLayers.Items.Count == 0) return;
8598+
for (int i = 0; i < kmzLayers.Items.Count; i++)
8599+
{
8600+
KMLayer kml = (KMLayer)kmzLayers.Items[i];
8601+
XmlNode pmk = kml.file.kmlDoc.SelectNodes("kml/Document/Folder")[kml.id];
8602+
string description = "";
8603+
try
8604+
{
8605+
description = pmk.SelectSingleNode("description").ChildNodes[0].Value;
8606+
if (!String.IsNullOrEmpty(description))
8607+
if (description.Contains(condition))
8608+
kmzLayers.SetItemChecked(i, check);
8609+
}
8610+
catch { };
8611+
};
8612+
}
8613+
8614+
private void checkIfDescriptionContainsToolStripMenuItem_Click(object sender, EventArgs e)
8615+
{
8616+
if (kmzLayers.Items.Count == 0) return;
8617+
string tc = "main=true";
8618+
if (InputBox("Check Layers", "If description contains text:", ref tc) != DialogResult.OK) return;
8619+
SetLayersCheckByDescIf(tc, true);
8620+
}
8621+
8622+
private void uncheckIfDescriptionContainsToolStripMenuItem_Click_1(object sender, EventArgs e)
8623+
{
8624+
if (kmzLayers.Items.Count == 0) return;
8625+
string tc = "main=true";
8626+
if (InputBox("Uncheck Layers", "If description contains text:", ref tc) != DialogResult.OK) return;
8627+
SetLayersCheckByDescIf(tc, false);
8628+
}
8629+
8630+
private void uncheckgpiskiptrueToolStripMenuItem_Click(object sender, EventArgs e)
8631+
{
8632+
if (kmzLayers.Items.Count == 0) return;
8633+
SetLayersCheckByDescIf("gpi_skip=true", false);
8634+
}
8635+
8636+
private void uncheckprogorodskiptrueToolStripMenuItem_Click(object sender, EventArgs e)
8637+
{
8638+
if (kmzLayers.Items.Count == 0) return;
8639+
SetLayersCheckByDescIf("progorod_skip=true", false);
8640+
}
8641+
8642+
private void unchecknavitelskiptrueToolStripMenuItem_Click(object sender, EventArgs e)
8643+
{
8644+
if (kmzLayers.Items.Count == 0) return;
8645+
SetLayersCheckByDescIf("navitel_skip=true", false);
8646+
}
8647+
8648+
private void uncheckwptskiptrueToolStripMenuItem_Click(object sender, EventArgs e)
8649+
{
8650+
if (kmzLayers.Items.Count == 0) return;
8651+
SetLayersCheckByDescIf("wpt_skip=true", false);
8652+
}
8653+
8654+
85438655
}
85448656

85458657
public class FilesListBox : CheckedListBox
@@ -10239,7 +10351,7 @@ public void GarminGDB2KML(string origin_name)
1023910351
//List<string> types = new List<string>();
1024010352
//for (int i = 0; i < 20; i++) types.Add(((ProGorodPOI.TType)i).ToString());
1024110353

10242-
FileStream fs = new FileStream(this.tmp_file_dir + "doc ", FileMode.Create, FileAccess.Write);
10354+
FileStream fs = new FileStream(this.tmp_file_dir + "doc.kml", FileMode.Create, FileAccess.Write);
1024310355
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.UTF8);
1024410356
sw.WriteLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
1024510357
sw.WriteLine("<kml>");

KMZRebuilederForm.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,9 @@
159159
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
160160
<value>674, 17</value>
161161
</metadata>
162+
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
163+
<value>674, 17</value>
164+
</metadata>
162165
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
163166
<value>52</value>
164167
</metadata>

Preferences.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ private void LoadDefaults()
8585
if (!this.Contains("gpiwriter_save_only_local_comm")) Properties.Add(new Property("gpiwriter_save_only_local_comm", "no", 1, "Save Comments only in local language"));
8686
if (!this.Contains("gpiwriter_save_only_local_desc")) Properties.Add(new Property("gpiwriter_save_only_local_desc", "no", 1, "Save Descriptions only in local language"));
8787
if (!this.Contains("gpiwriter_alert_datetime_maxcount")) Properties.Add(new Property("gpiwriter_alert_datetime_maxcount", "16", 2, "Max Alert DateTime Triggers Count (1..32)", 1, 32));
88+
if (!this.Contains("gpiwriter_hide_old_menus_items")) Properties.Add(new Property("gpiwriter_hide_old_menus_items", "yes", 1, "Hide Old (Convert to) Menu items", 1, 32));
8889
DefaultsIsLoaded = true;
8990
}
9091

Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,5 @@
2929
// Build Number
3030
// Revision
3131
//
32-
[assembly: AssemblyVersion("22.2.7.131")]
33-
[assembly: AssemblyFileVersion("22.2.7.131")]
32+
[assembly: AssemblyVersion("22.2.8.133")]
33+
[assembly: AssemblyFileVersion("22.2.8.133")]

bin/Debug/KMZRebuilder.exe

4 KB
Binary file not shown.

0 commit comments

Comments
 (0)