From 116c1259cb63c23a7cda094379e8e3f95b7a65fa Mon Sep 17 00:00:00 2001 From: reionwong Date: Wed, 16 Jun 2021 10:24:54 +0800 Subject: [PATCH] Fix cannot be compiled under Qt5.14 https://github.com/cutefishos/statusbar/issues/3 --- CMakeLists.txt | 8 ++- qml/ControlCenter.qml | 2 +- src/appmenu/dbusmenu_interface.cpp | 25 +++++++ src/appmenu/dbusmenu_interface.h | 99 ++++++++++++++++++++++++++ src/libdbusmenuqt/dbusmenuimporter.cpp | 2 +- 5 files changed, 132 insertions(+), 4 deletions(-) create mode 100644 src/appmenu/dbusmenu_interface.cpp create mode 100644 src/appmenu/dbusmenu_interface.h diff --git a/CMakeLists.txt b/CMakeLists.txt index dea63c9..7e1d81b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,6 +54,8 @@ set(SRCS src/appmenu/appmenumodel.cpp src/appmenu/appmenuapplet.h src/appmenu/appmenuapplet.cpp + src/appmenu/dbusmenu_interface.cpp + src/appmenu/dbusmenu_interface.h qml.qrc ) @@ -79,7 +81,9 @@ set_source_files_properties(src/libdbusmenuqt/com.canonical.dbusmenu.xml PROPERT INCLUDE "src/libdbusmenuqt/dbusmenutypes_p.h" CLASSNAME DBusMenuInterface ) -qt_add_dbus_interface(libdbusmenu_SRCS src/libdbusmenuqt/com.canonical.dbusmenu.xml dbusmenu_interface) + +# The interface was added on Qt5.15 +# qt_add_dbus_interface(libdbusmenu_SRCS src/libdbusmenuqt/com.canonical.dbusmenu.xml dbusmenu_interface) ## appmenu qt_add_dbus_adaptor(appmenu_SRCS src/appmenu/com.canonical.AppMenu.Registrar.xml @@ -87,7 +91,7 @@ qt_add_dbus_adaptor(appmenu_SRCS src/appmenu/com.canonical.AppMenu.Registrar.xml qt_add_dbus_adaptor(appmenu_SRCS src/appmenu/org.cutefish.cappmenu.xml src/appmenu/appmenudbus.h AppmenuDBus appmenuadaptor AppmenuAdaptor) -add_executable(cutefish-statusbar ${SRCS} ${libdbusmenu_SRCS} ${appmenu_SRCS}) +add_executable(cutefish-statusbar ${SRCS} ${appmenu_SRCS}) target_include_directories(cutefish-statusbar PUBLIC ${XCB_LIBS_INCLUDE_DIRS}) target_link_libraries(cutefish-statusbar diff --git a/qml/ControlCenter.qml b/qml/ControlCenter.qml index 7f3d307..a8d69f1 100644 --- a/qml/ControlCenter.qml +++ b/qml/ControlCenter.qml @@ -111,7 +111,7 @@ ControlCenterDialog { Image { id: userIcon - height: 48 + height: 40 width: height sourceSize: Qt.size(width, width) source: currentUser.iconFileName ? "file:///" + currentUser.iconFileName : "image://icontheme/default-user" diff --git a/src/appmenu/dbusmenu_interface.cpp b/src/appmenu/dbusmenu_interface.cpp new file mode 100644 index 0000000..dab6cea --- /dev/null +++ b/src/appmenu/dbusmenu_interface.cpp @@ -0,0 +1,25 @@ +/* + * This file was generated by qdbusxml2cpp version 0.8 + * Command line was: qdbusxml2cpp -N -m -c DBusMenuInterface -i src/libdbusmenuqt/dbusmenutypes_p.h -p dbusmenu_interface /home/reion/Cutefish/statusbar/src/libdbusmenuqt/com.canonical.dbusmenu.xml + * + * qdbusxml2cpp is Copyright (C) 2020 The Qt Company Ltd. + * + * This is an auto-generated file. + * This file may have been hand-edited. Look for HAND-EDIT comments + * before re-generating it. + */ + +#include "dbusmenu_interface.h" + +/* + * Implementation of interface class DBusMenuInterface + */ + +DBusMenuInterface::DBusMenuInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent) + : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent) +{ +} + +DBusMenuInterface::~DBusMenuInterface() +{ +} diff --git a/src/appmenu/dbusmenu_interface.h b/src/appmenu/dbusmenu_interface.h new file mode 100644 index 0000000..9675fef --- /dev/null +++ b/src/appmenu/dbusmenu_interface.h @@ -0,0 +1,99 @@ +/* + * This file was generated by qdbusxml2cpp version 0.8 + * Command line was: qdbusxml2cpp -N -m -c DBusMenuInterface -i src/libdbusmenuqt/dbusmenutypes_p.h -p dbusmenu_interface /home/reion/Cutefish/statusbar/src/libdbusmenuqt/com.canonical.dbusmenu.xml + * + * qdbusxml2cpp is Copyright (C) 2020 The Qt Company Ltd. + * + * This is an auto-generated file. + * Do not edit! All changes made to it will be lost. + */ + +#ifndef DBUSMENU_INTERFACE_H +#define DBUSMENU_INTERFACE_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include "src/libdbusmenuqt/dbusmenutypes_p.h" + +/* + * Proxy class for interface com.canonical.dbusmenu + */ +class DBusMenuInterface: public QDBusAbstractInterface +{ + Q_OBJECT +public: + static inline const char *staticInterfaceName() + { return "com.canonical.dbusmenu"; } + +public: + DBusMenuInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = nullptr); + + ~DBusMenuInterface(); + + Q_PROPERTY(QString Status READ status) + inline QString status() const + { return qvariant_cast< QString >(property("Status")); } + + Q_PROPERTY(uint Version READ version) + inline uint version() const + { return qvariant_cast< uint >(property("Version")); } + +public Q_SLOTS: // METHODS + inline QDBusPendingReply AboutToShow(int id) + { + QList argumentList; + argumentList << QVariant::fromValue(id); + return asyncCallWithArgumentList(QStringLiteral("AboutToShow"), argumentList); + } + + inline Q_NOREPLY void Event(int id, const QString &eventId, const QDBusVariant &data, uint timestamp) + { + QList argumentList; + argumentList << QVariant::fromValue(id) << QVariant::fromValue(eventId) << QVariant::fromValue(data) << QVariant::fromValue(timestamp); + callWithArgumentList(QDBus::NoBlock, QStringLiteral("Event"), argumentList); + } + + inline QDBusPendingReply GetGroupProperties(const QList &ids, const QStringList &propertyNames) + { + QList argumentList; + argumentList << QVariant::fromValue(ids) << QVariant::fromValue(propertyNames); + return asyncCallWithArgumentList(QStringLiteral("GetGroupProperties"), argumentList); + } + + inline QDBusPendingReply GetLayout(int parentId, int recursionDepth, const QStringList &propertyNames) + { + QList argumentList; + argumentList << QVariant::fromValue(parentId) << QVariant::fromValue(recursionDepth) << QVariant::fromValue(propertyNames); + return asyncCallWithArgumentList(QStringLiteral("GetLayout"), argumentList); + } + inline QDBusReply GetLayout(int parentId, int recursionDepth, const QStringList &propertyNames, DBusMenuLayoutItem &item) + { + QList argumentList; + argumentList << QVariant::fromValue(parentId) << QVariant::fromValue(recursionDepth) << QVariant::fromValue(propertyNames); + QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("GetLayout"), argumentList); + if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 2) { + item = qdbus_cast(reply.arguments().at(1)); + } + return reply; + } + + inline QDBusPendingReply GetProperty(int id, const QString &property) + { + QList argumentList; + argumentList << QVariant::fromValue(id) << QVariant::fromValue(property); + return asyncCallWithArgumentList(QStringLiteral("GetProperty"), argumentList); + } + +Q_SIGNALS: // SIGNALS + void ItemActivationRequested(int id, uint timeStamp); + void ItemsPropertiesUpdated(DBusMenuItemList in0, DBusMenuItemKeysList in1); + void LayoutUpdated(uint revision, int parentId); +}; + +#endif diff --git a/src/libdbusmenuqt/dbusmenuimporter.cpp b/src/libdbusmenuqt/dbusmenuimporter.cpp index fde7abc..34c452c 100644 --- a/src/libdbusmenuqt/dbusmenuimporter.cpp +++ b/src/libdbusmenuqt/dbusmenuimporter.cpp @@ -43,7 +43,7 @@ #include "utils.h" // Generated -#include "dbusmenu_interface.h" +#include "../appmenu/dbusmenu_interface.h" //#define BENCHMARK #ifdef BENCHMARK