From: Manuel Nickschas Date: Thu, 25 Dec 2008 20:30:18 +0000 (+0100) Subject: Support KAction and KActionCollection X-Git-Tag: 0.4.0~321 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=084d95e60b0fb587b1950a3e4f8ec5e4f017446c Support KAction and KActionCollection --- diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index dcb658f3..67db86f7 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -211,7 +211,7 @@ void MainWin::setupActions() { // View coll->addAction("ManageBufferViews", new Action(SmallIcon("view-tree"), tr("&Manage Buffer Views..."), coll, this, SLOT(on_actionManageViews_triggered()))); - Action *lockAct = coll->addAction("LockDockPositions", new Action(tr("&Lock Dock Positions"), coll)); + QAction *lockAct = coll->addAction("LockDockPositions", new Action(tr("&Lock Dock Positions"), coll)); lockAct->setCheckable(true); connect(lockAct, SIGNAL(toggled(bool)), SLOT(on_actionLockDockPositions_toggled(bool))); diff --git a/src/uisupport/action.cpp b/src/uisupport/action.cpp index f160ac4c..29f4a43e 100644 --- a/src/uisupport/action.cpp +++ b/src/uisupport/action.cpp @@ -20,16 +20,27 @@ * Parts of this implementation are taken from KDE's kaction.cpp * ***************************************************************************/ -#include - #include "action.h" -Action::Action(QObject *parent) : QWidgetAction(parent) { +#include + +Action::Action(QObject *parent) +#ifdef HAVE_KDE +: KAction(parent) +#else +: QWidgetAction(parent) +#endif +{ init(); } Action::Action(const QString &text, QObject *parent, const QObject *receiver, const char *slot, const QKeySequence &shortcut) -: QWidgetAction(parent) { +#ifdef HAVE_KDE +: KAction(parent) +#else +: QWidgetAction(parent) +#endif +{ init(); setText(text); setShortcut(shortcut); @@ -38,7 +49,12 @@ Action::Action(const QString &text, QObject *parent, const QObject *receiver, co } Action::Action(const QIcon &icon, const QString &text, QObject *parent, const QObject *receiver, const char *slot, const QKeySequence &shortcut) -: QWidgetAction(parent) { +#ifdef HAVE_KDE +: KAction(parent) +#else +: QWidgetAction(parent) +#endif +{ init(); setIcon(icon); setText(text); @@ -47,6 +63,9 @@ Action::Action(const QIcon &icon, const QString &text, QObject *parent, const QO connect(this, SIGNAL(triggered()), receiver, slot); } +#ifdef HAVE_KDE +void Action::init() { } +#else void Action::init() { connect(this, SIGNAL(triggered(bool)), this, SLOT(slotTriggered())); @@ -87,3 +106,5 @@ void Action::setShortcut(const QKeySequence &key, ShortcutTypes type) { if(type & ActiveShortcut) QAction::setShortcut(key); } + +#endif /* HAVE_KDE */ diff --git a/src/uisupport/action.h b/src/uisupport/action.h index 325beda9..3e90ca66 100644 --- a/src/uisupport/action.h +++ b/src/uisupport/action.h @@ -23,6 +23,8 @@ #ifndef ACTION_H_ #define ACTION_H_ +#ifndef HAVE_KDE + #include #include @@ -67,4 +69,20 @@ class Action : public QWidgetAction { Q_DECLARE_OPERATORS_FOR_FLAGS(Action::ShortcutTypes) +#else /* HAVE_KDE */ +#include + +class Action : public KAction { + Q_OBJECT + + public: + explicit Action(QObject *parent); + Action(const QString &text, QObject *parent, const QObject *receiver = 0, const char *slot = 0, const QKeySequence &shortcut = 0); + Action(const QIcon &icon, const QString &text, QObject *parent, const QObject *receiver = 0, const char *slot = 0, const QKeySequence &shortcut = 0); + + private: + void init(); +}; +#endif + #endif diff --git a/src/uisupport/actioncollection.cpp b/src/uisupport/actioncollection.cpp index 9175eccb..5323b93c 100644 --- a/src/uisupport/actioncollection.cpp +++ b/src/uisupport/actioncollection.cpp @@ -20,6 +20,8 @@ * Parts of this implementation are based on KDE's KActionCollection. * ***************************************************************************/ +#ifndef HAVE_KDE + #include #include @@ -226,3 +228,5 @@ bool ActionCollection::unlistAction(QAction *action) { return true; } + +#endif /* HAVE_KDE */ diff --git a/src/uisupport/actioncollection.h b/src/uisupport/actioncollection.h index c03daef8..8b2bec86 100644 --- a/src/uisupport/actioncollection.h +++ b/src/uisupport/actioncollection.h @@ -23,6 +23,8 @@ #ifndef ACTIONCOLLECTION_H_ #define ACTIONCOLLECTION_H_ +#ifndef HAVE_KDE + #include #include #include @@ -113,5 +115,17 @@ class ActionCollection : public QObject { int ActionCollection::count() const { return actions().count(); } bool ActionCollection::isEmpty() const { return actions().count(); } +#else /* HAVE_KDE */ + +#include + +class ActionCollection : public KActionCollection { + Q_OBJECT + + public: + explicit ActionCollection(QObject *parent) : KActionCollection(parent) {}; + +}; +#endif #endif