History

get button-states for toolbar buttons working again

Seth Alves committed 9 years ago

Commit ff8d13e1 parent 98f166412 files · +49 −34Browse files

Showing the changes to interface/src/scripting/ToolbarScriptingInterface.cpp (1 of 12 files). Show all

Unified · Split

interface/src/scripting/ToolbarScriptingInterface.cpp+19−1
@@ -19,15 +19,33 @@ class ToolbarButtonProxy : public QmlWrapper { · 18 unmodified lines
19 19
20public:20public:
21 ToolbarButtonProxy(QObject* qmlObject, QObject* parent = nullptr) : QmlWrapper(qmlObject, parent) {21 ToolbarButtonProxy(QObject* qmlObject, QObject* parent = nullptr) : QmlWrapper(qmlObject, parent) {
22 std::lock_guard<std::mutex> guard(_mutex);
23 _qmlButton = qobject_cast<QQuickItem*>(qmlObject);
22 connect(qmlObject, SIGNAL(clicked()), this, SIGNAL(clicked()));24 connect(qmlObject, SIGNAL(clicked()), this, SIGNAL(clicked()));
23 }25 }
24 26
25 Q_INVOKABLE void editProperties(QVariantMap properties) {27 Q_INVOKABLE void editProperties(QVariantMap properties) {
26 qDebug() << "XXX WRITE TabletButtonProxy::editProperties";28 std::lock_guard<std::mutex> guard(_mutex);
29 QVariantMap::const_iterator iter = properties.constBegin();
30 while (iter != properties.constEnd()) {
31 _properties[iter.key()] = iter.value();
32 if (_qmlButton) {
33 // [01/25 14:26:20] [WARNING] [default] QMetaObject::invokeMethod: No such method ToolbarButton_QMLTYPE_195::changeProperty(QVariant,QVariant)
34
35 QMetaObject::invokeMethod(_qmlButton, "changeProperty", Qt::AutoConnection,
36 Q_ARG(QVariant, QVariant(iter.key())), Q_ARG(QVariant, iter.value()));
37 }
38 ++iter;
39 }
27 }40 }
28 41
29signals:42signals:
30 void clicked();43 void clicked();
44
45protected:
46 mutable std::mutex _mutex;
47 QQuickItem* _qmlButton { nullptr };
48 QVariantMap _properties;
31};49};
32 50
33class ToolbarProxy : public QmlWrapper {51class ToolbarProxy : public QmlWrapper {