From 30b57b62da05ecda410206d3ebaadf0a325a9273 Mon Sep 17 00:00:00 2001 From: Dante Ruiz <dante@highfidelity.io> Date: Thu, 19 Jan 2017 01:32:51 +0000 Subject: [PATCH] toggle help --- interface/src/scripting/MenuScriptingInterface.cpp | 4 ++++ interface/src/scripting/MenuScriptingInterface.h | 2 ++ libraries/ui/src/ui/Menu.cpp | 5 +++++ libraries/ui/src/ui/Menu.h | 2 ++ scripts/system/help.js | 14 ++++++++++++-- 5 files changed, 25 insertions(+), 2 deletions(-) diff --git a/interface/src/scripting/MenuScriptingInterface.cpp b/interface/src/scripting/MenuScriptingInterface.cpp index df75d331d6..06f0f4acb5 100644 --- a/interface/src/scripting/MenuScriptingInterface.cpp +++ b/interface/src/scripting/MenuScriptingInterface.cpp @@ -147,3 +147,7 @@ void MenuScriptingInterface::triggerOption(const QString& menuOption) { QMetaObject::invokeMethod(Menu::getInstance(), "triggerOption", Q_ARG(const QString&, menuOption)); } +void MenuScriptingInterface::closeInfoView(const QString& path) { + QMetaObject::invokeMethod(Menu::getInstance(), "closeInfoView", Q_ARG(const QString&, path)); +} + diff --git a/interface/src/scripting/MenuScriptingInterface.h b/interface/src/scripting/MenuScriptingInterface.h index b1c389f733..b1b4a75366 100644 --- a/interface/src/scripting/MenuScriptingInterface.h +++ b/interface/src/scripting/MenuScriptingInterface.h @@ -182,6 +182,8 @@ public slots: */ void setMenuEnabled(const QString& menuName, bool isEnabled); + void closeInfoView(const QString& path); + signals: /**jsdoc * This is a signal that is emitted when a menu item is clicked. diff --git a/libraries/ui/src/ui/Menu.cpp b/libraries/ui/src/ui/Menu.cpp index ba24adfc3f..364268830b 100644 --- a/libraries/ui/src/ui/Menu.cpp +++ b/libraries/ui/src/ui/Menu.cpp @@ -256,6 +256,11 @@ bool Menu::isOptionChecked(const QString& menuOption) const { return false; } +void Menu::closeInfoView(const QString& path) { + auto offscreenUi = DependencyManager::get<OffscreenUi>(); + offscreenUi->hide(path); +} + void Menu::triggerOption(const QString& menuOption) { QAction* action = _actionHash.value(menuOption); if (action) { diff --git a/libraries/ui/src/ui/Menu.h b/libraries/ui/src/ui/Menu.h index 2711fc5921..32e916816e 100644 --- a/libraries/ui/src/ui/Menu.h +++ b/libraries/ui/src/ui/Menu.h @@ -114,6 +114,8 @@ public slots: void toggleDeveloperMenus(); void toggleAdvancedMenus(); + + void closeInfoView(const QString& path); void triggerOption(const QString& menuOption); diff --git a/scripts/system/help.js b/scripts/system/help.js index 23a162d767..1b6501c963 100644 --- a/scripts/system/help.js +++ b/scripts/system/help.js @@ -19,7 +19,7 @@ icon: "icons/tablet-icons/help-i.svg", text: "HELP" }); - + var enabled = false; function onClicked() { var HELP_URL = Script.resourcesPath() + "html/help.html"; @@ -38,7 +38,17 @@ defaultTab = "gamepad"; } var queryParameters = "handControllerName=" + handControllerName + "&defaultTab=" + defaultTab; - Menu.triggerOption('Help...'); + print("Help enabled " + Menu.isMenuEnabled("Help...")) + + if (enabled) { + Menu.closeInfoView('InfoView_html/help.html'); + enabled = !enabled; + button.editProperties({isActive: enabled}); + } else { + Menu.triggerOption('Help...'); + enabled = !enabled; + button.editProperties({isActive: enabled}); + } } button.clicked.connect(onClicked);