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 | if (root) { | 295 | if (root) { |
| 296 | if (_state != State::Menu) { | 296 | removeButtonsFromHomeScreen(); |
| 297 | removeButtonsFromHomeScreen(); | 297 | auto offscreenUi = DependencyManager::get<OffscreenUi>(); |
| 298 | QMetaObject::invokeMethod(root, "setOption", Q_ARG(const QVariant&, QVariant(submenu))); | 298 | QObject* menu = offscreenUi->getRootMenu(); |
| 299 | auto loader = root->findChild<QQuickItem*>("loader"); | 299 | QMetaObject::invokeMethod(root, "setMenuProperties", Q_ARG(QVariant, QVariant::fromValue(menu)), Q_ARG(const QVariant&, QVariant(submenu))); |
| 300 | QObject::connect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToMenuScreen()), Qt::DirectConnection); | 300 | QMetaObject::invokeMethod(root, "loadSource", Q_ARG(const QVariant&, QVariant(VRMENU_SOURCE_URL))); |
| 301 | QMetaObject::invokeMethod(root, "loadSource", Q_ARG(const QVariant&, QVariant(VRMENU_SOURCE_URL))); | 301 | _state = State::Menu; |
| 302 | _state = State::Menu; | 302 | emit screenChanged(QVariant("Menu"), QVariant(VRMENU_SOURCE_URL)); |
| 303 | emit screenChanged(QVariant("Menu"), QVariant(VRMENU_SOURCE_URL)); | 303 | QMetaObject::invokeMethod(root, "setShown", Q_ARG(const QVariant&, QVariant(true))); |
| 304 | QMetaObject::invokeMethod(root, "setShown", Q_ARG(const QVariant&, QVariant(true))); | ||
| 305 | } | ||
| 306 | } | 304 | } |
| 307 | } | 305 | } |
| 308 | 306 | ||
| @@ -484,33 +482,6 @@ QObject* TabletProxy::getTabletSurface() { · 175 unmodified lines | |||
| 484 | return _qmlOffscreenSurface; | 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 | void TabletProxy::removeButtonsFromHomeScreen() { | 485 | void TabletProxy::removeButtonsFromHomeScreen() { |
| 515 | auto tablet = getQmlTablet(); | 486 | auto tablet = getQmlTablet(); |
| 516 | for (auto& buttonProxy : _tabletButtonProxies) { | 487 | for (auto& buttonProxy : _tabletButtonProxies) { |