Support KAction and KActionCollection
authorManuel Nickschas <sputnick@quassel-irc.org>
Thu, 25 Dec 2008 20:30:18 +0000 (21:30 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Fri, 26 Dec 2008 00:08:42 +0000 (01:08 +0100)
src/qtui/mainwin.cpp
src/uisupport/action.cpp
src/uisupport/action.h
src/uisupport/actioncollection.cpp
src/uisupport/actioncollection.h

index dcb658f..67db86f 100644 (file)
@@ -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)));
 
index f160ac4..29f4a43 100644 (file)
  * Parts of this implementation are taken from KDE's kaction.cpp           *
  ***************************************************************************/
 
-#include <QApplication>
-
 #include "action.h"
 
-Action::Action(QObject *parent) : QWidgetAction(parent) {
+#include <QApplication>
+
+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 */
index 325beda..3e90ca6 100644 (file)
@@ -23,6 +23,8 @@
 #ifndef ACTION_H_
 #define ACTION_H_
 
+#ifndef HAVE_KDE
+
 #include <QShortcut>
 #include <QWidgetAction>
 
@@ -67,4 +69,20 @@ class Action : public QWidgetAction {
 
 Q_DECLARE_OPERATORS_FOR_FLAGS(Action::ShortcutTypes)
 
+#else /* HAVE_KDE */
+#include <KAction>
+
+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
index 9175ecc..5323b93 100644 (file)
@@ -20,6 +20,8 @@
  * Parts of this implementation are based on KDE's KActionCollection.      *
  ***************************************************************************/
 
+#ifndef HAVE_KDE
+
 #include <QAction>
 #include <QDebug>
 
@@ -226,3 +228,5 @@ bool ActionCollection::unlistAction(QAction *action) {
 
   return true;
 }
+
+#endif /* HAVE_KDE */
index c03daef..8b2bec8 100644 (file)
@@ -23,6 +23,8 @@
 #ifndef ACTIONCOLLECTION_H_
 #define ACTIONCOLLECTION_H_
 
+#ifndef HAVE_KDE
+
 #include <QDebug>
 #include <QList>
 #include <QMap>
@@ -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 <KActionCollection>
+
+class ActionCollection : public KActionCollection {
+  Q_OBJECT
+
+  public:
+    explicit ActionCollection(QObject *parent) : KActionCollection(parent) {};
+
+};
+#endif
 
 #endif