Skip to content

Commit 783a052

Browse files
authored
v117
* Direct GPI Support: import & export
1 parent 4d616cb commit 783a052

8 files changed

Lines changed: 2544 additions & 73 deletions

File tree

GPIReader.cs

Lines changed: 2034 additions & 0 deletions
Large diffs are not rendered by default.

KMZRebuilder.csproj

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@
100100
<Compile Include="fit_FastCrc.cs" />
101101
<Compile Include="fit_Parser.cs" />
102102
<Compile Include="FontPath.cs" />
103+
<Compile Include="GPIReader.cs" />
103104
<Compile Include="GPXReader.cs" />
104105
<Compile Include="GPXTachograph.cs">
105106
<SubType>Form</SubType>
@@ -137,13 +138,13 @@
137138
</Compile>
138139
<Compile Include="MapsForgeReader.cs" />
139140
<Compile Include="MapViewerForm.cs">
140-
<SubType>Component</SubType>
141+
<SubType>Form</SubType>
141142
</Compile>
142143
<Compile Include="MapViewerForm.Designer.cs">
143144
<DependentUpon>MapViewerForm.cs</DependentUpon>
144145
</Compile>
145146
<Compile Include="KMZRebuilederForm.cs">
146-
<SubType>Form</SubType>
147+
<SubType>Component</SubType>
147148
</Compile>
148149
<Compile Include="KMZRebuilederForm.Designer.cs">
149150
<DependentUpon>KMZRebuilederForm.cs</DependentUpon>
@@ -178,6 +179,7 @@
178179
</Compile>
179180
<Compile Include="PolyCreatorClipper.cs" />
180181
<Compile Include="PolyLineBuffer.cs" />
182+
<Compile Include="Preferences.cs" />
181183
<Compile Include="ProcessingForm.cs">
182184
<SubType>Form</SubType>
183185
</Compile>

KMZRebuilederForm.Designer.cs

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

KMZRebuilederForm.cs

Lines changed: 243 additions & 9 deletions
Large diffs are not rendered by default.

KMZRebuilederForm.resx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@
121121
<value>17, 17</value>
122122
</metadata>
123123
<metadata name="contextMenuStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
124-
<value>162, 17</value>
124+
<value>158, 18</value>
125125
</metadata>
126126
<metadata name="timer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
127127
<value>307, 17</value>
@@ -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: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
using System;
2+
using System.IO;
3+
using System.Collections;
4+
using System.Collections.Generic;
5+
using System.Text;
6+
using System.Xml;
7+
using System.Xml.Serialization;
8+
using System.Windows.Forms;
9+
10+
namespace KMZRebuilder
11+
{
12+
[Serializable]
13+
public class Preferences: XMLSaved<Preferences>
14+
{
15+
[XmlArray("configuration")]
16+
[XmlArrayItem("property")]
17+
public List<Property> Properties;
18+
19+
[XmlIgnore]
20+
public string this[string name]
21+
{
22+
get
23+
{
24+
LoadDefaults();
25+
if (Properties.Count == 0) return "";
26+
foreach (Property prop in Properties)
27+
if (prop.name == name)
28+
return prop.value;
29+
return "";
30+
}
31+
set
32+
{
33+
LoadDefaults();
34+
foreach (Property prop in Properties)
35+
if (prop.name == name)
36+
{
37+
prop.value = value;
38+
return;
39+
};
40+
Properties.Add(new Property(name, value));
41+
}
42+
}
43+
44+
private void LoadDefaults()
45+
{
46+
if (Properties == null)
47+
{
48+
Properties = new List<Property>();
49+
this["gpi_localization"] = "EN";
50+
};
51+
}
52+
53+
public static Preferences Load()
54+
{
55+
string fName = KMZRebuilederForm.CurrentDirectory()+@"\KMZRebuilder.config";
56+
if (File.Exists(fName))
57+
{
58+
try { return Preferences.Load(fName); } catch { };
59+
};
60+
return new Preferences();
61+
}
62+
63+
public void Save()
64+
{
65+
string fName = KMZRebuilederForm.CurrentDirectory()+@"\KMZRebuilder.config";
66+
this.LoadDefaults();
67+
try { Preferences.Save(fName, this); } catch { };
68+
}
69+
70+
[Serializable]
71+
public class Property
72+
{
73+
[XmlAttribute]
74+
public string name;
75+
[XmlText]
76+
public string value;
77+
78+
public Property() { }
79+
public Property(string name) { this.name = name; }
80+
public Property(string name, string value) { this.name = name; this.value = value; }
81+
82+
public override string ToString()
83+
{
84+
return String.Format("{0}={1}", name, value);
85+
}
86+
}
87+
88+
public void ShowChangeDialog()
89+
{
90+
Form form = new Form();
91+
form.StartPosition = FormStartPosition.CenterParent;
92+
form.MinimizeBox = false;
93+
form.MaximizeBox = false;
94+
form.ShowIcon = false;
95+
form.ShowInTaskbar = false;
96+
form.Width = 400;
97+
form.Height = 380;
98+
form.Text = "Preferences";
99+
form.FormBorderStyle = FormBorderStyle.FixedDialog;
100+
Label lab = new Label();
101+
form.Controls.Add(lab);
102+
lab.Text = "Double click on item or press Space to edit/change value:";
103+
lab.AutoSize = true;
104+
lab.Left = 8;
105+
lab.Top = 5;
106+
ListBox lb = new ListBox();
107+
form.Controls.Add(lb);
108+
lb.Width = form.Width - 26;
109+
lb.Left = 10;
110+
lb.Top = 25;
111+
lb.Height = form.Height - 90;
112+
lb.BorderStyle = BorderStyle.FixedSingle;
113+
foreach (Property prop in Properties) lb.Items.Add(prop);
114+
lb.DoubleClick += (delegate(object sender, EventArgs e) { OnChangeItem(lb); });
115+
lb.KeyPress += (delegate(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)32) OnChangeItem(lb); });
116+
Button okbtn = new Button();
117+
form.Controls.Add(okbtn);
118+
okbtn.Left = form.Width / 2 - okbtn.Width / 2;
119+
okbtn.Top = lb.Top + lb.Height + 6;
120+
okbtn.Text = "OK";
121+
okbtn.Click += (delegate(object sender, EventArgs e) { form.Close(); });
122+
form.ShowDialog();
123+
form.Dispose();
124+
}
125+
126+
private void OnChangeItem(ListBox lb)
127+
{
128+
int si = lb.SelectedIndex;
129+
if (si >= 0)
130+
{
131+
Property p = (Property)lb.Items[si];
132+
string nval = p.value;
133+
if (InputBox.Show("Edit value", p.name + ":", ref nval) == DialogResult.OK)
134+
{
135+
p.value = nval.Trim();
136+
this[p.name] = p.value;
137+
lb.Items.RemoveAt(si);
138+
lb.Items.Insert(si, p);
139+
lb.SetSelected(si, true);
140+
};
141+
};
142+
}
143+
}
144+
}

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.1.19.115")]
33-
[assembly: AssemblyFileVersion("22.1.19.115")]
32+
[assembly: AssemblyVersion("22.1.24.117")]
33+
[assembly: AssemblyFileVersion("22.1.24.117")]

bin/Debug/KMZRebuilder.exe

48 KB
Binary file not shown.

0 commit comments

Comments
 (0)