Showing the changes to libraries/script-engine/src/TabletScriptingInterface.cpp (1 of 6 files). Show all
Unified · Split
| @@ -293,16 +293,14 @@ void TabletProxy::gotoMenuScreen(const QString& submenu) { · 292 unmodified lines | ||
| 293 | 293 | } |
| 294 | 294 | |
| 295 | 295 | if (root) { |
| 296 | − if (_state != State::Menu) { | |
| 297 | − removeButtonsFromHomeScreen(); | |
| 298 | − QMetaObject::invokeMethod(root, "setOption", Q_ARG(const QVariant&, QVariant(submenu))); | |
| 299 | − auto loader = root->findChild<QQuickItem*>("loader"); | |
| 300 | − QObject::connect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToMenuScreen()), Qt::DirectConnection); | |
| 301 | − QMetaObject::invokeMethod(root, "loadSource", Q_ARG(const QVariant&, QVariant(VRMENU_SOURCE_URL))); | |
| 302 | − _state = State::Menu; | |
| 303 | − emit screenChanged(QVariant("Menu"), QVariant(VRMENU_SOURCE_URL)); | |
| 304 | − QMetaObject::invokeMethod(root, "setShown", Q_ARG(const QVariant&, QVariant(true))); | |
| 305 | − } | |
| 296 | + removeButtonsFromHomeScreen(); | |
| 297 | + auto offscreenUi = DependencyManager::get<OffscreenUi>(); | |
| 298 | + QObject* menu = offscreenUi->getRootMenu(); | |
| 299 | + QMetaObject::invokeMethod(root, "setMenuProperties", Q_ARG(QVariant, QVariant::fromValue(menu)), Q_ARG(const QVariant&, QVariant(submenu))); | |
| 300 | + QMetaObject::invokeMethod(root, "loadSource", Q_ARG(const QVariant&, QVariant(VRMENU_SOURCE_URL))); | |
| 301 | + _state = State::Menu; | |
| 302 | + emit screenChanged(QVariant("Menu"), QVariant(VRMENU_SOURCE_URL)); | |
| 303 | + QMetaObject::invokeMethod(root, "setShown", Q_ARG(const QVariant&, QVariant(true))); | |
| 306 | 304 | } |
| 307 | 305 | } |
| 308 | 306 | |
| @@ -484,33 +482,6 @@ QObject* TabletProxy::getTabletSurface() { · 175 unmodified lines | ||
| 484 | 482 | return _qmlOffscreenSurface; |
| 485 | 483 | } |
| 486 | 484 | |
| 487 | −void TabletProxy::addButtonsToMenuScreen() { | |
| 488 | − QObject* root = nullptr; | |
| 489 | − if (!_toolbarMode && _qmlTabletRoot) { | |
| 490 | − root = _qmlTabletRoot; | |
| 491 | − } else if (_toolbarMode && _desktopWindow) { | |
| 492 | − root = _desktopWindow->asQuickItem(); | |
| 493 | − } | |
| 494 | − | |
| 495 | − if (!root) { | |
| 496 | − return; | |
| 497 | − } | |
| 498 | − | |
| 499 | − auto loader = root->findChild<QQuickItem*>("loader"); | |
| 500 | − if (!loader) { | |
| 501 | − return; | |
| 502 | − } | |
| 503 | − | |
| 504 | − QQuickItem* VrMenu = loader->findChild<QQuickItem*>("tabletMenu"); | |
| 505 | − if (VrMenu) { | |
| 506 | − auto offscreenUi = DependencyManager::get<OffscreenUi>(); | |
| 507 | − QObject* menu = offscreenUi->getRootMenu(); | |
| 508 | − QMetaObject::invokeMethod(VrMenu, "setRootMenu", Qt::AutoConnection, Q_ARG(QVariant, QVariant::fromValue(menu))); | |
| 509 | − } | |
| 510 | − | |
| 511 | − QObject::disconnect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToMenuScreen())); | |
| 512 | −} | |
| 513 | − | |
| 514 | 485 | void TabletProxy::removeButtonsFromHomeScreen() { |
| 515 | 486 | auto tablet = getQmlTablet(); |
| 516 | 487 | for (auto& buttonProxy : _tabletButtonProxies) { |