// ReSharper disable InconsistentNaming public static KeyValueFlatCustomList <ShortcutDefinition> MigrateShortcutSettings(Version from, Version to, KeyValueFlatCustomList <ShortcutDefinition> shortcuts) { var v1_6_04 = new Version(1, 6, 4, 0); var v1_6_06 = new Version(1, 6, 6, 0); var v1_6_17 = new Version(1, 6, 17, 0); var v1_6_19 = new Version(1, 6, 19, 0); var v1_6_30 = new Version(1, 6, 30, 0); if (from < v1_6_04) { if (shortcuts.All(sc => sc.Key != "DeleteFolder")) { LoggerSingleton.Inst.Info("AppSettings", "(Migration) Insert shortcut for [DeleteFolder]"); shortcuts = shortcuts.Concat(Tuple.Create("DeleteFolder", new ShortcutDefinition(AlephShortcutScope.FolderList, AlephModifierKeys.None, AlephKey.Delete))); } } if (from < v1_6_04) { if (shortcuts.All(sc => sc.Key != "RenameFolder")) { LoggerSingleton.Inst.Info("AppSettings", "(Migration) Insert shortcut for [RenameFolder]"); shortcuts = shortcuts.Concat(Tuple.Create("RenameFolder", new ShortcutDefinition(AlephShortcutScope.FolderList, AlephModifierKeys.None, AlephKey.F2))); } } if (from < v1_6_06) { if (shortcuts.All(sc => sc.Key != "NewNoteFromTextFile")) { LoggerSingleton.Inst.Info("AppSettings", "(Migration) Insert shortcut for [NewNoteFromTextFile]"); shortcuts = shortcuts.Concat(Tuple.Create("NewNoteFromTextFile", new ShortcutDefinition(AlephShortcutScope.Window, AlephModifierKeys.Control, AlephKey.O))); } } if (from < v1_6_17) { if (shortcuts.All(sc => sc.Key != "DocumentSearchNext")) { LoggerSingleton.Inst.Info("AppSettings", "(Migration) Insert shortcut for [DocumentSearchNext]"); shortcuts = shortcuts.Concat(Tuple.Create("DocumentSearchNext", new ShortcutDefinition(AlephShortcutScope.Window, AlephModifierKeys.None, AlephKey.F3))); } } if (from < v1_6_19) { if (shortcuts.All(sc => sc.Key != "FocusPrevNote")) { LoggerSingleton.Inst.Info("AppSettings", "(Migration) Insert shortcut for [FocusPrevNote]"); shortcuts = shortcuts.Concat(Tuple.Create("FocusPrevNote", new ShortcutDefinition(AlephShortcutScope.NoteEdit, AlephModifierKeys.Alt, AlephKey.Up))); } if (shortcuts.All(sc => sc.Key != "FocusNextNote")) { LoggerSingleton.Inst.Info("AppSettings", "(Migration) Insert shortcut for [FocusNextNote]"); shortcuts = shortcuts.Concat(Tuple.Create("FocusNextNote", new ShortcutDefinition(AlephShortcutScope.NoteEdit, AlephModifierKeys.Alt, AlephKey.Down))); } } if (from < v1_6_30) { if (shortcuts.All(sc => sc.Key != "DuplicateCurrentLine")) { LoggerSingleton.Inst.Info("AppSettings", "(Migration) Insert shortcut for [DuplicateCurrentLine]"); shortcuts = shortcuts.Concat(Tuple.Create("DuplicateCurrentLine", new ShortcutDefinition(AlephShortcutScope.NoteEdit, AlephModifierKeys.Control, AlephKey.D))); } } return(shortcuts); }
public void Migrate(Version from, Version to) { LoggerSingleton.Inst.Info("AppSettings", $"Migrate settings from {from} to {to}"); _shortcuts = ShortcutManager.MigrateShortcutSettings(from, to, _shortcuts); }