History

tablet pages

Dante Ruiz committed 9 years ago

Commit 86c67a31 parent b9c7d635 files · +117 −3Browse files

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

Unified · Split

libraries/script-engine/src/TabletScriptingInterface.cpp+52−0
@@ -349,6 +349,38 @@ void TabletProxy::gotoMenuScreen(const QString& submenu) { · 348 unmodified lines
349349 }
350350 }
351351
352+void TabletProxy::loadQMLOnTop(const QVariant& path) {
353+ QObject* root = nullptr;
354+ if (!_toolbarMode && _qmlTabletRoot) {
355+ root = _qmlTabletRoot;
356+ } else if (_toolbarMode && _desktopWindow) {
357+ root = _desktopWindow->asQuickItem();
358+ }
359+
360+ if (root) {
361+ QMetaObject::invokeMethod(root, "loadQMLOnTop", Q_ARG(const QVariant&, path));
362+ QMetaObject::invokeMethod(root, "setShown", Q_ARG(const QVariant&, QVariant(true)));
363+ } else {
364+ qCDebug(scriptengine) << "tablet cannot load QML because _qmlTabletRoot is null";
365+ }
366+}
367+
368+void TabletProxy::returnToPreviousApp() {
369+ QObject* root = nullptr;
370+ if (!_toolbarMode && _qmlTabletRoot) {
371+ root = _qmlTabletRoot;
372+ } else if (_toolbarMode && _desktopWindow) {
373+ root = _desktopWindow->asQuickItem();
374+ }
375+
376+ if (root) {
377+ QMetaObject::invokeMethod(root, "returnToPreviousApp");
378+ QMetaObject::invokeMethod(root, "setShown", Q_ARG(const QVariant&, QVariant(true)));
379+ } else {
380+ qCDebug(scriptengine) << "tablet cannot load QML because _qmlTabletRoot is null";
381+ }
382+}
383+
352384 void TabletProxy::loadQMLSource(const QVariant& path) {
353385
354386 QObject* root = nullptr;
@@ -433,6 +465,26 @@ void TabletProxy::gotoWebScreen(const QString& url) { · 78 unmodified lines
433465 gotoWebScreen(url, "");
434466 }
435467
468+void TabletProxy::loadWebScreenOnTop(const QVariant& url) {
469+ loadWebScreenOnTop(url, "");
470+}
471+
472+void TabletProxy::loadWebScreenOnTop(const QVariant& url, const QString& injectJavaScriptUrl) {
473+ QObject* root = nullptr;
474+ if (!_toolbarMode && _qmlTabletRoot) {
475+ root = _qmlTabletRoot;
476+ } else if (_toolbarMode && _desktopWindow) {
477+ root = _desktopWindow->asQuickItem();
478+ }
479+
480+ if (root) {
481+ QMetaObject::invokeMethod(root, "loadQMLOnTop", Q_ARG(const QVariant&, QVariant(WEB_VIEW_SOURCE_URL)));
482+ QMetaObject::invokeMethod(root, "setShown", Q_ARG(const QVariant&, QVariant(true)));
483+ QMetaObject::invokeMethod(root, "loadWebOnTop", Q_ARG(const QVariant&, QVariant(url)), Q_ARG(const QVariant&, QVariant(injectJavaScriptUrl)));
484+ }
485+ _state = State::Web;
486+}
487+
436488 void TabletProxy::gotoWebScreen(const QString& url, const QString& injectedJavaScriptUrl) {
437489
438490 QObject* root = nullptr;