public static void SetKeyboardShortcut([NotNull] string commandName, [NotNull] IEnumerable <Tuple <ModifierKeys, Key> > keys) { var shortcut = Shortcuts.FirstOrDefault(s => s.CommandName == commandName); if (shortcut != null) { Shortcuts.Remove(shortcut); } shortcut = new KeyboardShortcut(commandName, keys); Shortcuts.Add(shortcut); SaveActiveScheme(); }
private void ControlLoaded([NotNull] object sender, [NotNull] RoutedEventArgs e) { Debug.ArgumentNotNull(sender, nameof(sender)); Debug.ArgumentNotNull(e, nameof(e)); Loaded -= ControlLoaded; foreach (var command in Commands.CommandManager.Commands.Where(c => c.SubmenuOpened == null && !(c is Submenu)).OrderBy(c => c.GetType().FullName)) { var commandName = command.GetType().FullName; var keys = Enumerable.Empty <Tuple <ModifierKeys, Key> >(); var shortcut = KeyboardManager.Shortcuts.FirstOrDefault(s => s.CommandName == commandName); if (shortcut != null) { keys = shortcut.Keys; } var tuple = new KeyboardShortcut(commandName, keys); Shortcuts.Add(tuple); } ShortcutListView.ItemsSource = Shortcuts; EnableButtons(); _view = CollectionViewSource.GetDefaultView(Shortcuts) as CollectionView; if (_view == null) { return; } _view.Filter = delegate(object o) { var itemHeader = o as KeyboardShortcut; return(itemHeader != null && itemHeader.CommandName.IsFilterMatch(RenderinSelectorFilter.Text)); }; _view.Refresh(); }
public static IEnumerable <KeyboardShortcut> Load([NotNull] string fileName) { var xml = File.ReadAllText(fileName); var root = xml.ToXElement(); if (root == null) { return(Enumerable.Empty <KeyboardShortcut>()); } var result = new List <KeyboardShortcut>(); foreach (var element in root.Elements()) { var commandName = element.GetAttributeValue("Command"); var keys = element.GetAttributeValue("Keys"); var shortcut = new KeyboardShortcut(commandName, keys); result.Add(shortcut); } return(result); }