From 1118aff0222cfc26240d83bfe753ed4302c9835a Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 14 Aug 2011 10:54:31 -0600 Subject: [PATCH] Keyboard shortcuts: Fix a bug triggered by some third party plugins that made the keyboard preferences unusable. Fixes #826325 (keyboard preference "ERROR: Unhandled exception") --- src/calibre/gui2/keyboard.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/keyboard.py b/src/calibre/gui2/keyboard.py index 7779942240..939d688005 100644 --- a/src/calibre/gui2/keyboard.py +++ b/src/calibre/gui2/keyboard.py @@ -53,6 +53,7 @@ def finalize(shortcuts, custom_keys_map={}): # {{{ if DEBUG: prints('Key %r for shortcut %s is already used by' ' %s, ignoring'%(x, shortcut['name'], seen[x]['name'])) + keys_map[unique_name] = () continue seen[x] = shortcut keys.append(ks) @@ -149,7 +150,7 @@ class ConfigModel(QAbstractItemModel, SearchQueryParser): shortcut_map = {k:v.copy() for k, v in self.keyboard.shortcuts.iteritems()} for un, s in shortcut_map.iteritems(): - s['keys'] = tuple(self.keyboard.keys_map[un]) + s['keys'] = tuple(self.keyboard.keys_map.get(un, ())) s['unique_name'] = un s['group'] = [g for g, names in self.keyboard.groups.iteritems() if un in names][0]