diff options
author | Florian Bruhin <git@the-compiler.org> | 2016-07-26 10:49:32 +0200 |
---|---|---|
committer | Florian Bruhin <git@the-compiler.org> | 2016-07-26 10:50:50 +0200 |
commit | 36b005423820e561c2a2c7d89d23a26e0b09f2c3 (patch) | |
tree | e02e1b7a1ff13156ced690b53926546edd743986 | |
parent | e4d896401dd2206367ffcbb66178b02d05d76acd (diff) | |
download | qutebrowser-36b005423820e561c2a2c7d89d23a26e0b09f2c3.tar.gz qutebrowser-36b005423820e561c2a2c7d89d23a26e0b09f2c3.zip |
Add keyconf.get_reverse_bindings_for
-rw-r--r-- | qutebrowser/completion/models/miscmodels.py | 12 | ||||
-rw-r--r-- | qutebrowser/config/parsers/keyconf.py | 11 |
2 files changed, 14 insertions, 9 deletions
diff --git a/qutebrowser/completion/models/miscmodels.py b/qutebrowser/completion/models/miscmodels.py index 601d82471..32a4574c0 100644 --- a/qutebrowser/completion/models/miscmodels.py +++ b/qutebrowser/completion/models/miscmodels.py @@ -19,11 +19,11 @@ """Misc. CompletionModels.""" -from collections import defaultdict from PyQt5.QtCore import Qt, QTimer, pyqtSlot from qutebrowser.browser import browsertab from qutebrowser.config import config, configdata +from qutebrowser.config.parsers import keyconf from qutebrowser.utils import objreg, log, qtutils, utils from qutebrowser.commands import cmdutils from qutebrowser.completion.models import base @@ -53,14 +53,8 @@ class CommandCompletionModel(base.BaseCompletionModel): cat = self.new_category("Commands") # map each command to its bound keys and show these in the misc column - keyconf = objreg.get('key-config') - cmd_to_keys = defaultdict(list) - for key, cmd in keyconf.get_bindings_for('normal').items(): - # put special bindings last - if utils.is_special_key(key): - cmd_to_keys[cmd].append(key) - else: - cmd_to_keys[cmd].insert(0, key) + key_config = objreg.get('key-config') + cmd_to_keys = key_config.get_reverse_bindings_for('normal') for (name, desc) in sorted(cmdlist): self.new_item(cat, name, desc, ', '.join(cmd_to_keys[name])) diff --git a/qutebrowser/config/parsers/keyconf.py b/qutebrowser/config/parsers/keyconf.py index 7c00b9584..b2596fb62 100644 --- a/qutebrowser/config/parsers/keyconf.py +++ b/qutebrowser/config/parsers/keyconf.py @@ -419,3 +419,14 @@ class KeyConfigParser(QObject): bindings = {k: v for k, v in bindings.items() if v != self.UNBOUND_COMMAND} return bindings + + def get_reverse_bindings_for(self, section): + """Get a dict of commands to a list of bindings for the section.""" + cmd_to_keys = collections.defaultdict(list) + for key, cmd in self.get_bindings_for(section).items(): + # put special bindings last + if utils.is_special_key(key): + cmd_to_keys[cmd].append(key) + else: + cmd_to_keys[cmd].insert(0, key) + return cmd_to_keys |