openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #13148
[Merge] lp:~googol/openlp/bug-768495 into lp:openlp
Andreas Preikschat has proposed merging lp:~googol/openlp/bug-768495 into lp:openlp.
Requested reviews:
OpenLP Core (openlp-core)
For more details, see:
https://code.launchpad.net/~googol/openlp/bug-768495/+merge/84658
Hello,
I reverted the changes from 1819 as they are buggy and are causing problems... I hope I will find the time to look at this some time.
https://code.launchpad.net/~googol/openlp/bug-768495/+merge/84372
--
https://code.launchpad.net/~googol/openlp/bug-768495/+merge/84658
Your team OpenLP Core is requested to review the proposed merge of lp:~googol/openlp/bug-768495 into lp:openlp.
=== modified file 'openlp/core/utils/actions.py'
--- openlp/core/utils/actions.py 2011-12-03 15:09:03 +0000
+++ openlp/core/utils/actions.py 2011-12-06 19:28:26 +0000
@@ -188,7 +188,6 @@
actions or categories.
"""
instance = None
- shortcut_map = {}
def __init__(self):
self.categories = CategoryList()
@@ -227,41 +226,17 @@
self.categories[category].actions.append(action)
else:
self.categories[category].actions.add(action, weight)
+ if category is None:
+ # Stop here, as this action is not configurable.
+ return
# Load the shortcut from the config.
settings = QtCore.QSettings()
settings.beginGroup(u'shortcuts')
shortcuts = settings.value(action.objectName(),
QtCore.QVariant(action.shortcuts())).toStringList()
- settings.endGroup()
- if not shortcuts:
- action.setShortcuts([])
- return
- shortcuts = map(unicode, shortcuts)
- # Check the alternate shortcut first, to avoid problems when the
- # alternate shortcut becomes the primary shortcut after removing the
- # (initial) primary shortcut due to confllicts.
- if len(shortcuts) == 2:
- existing_actions = ActionList.shortcut_map.get(shortcuts[1], [])
- # Check for conflicts with other actions considering the shortcut
- # context.
- if self._shortcut_available(existing_actions, action):
- actions = ActionList.shortcut_map.get(shortcuts[1], [])
- actions.append(action)
- ActionList.shortcut_map[shortcuts[1]] = actions
- else:
- shortcuts.remove(shortcuts[1])
- # Check the primary shortcut.
- existing_actions = ActionList.shortcut_map.get(shortcuts[0], [])
- # Check for conflicts with other actions considering the shortcut
- # context.
- if self._shortcut_available(existing_actions, action):
- actions = ActionList.shortcut_map.get(shortcuts[0], [])
- actions.append(action)
- ActionList.shortcut_map[shortcuts[0]] = actions
- else:
- shortcuts.remove(shortcuts[0])
action.setShortcuts(
[QtGui.QKeySequence(shortcut) for shortcut in shortcuts])
+ settings.endGroup()
def remove_action(self, action, category=None):
"""
@@ -269,7 +244,7 @@
automatically removed.
``action``
- The ``QAction`` object to be removed.
+ The QAction object to be removed.
``category``
The name (unicode string) of the category, which contains the
@@ -304,30 +279,6 @@
return
self.categories.add(name, weight)
- def _shortcut_available(self, existing_actions, action):
- """
- Checks if the given ``action`` may use its assigned shortcut(s) or not.
- Returns ``True`` or ``False.
-
- ``existing_actions``
- A list of actions which already use a particular shortcut.
-
- ``action``
- The action which wants to use a particular shortcut.
- """
- for existing_action in existing_actions:
- if action is existing_action:
- continue
- if existing_action.parent() is action.parent():
- return False
- if existing_action.shortcutContext() in [QtCore.Qt.WindowShortcut,
- QtCore.Qt.ApplicationShortcut]:
- return False
- if action.shortcutContext() in [QtCore.Qt.WindowShortcut,
- QtCore.Qt.ApplicationShortcut]:
- return False
- return True
-
class CategoryOrder(object):
"""
Follow ups