OSDN Git Service

introduce Katie support
authorIvailo Monev <xakepa10@laimg.moc>
Sun, 26 Jan 2020 14:13:45 +0000 (14:13 +0000)
committerIvailo Monev <xakepa10@laimg.moc>
Sun, 26 Jan 2020 14:13:45 +0000 (14:13 +0000)
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
23 files changed:
CMakeLists.txt
src/CMakeLists.txt
src/com.canonical.dbusmenu.xml
src/dbusmenu_export.h
src/dbusmenu_p.cpp
src/dbusmenu_p.h
src/dbusmenuexporter.cpp
src/dbusmenuexporter.h
src/dbusmenuexporterdbus_p.cpp
src/dbusmenuexporterdbus_p.h
src/dbusmenuexporterprivate_p.h
src/dbusmenuimporter.cpp
src/dbusmenuimporter.h
src/dbusmenushortcut_p.h
src/dbusmenutypes_p.h
src/utils_p.h
tests/CMakeLists.txt
tests/dbusmenuexportertest.cpp
tests/dbusmenuimportertest.cpp
tests/dbusmenushortcuttest.cpp
tests/slowmenu.cpp
tests/testutils.cpp
tools/testapp/CMakeLists.txt

index 72cbc45..712ab63 100644 (file)
@@ -1,6 +1,9 @@
 project(dbusmenu-qt)
-cmake_minimum_required(VERSION 2.8.11)
+cmake_minimum_required(VERSION 3.0.2)
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules")
+set(CMAKE_AUTOMOC TRUE)
+set(CMAKE_AUTOUIC TRUE)
+set(CMAKE_AUTORCC TRUE)
 
 # Build options
 option(WITH_DOC "Build documentation (requires Doxygen)" ON)
@@ -25,17 +28,33 @@ set(dbusmenu_qt_lib_PATCH_VERSION 0)
 set(dbusmenu_qt_lib_VERSION ${dbusmenu_qt_lib_SOVERSION}.${dbusmenu_qt_lib_API_VERSION}.${dbusmenu_qt_lib_PATCH_VERSION})
 
 # Check if we want to explicitly select the Qt version to be used or autodetect
-if (NOT USE_QT4 AND NOT USE_QT5)
+if (NOT USE_QT4 AND NOT USE_QT5 AND NOT USE_KATIE)
     # Autodetect, prefering Qt5
-    message(STATUS "Autodetecting Qt version to use")
+    message(STATUS "Autodetecting Qt/Katie version to use")
     find_package(Qt5Widgets QUIET)
     if (Qt5Widgets_FOUND)
         set(USE_QT5 TRUE)
     endif()
+    find_package(Katie QUIET)
+    if (Katie_FOUND)
+        set(USE_KATIE TRUE)
+        set(USE_QT5 FALSE)
+    endif()
 endif()
 
 # Detect for which Qt version we're building
-if (USE_QT5)
+if (USE_KATIE)
+    find_package(Katie REQUIRED)
+    include_directories(
+        ${QT_INCLUDE_DIR}
+        ${QT_QTCORE_INCLUDE_DIR}
+        ${QT_QTDBUS_INCLUDE_DIR}
+        ${QT_QTGUI_INCLUDE_DIR}
+    )
+    add_definitions(${QT_DEFINITIONS})
+
+    set(QT_SUFFIX "katie")
+elseif (USE_QT5)
     find_package(Qt5Widgets REQUIRED)
     find_package(Qt5DBus REQUIRED)
     include_directories(${Qt5Widgets_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS})
index 2c4a4e8..50c7006 100644 (file)
@@ -65,7 +65,6 @@ include_directories(
     )
 
 if (NOT USE_QT5)
-    qt4_automoc(${dbusmenu_qt_SRCS})
     qt4_add_dbus_adaptor(dbusmenu_qt_SRCS
         ${CMAKE_CURRENT_SOURCE_DIR}/com.canonical.dbusmenu.xml
         ${CMAKE_CURRENT_SOURCE_DIR}/dbusmenuexporterdbus_p.h DBusMenuExporterDBus
index b04afa6..0f24fbe 100644 (file)
@@ -184,7 +184,7 @@ License version 3 and version 2.1 along with this program.  If not, see
 <!-- Functions -->
 
                <method name="GetLayout">
-                       <annotation name="com.trolltech.QtDBus.QtTypeName.Out1" value="DBusMenuLayoutItem"/>
+                       <annotation name="org.qtproject.QtDBus.QtTypeName.Out1" value="DBusMenuLayoutItem"/>
                        <dox:d>
                          Provides the layout and propertiers that are attached to the entries
                          that are in the layout.  It only gives the items that are children
@@ -225,8 +225,8 @@ License version 3 and version 2.1 along with this program.  If not, see
                </method>
 
                <method name="GetGroupProperties">
-                       <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QList&lt;int&gt;"/>
-                       <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="DBusMenuItemList"/>
+                       <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QList&lt;int&gt;"/>
+                       <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="DBusMenuItemList"/>
                        <dox:d>
                        Returns the list of items which are children of @a parentId.
                        </dox:d>
@@ -316,8 +316,8 @@ License version 3 and version 2.1 along with this program.  If not, see
 
 <!-- Signals -->
                <signal name="ItemsPropertiesUpdated">
-                       <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="DBusMenuItemList"/>
-                       <annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="DBusMenuItemKeysList"/>
+                       <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="DBusMenuItemList"/>
+                       <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="DBusMenuItemKeysList"/>
                        <dox:d>
                        Triggered when there are lots of property updates across many items
                        so they all get grouped into a single dbus message.  The format is
index 62dbfdd..bcc5834 100644 (file)
@@ -28,7 +28,7 @@
 // Qt
 #include <QtCore/QtGlobal>
 
-#ifdef dbusmenu_qt_EXPORTS
+#if defined(dbusmenu_qt_EXPORTS) || defined(dbusmenu_katie_EXPORTS)
 #define DBUSMENU_EXPORT Q_DECL_EXPORT
 #else
 #define DBUSMENU_EXPORT Q_DECL_IMPORT
index bc84092..5a960b1 100644 (file)
@@ -91,4 +91,4 @@ void DBusMenu::deleteMe()
     delete this;
 }
 
-#include "dbusmenu_p.moc"
+#include "moc_dbusmenu_p.cpp"
index 8e6d315..018d71b 100644 (file)
@@ -23,9 +23,8 @@
 
 #include <QEvent>
 #include <QObject>
-
-class QAction;
-class QMenu;
+#include <QAction>
+#include <QMenu>
 
 class DBusMenuExporter;
 
index f25718d..f30ce11 100644 (file)
@@ -503,4 +503,4 @@ QString DBusMenuExporter::status() const
     return d->m_dbusObject->status();
 }
 
-#include "dbusmenuexporter.moc"
+#include "moc_dbusmenuexporter.cpp"
index 14950f3..343ceb2 100644 (file)
 // Qt
 #include <QtCore/QObject>
 #include <QtDBus/QDBusConnection>
+#include <QAction>
+#include <QMenu>
 
 // Local
 #include <dbusmenu_export.h>
 
-class QAction;
-class QMenu;
-
 class DBusMenuExporterPrivate;
 
 /**
index 006eec6..b9417f6 100644 (file)
@@ -24,6 +24,7 @@
 #include <QDBusMessage>
 #include <QMenu>
 #include <QVariant>
+#include <QEvent>
 
 // Local
 #include "dbusmenuadaptor.h"
@@ -183,4 +184,4 @@ QString DBusMenuExporterDBus::status() const
 }
 
 
-#include "dbusmenuexporterdbus_p.moc"
+#include "moc_dbusmenuexporterdbus_p.cpp"
index 95fd00b..558f1ae 100644 (file)
@@ -52,7 +52,7 @@ public:
     void setStatus(const QString &status);
 
 public Q_SLOTS:
-    Q_NOREPLY void Event(int id, const QString &eventId, const QDBusVariant &data, uint timestamp);
+    void Event(int id, const QString &eventId, const QDBusVariant &data, uint timestamp);
     QDBusVariant GetProperty(int id, const QString &property);
     uint GetLayout(int parentId, int recursionDepth, const QStringList &propertyNames, DBusMenuLayoutItem &item);
     DBusMenuItemList GetGroupProperties(const QList<int> &ids, const QStringList &propertyNames);
index 115eed1..9bbb087 100644 (file)
@@ -30,8 +30,8 @@
 #include <QtCore/QMap>
 #include <QtCore/QSet>
 #include <QtCore/QVariant>
-
-class QMenu;
+#include <QtCore/QTimer>
+#include <QMenu>
 
 class DBusMenuExporterDBus;
 
index 39f5995..ce6ef18 100644 (file)
@@ -582,4 +582,4 @@ QIcon DBusMenuImporter::iconForName(const QString &/*name*/)
     return QIcon();
 }
 
-#include "dbusmenuimporter.moc"
+#include "moc_dbusmenuimporter.cpp"
index dc7e773..9f82808 100644 (file)
 
 // Qt
 #include <QtCore/QObject>
+#include <QtDBus/QDBusAbstractInterface>
+#include <QtDBus/QDBusPendingCallWatcher>
+#include <QtDBus/QDBusVariant>
+#include <QAction>
+#include <QIcon>
+#include <QMenu>
 
 // Local
 #include <dbusmenu_export.h>
 
-class QAction;
-class QDBusAbstractInterface;
-class QDBusPendingCallWatcher;
-class QDBusVariant;
-class QIcon;
-class QMenu;
-
 class DBusMenuImporterPrivate;
 
 /**
index e26dd8c..bd3208c 100644 (file)
 // Qt
 #include <QtCore/QMetaType>
 #include <QtCore/QStringList>
+#include <QKeySequence>
 
 // Local
 #include <dbusmenu_export.h>
 
-
-class QKeySequence;
-
 class DBUSMENU_EXPORT DBusMenuShortcut : public QList<QStringList>
 {
 public:
index 6b4e560..b381af9 100644 (file)
 #include <QtCore/QList>
 #include <QtCore/QStringList>
 #include <QtCore/QVariant>
+#include <QtDBus/QDBusArgument>
 
 // Local
 #include <dbusmenu_export.h>
 
-class QDBusArgument;
-
 //// DBusMenuItem
 /**
  * Internal struct used to communicate on DBus
index 3f6e888..3ee562a 100644 (file)
@@ -21,7 +21,7 @@
 #ifndef UTILS_P_H
 #define UTILS_P_H
 
-class QString;
+#include <QtCore/QString>
 
 /**
  * Swap mnemonic char: Qt uses '&', while dbusmenu uses '_'
index 6be27f5..a52d05f 100644 (file)
@@ -1,6 +1,3 @@
-if (NOT USE_QT5)
-    qt4_automoc(slowmenu.cpp)
-endif()
 add_executable(slowmenu slowmenu.cpp)
 
 if (NOT USE_QT5)
@@ -8,7 +5,7 @@ if (NOT USE_QT5)
         ${QT_QTGUI_LIBRARIES}
         ${QT_QTDBUS_LIBRARIES}
         ${QT_QTCORE_LIBRARIES}
-        dbusmenu-qt
+        dbusmenu-${QT_SUFFIX}
     )
 
     set(test_LIBRARIES
@@ -16,7 +13,7 @@ if (NOT USE_QT5)
         ${QT_QTCORE_LIBRARY}
         ${QT_QTDBUS_LIBRARY}
         ${QT_QTTEST_LIBRARY}
-        dbusmenu-qt
+        dbusmenu-${QT_SUFFIX}
     )
 
     include_directories(
@@ -77,10 +74,6 @@ set(dbusmenuexportertest_SRCS
     testutils.cpp
     )
 
-if (NOT USE_QT5)
-    qt4_automoc(${dbusmenuexportertest_SRCS})
-endif()
-
 add_test_executable(dbusmenuexportertest ${dbusmenuexportertest_SRCS})
 
 target_link_libraries(dbusmenuexportertest
@@ -94,10 +87,6 @@ set(dbusmenuimportertest_SRCS
     testutils.cpp
     )
 
-if (NOT USE_QT5)
-    qt4_automoc(${dbusmenuimportertest_SRCS})
-endif()
-
 add_test_executable(dbusmenuimportertest ${dbusmenuimportertest_SRCS})
 
 target_link_libraries(dbusmenuimportertest
@@ -110,10 +99,6 @@ set(dbusmenushortcuttest_SRCS
     dbusmenushortcuttest.cpp
     )
 
-if (NOT USE_QT5)
-    qt4_automoc(${dbusmenushortcuttest_SRCS})
-endif()
-
 add_test_executable(dbusmenushortcuttest ${dbusmenushortcuttest_SRCS})
 
 target_link_libraries(dbusmenushortcuttest
index 0d844f7..db13039 100644 (file)
@@ -812,4 +812,4 @@ void DBusMenuExporterTest::testGetIconDataProperty()
     QCOMPARE(result, img);
 }
 
-#include "dbusmenuexportertest.moc"
+#include "moc_dbusmenuexportertest.cpp"
index 497f1e7..e81faec 100644 (file)
@@ -22,6 +22,8 @@
 #include "dbusmenuimportertest.h"
 
 // Qt
+#include <QTimer>
+#include <QProcess>
 #include <QDBusConnection>
 #include <QDBusInterface>
 #include <QDBusReply>
@@ -340,4 +342,4 @@ void DBusMenuImporterTest::testDisabledItem()
     QVERIFY(outputAction->isEnabled());
 }
 
-#include "dbusmenuimportertest.moc"
+#include "moc_dbusmenuimportertest.cpp"
index c3036ef..b0b351d 100644 (file)
@@ -30,6 +30,7 @@
 
 QTEST_MAIN(DBusMenuShortcutTest)
 
+QT_BEGIN_NAMESPACE
 namespace QTest
 {
 template<>
@@ -45,6 +46,7 @@ char *toString(const DBusMenuShortcut &dmShortcut)
     return qstrdup(ba.data());
 }
 }
+QT_END_NAMESPACE
 
 DBusMenuShortcut createKeyList(const QString& txt)
 {
@@ -82,4 +84,4 @@ void DBusMenuShortcutTest::testConverter()
     QCOMPARE(sequence.toString(), keySequence.toString());
 }
 
-#include "dbusmenushortcuttest.moc"
+#include "moc_dbusmenushortcuttest.cpp"
index 13972c1..9861205 100644 (file)
@@ -21,6 +21,7 @@
 #include <slowmenu.moc>
 
 #include <dbusmenuexporter.h>
+#include <slowmenu.h>
 
 #include <QtDBus>
 #include <QtGui>
index 8426aa1..5908c20 100644 (file)
@@ -31,4 +31,4 @@ void waitForDeferredDeletes()
     }
 }
 
-#include "testutils.moc"
+#include "moc_testutils.cpp"
index 110b8b0..7cb5eb3 100644 (file)
@@ -17,7 +17,7 @@ if (NOT USE_QT5)
         )
 
     target_link_libraries(dbusmenubench-qtapp
-        dbusmenu-qt
+        dbusmenu-${QT_SUFFIX}
         ${QT_QTGUI_LIBRARY}
         ${QT_QTCORE_LIBRARY}
         ${QT_QTDBUS_LIBRARY}