From c99f897db1eb1ecd098ee03e95369b2417f88206 Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Wed, 4 Jan 2017 23:47:18 +0000 Subject: [PATCH] first commit --- .../src/TabletScriptingInterface.cpp | 17 +++++++++++++++++ .../src/TabletScriptingInterface.h | 3 +++ scripts/system/libraries/WebTablet.js | 2 +- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/libraries/script-engine/src/TabletScriptingInterface.cpp b/libraries/script-engine/src/TabletScriptingInterface.cpp index 056d946482..3b5c292f26 100644 --- a/libraries/script-engine/src/TabletScriptingInterface.cpp +++ b/libraries/script-engine/src/TabletScriptingInterface.cpp @@ -14,6 +14,8 @@ #include #include #include "ScriptEngineLogging.h" +#include "DependencyManager.h" +#include "OffscreenUi.h" TabletScriptingInterface::TabletScriptingInterface() { qmlRegisterType("Hifi", 1, 0, "SoundEffect"); @@ -56,6 +58,7 @@ void TabletScriptingInterface::setQmlTabletRoot(QString tabletId, QQuickItem* qm static const char* TABLET_SOURCE_URL = "Tablet.qml"; static const char* WEB_VIEW_SOURCE_URL = "TabletWebView.qml"; static const char* LOADER_SOURCE_PROPERTY_NAME = "LoaderSource"; +static const char* VRMENU_SOURCE_URL = "VrMenuView.qml"; TabletProxy::TabletProxy(QString name) : _name(name) { ; @@ -95,6 +98,16 @@ void TabletProxy::setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscr } } +void TabletProxy::gotoMenuScreen() { + if (_qmlTabletRoot) { + _qmlTabletRoot->setProperty(LOADER_SOURCE_PROPERTY_NAME, TABLET_SOURCE_URL); + auto loader = _qmlTabletRoot->findChild("loader"); + auto offscreenUi = DependencyManager::get(); + auto rootMenu = offscreenUi->getRootMenu(); + QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, QVariant(VRMENU_SOURCE_URL))); + } +} + void TabletProxy::gotoHomeScreen() { if (_qmlTabletRoot) { QString tabletSource = _qmlTabletRoot->property(LOADER_SOURCE_PROPERTY_NAME).toString(); @@ -186,6 +199,10 @@ void TabletProxy::addButtonsToHomeScreen() { QObject::disconnect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToHomeScreen())); } +void TabletProxy::addButtonsToMenuScreen() { + +} + void TabletProxy::removeButtonsFromHomeScreen() { auto tabletScriptingInterface = DependencyManager::get(); for (auto& buttonProxy : _tabletButtonProxies) { diff --git a/libraries/script-engine/src/TabletScriptingInterface.h b/libraries/script-engine/src/TabletScriptingInterface.h index 43750e2519..f49c9ea498 100644 --- a/libraries/script-engine/src/TabletScriptingInterface.h +++ b/libraries/script-engine/src/TabletScriptingInterface.h @@ -65,6 +65,8 @@ public: void setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscreenSurface); + Q_INVOKABLE void gotoMenuScreen(); + /**jsdoc * transition to the home screen * @function TabletProxy#gotoHomeScreen @@ -120,6 +122,7 @@ signals: private slots: void addButtonsToHomeScreen(); + void addButtonsToMenuScreen(); protected: void removeButtonsFromHomeScreen(); QQuickItem* getQmlTablet() const; diff --git a/scripts/system/libraries/WebTablet.js b/scripts/system/libraries/WebTablet.js index beb54ae3fa..12f655554e 100644 --- a/scripts/system/libraries/WebTablet.js +++ b/scripts/system/libraries/WebTablet.js @@ -118,7 +118,7 @@ WebTablet = function (url, width, dpi, hand, clientOnly) { _this.clicked = true; } var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); - tablet.gotoHomeScreen(); + tablet.gotoMenuScreen(); } };