Showing the changes to libraries/script-engine/src/TabletScriptingInterface.cpp (1 of 5 files). Show all
Unified · Split
| @@ -349,6 +349,38 @@ void TabletProxy::gotoMenuScreen(const QString& submenu) { · 348 unmodified lines | ||
| 349 | 349 | } |
| 350 | 350 | } |
| 351 | 351 | |
| 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 | + | |
| 352 | 384 | void TabletProxy::loadQMLSource(const QVariant& path) { |
| 353 | 385 | |
| 354 | 386 | QObject* root = nullptr; |
| @@ -433,6 +465,26 @@ void TabletProxy::gotoWebScreen(const QString& url) { · 78 unmodified lines | ||
| 433 | 465 | gotoWebScreen(url, ""); |
| 434 | 466 | } |
| 435 | 467 | |
| 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 | + | |
| 436 | 488 | void TabletProxy::gotoWebScreen(const QString& url, const QString& injectedJavaScriptUrl) { |
| 437 | 489 | |
| 438 | 490 | QObject* root = nullptr; |