diff --git a/AirScout.PlaneFeeds.Plugin.FlexJSON/AirScout.PlaneFeeds.Plugin.FlexJSON.csproj b/AirScout.PlaneFeeds.Plugin.FlexJSON/AirScout.PlaneFeeds.Plugin.FlexJSON.csproj
index 73f86f2..c518440 100644
--- a/AirScout.PlaneFeeds.Plugin.FlexJSON/AirScout.PlaneFeeds.Plugin.FlexJSON.csproj
+++ b/AirScout.PlaneFeeds.Plugin.FlexJSON/AirScout.PlaneFeeds.Plugin.FlexJSON.csproj
@@ -78,6 +78,7 @@
- copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir) /y
+ mkdir $(SolutionDir)\Airscout\$(OutDir)\Plugin\
+copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir)\Plugin\ /y
\ No newline at end of file
diff --git a/AirScout.PlaneFeeds.Plugin.OpenSky/AirScout.PlaneFeeds.Plugin.OpenSky.csproj b/AirScout.PlaneFeeds.Plugin.OpenSky/AirScout.PlaneFeeds.Plugin.OpenSky.csproj
index 29874c2..c4e2b48 100644
--- a/AirScout.PlaneFeeds.Plugin.OpenSky/AirScout.PlaneFeeds.Plugin.OpenSky.csproj
+++ b/AirScout.PlaneFeeds.Plugin.OpenSky/AirScout.PlaneFeeds.Plugin.OpenSky.csproj
@@ -78,6 +78,7 @@
- copy Z:\CSharp\AirScout\AirScout\AirScout.PlaneFeeds.Plugin.OpenSky\bin\Debug\ILMerge\*.dll Z:\CSharp\AirScout\AirScout\AirScout\bin\Debug\ /Y
+ mkdir $(SolutionDir)\Airscout\$(OutDir)\Plugin\
+copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir)\Plugin\ /y
\ No newline at end of file
diff --git a/AirScout.PlaneFeeds.Plugin.PlaneFinder/AirScout.PlaneFeeds.Plugin.PlaneFinder.csproj b/AirScout.PlaneFeeds.Plugin.PlaneFinder/AirScout.PlaneFeeds.Plugin.PlaneFinder.csproj
index 61ba667..fb1901c 100644
--- a/AirScout.PlaneFeeds.Plugin.PlaneFinder/AirScout.PlaneFeeds.Plugin.PlaneFinder.csproj
+++ b/AirScout.PlaneFeeds.Plugin.PlaneFinder/AirScout.PlaneFeeds.Plugin.PlaneFinder.csproj
@@ -78,6 +78,7 @@
- copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir) /y
+ mkdir $(SolutionDir)\Airscout\$(OutDir)\Plugin\
+copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir)\Plugin\ /y
\ No newline at end of file
diff --git a/AirScout.PlaneFeeds.Plugin.PlaneFinder/PlaneFinder.cs b/AirScout.PlaneFeeds.Plugin.PlaneFinder/PlaneFinder.cs
index 9b0c102..8e6e9b9 100644
--- a/AirScout.PlaneFeeds.Plugin.PlaneFinder/PlaneFinder.cs
+++ b/AirScout.PlaneFeeds.Plugin.PlaneFinder/PlaneFinder.cs
@@ -158,12 +158,13 @@ namespace AirScout.PlaneFeeds.Plugin.PlaneFinder
{
using (StreamWriter sw = new StreamWriter(File.Create(filename)))
{
- XmlSerializer s = new XmlSerializer(this.GetType(), overrides);
+ XmlSerializer s = new XmlSerializer(this.GetType(), overrides,null,new XmlRootAttribute(),"");
s.Serialize(sw, this);
}
}
catch (Exception ex)
{
+ Console.WriteLine("[" + this.GetType().Name + "]: Cannot save settings to " + filename + ", " + ex.ToString());
throw new InvalidOperationException("[" + this.GetType().Name + "]: Cannot save settings to " + filename + ", " + ex.Message);
}
}
diff --git a/AirScout.PlaneFeeds.Plugin.PlaneFinder/Properties/AssemblyInfo.cs b/AirScout.PlaneFeeds.Plugin.PlaneFinder/Properties/AssemblyInfo.cs
index 3f0dfa2..ab9fcca 100644
--- a/AirScout.PlaneFeeds.Plugin.PlaneFinder/Properties/AssemblyInfo.cs
+++ b/AirScout.PlaneFeeds.Plugin.PlaneFinder/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.3.0.0")]
-[assembly: AssemblyFileVersion("1.3.0.0")]
+[assembly: AssemblyVersion("1.3.1.1")]
+[assembly: AssemblyFileVersion("1.3.1.1")]
diff --git a/AirScout.PlaneFeeds.Plugin.RB24/AirScout.PlaneFeeds.Plugin.RB24.csproj b/AirScout.PlaneFeeds.Plugin.RB24/AirScout.PlaneFeeds.Plugin.RB24.csproj
index e20bcd7..6e09012 100644
--- a/AirScout.PlaneFeeds.Plugin.RB24/AirScout.PlaneFeeds.Plugin.RB24.csproj
+++ b/AirScout.PlaneFeeds.Plugin.RB24/AirScout.PlaneFeeds.Plugin.RB24.csproj
@@ -78,6 +78,7 @@
- copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir) /y
+ mkdir $(SolutionDir)\Airscout\$(OutDir)\Plugin\
+copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir)\Plugin\ /y
\ No newline at end of file
diff --git a/AirScout.PlaneFeeds.Plugin.RTL1090/AirScout.PlaneFeeds.Plugin.RTL1090.csproj b/AirScout.PlaneFeeds.Plugin.RTL1090/AirScout.PlaneFeeds.Plugin.RTL1090.csproj
index 6ab76df..7e62355 100644
--- a/AirScout.PlaneFeeds.Plugin.RTL1090/AirScout.PlaneFeeds.Plugin.RTL1090.csproj
+++ b/AirScout.PlaneFeeds.Plugin.RTL1090/AirScout.PlaneFeeds.Plugin.RTL1090.csproj
@@ -84,6 +84,7 @@
- copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir) /y
+ mkdir $(SolutionDir)\Airscout\$(OutDir)\Plugin\
+copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir)\Plugin\ /y
\ No newline at end of file
diff --git a/AirScout.PlaneFeeds.Plugin.VirtualRadarServer/AirScout.PlaneFeeds.Plugin.VirtualRadarServer.csproj b/AirScout.PlaneFeeds.Plugin.VirtualRadarServer/AirScout.PlaneFeeds.Plugin.VirtualRadarServer.csproj
index 34fa833..f2a7108 100644
--- a/AirScout.PlaneFeeds.Plugin.VirtualRadarServer/AirScout.PlaneFeeds.Plugin.VirtualRadarServer.csproj
+++ b/AirScout.PlaneFeeds.Plugin.VirtualRadarServer/AirScout.PlaneFeeds.Plugin.VirtualRadarServer.csproj
@@ -77,7 +77,8 @@
- copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir) /y
+ mkdir $(SolutionDir)\Airscout\$(OutDir)\Plugin\
+copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir)\Plugin\ /y
\ No newline at end of file
diff --git a/AirScout.sln b/AirScout.sln
index 7c33096..fef359f 100644
--- a/AirScout.sln
+++ b/AirScout.sln
@@ -81,8 +81,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AirScout.PlaneFeeds.Plugin.
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AirScout.PlaneFeeds.Plugin.RB24", "AirScout.PlaneFeeds.Plugin.RB24\AirScout.PlaneFeeds.Plugin.RB24.csproj", "{D953C82D-5881-4F5C-8335-1C54114BE28B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AirScout_Cleanup", "AirScout_Cleanup\AirScout_Cleanup.csproj", "{4DDDB65C-0E40-4A69-8775-5B4152C3196D}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AirScout.PlaneFeeds.Plugin.OpenSky", "AirScout.PlaneFeeds.Plugin.OpenSky\AirScout.PlaneFeeds.Plugin.OpenSky.csproj", "{23F584DB-EB5E-452D-B49F-7C1CABB713FF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AirScout.PlaneFeeds.Plugin.PlaneFinder", "AirScout.PlaneFeeds.Plugin.PlaneFinder\AirScout.PlaneFeeds.Plugin.PlaneFinder.csproj", "{DB85E98A-E209-49D0-B6CF-6CDD5B8E20E3}"
@@ -537,18 +535,6 @@ Global
{D953C82D-5881-4F5C-8335-1C54114BE28B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{D953C82D-5881-4F5C-8335-1C54114BE28B}.Release|x86.ActiveCfg = Release|Any CPU
{D953C82D-5881-4F5C-8335-1C54114BE28B}.Release|x86.Build.0 = Release|Any CPU
- {4DDDB65C-0E40-4A69-8775-5B4152C3196D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4DDDB65C-0E40-4A69-8775-5B4152C3196D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4DDDB65C-0E40-4A69-8775-5B4152C3196D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {4DDDB65C-0E40-4A69-8775-5B4152C3196D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {4DDDB65C-0E40-4A69-8775-5B4152C3196D}.Debug|x86.ActiveCfg = Debug|Any CPU
- {4DDDB65C-0E40-4A69-8775-5B4152C3196D}.Debug|x86.Build.0 = Debug|Any CPU
- {4DDDB65C-0E40-4A69-8775-5B4152C3196D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4DDDB65C-0E40-4A69-8775-5B4152C3196D}.Release|Any CPU.Build.0 = Release|Any CPU
- {4DDDB65C-0E40-4A69-8775-5B4152C3196D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {4DDDB65C-0E40-4A69-8775-5B4152C3196D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {4DDDB65C-0E40-4A69-8775-5B4152C3196D}.Release|x86.ActiveCfg = Release|Any CPU
- {4DDDB65C-0E40-4A69-8775-5B4152C3196D}.Release|x86.Build.0 = Release|Any CPU
{23F584DB-EB5E-452D-B49F-7C1CABB713FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{23F584DB-EB5E-452D-B49F-7C1CABB713FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{23F584DB-EB5E-452D-B49F-7C1CABB713FF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
diff --git a/AirScout/HorizonDlg.cs b/AirScout/HorizonDlg.cs
index 7e16437..498e039 100644
--- a/AirScout/HorizonDlg.cs
+++ b/AirScout/HorizonDlg.cs
@@ -149,7 +149,7 @@ namespace AirScout
// elevation polar chart
pm_Elevation_Polar.PlotType = PlotType.Polar;
pm_Elevation_Polar.Title = String.Empty;
- pm_Elevation_Polar.DefaultFontSize = 6F;
+ pm_Elevation_Polar.DefaultFontSize = (double)Properties.Settings.Default.Charts_FontSize;
pv_Elevation_Polar.BackColor = Color.White;
pv_Elevation_Polar.Dock = DockStyle.Fill;
pv_Elevation_Polar.Model = pm_Elevation_Polar;
@@ -187,7 +187,7 @@ namespace AirScout
pv_Elevation_Cartesian.Dock = DockStyle.Fill;
pv_Elevation_Cartesian.Model = pm_Elevation_Cartesian;
pm_Elevation_Cartesian.Title = String.Empty;
- pm_Elevation_Cartesian.DefaultFontSize = 6F;
+ pm_Elevation_Cartesian.DefaultFontSize = (double)Properties.Settings.Default.Charts_FontSize;
// add axes
pm_Elevation_Cartesian.Axes.Clear();
// add x-axis
@@ -215,7 +215,7 @@ namespace AirScout
// distance polar chart
pm_Distance_Polar.PlotType = PlotType.Polar;
pm_Distance_Polar.Title = String.Empty;
- pm_Distance_Polar.DefaultFontSize = 6F;
+ pm_Distance_Polar.DefaultFontSize = (double)Properties.Settings.Default.Charts_FontSize;
pv_Distance_Polar.BackColor = Color.White;
pv_Distance_Polar.Dock = DockStyle.Fill;
pv_Distance_Polar.Model = pm_Distance_Polar;
@@ -253,7 +253,7 @@ namespace AirScout
pv_Distance_Cartesian.Dock = DockStyle.Fill;
pv_Distance_Cartesian.Model = pm_Distance_Cartesian;
pm_Distance_Cartesian.Title = String.Empty;
- pm_Distance_Cartesian.DefaultFontSize = 6F;
+ pm_Distance_Cartesian.DefaultFontSize = (double)Properties.Settings.Default.Charts_FontSize;
// add axes
pm_Distance_Cartesian.Axes.Clear();
// add x-axis
@@ -359,15 +359,17 @@ namespace AirScout
horizon.Clear();
}
- private void DrawHorizonPoint(int azimuth, HorizonPoint hp)
+ private void DrawHorizonPoint(int azimuth, HorizonPoint hp, bool closing = false)
{
Elevation_Polar_Series.Points.Add(new DataPoint(hp.Epsmin / Math.PI * 180.0, azimuth));
pm_Elevation_Polar.InvalidatePlot(true);
- Elevation_Cartesian_Series.Points.Add(new DataPoint(azimuth, hp.Epsmin / Math.PI * 180.0));
+ if (!closing)
+ Elevation_Cartesian_Series.Points.Add(new DataPoint(azimuth, hp.Epsmin / Math.PI * 180.0));
pm_Elevation_Cartesian.InvalidatePlot(true);
Distance_Polar_Series.Points.Add(new DataPoint(hp.Dist, azimuth));
pm_Distance_Polar.InvalidatePlot(true);
- Distance_Cartesian_Series.Points.Add(new DataPoint(azimuth, hp.Dist));
+ if (!closing)
+ Distance_Cartesian_Series.Points.Add(new DataPoint(azimuth, hp.Dist));
pm_Distance_Cartesian.InvalidatePlot(true);
LatLon.GPoint gp = LatLon.DestinationPoint(Location.Lat, Location.Lon, azimuth, hp.Dist);
PointLatLng p = new PointLatLng(gp.Lat, gp.Lon);
@@ -451,8 +453,8 @@ namespace AirScout
{
DrawHorizonPoint(j, Horizon.Horizon[j]);
}
- // draw first point again to close the circle
- DrawHorizonPoint(0, Horizon.Horizon[0]);
+ // draw first point again to close the circle in polar modes
+ DrawHorizonPoint(0, Horizon.Horizon[0],true);
}
// enable radio buttons
btn_Horizon_Calculate.Enabled = true;
diff --git a/AirScout/MapDlg.cs b/AirScout/MapDlg.cs
index 19ee50c..86a5695 100644
--- a/AirScout/MapDlg.cs
+++ b/AirScout/MapDlg.cs
@@ -731,7 +731,7 @@ namespace AirScout
string filespec = "AirScout.PlaneFeeds.Plugin.*.dll";
// first copy plugins from application directory to plugin directory if they not exist or newer
- CopyPlugins(AppDirectory, PluginDirectory, filespec);
+ CopyPlugins(Path.Combine(AppDirectory,"Plugin"), PluginDirectory, filespec);
// check for new plugins on the web resource
try
@@ -1158,8 +1158,6 @@ namespace AirScout
CheckSettings();
// reset topmost state
SplashDlg.TopMost = false;
- // must have internet connection on FirstRun
- CheckInternet();
/*
// run database updater once for basic information
bw_DatabaseUpdater.RunWorkerAsync(UPDATERSTARTOPTIONS.FIRSTRUN);
@@ -1168,6 +1166,8 @@ namespace AirScout
Application.DoEvents();
*/
SplashDlg.Close();
+ // must have internet connection on FirstRun
+ CheckInternet();
// show FirstRunWizard
try
{
@@ -1826,7 +1826,7 @@ namespace AirScout
{
// propagation path chart
pm_Path.Title = String.Empty;
- pm_Path.DefaultFontSize = 6F;
+ pm_Path.DefaultFontSize = (double)Properties.Settings.Default.Charts_FontSize;
pm_Path.IsLegendVisible = false;
pv_Path.BackColor = Color.White;
pv_Path.Model = pm_Path;
@@ -1894,7 +1894,7 @@ namespace AirScout
// zoomed elevation chart
pm_Elevation.Title = String.Empty;
- pm_Elevation.DefaultFontSize = 6F;
+ pm_Elevation.DefaultFontSize = (double)Properties.Settings.Default.Charts_FontSize;
pm_Elevation.IsLegendVisible = false;
pv_Elevation.BackColor = Color.White;
pv_Elevation.Model = pm_Elevation;
@@ -1936,7 +1936,7 @@ namespace AirScout
// spectrum chart
pm_Spectrum.Title = String.Empty;
- pm_Spectrum.DefaultFontSize = 6F;
+ pm_Spectrum.DefaultFontSize = (double)Properties.Settings.Default.Charts_FontSize;
pv_Spectrum.BackColor = Color.White;
pv_Spectrum.Model = pm_Spectrum;
// add Spectrum series
@@ -2063,132 +2063,139 @@ namespace AirScout
private void SaveUserSettings()
{
- Log.WriteMessage("Saving configuration...");
- Properties.Settings.Default.Save();
- if (!SupportFunctions.IsMono)
- return;
- Console.WriteLine("Creating XML document...");
- XmlDocument doc = new XmlDocument();
- XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
- XmlElement root = doc.DocumentElement;
- doc.InsertBefore(xmlDeclaration, root);
- XmlElement configuration = doc.CreateElement(string.Empty, "configuration", string.Empty);
- doc.AppendChild(configuration);
- XmlElement configsections = doc.CreateElement(string.Empty, "configSections", string.Empty);
- configuration.AppendChild(configsections);
- XmlElement usersettingsgroup = doc.CreateElement(string.Empty, "sectionGroup", string.Empty);
- XmlAttribute usersettingsname = doc.CreateAttribute(string.Empty, "name", string.Empty);
- usersettingsname.Value = "userSettings";
- usersettingsgroup.Attributes.Append(usersettingsname);
- XmlElement usersection = doc.CreateElement(string.Empty, "section", string.Empty);
- XmlAttribute sectionname = doc.CreateAttribute(string.Empty, "name", string.Empty);
- sectionname.Value = "AirScout.PlaneFeeds.Properties.Settings";
- usersection.Attributes.Append(sectionname);
- XmlAttribute sectiontype = doc.CreateAttribute(string.Empty, "type", string.Empty);
- sectiontype.Value = "System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
- usersection.Attributes.Append(sectiontype);
- XmlAttribute sectionallowexedefinition = doc.CreateAttribute(string.Empty, "allowExeDefinition", string.Empty);
- sectionallowexedefinition.Value = "MachineToLocalUser";
- usersection.Attributes.Append(sectionallowexedefinition);
- XmlAttribute sectionrequirepermission = doc.CreateAttribute(string.Empty, "requirePermission", string.Empty);
- sectionrequirepermission.Value = "false";
- usersection.Attributes.Append(sectionrequirepermission);
- usersettingsgroup.AppendChild(usersection);
- configsections.AppendChild(usersettingsgroup);
- XmlElement usersettings = doc.CreateElement(string.Empty, "userSettings", string.Empty);
- configuration.AppendChild(usersettings);
- Console.WriteLine("Writing user settings...");
- // append AirScout.PlaneFeeds properties
- Console.WriteLine("Appending AirScout.PlaneFeeds.Properties.Settings.Default node...");
- XmlElement planefeedproperties = doc.CreateElement(string.Empty, AirScout.PlaneFeeds.Properties.Settings.Default.ToString(), string.Empty);
- usersettings.AppendChild(planefeedproperties);
- foreach (SettingsPropertyValue p in AirScout.PlaneFeeds.Properties.Settings.Default.PropertyValues)
+ try
{
- if ((p != null) && (p.Name != null) && (p.PropertyValue != null) && !p.UsingDefaultValue)
+ Log.WriteMessage("Saving configuration...");
+ Properties.Settings.Default.Save();
+ if (!SupportFunctions.IsMono)
+ return;
+ Console.WriteLine("Creating XML document...");
+ XmlDocument doc = new XmlDocument();
+ XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
+ XmlElement root = doc.DocumentElement;
+ doc.InsertBefore(xmlDeclaration, root);
+ XmlElement configuration = doc.CreateElement(string.Empty, "configuration", string.Empty);
+ doc.AppendChild(configuration);
+ XmlElement configsections = doc.CreateElement(string.Empty, "configSections", string.Empty);
+ configuration.AppendChild(configsections);
+ XmlElement usersettingsgroup = doc.CreateElement(string.Empty, "sectionGroup", string.Empty);
+ XmlAttribute usersettingsname = doc.CreateAttribute(string.Empty, "name", string.Empty);
+ usersettingsname.Value = "userSettings";
+ usersettingsgroup.Attributes.Append(usersettingsname);
+ XmlElement usersection = doc.CreateElement(string.Empty, "section", string.Empty);
+ XmlAttribute sectionname = doc.CreateAttribute(string.Empty, "name", string.Empty);
+ sectionname.Value = "AirScout.PlaneFeeds.Properties.Settings";
+ usersection.Attributes.Append(sectionname);
+ XmlAttribute sectiontype = doc.CreateAttribute(string.Empty, "type", string.Empty);
+ sectiontype.Value = "System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
+ usersection.Attributes.Append(sectiontype);
+ XmlAttribute sectionallowexedefinition = doc.CreateAttribute(string.Empty, "allowExeDefinition", string.Empty);
+ sectionallowexedefinition.Value = "MachineToLocalUser";
+ usersection.Attributes.Append(sectionallowexedefinition);
+ XmlAttribute sectionrequirepermission = doc.CreateAttribute(string.Empty, "requirePermission", string.Empty);
+ sectionrequirepermission.Value = "false";
+ usersection.Attributes.Append(sectionrequirepermission);
+ usersettingsgroup.AppendChild(usersection);
+ configsections.AppendChild(usersettingsgroup);
+ XmlElement usersettings = doc.CreateElement(string.Empty, "userSettings", string.Empty);
+ configuration.AppendChild(usersettings);
+ Console.WriteLine("Writing user settings...");
+ // append AirScout.PlaneFeeds properties
+ Console.WriteLine("Appending AirScout.PlaneFeeds.Properties.Settings.Default node...");
+ XmlElement planefeedproperties = doc.CreateElement(string.Empty, AirScout.PlaneFeeds.Properties.Settings.Default.ToString(), string.Empty);
+ usersettings.AppendChild(planefeedproperties);
+ foreach (SettingsPropertyValue p in AirScout.PlaneFeeds.Properties.Settings.Default.PropertyValues)
{
- // Console.WriteLine("Appending " + p.Name + " = " + p.PropertyValue.ToString());
- XmlElement setting = doc.CreateElement(string.Empty, "setting", string.Empty);
- XmlAttribute name = doc.CreateAttribute(string.Empty, "name", string.Empty);
- name.Value = p.Name.ToString();
- setting.Attributes.Append(name);
- XmlAttribute serializeas = doc.CreateAttribute(string.Empty, "serializeAs", string.Empty);
- serializeas.Value = p.Property.SerializeAs.ToString();
- setting.Attributes.Append(serializeas);
- XmlElement value = doc.CreateElement(string.Empty, "value", string.Empty);
- if (p.PropertyValue != null && p.Property.SerializeAs == SettingsSerializeAs.String)
+ if ((p != null) && (p.Name != null) && (p.PropertyValue != null) && !p.UsingDefaultValue)
{
- XmlText text = doc.CreateTextNode(p.SerializedValue.ToString());
- value.AppendChild(text);
- }
- else
- {
- if (p.PropertyValue != null && p.Property.SerializeAs == SettingsSerializeAs.Xml)
+ // Console.WriteLine("Appending " + p.Name + " = " + p.PropertyValue.ToString());
+ XmlElement setting = doc.CreateElement(string.Empty, "setting", string.Empty);
+ XmlAttribute name = doc.CreateAttribute(string.Empty, "name", string.Empty);
+ name.Value = p.Name.ToString();
+ setting.Attributes.Append(name);
+ XmlAttribute serializeas = doc.CreateAttribute(string.Empty, "serializeAs", string.Empty);
+ serializeas.Value = p.Property.SerializeAs.ToString();
+ setting.Attributes.Append(serializeas);
+ XmlElement value = doc.CreateElement(string.Empty, "value", string.Empty);
+ if (p.PropertyValue != null && p.Property.SerializeAs == SettingsSerializeAs.String)
{
- MemoryStream ms = new MemoryStream();
- XmlWriter writer = XmlWriter.Create(ms, new XmlWriterSettings
- {
- NewLineOnAttributes = true,
- OmitXmlDeclaration = true
- });
- XmlSerializer serializer = new XmlSerializer(p.PropertyValue.GetType());
- serializer.Serialize(writer, p.PropertyValue);
- byte[] text2 = new byte[ms.ToArray().Length - 3];
- Array.Copy(ms.ToArray(), 3, text2, 0, text2.Length);
- XmlText xml = doc.CreateTextNode(Encoding.UTF8.GetString(text2.ToArray()));
- value.AppendChild(xml);
- value.InnerXml = WebUtility.HtmlDecode(value.InnerXml);
+ XmlText text = doc.CreateTextNode(p.SerializedValue.ToString());
+ value.AppendChild(text);
}
+ else
+ {
+ if (p.PropertyValue != null && p.Property.SerializeAs == SettingsSerializeAs.Xml)
+ {
+ MemoryStream ms = new MemoryStream();
+ XmlWriter writer = XmlWriter.Create(ms, new XmlWriterSettings
+ {
+ NewLineOnAttributes = true,
+ OmitXmlDeclaration = true
+ });
+ XmlSerializer serializer = new XmlSerializer(p.PropertyValue.GetType());
+ serializer.Serialize(writer, p.PropertyValue);
+ byte[] text2 = new byte[ms.ToArray().Length - 3];
+ Array.Copy(ms.ToArray(), 3, text2, 0, text2.Length);
+ XmlText xml = doc.CreateTextNode(Encoding.UTF8.GetString(text2.ToArray()));
+ value.AppendChild(xml);
+ value.InnerXml = WebUtility.HtmlDecode(value.InnerXml);
+ }
+ }
+ setting.AppendChild(value);
+ planefeedproperties.AppendChild(setting);
}
- setting.AppendChild(value);
- planefeedproperties.AppendChild(setting);
}
+ // append AirScout properties
+ Console.WriteLine("Appending AirScout.Properties.Settings.Default node...");
+ XmlElement properties = doc.CreateElement(string.Empty, Properties.Settings.Default.ToString(), string.Empty);
+ usersettings.AppendChild(properties);
+ foreach (SettingsPropertyValue p in Properties.Settings.Default.PropertyValues)
+ {
+ if ((p != null) && (p.Name != null) && (p.PropertyValue != null) && !p.UsingDefaultValue)
+ {
+ // Console.WriteLine("Appending " + p.Name + " = " + p.PropertyValue.ToString();
+ XmlElement setting = doc.CreateElement(string.Empty, "setting", string.Empty);
+ XmlAttribute name = doc.CreateAttribute(string.Empty, "name", string.Empty);
+ name.Value = p.Name.ToString();
+ setting.Attributes.Append(name);
+ XmlAttribute serializeas = doc.CreateAttribute(string.Empty, "serializeAs", string.Empty);
+ serializeas.Value = p.Property.SerializeAs.ToString();
+ setting.Attributes.Append(serializeas);
+ XmlElement value = doc.CreateElement(string.Empty, "value", string.Empty);
+ if (p.PropertyValue != null && p.Property.SerializeAs == SettingsSerializeAs.String)
+ {
+ XmlText text = doc.CreateTextNode(p.SerializedValue.ToString());
+ value.AppendChild(text);
+ }
+ else
+ {
+ if (p.PropertyValue != null && p.Property.SerializeAs == SettingsSerializeAs.Xml)
+ {
+ MemoryStream ms = new MemoryStream();
+ XmlWriter writer = XmlWriter.Create(ms, new XmlWriterSettings
+ {
+ NewLineOnAttributes = true,
+ OmitXmlDeclaration = true
+ });
+ XmlSerializer serializer = new XmlSerializer(p.PropertyValue.GetType());
+ serializer.Serialize(writer, p.PropertyValue);
+ byte[] text2 = new byte[ms.ToArray().Length - 3];
+ Array.Copy(ms.ToArray(), 3, text2, 0, text2.Length);
+ XmlText xml = doc.CreateTextNode(Encoding.UTF8.GetString(text2.ToArray()));
+ value.AppendChild(xml);
+ value.InnerXml = WebUtility.HtmlDecode(value.InnerXml);
+ }
+ }
+ setting.AppendChild(value);
+ properties.AppendChild(setting);
+ }
+ }
+ doc.Save(GetUserSettingsPath());
}
- // append AirScout properties
- Console.WriteLine("Appending AirScout.Properties.Settings.Default node...");
- XmlElement properties = doc.CreateElement(string.Empty, Properties.Settings.Default.ToString(), string.Empty);
- usersettings.AppendChild(properties);
- foreach (SettingsPropertyValue p in Properties.Settings.Default.PropertyValues)
+ catch (Exception ex)
{
- if ((p != null) && (p.Name != null) && (p.PropertyValue != null) && !p.UsingDefaultValue)
- {
- // Console.WriteLine("Appending " + p.Name + " = " + p.PropertyValue.ToString();
- XmlElement setting = doc.CreateElement(string.Empty, "setting", string.Empty);
- XmlAttribute name = doc.CreateAttribute(string.Empty, "name", string.Empty);
- name.Value = p.Name.ToString();
- setting.Attributes.Append(name);
- XmlAttribute serializeas = doc.CreateAttribute(string.Empty, "serializeAs", string.Empty);
- serializeas.Value = p.Property.SerializeAs.ToString();
- setting.Attributes.Append(serializeas);
- XmlElement value = doc.CreateElement(string.Empty, "value", string.Empty);
- if (p.PropertyValue != null && p.Property.SerializeAs == SettingsSerializeAs.String)
- {
- XmlText text = doc.CreateTextNode(p.SerializedValue.ToString());
- value.AppendChild(text);
- }
- else
- {
- if (p.PropertyValue != null && p.Property.SerializeAs == SettingsSerializeAs.Xml)
- {
- MemoryStream ms = new MemoryStream();
- XmlWriter writer = XmlWriter.Create(ms, new XmlWriterSettings
- {
- NewLineOnAttributes = true,
- OmitXmlDeclaration = true
- });
- XmlSerializer serializer = new XmlSerializer(p.PropertyValue.GetType());
- serializer.Serialize(writer, p.PropertyValue);
- byte[] text2 = new byte[ms.ToArray().Length - 3];
- Array.Copy(ms.ToArray(), 3, text2, 0, text2.Length);
- XmlText xml = doc.CreateTextNode(Encoding.UTF8.GetString(text2.ToArray()));
- value.AppendChild(xml);
- value.InnerXml = WebUtility.HtmlDecode(value.InnerXml);
- }
- }
- setting.AppendChild(value);
- properties.AppendChild(setting);
- }
+ Console.WriteLine("Unable to save settings: " + ex.ToString());
}
- doc.Save(GetUserSettingsPath());
}
#endregion
@@ -2197,9 +2204,6 @@ namespace AirScout
private void OnIdle(object sender, EventArgs args)
{
- // enable/disable watchlist button
- if (btn_Control_Manage_Watchlist.Enabled == Properties.Settings.Default.Watchlist_SyncWithKST)
- btn_Control_Manage_Watchlist.Enabled = !Properties.Settings.Default.Watchlist_SyncWithKST;
}
#endregion
@@ -2813,6 +2817,10 @@ namespace AirScout
Say("Options");
if (Dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
+ // enbale/disable manage watchlist button
+ btn_Control_Manage_Watchlist.Enabled = !Properties.Settings.Default.Watchlist_SyncWithKST;
+ // Re-initialze charts
+ InitializeCharts();
// clear paths cache assuming that new options were set
ElevationPaths.Clear();
PropagationPaths.Clear();
@@ -2837,18 +2845,6 @@ namespace AirScout
bw_PlaneFeed2 = null;
bw_PlaneFeed3 = null;
- /*
- foreach (PlaneFeed feed in PlaneFeeds)
- {
- if (Properties.Settings.Default.Planes_PlaneFeed1 == feed.Name)
- bw_PlaneFeed1 = feed;
- if (Properties.Settings.Default.Planes_PlaneFeed2 == feed.Name)
- bw_PlaneFeed2 = feed;
- if (Properties.Settings.Default.Planes_PlaneFeed3 == feed.Name)
- bw_PlaneFeed3 = feed;
- }
-
- */
if (PlaneFeedPlugins != null)
{
foreach (IPlaneFeedPlugin plugin in PlaneFeedPlugins)
@@ -4030,6 +4026,7 @@ namespace AirScout
// update listview
lv_Control_Watchlist.BeginUpdate();
lv_Control_Watchlist.Items.Clear();
+ Properties.Settings.Default.Watchlist.Sort();
// run twice, add checked items first, then all others
foreach (WatchlistItem item in Properties.Settings.Default.Watchlist)
{
@@ -4143,6 +4140,7 @@ namespace AirScout
if (item.Overlay == gmo_Callsigns)
{
string call = (string)item.Tag;
+ // check if callsign clicked and not own callsign
if (Callsign.Check(call) && (call != Properties.Settings.Default.MyCall))
{
if (PathMode == AIRSCOUTPATHMODE.MULTI)
@@ -4160,6 +4158,24 @@ namespace AirScout
UpdatePaths();
}
}
+ else if (PathMode == AIRSCOUTPATHMODE.SINGLE)
+ {
+ // search call on watchlist
+ int index = Properties.Settings.Default.Watchlist.IndexOf(call);
+ if (index >= 0)
+ {
+ string loc = Properties.Settings.Default.Watchlist.ElementAt(index).Loc;
+ // get location info from database
+ LocationDesignator ld = LocationFindOrCreate(call, loc);
+ Properties.Settings.Default.DXCall = ld.Call;
+ Properties.Settings.Default.DXLat = ld.Lat;
+ Properties.Settings.Default.DXLon = ld.Lon;
+ UpdateStatus();
+ // update paths if running
+ if (PlayMode == AIRSCOUTPLAYMODE.FORWARD)
+ UpdatePaths();
+ }
+ }
}
}
// check if plane clicked
@@ -4635,6 +4651,9 @@ namespace AirScout
private void tp_Control_Multi_Enter(object sender, EventArgs e)
{
+ // enbale/disable manage watchlist button
+ btn_Control_Manage_Watchlist.Enabled = !Properties.Settings.Default.Watchlist_SyncWithKST;
+
if (PathMode != AIRSCOUTPATHMODE.MULTI)
{
PathMode = AIRSCOUTPATHMODE.MULTI;
@@ -5876,13 +5895,14 @@ namespace AirScout
{
Stopwatch st = new Stopwatch();
st.Start();
- // mark all watchlist items to remove
+ // mark all watchlist items to remove wich are not currently tracked
foreach (WatchlistItem item in Properties.Settings.Default.Watchlist)
{
// nasty!! Should never be null!
if (item == null)
continue;
- item.Remove = true;
+ if (!item.Checked)
+ item.Remove = true;
}
// split message
string[] a = msg.Data.Split(',');
diff --git a/AirScout/MapDlg.resx b/AirScout/MapDlg.resx
index 49427b5..e4da65a 100644
--- a/AirScout/MapDlg.resx
+++ b/AirScout/MapDlg.resx
@@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACc
- DQAAAk1TRnQBSQFMAgEBAwEAAWgBCwFoAQsBIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ DQAAAk1TRnQBSQFMAgEBAwEAAXABCwFwAQsBIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABgAMAASADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -340,7 +340,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACM
- DAAAAk1TRnQBSQFMAwEBAAHQAQkB0AEJASABAAEgAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
+ DAAAAk1TRnQBSQFMAwEBAAHYAQkB2AEJASABAAEgAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
AYADAAEgAwABAQEAAQgGAAEQGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA
AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA
AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm
diff --git a/AirScout/OptionsDlg.Designer.cs b/AirScout/OptionsDlg.Designer.cs
index 312ff00..0d269d1 100644
--- a/AirScout/OptionsDlg.Designer.cs
+++ b/AirScout/OptionsDlg.Designer.cs
@@ -422,6 +422,9 @@
this.bw_SRTM1_MapUpdater = new System.ComponentModel.BackgroundWorker();
this.bw_GLOBE_MapUpdater = new System.ComponentModel.BackgroundWorker();
this.bw_StationDataUpdater = new System.ComponentModel.BackgroundWorker();
+ this.groupBox37 = new System.Windows.Forms.GroupBox();
+ this.ud_Options_Charts_FontSize = new System.Windows.Forms.NumericUpDown();
+ this.label34 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.pb_Donate)).BeginInit();
this.tab_Options_Planes.SuspendLayout();
this.groupBox48.SuspendLayout();
@@ -492,6 +495,8 @@
this.groupBox28.SuspendLayout();
this.tab_Options_Info.SuspendLayout();
this.ss_Options.SuspendLayout();
+ this.groupBox37.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Charts_FontSize)).BeginInit();
this.SuspendLayout();
//
// btn_Options_OK
@@ -1802,6 +1807,7 @@
// tab_Options_Map
//
this.tab_Options_Map.BackColor = System.Drawing.SystemColors.Control;
+ this.tab_Options_Map.Controls.Add(this.groupBox37);
this.tab_Options_Map.Controls.Add(this.groupBox39);
this.tab_Options_Map.Controls.Add(this.groupBox23);
this.tab_Options_Map.Controls.Add(this.groupBox30);
@@ -1945,9 +1951,9 @@
this.groupBox30.Controls.Add(this.label81);
this.groupBox30.Controls.Add(this.label80);
this.groupBox30.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.groupBox30.Location = new System.Drawing.Point(446, 301);
+ this.groupBox30.Location = new System.Drawing.Point(424, 301);
this.groupBox30.Name = "groupBox30";
- this.groupBox30.Size = new System.Drawing.Size(211, 154);
+ this.groupBox30.Size = new System.Drawing.Size(233, 154);
this.groupBox30.TabIndex = 6;
this.groupBox30.TabStop = false;
this.groupBox30.Text = "Plane Icon Sizes per Category";
@@ -2074,7 +2080,7 @@
this.groupBox7.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox7.Location = new System.Drawing.Point(14, 301);
this.groupBox7.Name = "groupBox7";
- this.groupBox7.Size = new System.Drawing.Size(415, 154);
+ this.groupBox7.Size = new System.Drawing.Size(394, 154);
this.groupBox7.TabIndex = 5;
this.groupBox7.TabStop = false;
this.groupBox7.Text = "Info Window Elements";
@@ -2086,7 +2092,7 @@
this.groupBox29.Controls.Add(this.label75);
this.groupBox29.Location = new System.Drawing.Point(256, 19);
this.groupBox29.Name = "groupBox29";
- this.groupBox29.Size = new System.Drawing.Size(139, 123);
+ this.groupBox29.Size = new System.Drawing.Size(129, 123);
this.groupBox29.TabIndex = 19;
this.groupBox29.TabStop = false;
//
@@ -2277,7 +2283,7 @@
this.groupBox22.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox22.Location = new System.Drawing.Point(13, 226);
this.groupBox22.Name = "groupBox22";
- this.groupBox22.Size = new System.Drawing.Size(644, 69);
+ this.groupBox22.Size = new System.Drawing.Size(395, 69);
this.groupBox22.TabIndex = 4;
this.groupBox22.TabStop = false;
this.groupBox22.Text = "Info Window Options";
@@ -2324,7 +2330,7 @@
// btn_Options_SelectFont
//
this.btn_Options_SelectFont.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.btn_Options_SelectFont.Location = new System.Drawing.Point(514, 37);
+ this.btn_Options_SelectFont.Location = new System.Drawing.Point(280, 37);
this.btn_Options_SelectFont.Name = "btn_Options_SelectFont";
this.btn_Options_SelectFont.Size = new System.Drawing.Size(106, 23);
this.btn_Options_SelectFont.TabIndex = 2;
@@ -2349,7 +2355,7 @@
this.tb_Options_Map_ToolTipFont.Location = new System.Drawing.Point(72, 39);
this.tb_Options_Map_ToolTipFont.Name = "tb_Options_Map_ToolTipFont";
this.tb_Options_Map_ToolTipFont.ReadOnly = true;
- this.tb_Options_Map_ToolTipFont.Size = new System.Drawing.Size(417, 20);
+ this.tb_Options_Map_ToolTipFont.Size = new System.Drawing.Size(179, 20);
this.tb_Options_Map_ToolTipFont.TabIndex = 0;
this.tb_Options_Map_ToolTipFont.Text = global::AirScout.Properties.Settings.Default.Map_ToolTipFont;
//
@@ -5339,6 +5345,48 @@
this.bw_StationDataUpdater.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bw_StationDataUpdater_ProgressChanged);
this.bw_StationDataUpdater.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.bw_StationDataUpdater_RunWorkerCompleted);
//
+ // groupBox37
+ //
+ this.groupBox37.Controls.Add(this.label34);
+ this.groupBox37.Controls.Add(this.ud_Options_Charts_FontSize);
+ this.groupBox37.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.groupBox37.Location = new System.Drawing.Point(415, 227);
+ this.groupBox37.Name = "groupBox37";
+ this.groupBox37.Size = new System.Drawing.Size(242, 68);
+ this.groupBox37.TabIndex = 9;
+ this.groupBox37.TabStop = false;
+ this.groupBox37.Text = "Chart Window Options";
+ //
+ // ud_Options_Charts_FontSize
+ //
+ this.ud_Options_Charts_FontSize.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Charts_FontSize", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
+ this.ud_Options_Charts_FontSize.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.ud_Options_Charts_FontSize.Location = new System.Drawing.Point(184, 39);
+ this.ud_Options_Charts_FontSize.Maximum = new decimal(new int[] {
+ 16,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_Charts_FontSize.Minimum = new decimal(new int[] {
+ 6,
+ 0,
+ 0,
+ 0});
+ this.ud_Options_Charts_FontSize.Name = "ud_Options_Charts_FontSize";
+ this.ud_Options_Charts_FontSize.Size = new System.Drawing.Size(45, 22);
+ this.ud_Options_Charts_FontSize.TabIndex = 0;
+ this.ud_Options_Charts_FontSize.Value = global::AirScout.Properties.Settings.Default.Charts_FontSize;
+ //
+ // label34
+ //
+ this.label34.AutoSize = true;
+ this.label34.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label34.Location = new System.Drawing.Point(7, 41);
+ this.label34.Name = "label34";
+ this.label34.Size = new System.Drawing.Size(174, 13);
+ this.label34.TabIndex = 2;
+ this.label34.Text = "Font Size for Axes in Diagrams etc.:";
+ //
// OptionsDlg
//
this.AcceptButton = this.btn_Options_OK;
@@ -5470,6 +5518,9 @@
this.tab_Options_Info.PerformLayout();
this.ss_Options.ResumeLayout(false);
this.ss_Options.PerformLayout();
+ this.groupBox37.ResumeLayout(false);
+ this.groupBox37.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Charts_FontSize)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@@ -5869,5 +5920,8 @@
private System.Windows.Forms.Button btn_Options_PlaneFeed2_Default;
private System.Windows.Forms.Button btn_Options_PlaneFeed1_Default;
private System.Windows.Forms.CheckBox cb_Options_Map_LabelCalls;
+ private System.Windows.Forms.GroupBox groupBox37;
+ private System.Windows.Forms.Label label34;
+ private System.Windows.Forms.NumericUpDown ud_Options_Charts_FontSize;
}
}
\ No newline at end of file
diff --git a/AirScout/OptionsDlg.cs b/AirScout/OptionsDlg.cs
index d6df9ba..f877a2f 100644
--- a/AirScout/OptionsDlg.cs
+++ b/AirScout/OptionsDlg.cs
@@ -1694,7 +1694,14 @@ namespace AirScout
ID = ID + "," + DateTime.UtcNow.ToString("u");
ID = ID + "," + System.Security.Principal.WindowsIdentity.GetCurrent().Name;
feed.DisclaimerAccepted = ID;
- feed.SaveSettings();
+ try
+ {
+ feed.SaveSettings();
+ }
+ catch (Exception ex)
+ {
+ Log.WriteMessage(ex.ToString());
+ }
}
else
{
@@ -1740,7 +1747,14 @@ namespace AirScout
ID = ID + "," + DateTime.UtcNow.ToString("u");
ID = ID + "," + System.Security.Principal.WindowsIdentity.GetCurrent().Name;
feed.DisclaimerAccepted = ID;
- feed.SaveSettings();
+ try
+ {
+ feed.SaveSettings();
+ }
+ catch (Exception ex)
+ {
+ Log.WriteMessage(ex.ToString());
+ }
}
else
{
@@ -1786,7 +1800,14 @@ namespace AirScout
ID = ID + "," + DateTime.UtcNow.ToString("u");
ID = ID + "," + System.Security.Principal.WindowsIdentity.GetCurrent().Name;
feed.DisclaimerAccepted = ID;
- feed.SaveSettings();
+ try
+ {
+ feed.SaveSettings();
+ }
+ catch (Exception ex)
+ {
+ Log.WriteMessage(ex.ToString());
+ }
}
else
{
diff --git a/AirScout/Program.cs b/AirScout/Program.cs
index e693b81..f08e55f 100644
--- a/AirScout/Program.cs
+++ b/AirScout/Program.cs
@@ -1,4 +1,5 @@
using System;
+using System.Runtime.InteropServices;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
@@ -8,6 +9,11 @@ namespace AirScout
{
static class Program
{
+
+ [DllImport("kernel32.dll")]
+ static extern bool AttachConsole(int dwProcessId);
+ private const int ATTACH_PARENT_PROCESS = -1;
+
// Mutex to ensure that only one instance is running
static System.Threading.Mutex singleton = new Mutex(true, Application.ProductName);
///
@@ -25,12 +31,21 @@ namespace AirScout
}
else
*/
+ try
{
+ // redirect console output to parent process;
+ // must be before any calls to Console.WriteLine()
+ // this will crash on Linux/Mono for sure --> handle exception
+ AttachConsole(ATTACH_PARENT_PROCESS);
+ }
+ catch (Exception ex)
+ {
+ // do nothing
+ }
// run program normally
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MapDlg());
- }
}
}
}
diff --git a/AirScout/Properties/AssemblyInfo.cs b/AirScout/Properties/AssemblyInfo.cs
index fc67a64..0290e6f 100644
--- a/AirScout/Properties/AssemblyInfo.cs
+++ b/AirScout/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.3.1.0")]
-[assembly: AssemblyFileVersion("1.3.1.0")]
+[assembly: AssemblyVersion("1.3.2.0")]
+[assembly: AssemblyFileVersion("1.3.2.0")]
diff --git a/AirScout/Properties/Settings.Designer.cs b/AirScout/Properties/Settings.Designer.cs
index 6cdfd7c..5791d8f 100644
--- a/AirScout/Properties/Settings.Designer.cs
+++ b/AirScout/Properties/Settings.Designer.cs
@@ -1536,7 +1536,7 @@ namespace AirScout.Properties {
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ [global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool Watchlist_SyncWithKST {
get {
return ((bool)(this["Watchlist_SyncWithKST"]));
@@ -2232,5 +2232,17 @@ Digital data base on the World Wide Web (URL: http://www.ngdc.noaa.gov/mgg/topo/
this["Map_LabelCalls"] = value;
}
}
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("6")]
+ public decimal Charts_FontSize {
+ get {
+ return ((decimal)(this["Charts_FontSize"]));
+ }
+ set {
+ this["Charts_FontSize"] = value;
+ }
+ }
}
}
diff --git a/AirScout/Properties/Settings.settings b/AirScout/Properties/Settings.settings
index 0542bd1..bb59fb3 100644
--- a/AirScout/Properties/Settings.settings
+++ b/AirScout/Properties/Settings.settings
@@ -381,7 +381,7 @@
http://www.airscout.eu
- False
+ True
True
@@ -586,5 +586,8 @@ MEaSUREs data and products are available at no charge from the LP DAAC.See https
True
+
+ 6
+
\ No newline at end of file
diff --git a/AirScout/VersionHistory.txt b/AirScout/VersionHistory.txt
index 3066c3c..0a105fd 100644
--- a/AirScout/VersionHistory.txt
+++ b/AirScout/VersionHistory.txt
@@ -209,3 +209,14 @@ Initial Version
- Feature: New web feed from OpenSky Network implenented (a free community)
- Bugfix: AirScout crashed when the "Info" tab in the "Options" dialog box is opened twice after doing some other stuff --> fixed (tnx G0LGS)
+2020-xx-xx: V1.3.2.0
+====================
+
+- Bugfix: Several limitations on Windows XP, program crashes while opening Options Dialog, users cannot save plane feed settings --> fixed (tnx OK1TEH)
+- Feature: Users can click on the watchlist markers on the map to change path immediately in SINGLE mode (tnx GM4JTJ)
+- Feature: Change font size in charts via "Options/Map" (tnx LZ2ZP)
+- Bugfix: Radio Horizon shows an unwanted strike through in Cartesian diagram --> fixed (tnx LZ2ZP)
+- Feature: Redirect console output, users can run AirScout from a command line and see all console output for debugging (like on Linux)
+- Bugfix: Watchlist was not properly sorted when synchronized with wtKST --> fixed
+- Bugfix: "Orphan paths" when watchlist synchronized with wtKST and user leaves the chat --> fixed, call is kept on watchlist now as long as it is selected
+
diff --git a/AirScout/Watchlist.cs b/AirScout/Watchlist.cs
index 0a1b04c..857e7d2 100644
--- a/AirScout/Watchlist.cs
+++ b/AirScout/Watchlist.cs
@@ -8,7 +8,7 @@ namespace AirScout
///
/// Holds the watchlist item
///
- public class WatchlistItem
+ public class WatchlistItem : IComparable
{
public string Call { get; set; }
public string Loc { get; set; }
@@ -28,7 +28,7 @@ namespace AirScout
}
public WatchlistItem(string call, string loc, bool oor) : this(call, loc, oor, false, false) { }
- public WatchlistItem(string call, string loc, bool oor, bool check, bool selected )
+ public WatchlistItem(string call, string loc, bool oor, bool check, bool selected)
{
Call = call;
Loc = loc;
@@ -38,13 +38,25 @@ namespace AirScout
Remove = false;
}
- }
+ public int CompareTo(WatchlistItem other)
+ {
+ // If other is not a valid object reference, this instance is greater.
+ if (other == null) return 1;
- ///
- /// Holds the watchlist, e.g. a list of watchlist items
- ///
- public class Watchlist : List
- {
+ // compare call signs first
+ int i = String.Compare(this.Call, other.Call);
+ if (i != 0)
+ return i;
+ // then compare locs when calls are equal
+ return String.Compare(this.Loc, other.Loc);
+ }
+
+ }
+ ///
+ /// Holds the watchlist, e.g. a list of watchlist items
+ ///
+ public class Watchlist : List
+ {
public Watchlist()
{
diff --git a/AirScout/app.config b/AirScout/app.config
index c87eb82..18903a8 100644
--- a/AirScout/app.config
+++ b/AirScout/app.config
@@ -385,7 +385,7 @@
http://www.airscout.eu
- False
+ True
True
@@ -585,6 +585,9 @@ MEaSUREs data and products are available at no charge from the LP DAAC.See https
True
+
+ 6
+
diff --git a/ElevationTileGenerator/ElevationTileGenerator.csproj b/ElevationTileGenerator/ElevationTileGenerator.csproj
index a181ec1..3101e7a 100644
--- a/ElevationTileGenerator/ElevationTileGenerator.csproj
+++ b/ElevationTileGenerator/ElevationTileGenerator.csproj
@@ -15,6 +15,21 @@
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ false
+ true
AnyCPU
@@ -117,6 +132,10 @@
{ee86e933-d883-4b18-80eb-0fba55ec67c6}
ScoutBase.Core
+
+ {89E6C7A3-6064-479E-A710-37C7293CF47C}
+ ScoutBase.Database
+
{009cabfd-726d-481f-972d-0a218e0ad9b9}
ScoutBase.Elevation
@@ -126,6 +145,13 @@
SQLiteDatabase
+
+
+ False
+ .NET Framework 3.5 SP1
+ false
+
+
@@ -134,6 +160,10 @@
+
+
+
+
cut column names to its right length
+ for (int i = 0; i < dt.Columns.Count; i++)
+ {
+ int j = 0;
+ while ((j < dt.Columns[i].ColumnName.Length) && (Char.IsLetter(dt.Columns[i].ColumnName[j]) || Char.IsDigit(dt.Columns[i].ColumnName[j])))
+ j++;
+ dt.Columns[i].ColumnName = dt.Columns[i].ColumnName.Substring(0, j);
+ Console.Write("'" + dt.Columns[i].ColumnName + "[" + dt.Columns[i].ColumnName.Length + "]', ");
+ }
+ Console.WriteLine();
}
- // Linux/Mono hack --> cut column names to its right length
- for (int i = 0; i < dt.Columns.Count; i++)
+ catch (Exception ex)
{
- int j = 0;
- while ((j < dt.Columns[i].ColumnName.Length) && (Char.IsLetter(dt.Columns[i].ColumnName[j]) || Char.IsDigit(dt.Columns[i].ColumnName[j])))
- j++;
- dt.Columns[i].ColumnName = dt.Columns[i].ColumnName.Substring(0, j);
- Console.Write("'" + dt.Columns[i].ColumnName + "[" + dt.Columns[i].ColumnName.Length + "]', ");
+ Console.WriteLine("SQLiteDatabase.Select: fatal error while executing command <" + sql + ">\n\n" + ex.ToString());
}
- Console.WriteLine();
return dt;
}
public DataTable Select (SQLiteCommand cmd)
{
DataTable dt = new DataTable();
- lock (cmd)
+ try
{
- SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
- da.Fill(dt);
+ lock (cmd)
+ {
+ SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
+ da.Fill(dt);
+ }
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine("SQLiteDatabase.Select: fatal error while executing command <" + cmd.CommandText + ">\n\n" + ex.ToString());
}
return dt;
}