28 #include <QKeySequence>
39 registeredActions(), shortcuts(initialShortcuts)
50 if (registeredActions.contains(name))
52 throw std::invalid_argument(
"Action already registered");
55 if (!shortcuts.contains(name))
57 QKeySequence keySequence(
"");
58 shortcuts.insert(name, keySequence);
61 action->setShortcut(shortcuts.value(name));
62 registeredActions.insert(name, action);
68 if (keysequence.toString() !=
"" && shortcuts.key(keysequence) != NULL)
73 if (shortcuts.contains(name))
75 shortcuts[name] = keysequence;
77 if (registeredActions.contains(name))
79 registeredActions.value(name)->setShortcut(keysequence);
84 shortcuts.insert(name, keysequence);
87 if (registeredActions.contains(name))
89 registeredActions.value(name)->setShortcut(keysequence);
93 QHash<QString, QKeySequence>
99 QHash<QString, QKeySequence>
102 QHash<QString, QKeySequence> tempShortcuts;
103 QHash<QString, QKeySequence>::iterator i;
105 for (i = shortcuts.begin(); i != shortcuts.end(); ++i)
107 if (registeredActions.contains(i.key()))
109 tempShortcuts.insert(i.key(), i.value());
113 return tempShortcuts;
116 QHash<QString, QPointer<QAction>>
119 return registeredActions;