History

Hooked up EventBridge to TabletScriptingInterface.

Anthony J. Thibault committed 9 years ago

Commit 3c2f9ac1 parent 850db0b6 files · +55 −17Browse files

Showing the changes to libraries/script-engine/src/TabletScriptingInterface.cpp (1 of 6 files). Show all

Unified · Split

libraries/script-engine/src/TabletScriptingInterface.cpp+13−5
@@ -29,10 +29,10 @@ QObject* TabletScriptingInterface::getTablet(const QString& tabletId) { · 28 unmodified lines
29 }29 }
30}30}
31 31
32void TabletScriptingInterface::setQmlTabletRoot(QString tabletId, QQuickItem* qmlTabletRoot) {32void TabletScriptingInterface::setQmlTabletRoot(QString tabletId, QQuickItem* qmlTabletRoot, QObject* qmlOffscreenSurface) {
33 TabletProxy* tablet = qobject_cast<TabletProxy*>(getTablet(tabletId));33 TabletProxy* tablet = qobject_cast<TabletProxy*>(getTablet(tabletId));
34 if (tablet) {34 if (tablet && qmlOffscreenSurface) {
35 tablet->setQmlTabletRoot(qmlTabletRoot);35 tablet->setQmlTabletRoot(qmlTabletRoot, qmlOffscreenSurface);
36 } else {36 } else {
37 qCWarning(scriptengine) << "TabletScriptingInterface::setupTablet() bad tablet object";37 qCWarning(scriptengine) << "TabletScriptingInterface::setupTablet() bad tablet object";
38 }38 }
@@ -72,10 +72,12 @@ static void addButtonProxyToQmlTablet(QQuickItem* qmlTablet, TabletButtonProxy* · 33 unmodified lines
72 buttonProxy->setQmlButton(qobject_cast<QQuickItem*>(qmlButton));72 buttonProxy->setQmlButton(qobject_cast<QQuickItem*>(qmlButton));
73}73}
74 74
75void TabletProxy::setQmlTabletRoot(QQuickItem* qmlTabletRoot) {75void TabletProxy::setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscreenSurface) {
76 std::lock_guard<std::mutex> guard(_mutex);76 std::lock_guard<std::mutex> guard(_mutex);
77 _qmlOffscreenSurface = qmlOffscreenSurface;
77 _qmlTabletRoot = qmlTabletRoot;78 _qmlTabletRoot = qmlTabletRoot;
78 if (_qmlTabletRoot) {79 if (_qmlTabletRoot && _qmlOffscreenSurface) {
80 QObject::connect(_qmlOffscreenSurface, SIGNAL(webEventReceived(QVariant)), this, SIGNAL(webEventReceived(QVariant)));
79 gotoHomeScreen();81 gotoHomeScreen();
80 } else {82 } else {
81 removeButtonsFromHomeScreen();83 removeButtonsFromHomeScreen();
@@ -141,6 +143,12 @@ void TabletProxy::removeButton(QObject* tabletButtonProxy) { · 59 unmodified lines
141 }143 }
142}144}
143 145
146void TabletProxy::emitScriptEvent(QVariant msg) {
147 if (_qmlOffscreenSurface) {
148 QMetaObject::invokeMethod(_qmlOffscreenSurface, "emitScriptEvent", Qt::AutoConnection, Q_ARG(QVariant, msg));
149 }
150}
151
144void TabletProxy::addButtonsToHomeScreen() {152void TabletProxy::addButtonsToHomeScreen() {
145 auto tablet = getQmlTablet();153 auto tablet = getQmlTablet();
146 if (!tablet) {154 if (!tablet) {