X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Factioncollection.cpp;h=c553554bcffd769c26c4bb7de78aa648fe58a001;hp=b752cfb748960630f59ca804e628511600d9132e;hb=7f3d50af3f94bd5fc423c83ac21c460da2edf88b;hpb=7333c6f1dc985fee0841e7a8d035327ec95d79ca diff --git a/src/uisupport/actioncollection.cpp b/src/uisupport/actioncollection.cpp index b752cfb7..c553554b 100644 --- a/src/uisupport/actioncollection.cpp +++ b/src/uisupport/actioncollection.cpp @@ -28,6 +28,7 @@ #include "actioncollection.h" #include "action.h" +#include "uisettings.h" ActionCollection::ActionCollection(QObject *parent) : QObject(parent) { _connectTriggered = _connectHovered = false; @@ -128,12 +129,30 @@ QAction *ActionCollection::takeAction(QAction *action) { } void ActionCollection::readSettings() { - + ShortcutSettings s; + QStringList savedShortcuts = s.savedShortcuts(); + + foreach(const QString &name, _actionByName.keys()) { + if(!savedShortcuts.contains(name)) + continue; + Action *action = qobject_cast(_actionByName.value(name)); + if(action) + action->setShortcut(s.loadShortcut(name), Action::ActiveShortcut); + } } void ActionCollection::writeSettings() const { - - + ShortcutSettings s; + foreach(const QString &name, _actionByName.keys()) { + Action *action = qobject_cast(_actionByName.value(name)); + if(!action) + continue; + if(!action->isShortcutConfigurable()) + continue; + if(action->shortcut(Action::ActiveShortcut) == action->shortcut(Action::DefaultShortcut)) + continue; + s.saveShortcut(name, action->shortcut(Action::ActiveShortcut)); + } } void ActionCollection::slotActionTriggered() {