kopia lustrzana https://github.com/dl2alf/AirScout
V1.3.2.0
rodzic
c1b5b7b82e
commit
51cbeabd7b
|
@ -78,6 +78,7 @@
|
|||
</Target>
|
||||
<Import Project="..\packages\ILMerge.MSBuild.Task.1.0.7\build\ILMerge.MSBuild.Task.targets" Condition="Exists('..\packages\ILMerge.MSBuild.Task.1.0.7\build\ILMerge.MSBuild.Task.targets')" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir) /y</PostBuildEvent>
|
||||
<PostBuildEvent>mkdir $(SolutionDir)\Airscout\$(OutDir)\Plugin\
|
||||
copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir)\Plugin\ /y</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -78,6 +78,7 @@
|
|||
</Target>
|
||||
<Import Project="..\packages\ILMerge.MSBuild.Task.1.0.7\build\ILMerge.MSBuild.Task.targets" Condition="Exists('..\packages\ILMerge.MSBuild.Task.1.0.7\build\ILMerge.MSBuild.Task.targets')" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>copy Z:\CSharp\AirScout\AirScout\AirScout.PlaneFeeds.Plugin.OpenSky\bin\Debug\ILMerge\*.dll Z:\CSharp\AirScout\AirScout\AirScout\bin\Debug\ /Y</PostBuildEvent>
|
||||
<PostBuildEvent>mkdir $(SolutionDir)\Airscout\$(OutDir)\Plugin\
|
||||
copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir)\Plugin\ /y</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -78,6 +78,7 @@
|
|||
</Target>
|
||||
<Import Project="..\packages\ILMerge.MSBuild.Task.1.0.7\build\ILMerge.MSBuild.Task.targets" Condition="Exists('..\packages\ILMerge.MSBuild.Task.1.0.7\build\ILMerge.MSBuild.Task.targets')" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir) /y</PostBuildEvent>
|
||||
<PostBuildEvent>mkdir $(SolutionDir)\Airscout\$(OutDir)\Plugin\
|
||||
copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir)\Plugin\ /y</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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")]
|
||||
|
|
|
@ -78,6 +78,7 @@
|
|||
</Target>
|
||||
<Import Project="..\packages\ILMerge.MSBuild.Task.1.0.7\build\ILMerge.MSBuild.Task.targets" Condition="Exists('..\packages\ILMerge.MSBuild.Task.1.0.7\build\ILMerge.MSBuild.Task.targets')" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir) /y</PostBuildEvent>
|
||||
<PostBuildEvent>mkdir $(SolutionDir)\Airscout\$(OutDir)\Plugin\
|
||||
copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir)\Plugin\ /y</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -84,6 +84,7 @@
|
|||
</Target>
|
||||
<Import Project="..\packages\ILMerge.MSBuild.Task.1.0.7\build\ILMerge.MSBuild.Task.targets" Condition="Exists('..\packages\ILMerge.MSBuild.Task.1.0.7\build\ILMerge.MSBuild.Task.targets')" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir) /y</PostBuildEvent>
|
||||
<PostBuildEvent>mkdir $(SolutionDir)\Airscout\$(OutDir)\Plugin\
|
||||
copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir)\Plugin\ /y</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -77,7 +77,8 @@
|
|||
<Error Condition="!Exists('..\packages\ILMerge.MSBuild.Task.1.0.7\build\ILMerge.MSBuild.Task.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\ILMerge.MSBuild.Task.1.0.7\build\ILMerge.MSBuild.Task.targets'))" />
|
||||
</Target>
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir) /y</PostBuildEvent>
|
||||
<PostBuildEvent>mkdir $(SolutionDir)\Airscout\$(OutDir)\Plugin\
|
||||
copy $(ProjectDir)\$(OutDir)\ILMerge\*$(TargetExt) $(SolutionDir)\Airscout\$(OutDir)\Plugin\ /y</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<Import Project="..\packages\ILMerge.MSBuild.Task.1.0.7\build\ILMerge.MSBuild.Task.targets" Condition="Exists('..\packages\ILMerge.MSBuild.Task.1.0.7\build\ILMerge.MSBuild.Task.targets')" />
|
||||
</Project>
|
14
AirScout.sln
14
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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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<byte>()));
|
||||
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<byte>()));
|
||||
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<byte>()));
|
||||
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<byte>()));
|
||||
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(',');
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
/// <summary>
|
||||
|
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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")]
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -381,7 +381,7 @@
|
|||
<Value Profile="(Default)">http://www.airscout.eu</Value>
|
||||
</Setting>
|
||||
<Setting Name="Watchlist_SyncWithKST" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="Watchlist_Activated" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
|
@ -586,5 +586,8 @@ MEaSUREs data and products are available at no charge from the LP DAAC.See https
|
|||
<Setting Name="Map_LabelCalls" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="Charts_FontSize" Type="System.Decimal" Scope="User">
|
||||
<Value Profile="(Default)">6</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
|
@ -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
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ namespace AirScout
|
|||
/// <summary>
|
||||
/// Holds the watchlist item
|
||||
/// </summary>
|
||||
public class WatchlistItem
|
||||
public class WatchlistItem : IComparable<WatchlistItem>
|
||||
{
|
||||
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;
|
||||
|
||||
/// <summary>
|
||||
/// Holds the watchlist, e.g. a list of watchlist items
|
||||
/// </summary>
|
||||
public class Watchlist : List<WatchlistItem>
|
||||
{
|
||||
// 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);
|
||||
}
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// Holds the watchlist, e.g. a list of watchlist items
|
||||
/// </summary>
|
||||
public class Watchlist : List<WatchlistItem>
|
||||
{
|
||||
public Watchlist()
|
||||
{
|
||||
|
||||
|
|
|
@ -385,7 +385,7 @@
|
|||
<value>http://www.airscout.eu</value>
|
||||
</setting>
|
||||
<setting name="Watchlist_SyncWithKST" serializeAs="String">
|
||||
<value>False</value>
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="Watchlist_Activated" serializeAs="String">
|
||||
<value>True</value>
|
||||
|
@ -585,6 +585,9 @@ MEaSUREs data and products are available at no charge from the LP DAAC.See https
|
|||
<setting name="Map_LabelCalls" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="Charts_FontSize" serializeAs="String">
|
||||
<value>6</value>
|
||||
</setting>
|
||||
</AirScout.Properties.Settings>
|
||||
</userSettings>
|
||||
<startup>
|
||||
|
|
|
@ -15,6 +15,21 @@
|
|||
<TargetFrameworkProfile />
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
|
@ -117,6 +132,10 @@
|
|||
<Project>{ee86e933-d883-4b18-80eb-0fba55ec67c6}</Project>
|
||||
<Name>ScoutBase.Core</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ScoutBase\ScoutBase.Database\ScoutBase.Database.csproj">
|
||||
<Project>{89E6C7A3-6064-479E-A710-37C7293CF47C}</Project>
|
||||
<Name>ScoutBase.Database</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ScoutBase\ScoutBase.Elevation\ScoutBase.Elevation.csproj">
|
||||
<Project>{009cabfd-726d-481f-972d-0a218e0ad9b9}</Project>
|
||||
<Name>ScoutBase.Elevation</Name>
|
||||
|
@ -126,6 +145,13 @@
|
|||
<Name>SQLiteDatabase</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
|
@ -134,6 +160,10 @@
|
|||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.112.0\build\net40\System.Data.SQLite.Core.targets'))" />
|
||||
</Target>
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
|
|
|
@ -373,33 +373,47 @@ namespace System.Data.SQLite
|
|||
public DataTable Select (string sql)
|
||||
{
|
||||
DataTable dt = new DataTable();
|
||||
lock (DBCommand)
|
||||
try
|
||||
{
|
||||
DBCommand.CommandText = sql;
|
||||
DBCommand.Parameters.Clear();
|
||||
SQLiteDataAdapter da = new SQLiteDataAdapter(DBCommand);
|
||||
da.Fill(dt);
|
||||
lock (DBCommand)
|
||||
{
|
||||
DBCommand.CommandText = sql;
|
||||
DBCommand.Parameters.Clear();
|
||||
SQLiteDataAdapter da = new SQLiteDataAdapter(DBCommand);
|
||||
da.Fill(dt);
|
||||
}
|
||||
// Linux/Mono hack --> 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;
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue