// If the route has any unsaved changes, prompt the user to save them. // Returns true if the caller is allowed to continue; false if caller should abort. private bool PromptAndSaveIfNeeded() { var rt = new SavedRouteClass(); UpdateRouteInfo(rt); if (rt.Equals(currentroute)) // No changes have been made. { return(true); } else { // here get scanner to complain var result = ExtendedControls.MessageBoxTheme.Show(FindForm(), ("There are unsaved changes to the current route." + Environment.NewLine + "Would you like to save the current route before proceeding?").T(EDTx.UserControlExpedition_Unsaved), "Warning".T(EDTx.Warning), MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation); switch (result) { case DialogResult.Yes: return(SaveCurrentRoute()); case DialogResult.No: return(true); case DialogResult.Cancel: default: return(false); } } }
public override void Init() { DBBaseName = "RouteTracker"; displayfont = discoveryform.theme.GetFont; showJumpsToolStripMenuItem.Checked = GetSetting("showjumps", true); autoCopyWPToolStripMenuItem.Checked = GetSetting("autoCopyWP", false); autoSetTargetToolStripMenuItem.Checked = GetSetting("autoSetTarget", false); showWaypointCoordinatesToolStripMenuItem.Checked = GetSetting("coords", true); showDeviationFromRouteToolStripMenuItem.Checked = GetSetting("dev", true); showBookmarkNotesToolStripMenuItem.Checked = GetSetting("bookmarkNotes", true); string ids = GetSetting("SelectedRoute", "-1"); // for some reason, it was saved as a string.. so keep for backwards compat int? id = ids.InvariantParseIntNull(); if (id != null) { currentRoute = SavedRouteClass.GetAllSavedRoutes().Find(r => r.Id.Equals(id.Value)); // may be null } Display(); discoveryform.OnHistoryChange += Display; discoveryform.OnNewEntry += NewEntry; GlobalBookMarkList.Instance.OnBookmarkChange += GlobalBookMarkList_OnBookmarkChange; BaseUtils.Translator.Instance.Translate(this); BaseUtils.Translator.Instance.Translate(contextMenuStrip, this); }
public override void Init() { displayfont = discoveryform.theme.GetFont; showJumpsToolStripMenuItem.Checked = EliteDangerousCore.DB.UserDatabase.Instance.GetSettingBool(DbSave + "showjumps", true); autoCopyWPToolStripMenuItem.Checked = EliteDangerousCore.DB.UserDatabase.Instance.GetSettingBool(DbSave + "autoCopyWP", false); autoSetTargetToolStripMenuItem.Checked = EliteDangerousCore.DB.UserDatabase.Instance.GetSettingBool(DbSave + "autoSetTarget", false); showWaypointCoordinatesToolStripMenuItem.Checked = EliteDangerousCore.DB.UserDatabase.Instance.GetSettingBool(DbSave + "coords", true); showDeviationFromRouteToolStripMenuItem.Checked = EliteDangerousCore.DB.UserDatabase.Instance.GetSettingBool(DbSave + "dev", true); string ids = EliteDangerousCore.DB.UserDatabase.Instance.GetSettingString(DbSave + "SelectedRoute", "-1"); // for some reason, it was saved as a string.. so keep for backwards compat int? id = ids.InvariantParseIntNull(); if (id != null) { currentRoute = SavedRouteClass.GetAllSavedRoutes().Find(r => r.Id.Equals(id.Value)); // may be null } Display(); discoveryform.OnHistoryChange += Display; discoveryform.OnNewEntry += NewEntry; BaseUtils.Translator.Instance.Translate(this); BaseUtils.Translator.Instance.Translate(contextMenuStrip, this); }
public UserControlExpedition() { InitializeComponent(); SystemName.AutoCompleteGenerator = SystemCache.ReturnSystemAutoCompleteList; currentroute = new SavedRouteClass(""); savedroute = new List <SavedRouteClass>(); }
public void InitControl(EDDiscoveryForm discoveryForm) { _discoveryForm = discoveryForm; edsm = new EDSMClass(); _currentRoute = new SavedRouteClass(""); _savedRoutes = new List <SavedRouteClass>(); }
public UserControlExpedition() { InitializeComponent(); SystemName.AutoCompleteGenerator = SystemClassDB.ReturnOnlySystemsListForAutoComplete; currentroute = new SavedRouteClass(""); savedroute = new List <SavedRouteClass>(); }
private void UpdateUndeleteMenu(List <SavedRouteClass> routes = null) { var delrts = (routes ?? SavedRouteClass.GetAllSavedRoutes()).Where(r => r.Name.StartsWith(DEL)).OrderBy(r => r.Name); if (ctxMenuItemUndelete.HasDropDownItems) { for (int i = ctxMenuItemUndelete.DropDownItems.Count - 1; i >= 0; i--) { ctxMenuItemUndelete.DropDownItems[i].Dispose(); } ctxMenuItemUndelete.DropDownItems.Clear(); } foreach (var drt in delrts) { string rtnm = drt.Name.TrimStart(DEL.ToCharArray()); var menuitem = new ToolStripMenuItem(rtnm) { Name = "UndeleteRouteSubMenuItem_" + rtnm.Replace(" ", string.Empty), Tag = drt }; menuitem.Click += UndeleteRouteSubMenuItem_Click; ctxMenuItemUndelete.DropDownItems.Add(menuitem); } }
private void setRouteToolStripMenuItem_Click(object sender, EventArgs e) { ExtendedControls.ConfigurableForm f = new ExtendedControls.ConfigurableForm(); var routes = SavedRouteClass.GetAllSavedRoutes(); var routenames = (from x in routes select x.Name).ToList(); f.Add(new ExtendedControls.ConfigurableForm.Entry("Route", "", new Point(10, 40), new Size(400, 24), "Select route", routenames, new Size(400, 400))); f.Add(new ExtendedControls.ConfigurableForm.Entry("Cancel", typeof(ExtendedControls.ButtonExt), "Cancel", new Point(410 - 100, 80), new Size(100, 24), "Press to Cancel")); f.Trigger += (dialogname, controlname, tag) => { if (controlname != "Route") { f.DialogResult = DialogResult.Cancel; } else { f.DialogResult = DialogResult.OK; } f.Close(); }; if (f.ShowDialog(this.FindForm(), this.FindForm().Icon, new Size(430, 120), new Point(-999, -999), "Enter route") == DialogResult.OK) { string routename = f.Get("Route"); currentRoute = routes.Find(x => x.Name.Equals(routename)); // not going to be null, but consider the upset. // currentRoute.TestHarness(); // enable for debug if (currentRoute != null) { SQLiteDBClass.PutSettingString(DbSave + "SelectedRoute", currentRoute.Id.ToStringInvariant()); // write ID back } Display(); } }
private void toolStripButtonImportRoute_Click(object sender, EventArgs e) { if (_discoveryForm.RouteControl.RouteSystems == null || _discoveryForm.RouteControl.RouteSystems.Count == 0) { EDDiscovery.Forms.MessageBoxTheme.Show(String.Format("Please create a route on the route tab"), "Import from route tab"); return; } SavedRouteClass newroute = new SavedRouteClass(); UpdateRouteInfo(newroute); if (!newroute.Equals(_currentRoute)) { var result = EDDiscovery.Forms.MessageBoxTheme.Show(_discoveryForm, "There are unsaved changes to the current route.\r\n" + "Are you sure you want to import a route without saving?", "Unsaved route", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation); if (result == DialogResult.No) { return; } } ClearRoute(); toolStripComboBoxRouteSelection.SelectedItem = null; foreach (SystemClass s in _discoveryForm.RouteControl.RouteSystems) { dataGridViewRouteSystems.Rows.Add(s.name, "", ""); } UpdateSystemRows(); }
// in its own thread.. public void DownloadExpeditions(Func <bool> cancelRequested) { LogLine("Checking for new Expedition data"); Task.Factory.StartNew(() => { BaseUtils.GitHubClass github = new BaseUtils.GitHubClass(EDDiscovery.Properties.Resources.URLGithubDataDownload, LogLine); var files = github.ReadDirectory("Expeditions"); if (files != null) // may be empty, unlikely, but { string expeditiondir = Path.Combine(EDDOptions.Instance.AppDataDirectory, "Expeditions"); if (!Directory.Exists(expeditiondir)) { Directory.CreateDirectory(expeditiondir); } if (github.DownloadFiles(files, expeditiondir)) { if (!cancelRequested()) { bool changed = SavedRouteClass.UpdateDBFromExpeditionFiles(expeditiondir); InvokeAsyncOnUiThread(() => { OnExpeditionsDownloaded?.Invoke(changed); }); } } } }); }
private void setRouteToolStripMenuItem_Click(object sender, EventArgs e) { ExtendedControls.ConfigurableForm f = new ExtendedControls.ConfigurableForm(); var routes = SavedRouteClass.GetAllSavedRoutes(); var routenames = (from x in routes select x.Name).ToList(); f.Add(new ExtendedControls.ConfigurableForm.Entry("Route", "", new Point(10, 40), new Size(400, 24), "Select route".T(EDTx.UserControlRouteTracker_Selectroute), routenames)); f.Add(new ExtendedControls.ConfigurableForm.Entry("Cancel", typeof(ExtendedControls.ExtButton), "Cancel".T(EDTx.Cancel), new Point(410 - 100, 80), new Size(100, 24), "Press to Cancel".T(EDTx.UserControlRouteTracker_PresstoCancel))); f.Trigger += (dialogname, controlname, tag) => { if (controlname != "Route") { f.ReturnResult(DialogResult.Cancel); } else { f.ReturnResult(DialogResult.OK); } }; if (f.ShowDialogCentred(this.FindForm(), this.FindForm().Icon, "Enter route".T(EDTx.UserControlRouteTracker_Enterroute)) == DialogResult.OK) { string routename = f.Get("Route"); currentRoute = routes.Find(x => x.Name.Equals(routename)); // not going to be null, but consider the upset. currentRoute.TestHarness(); // enable for debug if (currentRoute != null) { EliteDangerousCore.DB.UserDatabase.Instance.PutSettingString(DbSave + "SelectedRoute", currentRoute.Id.ToStringInvariant()); // write ID back } Display(); } }
private void UpdateRouteInfo(SavedRouteClass route) { route.Name = textBoxRouteName.Text.Trim(); route.Systems.Clear(); route.Systems.AddRange(dataGridViewRouteSystems.Rows.OfType <DataGridViewRow>() .Where(r => r.Index < dataGridViewRouteSystems.NewRowIndex && r.Cells[0].Value != null) .Select(r => r.Cells[0].Value.ToString())); if (dateTimePickerStartDate.Checked) { route.StartDateUTC = EDDConfig.Instance.ConvertTimeToUTCFromSelected(dateTimePickerStartDate.Value.Date); if (dateTimePickerStartTime.Checked) { route.StartDateUTC += dateTimePickerStartTime.Value.TimeOfDay; } } else { route.StartDateUTC = null; } if (dateTimePickerEndDate.Checked) { route.EndDateUTC = EDDConfig.Instance.ConvertTimeToUTCFromSelected(dateTimePickerEndDate.Value.Date); route.EndDateUTC += dateTimePickerEndTime.Checked ? dateTimePickerEndTime.Value.TimeOfDay : new TimeSpan(23, 59, 59); } else { route.EndDateUTC = null; } }
public SavedRouteExpeditionControl() { InitializeComponent(); SystemName.AutoCompleteGenerator = SystemClassDB.ReturnOnlySystemsListForAutoComplete; _currentRoute = new SavedRouteClass(""); _savedRoutes = new List <SavedRouteClass>(); }
private void UpdateRoutes() { savedroute = SavedRouteClass.GetAllSavedRoutes(); // all including deleted savedroute = savedroute.Where(r => !r.Deleted).OrderBy(r => r.Name).ToList(); // don't list deleted UpdateUndeleteMenu(); UpdateComboBox(); }
// If the route has any unsaved changes, prompt the user to save them. // Returns true if the caller is allowed to continue; false if caller should abort. private bool PromptAndSaveIfNeeded() { var rt = new SavedRouteClass(); UpdateRouteInfo(rt); if (rt.Equals(_currentRoute)) // No changes have been made. { return(true); } else { var result = ExtendedControls.MessageBoxTheme.Show(ParentForm, "There are unsaved changes to the current route." + Environment.NewLine + "Would you like to save the current route before proceeding?", "Unsaved route", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation); switch (result) { case DialogResult.Yes: return(SaveCurrentRoute()); case DialogResult.No: return(true); case DialogResult.Cancel: default: return(false); } } }
private void toolStripButtonExport_Click(object sender, EventArgs e) { string filename = ""; var rt = new SavedRouteClass(); UpdateRouteInfo(rt); try { if (rt.Systems.Count < 1) { ExtendedControls.MessageBoxTheme.Show(FindForm(), "There is no route to export ", "Export route", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } SaveFileDialog dlg = new SaveFileDialog(); dlg.Filter = "Route export| *.txt"; dlg.Title = "Export route"; if (currentroute != null && !String.IsNullOrWhiteSpace(currentroute.Name)) { dlg.FileName = currentroute.Name + ".txt"; } else { dlg.FileName = "route.txt"; } string fileName = dlg.FileName; foreach (char c in System.IO.Path.GetInvalidFileNameChars()) { fileName = fileName.Replace(c, '_'); } dlg.FileName = fileName; if (dlg.ShowDialog(FindForm()) != DialogResult.OK) { return; } filename = dlg.FileName; using (StreamWriter writer = new StreamWriter(filename, false)) { foreach (var sysname in rt.Systems) { if (!string.IsNullOrWhiteSpace(sysname)) { writer.WriteLine(sysname); } } } ExtendedControls.MessageBoxTheme.Show(FindForm(), $"Export completed to {filename}", "Export route"); } catch (IOException) { ExtendedControls.MessageBoxTheme.Show(FindForm(), $"Problem exporting route. Is file {filename} already open?", "Export route", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } }
private void buttonReverseRoute_Click(object sender, EventArgs e) { var route = new SavedRouteClass(); UpdateRouteInfo(route); dataGridViewRouteSystems.Rows.Clear(); InsertRows(0, route.Systems.Reverse <string>().ToArray()); }
private bool SaveCurrentRoute() { string newrtname = textBoxRouteName.Text?.Trim(); string oldrtname = currentroute.Name; var newrt = new SavedRouteClass(); var oldrt = currentroute; bool ret = false; UpdateRouteInfo(newrt); SavedRouteClass foundedsm = savedroute.Find(x => x.Name.Equals(newrtname, StringComparison.InvariantCultureIgnoreCase) && x.EDSM); if (string.IsNullOrEmpty(newrtname)) { ExtendedControls.MessageBoxTheme.Show(FindForm(), "Please specify a name for the route.".T(EDTx.UserControlExpedition_Specify), "Warning".T(EDTx.Warning), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); textBoxRouteName.Select(); } else if (foundedsm != null) { ExtendedControls.MessageBoxTheme.Show(FindForm(), ("The current route name conflicts with a well-known expedition." + Environment.NewLine + "Please specify a new name to save your changes.").T(EDTx.UserControlExpedition_Conflict), "Warning".T(EDTx.Warning), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); textBoxRouteName.Select(); textBoxRouteName.SelectAll(); } else { var overwriteroute = savedroute.Where(r => r.Name.Equals(newrtname) && r.Id != currentroute.Id).FirstOrDefault(); if (overwriteroute != null) { if (MessageBoxTheme.Show(FindForm(), "Warning: route already exists. Would you like to overwrite it?".T(EDTx.UserControlExpedition_Overwrite), "Warning".T(EDTx.Warning), MessageBoxButtons.YesNo) != DialogResult.Yes) { return(false); } overwriteroute.Delete(); savedroute.Remove(overwriteroute); } if (currentroute.Id < 0) { ret = newrt.Add(); } else { newrt.Id = currentroute.Id; ret = newrt.Update(); savedroute.Remove(oldrt); } currentroute = newrt; savedroute.Add(newrt); savedroute = savedroute.Where(r => !r.Deleted).OrderBy(r => r.Name).ToList(); UpdateComboBox(); } return(ret); }
public UserControlExpedition() { InitializeComponent(); var corner = dataGridViewRouteSystems.TopLeftHeaderCell; // work around #1487 SystemName.AutoCompleteGenerator = SystemCache.ReturnSystemAutoCompleteList; currentroute = new SavedRouteClass(""); savedroute = new List <SavedRouteClass>(); }
public static Boolean ShowDialog(Form p, List <SavedRouteClass> savedRoutes, String defaultValue, string caption, out SavedRouteClass selectedRoute) { Form prompt = new Form() { Width = 440, Height = 160, FormBorderStyle = FormBorderStyle.FixedDialog, Text = caption, StartPosition = FormStartPosition.CenterScreen, }; Label textLabel = new Label() { Left = 10, Top = 20, Width = 400, Text = "Route" }; Button confirmation = new Button() { Text = "Ok", Left = 245, Width = 80, Top = 90, DialogResult = DialogResult.OK }; Button cancel = new Button() { Text = "Cancel", Left = 330, Width = 80, Top = 90, DialogResult = DialogResult.Cancel }; confirmation.Click += (sender, e) => { prompt.Close(); }; cancel.Click += (sender, e) => { prompt.Close(); }; ComboBox cb = new ComboBox() { Left = 10, Top = 50, Width = 400 }; foreach (SavedRouteClass src in savedRoutes) { cb.Items.Add(src.Name); if (src.Name.Equals(defaultValue)) { cb.SelectedItem = defaultValue; } } prompt.Controls.Add(cb); prompt.Controls.Add(confirmation); prompt.Controls.Add(cancel); prompt.Controls.Add(textLabel); prompt.AcceptButton = confirmation; var res = prompt.ShowDialog(p); selectedRoute = (cb.SelectedIndex != -1) ? savedRoutes[cb.SelectedIndex] : null; return(res == DialogResult.OK && selectedRoute != null); }
private bool SaveCurrentRoute() { bool ret = false; string newrtname = textBoxRouteName.Text?.Trim(); string oldrtname = _currentRoute.Name; var newrt = new SavedRouteClass(); var oldrt = _currentRoute; UpdateRouteInfo(newrt); if (string.IsNullOrEmpty(newrtname)) { ExtendedControls.MessageBoxTheme.Show(ParentForm, "Please specify a name for the route.", "Unsaved Route", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); textBoxRouteName.Select(); } else if (EDSMClass.Expeditions.Any(r => r.Name.Equals(newrtname))) { ExtendedControls.MessageBoxTheme.Show(ParentForm, "The current route name conflicts with a well-known expedition." + Environment.NewLine + "Please specify a new name to save your changes.", "Unsaved Route", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); textBoxRouteName.Select(); textBoxRouteName.SelectAll(); } else { var overwriteroute = _savedRoutes.Where(r => r.Name.Equals(newrtname) && r.Id != _currentRoute.Id).FirstOrDefault(); if (overwriteroute != null) { if (MessageBoxTheme.Show(ParentForm, "Warning: route already exists. Would you like to overwrite it?", "Route Exists", MessageBoxButtons.YesNo) != DialogResult.Yes) { return(false); } overwriteroute.Delete(); _savedRoutes.Remove(overwriteroute); } if (_currentRoute.Id < 0) { ret = newrt.Add(); } else { newrt.Id = _currentRoute.Id; ret = newrt.Update(); _savedRoutes.Remove(oldrt); } _currentRoute = newrt; _savedRoutes.Add(newrt); _savedRoutes = _savedRoutes.Where(r => !r.Name.StartsWith("\x7F")).OrderBy(r => r.Name).ToList(); UpdateComboBox(); } return(ret); }
private void ClearRoute() { toolStripComboBoxRouteSelection.Text = ""; currentroute = new SavedRouteClass { Name = "" }; dataGridViewRouteSystems.Rows.Clear(); dateTimePickerEndDate.Value = dateTimePickerEndTime.Value = dateTimePickerStartTime.Value = dateTimePickerStartDate.Value = EDDConfig.Instance.ConvertTimeToSelectedFromUTC(DateTime.UtcNow); dateTimePickerEndTime.Checked = dateTimePickerEndDate.Checked = dateTimePickerStartTime.Checked = dateTimePickerStartDate.Checked = false; textBoxRouteName.Text = ""; txtCmlDistance.Text = ""; txtP2PDIstance.Text = ""; }
private void UndeleteRouteSubMenuItem_Click(object sender, EventArgs e) { var tmi = sender as ToolStripMenuItem; var rte = tmi.Tag as SavedRouteClass; rte.Name = tmi.Text; // .Text already had the DEL prefix removed, so let's use that. rte.Update(); _savedRoutes = SavedRouteClass.GetAllSavedRoutes().Where(r => !r.Name.StartsWith("\x7F")).OrderBy(r => r.Name).ToList(); UpdateComboBox(); tmi.Dispose(); // Gets removed automatically. }
private void setRouteToolStripMenuItem_Click(object sender, EventArgs e) { SavedRouteClass selectedRoute; if (Prompt.ShowDialog(discoveryform, SavedRouteClass.GetAllSavedRoutes().Where(r => !r.Name.StartsWith("\x7F")).OrderBy(r => r.Name).ToList(), _currentRoute?.Name ?? string.Empty, "Select route", out selectedRoute)) { if (selectedRoute == null) { return; } _currentRoute = selectedRoute; SQLiteDBClass.PutSettingString(DbSave + "SelectedRoute", selectedRoute.Id.ToString()); updateScreen(); } }
private void setRouteToolStripMenuItem_Click(object sender, EventArgs e) { SavedRouteClass selectedRoute; if (Prompt.ShowDialog(discoveryform, SavedRouteClass.GetAllSavedRoutes(), _currentRoute != null? _currentRoute.Name:"", "Select route", out selectedRoute)) { if (selectedRoute == null) { return; } _currentRoute = selectedRoute; SQLiteDBClass.PutSettingString(DbSave + "SelectedRoute", selectedRoute.Id.ToString()); updateScreen(); } }
public override void LoadLayout() { savedroute = SavedRouteClass.GetAllSavedRoutes(); foreach (var initroute in EDSMClass.Expeditions) { if (!savedroute.Any(r => r.Name == initroute.Name || r.Name == "\x7F" + initroute.Name)) { initroute.Add(); savedroute.Add(initroute); } } savedroute = savedroute.Where(r => !r.Name.StartsWith("\x7F")).OrderBy(r => r.Name).ToList(); UpdateComboBox(); }
public override void Init() { displayfont = discoveryform.theme.GetFont; autoCopyWPToolStripMenuItem.Checked = SQLiteDBClass.GetSettingBool(DbSave + "autoCopyWP", false); autoSetTargetToolStripMenuItem.Checked = SQLiteDBClass.GetSettingBool(DbSave + "autoSetTarget", false); String selRoute = SQLiteDBClass.GetSettingString(DbSave + "SelectedRoute", "-1"); long id = long.Parse(selRoute); _currentRoute = SavedRouteClass.GetAllSavedRoutes().Find(r => r.Id.Equals(id)); updateScreen(); discoveryform.OnHistoryChange += Display; discoveryform.OnNewEntry += NewEntry; discoveryform.OnNewTarget += NewTarget; }
private void ClearRoute() { toolStripComboBoxRouteSelection.Text = ""; _currentRoute = new SavedRouteClass { Name = "" }; dataGridViewRouteSystems.Rows.Clear(); dateTimePickerStartDate.Value = DateTime.Now; dateTimePickerStartDate.Checked = false; dateTimePickerEndDate.Value = DateTime.Now; dateTimePickerEndDate.Checked = false; dateTimePickerStartTime.Value = DateTime.Now; dateTimePickerStartTime.Checked = false; dateTimePickerEndTime.Value = DateTime.Now; dateTimePickerEndTime.Checked = false; textBoxRouteName.Text = ""; }
public void LoadControl() { _savedRoutes = SavedRouteClass.GetAllSavedRoutes(); foreach (var initroute in InitialRoutes) { if (!_savedRoutes.Any(r => r.Name == initroute.Name || r.Name == "\x7F" + initroute.Name)) { initroute.Add(); _savedRoutes.Add(initroute); } } _savedRoutes = _savedRoutes.Where(r => !r.Name.StartsWith("\x7F")).ToList(); UpdateComboBox(); }
public override void Init() { displayfont = discoveryform.theme.GetFont; autoCopyWPToolStripMenuItem.Checked = SQLiteDBClass.GetSettingBool(DbSave + "autoCopyWP", false); autoSetTargetToolStripMenuItem.Checked = SQLiteDBClass.GetSettingBool(DbSave + "autoSetTarget", false); string ids = SQLiteDBClass.GetSettingString(DbSave + "SelectedRoute", "-1"); // for some reason, it was saved as a string.. so keep for backwards compat int? id = ids.InvariantParseIntNull(); if (id != null) { currentRoute = SavedRouteClass.GetAllSavedRoutes().Find(r => r.Id.Equals(id.Value)); // may be null } Display(); discoveryform.OnHistoryChange += Display; discoveryform.OnNewEntry += NewEntry; }