summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2016-07-26 10:49:32 +0200
committerFlorian Bruhin <git@the-compiler.org>2016-07-26 10:50:50 +0200
commit36b005423820e561c2a2c7d89d23a26e0b09f2c3 (patch)
treee02e1b7a1ff13156ced690b53926546edd743986
parente4d896401dd2206367ffcbb66178b02d05d76acd (diff)
downloadqutebrowser-36b005423820e561c2a2c7d89d23a26e0b09f2c3.tar.gz
qutebrowser-36b005423820e561c2a2c7d89d23a26e0b09f2c3.zip
Add keyconf.get_reverse_bindings_for
-rw-r--r--qutebrowser/completion/models/miscmodels.py12
-rw-r--r--qutebrowser/config/parsers/keyconf.py11
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