/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel Project *
+ * Copyright (C) 2005-09 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* Parts of this implementation are based on KDE's KActionCollection. *
***************************************************************************/
+#ifndef HAVE_KDE
+
#include <QAction>
#include <QDebug>
#include "actioncollection.h"
#include "action.h"
+#include "uisettings.h"
ActionCollection::ActionCollection(QObject *parent) : QObject(parent) {
_connectTriggered = _connectHovered = false;
Action *ActionCollection::addAction(const QString &name, Action *action) {
QAction *act = addAction(name, static_cast<QAction *>(action));
+ Q_UNUSED(act);
Q_ASSERT(act == action);
return action;
}
else
action->setObjectName(indexName);
if(indexName.isEmpty())
- indexName = QString("unnamed-%1").arg((int)action, 16);
+ indexName = indexName.sprintf("unnamed-%p", (void *)action);
// do we already have this action?
if(_actionByName.value(indexName, 0) == 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<Action *>(_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<Action *>(_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() {
return true;
}
+
+#endif /* HAVE_KDE */