Example #1
0
        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();
        }
Example #2
0
        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();
        }
Example #3
0
        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);
        }