Skip to content

Commit f53e6fb

Browse files
committed
dbus/dbusmenu: use bindable dbus properties
1 parent ff55ac8 commit f53e6fb

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

src/dbus/dbusmenu/dbusmenu.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,7 @@ DBusMenuItem::DBusMenuItem(qint32 id, DBusMenu* menu, DBusMenuItem* parentMenu)
4141
QObject::connect(this, &QsMenuEntry::closed, this, &DBusMenuItem::sendClosed);
4242
QObject::connect(this, &QsMenuEntry::triggered, this, &DBusMenuItem::sendTriggered);
4343

44-
QObject::connect(
45-
&this->menu->iconThemePath,
46-
&AbstractDBusProperty::changed,
47-
this,
48-
&DBusMenuItem::iconChanged
49-
);
44+
QObject::connect(this->menu, &DBusMenu::iconThemePathChanged, this, &DBusMenuItem::iconChanged);
5045
}
5146

5247
void DBusMenuItem::sendOpened() const { this->menu->sendEvent(this->id, "opened"); }
@@ -61,7 +56,7 @@ QString DBusMenuItem::icon() const {
6156
if (!this->iconName.isEmpty()) {
6257
return IconImageProvider::requestString(
6358
this->iconName,
64-
this->menu->iconThemePath.get().join(':')
59+
this->menu->iconThemePath.value().join(':')
6560
);
6661
} else if (this->image != nullptr) {
6762
return this->image->url();

src/dbus/dbusmenu/dbusmenu.hpp

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include <qtmetamacros.h>
1414
#include <qtypes.h>
1515

16+
#include "../../core/doc.hpp"
1617
#include "../../core/imageprovider.hpp"
1718
#include "../../core/qsmenu.hpp"
1819
#include "../properties.hpp"
@@ -115,11 +116,16 @@ class DBusMenu: public QObject {
115116
public:
116117
explicit DBusMenu(const QString& service, const QString& path, QObject* parent = nullptr);
117118

118-
dbus::DBusPropertyGroup properties;
119-
dbus::DBusProperty<quint32> version {this->properties, "Version"};
120-
dbus::DBusProperty<QString> textDirection {this->properties, "TextDirection", "", false};
121-
dbus::DBusProperty<QString> status {this->properties, "Status"};
122-
dbus::DBusProperty<QStringList> iconThemePath {this->properties, "IconThemePath", {}, false};
119+
QS_DBUS_BINDABLE_PROPERTY_GROUP(DBusMenu, properties);
120+
121+
signals:
122+
QSDOC_HIDE void iconThemePathChanged();
123+
124+
public:
125+
Q_OBJECT_BINDABLE_PROPERTY(DBusMenu, quint32, version);
126+
Q_OBJECT_BINDABLE_PROPERTY(DBusMenu, QString, textDirection);
127+
Q_OBJECT_BINDABLE_PROPERTY(DBusMenu, QString, status);
128+
Q_OBJECT_BINDABLE_PROPERTY(DBusMenu, QStringList, iconThemePath, &DBusMenu::iconThemePathChanged);
123129

124130
void prepareToShow(qint32 item, qint32 depth);
125131
void updateLayout(qint32 parent, qint32 depth);
@@ -141,6 +147,11 @@ private slots:
141147
private:
142148
void updateLayoutRecursive(const DBusMenuLayout& layout, DBusMenuItem* parent, qint32 depth);
143149

150+
QS_DBUS_PROPERTY_BINDING(DBusMenu, pVersion, version, properties, "Version");
151+
QS_DBUS_PROPERTY_BINDING(DBusMenu, pTextDirection, textDirection, properties, "TextDirection");
152+
QS_DBUS_PROPERTY_BINDING(DBusMenu, pStatus, status, properties, "Status");
153+
QS_DBUS_PROPERTY_BINDING(DBusMenu, pIconThemePath, iconThemePath, properties, "IconThemePath");
154+
144155
DBusMenuInterface* interface = nullptr;
145156
};
146157

0 commit comments

Comments
 (0)