History

First cut of pal on tablet.

Anthony J. Thibault committed 9 years ago

Commit a209d031 parent 7db86208 files · +138 −17Browse files

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

Unified · Split

libraries/script-engine/src/TabletScriptingInterface.cpp+23−0
@@ -183,6 +183,18 @@ void TabletProxy::setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscr · 182 unmodified lines
183 _qmlTabletRoot = qmlTabletRoot;183 _qmlTabletRoot = qmlTabletRoot;
184 if (_qmlTabletRoot && _qmlOffscreenSurface) {184 if (_qmlTabletRoot && _qmlOffscreenSurface) {
185 QObject::connect(_qmlOffscreenSurface, SIGNAL(webEventReceived(QVariant)), this, SIGNAL(webEventReceived(QVariant)));185 QObject::connect(_qmlOffscreenSurface, SIGNAL(webEventReceived(QVariant)), this, SIGNAL(webEventReceived(QVariant)));
186
187 // forward qml surface events to interface js
188 connect(dynamic_cast<OffscreenQmlSurface*>(_qmlOffscreenSurface), &OffscreenQmlSurface::fromQml, [this](QVariant message) {
189 if (message.canConvert<QJSValue>()) {
190 emit fromQml(qvariant_cast<QJSValue>(message).toVariant());
191 } else if (message.canConvert<QString>()) {
192 emit fromQml(message.toString());
193 } else {
194 qWarning() << "fromQml: Unsupported message type " << message;
195 }
196 });
197
186 gotoHomeScreen();198 gotoHomeScreen();
187 199
188 QMetaObject::invokeMethod(_qmlTabletRoot, "setUsername", Q_ARG(const QVariant&, QVariant(getUsername())));200 QMetaObject::invokeMethod(_qmlTabletRoot, "setUsername", Q_ARG(const QVariant&, QVariant(getUsername())));
@@ -197,6 +209,7 @@ void TabletProxy::setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscr · 8 unmodified lines
197 } else {209 } else {
198 removeButtonsFromHomeScreen();210 removeButtonsFromHomeScreen();
199 _state = State::Uninitialized;211 _state = State::Uninitialized;
212 emit screenChanged(QVariant("Closed"), QVariant(""));
200 }213 }
201}214}
202 215
@@ -208,6 +221,7 @@ void TabletProxy::gotoMenuScreen() { · 5 unmodified lines
208 QObject::connect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToMenuScreen()), Qt::DirectConnection);221 QObject::connect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToMenuScreen()), Qt::DirectConnection);
209 QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, QVariant(VRMENU_SOURCE_URL)));222 QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, QVariant(VRMENU_SOURCE_URL)));
210 _state = State::Menu;223 _state = State::Menu;
224 emit screenChanged(QVariant("Menu"), QVariant(VRMENU_SOURCE_URL));
211 }225 }
212 }226 }
213}227}
@@ -217,6 +231,7 @@ void TabletProxy::loadQMLSource(const QVariant& path) { · 3 unmodified lines
217 if (_state != State::QML) {231 if (_state != State::QML) {
218 QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, path));232 QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, path));
219 _state = State::QML;233 _state = State::QML;
234 emit screenChanged(QVariant("QML"), path);
220 }235 }
221 }236 }
222}237}
@@ -228,6 +243,7 @@ void TabletProxy::gotoHomeScreen() { · 5 unmodified lines
228 QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, QVariant(TABLET_SOURCE_URL)));243 QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, QVariant(TABLET_SOURCE_URL)));
229 QMetaObject::invokeMethod(_qmlTabletRoot, "playButtonClickSound");244 QMetaObject::invokeMethod(_qmlTabletRoot, "playButtonClickSound");
230 _state = State::Home;245 _state = State::Home;
246 emit screenChanged(QVariant("Home"), QVariant(TABLET_SOURCE_URL));
231 }247 }
232 }248 }
233}249}
@@ -244,6 +260,7 @@ void TabletProxy::gotoWebScreen(const QString& url, const QString& injectedJavaS · 10 unmodified lines
244 if (_state != State::Web) {260 if (_state != State::Web) {
245 QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, QVariant(WEB_VIEW_SOURCE_URL)));261 QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, QVariant(WEB_VIEW_SOURCE_URL)));
246 _state = State::Web;262 _state = State::Web;
263 emit screenChanged(QVariant("Web"), QVariant(url));
247 }264 }
248 QMetaObject::invokeMethod(_qmlTabletRoot, "loadWebUrl", Q_ARG(const QVariant&, QVariant(url)),265 QMetaObject::invokeMethod(_qmlTabletRoot, "loadWebUrl", Q_ARG(const QVariant&, QVariant(url)),
249 Q_ARG(const QVariant&, QVariant(injectedJavaScriptUrl)));266 Q_ARG(const QVariant&, QVariant(injectedJavaScriptUrl)));
@@ -306,6 +323,12 @@ void TabletProxy::emitScriptEvent(QVariant msg) { · 56 unmodified lines
306 }323 }
307}324}
308 325
326void TabletProxy::sendToQml(QVariant msg) {
327 if (_qmlOffscreenSurface) {
328 QMetaObject::invokeMethod(_qmlOffscreenSurface, "sendToQml", Qt::AutoConnection, Q_ARG(QVariant, msg));
329 }
330}
331
309void TabletProxy::addButtonsToHomeScreen() {332void TabletProxy::addButtonsToHomeScreen() {
310 auto tablet = getQmlTablet();333 auto tablet = getQmlTablet();
311 if (!tablet) {334 if (!tablet) {