History

Merge pull request #10184 from druiz17/snapshot-fix

snapshot bug fixes

Chris Collins committed 9 years ago

Commit b07ed132 parents c86acfa d8230937 files · +154 −15Browse files

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

Unified · Split

libraries/script-engine/src/TabletScriptingInterface.cpp+52−0
@@ -354,6 +354,38 @@ void TabletProxy::gotoMenuScreen(const QString& submenu) { · 353 unmodified lines
354354 }
355355 }
356356
357+void TabletProxy::loadQMLOnTop(const QVariant& path) {
358+ QObject* root = nullptr;
359+ if (!_toolbarMode && _qmlTabletRoot) {
360+ root = _qmlTabletRoot;
361+ } else if (_toolbarMode && _desktopWindow) {
362+ root = _desktopWindow->asQuickItem();
363+ }
364+
365+ if (root) {
366+ QMetaObject::invokeMethod(root, "loadQMLOnTop", Q_ARG(const QVariant&, path));
367+ QMetaObject::invokeMethod(root, "setShown", Q_ARG(const QVariant&, QVariant(true)));
368+ } else {
369+ qCDebug(scriptengine) << "tablet cannot load QML because _qmlTabletRoot is null";
370+ }
371+}
372+
373+void TabletProxy::returnToPreviousApp() {
374+ QObject* root = nullptr;
375+ if (!_toolbarMode && _qmlTabletRoot) {
376+ root = _qmlTabletRoot;
377+ } else if (_toolbarMode && _desktopWindow) {
378+ root = _desktopWindow->asQuickItem();
379+ }
380+
381+ if (root) {
382+ QMetaObject::invokeMethod(root, "returnToPreviousApp");
383+ QMetaObject::invokeMethod(root, "setShown", Q_ARG(const QVariant&, QVariant(true)));
384+ } else {
385+ qCDebug(scriptengine) << "tablet cannot load QML because _qmlTabletRoot is null";
386+ }
387+}
388+
357389 void TabletProxy::loadQMLSource(const QVariant& path) {
358390
359391 QObject* root = nullptr;
@@ -440,6 +472,26 @@ void TabletProxy::gotoWebScreen(const QString& url) { · 80 unmodified lines
440472 gotoWebScreen(url, "");
441473 }
442474
475+void TabletProxy::loadWebScreenOnTop(const QVariant& url) {
476+ loadWebScreenOnTop(url, "");
477+}
478+
479+void TabletProxy::loadWebScreenOnTop(const QVariant& url, const QString& injectJavaScriptUrl) {
480+ QObject* root = nullptr;
481+ if (!_toolbarMode && _qmlTabletRoot) {
482+ root = _qmlTabletRoot;
483+ } else if (_toolbarMode && _desktopWindow) {
484+ root = _desktopWindow->asQuickItem();
485+ }
486+
487+ if (root) {
488+ QMetaObject::invokeMethod(root, "loadQMLOnTop", Q_ARG(const QVariant&, QVariant(WEB_VIEW_SOURCE_URL)));
489+ QMetaObject::invokeMethod(root, "setShown", Q_ARG(const QVariant&, QVariant(true)));
490+ QMetaObject::invokeMethod(root, "loadWebOnTop", Q_ARG(const QVariant&, QVariant(url)), Q_ARG(const QVariant&, QVariant(injectJavaScriptUrl)));
491+ }
492+ _state = State::Web;
493+}
494+
443495 void TabletProxy::gotoWebScreen(const QString& url, const QString& injectedJavaScriptUrl) {
444496
445497 QObject* root = nullptr;