public CovfefeSettings GetSettings() { try { if (Settings.Default.UpgradeNeeded) { UpgradeSettings(); } var result = new CovfefeSettings(); if (Settings.Default.DefaultSleepMode != null) { result.DefaultSleepMode = (CovfefeSleepMode)Enum.Parse(typeof(CovfefeSleepMode), Settings.Default.DefaultSleepMode); } result.ShowBalloonTips = Settings.Default.ShowBalloonTips; result.ShowReminder = Settings.Default.ShowReminder; result.ReminderTimeoutMinutes = Settings.Default.ReminderTimeoutMinutes; result.DoubleClickToggleEnabled = Settings.Default.DoubleClickToggleEnabled; result.DoubleClickSleepMode = (CovfefeSleepMode)Enum.Parse(typeof(CovfefeSleepMode), Settings.Default.DoubleClickSleepMode); using (var runKey = Registry.CurrentUser.OpenSubKey(RunKeyName, false)) { result.StartAtLogin = runKey.GetValueNames().Contains(_appName); } return(result); } catch { // intent: if the settings ever fail to load, just re-initialize them and return a default object, instead of crashing Settings.Default.Reset(); return(new CovfefeSettings()); } }
public TrayForm(ISleepManagementFacade sleepManagementFacade, ISettingsFacade settingsFacade) { _sleepManagementFacade = sleepManagementFacade; _settingsFacade = settingsFacade; InitializeComponent(); _settings = _settingsFacade.GetSettings(); ConfigureSettingsControls(_settings); SetSleepMode(_settings.DefaultSleepMode); }
private void ConfigureSettingsControls(CovfefeSettings settings) { startOnLoginCheckbox.DataBindings.Add(nameof(startOnLoginCheckbox.Checked), settings, nameof(settings.StartAtLogin)); showBalloonTipsCheckbox.DataBindings.Add(nameof(showBalloonTipsCheckbox.Checked), settings, nameof(settings.ShowBalloonTips)); reminderCheckbox.DataBindings.Add(nameof(reminderCheckbox.Checked), settings, nameof(settings.ShowReminder)); reminderTimeoutTextBox.DataBindings.Add(nameof(reminderTimeoutTextBox.Value), settings, nameof(settings.ReminderTimeoutMinutes)); reminderTimeoutTextBox.DataBindings.Add(nameof(reminderTimeoutTextBox.Enabled), reminderCheckbox, nameof(reminderCheckbox.Checked)); defaultSleepModeComboBox.LoadFromEnum <CovfefeSleepMode>(); defaultSleepModeComboBox.DataBindings.Add(nameof(defaultSleepModeComboBox.SelectedValue), settings, nameof(settings.DefaultSleepMode)); modeToggleCheckBox.DataBindings.Add(nameof(modeToggleCheckBox.Checked), settings, nameof(settings.DoubleClickToggleEnabled)); toggleModeComboBox.LoadFromEnum <CovfefeSleepMode>(mode => mode != CovfefeSleepMode.Normal); toggleModeComboBox.DataBindings.Add(nameof(toggleModeComboBox.SelectedValue), settings, nameof(settings.DoubleClickSleepMode)); toggleModeComboBox.DataBindings.Add(nameof(toggleModeComboBox.Enabled), modeToggleCheckBox, nameof(modeToggleCheckBox.Checked)); reminderTimer.Interval = _settings.ReminderTimeoutMinutes * 60000; // convert minutes to milliseconds }
public void SaveSettings(CovfefeSettings settings) { Settings.Default.DefaultSleepMode = settings.DefaultSleepMode.ToString(); Settings.Default.ShowBalloonTips = settings.ShowBalloonTips; Settings.Default.ShowReminder = settings.ShowReminder; Settings.Default.ReminderTimeoutMinutes = settings.ReminderTimeoutMinutes; Settings.Default.DoubleClickToggleEnabled = settings.DoubleClickToggleEnabled; Settings.Default.DoubleClickSleepMode = settings.DoubleClickSleepMode.ToString(); Settings.Default.Save(); using (var runKey = Registry.CurrentUser.OpenSubKey(RunKeyName, true)) { if (settings.StartAtLogin) { runKey.SetValue(_appName, _exeName); } else { runKey.DeleteValue(_appName, false); } } }