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)
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})
)
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
<!-- 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
</method>
<method name="GetGroupProperties">
- <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QList<int>"/>
- <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="DBusMenuItemList"/>
+ <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QList<int>"/>
+ <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="DBusMenuItemList"/>
<dox:d>
Returns the list of items which are children of @a parentId.
</dox:d>
<!-- 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
// 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
delete this;
}
-#include "dbusmenu_p.moc"
+#include "moc_dbusmenu_p.cpp"
#include <QEvent>
#include <QObject>
-
-class QAction;
-class QMenu;
+#include <QAction>
+#include <QMenu>
class DBusMenuExporter;
return d->m_dbusObject->status();
}
-#include "dbusmenuexporter.moc"
+#include "moc_dbusmenuexporter.cpp"
// Qt
#include <QtCore/QObject>
#include <QtDBus/QDBusConnection>
+#include <QAction>
+#include <QMenu>
// Local
#include <dbusmenu_export.h>
-class QAction;
-class QMenu;
-
class DBusMenuExporterPrivate;
/**
#include <QDBusMessage>
#include <QMenu>
#include <QVariant>
+#include <QEvent>
// Local
#include "dbusmenuadaptor.h"
}
-#include "dbusmenuexporterdbus_p.moc"
+#include "moc_dbusmenuexporterdbus_p.cpp"
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);
#include <QtCore/QMap>
#include <QtCore/QSet>
#include <QtCore/QVariant>
-
-class QMenu;
+#include <QtCore/QTimer>
+#include <QMenu>
class DBusMenuExporterDBus;
return QIcon();
}
-#include "dbusmenuimporter.moc"
+#include "moc_dbusmenuimporter.cpp"
// 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;
/**
// Qt
#include <QtCore/QMetaType>
#include <QtCore/QStringList>
+#include <QKeySequence>
// Local
#include <dbusmenu_export.h>
-
-class QKeySequence;
-
class DBUSMENU_EXPORT DBusMenuShortcut : public QList<QStringList>
{
public:
#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
#ifndef UTILS_P_H
#define UTILS_P_H
-class QString;
+#include <QtCore/QString>
/**
* Swap mnemonic char: Qt uses '&', while dbusmenu uses '_'
-if (NOT USE_QT5)
- qt4_automoc(slowmenu.cpp)
-endif()
add_executable(slowmenu slowmenu.cpp)
if (NOT USE_QT5)
${QT_QTGUI_LIBRARIES}
${QT_QTDBUS_LIBRARIES}
${QT_QTCORE_LIBRARIES}
- dbusmenu-qt
+ dbusmenu-${QT_SUFFIX}
)
set(test_LIBRARIES
${QT_QTCORE_LIBRARY}
${QT_QTDBUS_LIBRARY}
${QT_QTTEST_LIBRARY}
- dbusmenu-qt
+ dbusmenu-${QT_SUFFIX}
)
include_directories(
testutils.cpp
)
-if (NOT USE_QT5)
- qt4_automoc(${dbusmenuexportertest_SRCS})
-endif()
-
add_test_executable(dbusmenuexportertest ${dbusmenuexportertest_SRCS})
target_link_libraries(dbusmenuexportertest
testutils.cpp
)
-if (NOT USE_QT5)
- qt4_automoc(${dbusmenuimportertest_SRCS})
-endif()
-
add_test_executable(dbusmenuimportertest ${dbusmenuimportertest_SRCS})
target_link_libraries(dbusmenuimportertest
dbusmenushortcuttest.cpp
)
-if (NOT USE_QT5)
- qt4_automoc(${dbusmenushortcuttest_SRCS})
-endif()
-
add_test_executable(dbusmenushortcuttest ${dbusmenushortcuttest_SRCS})
target_link_libraries(dbusmenushortcuttest
QCOMPARE(result, img);
}
-#include "dbusmenuexportertest.moc"
+#include "moc_dbusmenuexportertest.cpp"
#include "dbusmenuimportertest.h"
// Qt
+#include <QTimer>
+#include <QProcess>
#include <QDBusConnection>
#include <QDBusInterface>
#include <QDBusReply>
QVERIFY(outputAction->isEnabled());
}
-#include "dbusmenuimportertest.moc"
+#include "moc_dbusmenuimportertest.cpp"
QTEST_MAIN(DBusMenuShortcutTest)
+QT_BEGIN_NAMESPACE
namespace QTest
{
template<>
return qstrdup(ba.data());
}
}
+QT_END_NAMESPACE
DBusMenuShortcut createKeyList(const QString& txt)
{
QCOMPARE(sequence.toString(), keySequence.toString());
}
-#include "dbusmenushortcuttest.moc"
+#include "moc_dbusmenushortcuttest.cpp"
#include <slowmenu.moc>
#include <dbusmenuexporter.h>
+#include <slowmenu.h>
#include <QtDBus>
#include <QtGui>
}
}
-#include "testutils.moc"
+#include "moc_testutils.cpp"
)
target_link_libraries(dbusmenubench-qtapp
- dbusmenu-qt
+ dbusmenu-${QT_SUFFIX}
${QT_QTGUI_LIBRARY}
${QT_QTCORE_LIBRARY}
${QT_QTDBUS_LIBRARY}