← Back to team overview

openlp-core team mailing list archive

[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