Exemple #1
0
        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());
            }
        }
Exemple #2
0
        public TrayForm(ISleepManagementFacade sleepManagementFacade, ISettingsFacade settingsFacade)
        {
            _sleepManagementFacade = sleepManagementFacade;
            _settingsFacade        = settingsFacade;
            InitializeComponent();

            _settings = _settingsFacade.GetSettings();
            ConfigureSettingsControls(_settings);
            SetSleepMode(_settings.DefaultSleepMode);
        }
Exemple #3
0
        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
        }
Exemple #4
0
        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);
                }
            }
        }