private bool saveGeneral(ref _ChangesAction result, ref bool changeDockSize) { try { var applyAutoHeight = false; if (PNStatic.Settings.GeneralSettings.Language != _TempSettings.GeneralSettings.Language) { PNStatic.FormMain.ApplyNewLanguage(_TempSettings.GeneralSettings.Language); } if (PNStatic.Settings.GeneralSettings.UseSkins != _TempSettings.GeneralSettings.UseSkins) { //apply or remove skins PNStatic.Settings.GeneralSettings.UseSkins = _TempSettings.GeneralSettings.UseSkins; result |= _ChangesAction.SkinsReload; } // hide toolbar if (PNStatic.Settings.GeneralSettings.HideToolbar != _TempSettings.GeneralSettings.HideToolbar && _TempSettings.GeneralSettings.HideToolbar) { PNNotesOperations.ApplyHideToolbar(); } // hide or show delete button if (PNStatic.Settings.GeneralSettings.HideDeleteButton != _TempSettings.GeneralSettings.HideDeleteButton) { PNNotesOperations.ApplyDeleteButtonVisibility(!_TempSettings.GeneralSettings.HideDeleteButton); } // change hide to delete if (PNStatic.Settings.GeneralSettings.ChangeHideToDelete != _TempSettings.GeneralSettings.ChangeHideToDelete) { PNNotesOperations.ApplyUseAlternative(_TempSettings.GeneralSettings.ChangeHideToDelete); } // hide or show hide button if (PNStatic.Settings.GeneralSettings.HideHideButton != _TempSettings.GeneralSettings.HideHideButton) { PNNotesOperations.ApplyHideButtonVisibility(!_TempSettings.GeneralSettings.HideHideButton); } // scroll bars if (PNStatic.Settings.GeneralSettings.ShowScrollbar != _TempSettings.GeneralSettings.ShowScrollbar) { if (_TempSettings.GeneralSettings.ShowScrollbar == System.Windows.Forms.RichTextBoxScrollBars.None) PNNotesOperations.ApplyShowScrollBars(_TempSettings.GeneralSettings.ShowScrollbar); else { if (!_TempSettings.GeneralSettings.AutoHeight) PNNotesOperations.ApplyShowScrollBars(_TempSettings.GeneralSettings.ShowScrollbar); } } // auto height if (PNStatic.Settings.GeneralSettings.AutoHeight != _TempSettings.GeneralSettings.AutoHeight) { // auto height after if (_TempSettings.GeneralSettings.AutoHeight) { // scroll bars after (and may be before) if (_TempSettings.GeneralSettings.ShowScrollbar != System.Windows.Forms.RichTextBoxScrollBars.None) { // remove scroll bars PNNotesOperations.ApplyShowScrollBars(System.Windows.Forms.RichTextBoxScrollBars.None); } // apply auto height applyAutoHeight = true; } else { // scroll bars after (and may be before) if (_TempSettings.GeneralSettings.ShowScrollbar != System.Windows.Forms.RichTextBoxScrollBars.None) { // restore scroll bars PNNotesOperations.ApplyShowScrollBars(_TempSettings.GeneralSettings.ShowScrollbar); } } } // buttons size if (PNStatic.Settings.GeneralSettings.ButtonsSize != _TempSettings.GeneralSettings.ButtonsSize) { PNNotesOperations.ApplyButtonsSize(_TempSettings.GeneralSettings.ButtonsSize); } // custom fonts if (PNStatic.Settings.GeneralSettings.UseCustomFonts != _TempSettings.GeneralSettings.UseCustomFonts) { if (_TempSettings.GeneralSettings.UseCustomFonts) { PNInterop.AddCustomFonts(); } else { PNInterop.RemoveCustomFonts(); } } // margins if (PNStatic.Settings.GeneralSettings.MarginWidth != _TempSettings.GeneralSettings.MarginWidth) { if (!PNStatic.Settings.GeneralSettings.UseSkins) { PNNotesOperations.ApplyMarginsWidth(_TempSettings.GeneralSettings.MarginWidth); } } // docked notes width and/or height if (PNStatic.Settings.GeneralSettings.DockWidth != _TempSettings.GeneralSettings.DockWidth || PNStatic.Settings.GeneralSettings.DockHeight != _TempSettings.GeneralSettings.DockHeight) { changeDockSize = true; } // spell check color if (PNStatic.Settings.GeneralSettings.SpellColor != _TempSettings.GeneralSettings.SpellColor) { if (Spellchecking.Initialized) { Spellchecking.ColorUnderlining = _TempSettings.GeneralSettings.SpellColor; PNNotesOperations.ApplySpellColor(); } } // autosave if (PNStatic.Settings.GeneralSettings.Autosave != _TempSettings.GeneralSettings.Autosave) { if (_TempSettings.GeneralSettings.Autosave) { PNStatic.FormMain.TimerAutosave.Interval = _TempSettings.GeneralSettings.AutosavePeriod * 60000; PNStatic.FormMain.TimerAutosave.Start(); } else { PNStatic.FormMain.TimerAutosave.Stop(); } } else { if (PNStatic.Settings.GeneralSettings.AutosavePeriod != _TempSettings.GeneralSettings.AutosavePeriod) { if (PNStatic.Settings.GeneralSettings.Autosave) { PNStatic.FormMain.TimerAutosave.Stop(); PNStatic.FormMain.TimerAutosave.Interval = _TempSettings.GeneralSettings.AutosavePeriod * 60000; PNStatic.FormMain.TimerAutosave.Start(); } } } // clean bin if (PNStatic.Settings.GeneralSettings.RemoveFromBinPeriod != _TempSettings.GeneralSettings.RemoveFromBinPeriod) { if (_TempSettings.GeneralSettings.RemoveFromBinPeriod == 0) { // stop timer PNStatic.FormMain.TimerCleanBin.Stop(); } else if (PNStatic.Settings.GeneralSettings.RemoveFromBinPeriod == 0) { // start timer PNStatic.FormMain.TimerCleanBin.Start(); } } //create or delete shortcut string shortcutFile = Environment.GetFolderPath(Environment.SpecialFolder.Startup) + PNStrings.SHORTCUT_FILE; if (PNStatic.Settings.GeneralSettings.RunOnStart != _TempSettings.GeneralSettings.RunOnStart) { if (_TempSettings.GeneralSettings.RunOnStart) { //create shortcut if (!File.Exists(shortcutFile)) { using (var link = new PNShellLink()) { link.ShortcutFile = shortcutFile; link.Target = System.Windows.Forms.Application.ExecutablePath; link.WorkingDirectory = System.Windows.Forms.Application.StartupPath; link.IconPath = System.Windows.Forms.Application.ExecutablePath; link.IconIndex = 0; link.Save(); } } } else { //delete shortcut if (File.Exists(shortcutFile)) { File.Delete(shortcutFile); } } } PNStatic.Settings.GeneralSettings = (PNGeneralSettings)_TempSettings.GeneralSettings.Clone(); if (applyAutoHeight) { PNNotesOperations.ApplyAutoHeight(); } PNData.SaveGeneralSettings(); return true; } catch (Exception ex) { PNStatic.LogException(ex); return false; } }
private bool saveBehavior(ref _ChangesAction result) { try { if (PNStatic.Settings.Behavior.HideMainWindow != _TempSettings.Behavior.HideMainWindow) { result |= _ChangesAction.Restart; } if (Math.Abs(PNStatic.Settings.Behavior.Opacity - _TempSettings.Behavior.Opacity) > double.Epsilon) { PNNotesOperations.ApplyTransparency(_TempSettings.Behavior.Opacity); } if (PNStatic.Settings.Behavior.BigIconsOnCP != _TempSettings.Behavior.BigIconsOnCP) { if (PNStatic.FormCP != null) { PNStatic.FormCP.SetToolbarIcons(_TempSettings.Behavior.BigIconsOnCP); } } if (PNStatic.Settings.Behavior.HideCompleted != _TempSettings.Behavior.HideCompleted) { if (_TempSettings.Behavior.HideCompleted) { //hide all notes marked as complete var notes = PNStatic.Notes.Where(n => n.Visible && n.Completed); foreach (PNote n in notes) { n.Dialog.ApplyHideNote(n); } } } var dblActionChanged = PNStatic.Settings.Behavior.DoubleClickAction != _TempSettings.Behavior.DoubleClickAction; if (PNStatic.Settings.Behavior.KeepVisibleOnShowDesktop != _TempSettings.Behavior.KeepVisibleOnShowDesktop) { PNNotesOperations.ApplyKeepVisibleOnShowDesktop(_TempSettings.Behavior.KeepVisibleOnShowDesktop); } if (PNStatic.Settings.Behavior.Theme != _TempSettings.Behavior.Theme) { //PNStatic.ApplyTheme(_TempSettings.Behavior.Theme); result |= _ChangesAction.Restart; } var panelFlag = 0; if (PNStatic.Settings.Behavior.ShowNotesPanel != _TempSettings.Behavior.ShowNotesPanel) { PNNotesOperations.ApplyPanelButtonVisibility(_TempSettings.Behavior.ShowNotesPanel); if (PNStatic.Settings.Behavior.ShowNotesPanel && !_TempSettings.Behavior.ShowNotesPanel) { //panel before and no panel after PNStatic.FormPanel.RemoveAllThumbnails(); PNStatic.FormPanel.Hide(); } else if (!PNStatic.Settings.Behavior.ShowNotesPanel && _TempSettings.Behavior.ShowNotesPanel) { //no panel before and panel after panelFlag |= 1; } } if (PNStatic.Settings.Behavior.NotesPanelOrientation != _TempSettings.Behavior.NotesPanelOrientation) { panelFlag |= 2; } if (PNStatic.Settings.Behavior.PanelAutoHide != _TempSettings.Behavior.PanelAutoHide) { panelFlag |= 4; } //unroll all rolled notes if RollOnDoubleClick discarded if (PNStatic.Settings.Behavior.RollOnDblClick != _TempSettings.Behavior.RollOnDblClick && !_TempSettings.Behavior.RollOnDblClick) { var notes = PNStatic.Notes.Where(n => n.Rolled); foreach (var note in notes) { if (note.Visible) note.Dialog.ApplyRollUnroll(note); else PNNotesOperations.ApplyBooleanChange(note, NoteBooleanTypes.Roll, false, null); } } PNStatic.Settings.Behavior = _TempSettings.Behavior.PNClone(); if ((panelFlag & 1) == 1) { PNStatic.FormPanel.Show(); } if ((panelFlag & 1) == 1 || (panelFlag & 2) == 2 || (panelFlag & 4) == 4) { PNStatic.FormPanel.SetPanelPlacement(); } if ((panelFlag & 2) == 2) { PNStatic.FormPanel.UpdateOrientationImageBinding(); } if ((panelFlag & 4) == 4) { PNStatic.FormPanel.UpdateAutoHideImageBinding(); } if (dblActionChanged) { PNStatic.FormMain.ApplyNewDefaultMenu(); } PNData.SaveBehaviorSettings(); return true; } catch (Exception ex) { PNStatic.LogException(ex); return false; } }