From 621e3fc00037b9ed2e8201d0417b6d451220cab0 Mon Sep 17 00:00:00 2001 From: David Kelly Date: Fri, 30 Sep 2016 09:06:17 -0700 Subject: [PATCH] Expose triggerOption to scripts, plus _physicsEnabled Now any menu item can be triggered. Plus you can do a Window.isPhysicsEnabled to detect when we are done loading assets and such. Whee! --- interface/src/scripting/MenuScriptingInterface.cpp | 5 +++++ interface/src/scripting/MenuScriptingInterface.h | 2 ++ interface/src/scripting/WindowScriptingInterface.cpp | 4 ++++ interface/src/scripting/WindowScriptingInterface.h | 1 + libraries/ui/src/ui/Menu.h | 3 ++- 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/interface/src/scripting/MenuScriptingInterface.cpp b/interface/src/scripting/MenuScriptingInterface.cpp index 7eb80b5946..2fa7470561 100644 --- a/interface/src/scripting/MenuScriptingInterface.cpp +++ b/interface/src/scripting/MenuScriptingInterface.cpp @@ -125,3 +125,8 @@ void MenuScriptingInterface::setIsOptionChecked(const QString& menuOption, bool Q_ARG(const QString&, menuOption), Q_ARG(bool, isChecked)); } + +void MenuScriptingInterface::triggerOption(const QString& menuOption) { + QMetaObject::invokeMethod(Menu::getInstance(), "triggerOption", Q_ARG(const QString&, menuOption)); +} + diff --git a/interface/src/scripting/MenuScriptingInterface.h b/interface/src/scripting/MenuScriptingInterface.h index 03ff4b512a..5b8a437529 100644 --- a/interface/src/scripting/MenuScriptingInterface.h +++ b/interface/src/scripting/MenuScriptingInterface.h @@ -48,6 +48,8 @@ public slots: bool isOptionChecked(const QString& menuOption); void setIsOptionChecked(const QString& menuOption, bool isChecked); + + void triggerOption(const QString& menuOption); signals: void menuItemEvent(const QString& menuItem); diff --git a/interface/src/scripting/WindowScriptingInterface.cpp b/interface/src/scripting/WindowScriptingInterface.cpp index c528c26b99..0f9dd698fd 100644 --- a/interface/src/scripting/WindowScriptingInterface.cpp +++ b/interface/src/scripting/WindowScriptingInterface.cpp @@ -206,3 +206,7 @@ void WindowScriptingInterface::takeSnapshot(bool notify, float aspectRatio) { void WindowScriptingInterface::shareSnapshot(const QString& path) { qApp->shareSnapshot(path); } + +bool WindowScriptingInterface::isPhysicsEnabled() { + return qApp->isPhysicsEnabled(); +} diff --git a/interface/src/scripting/WindowScriptingInterface.h b/interface/src/scripting/WindowScriptingInterface.h index 9303636a1f..f4a89ae221 100644 --- a/interface/src/scripting/WindowScriptingInterface.h +++ b/interface/src/scripting/WindowScriptingInterface.h @@ -54,6 +54,7 @@ public slots: void copyToClipboard(const QString& text); void takeSnapshot(bool notify = true, float aspectRatio = 0.0f); void shareSnapshot(const QString& path); + bool isPhysicsEnabled(); signals: void domainChanged(const QString& domainHostname); diff --git a/libraries/ui/src/ui/Menu.h b/libraries/ui/src/ui/Menu.h index 895e40fe68..ee60a031c3 100644 --- a/libraries/ui/src/ui/Menu.h +++ b/libraries/ui/src/ui/Menu.h @@ -62,7 +62,6 @@ public: MenuWrapper* getMenu(const QString& menuName); MenuWrapper* getSubMenuFromName(const QString& menuName, MenuWrapper* menu); - void triggerOption(const QString& menuOption); QAction* getActionForOption(const QString& menuOption); QAction* addActionToQMenuAndActionHash(MenuWrapper* destinationMenu, @@ -112,6 +111,8 @@ public slots: void toggleDeveloperMenus(); void toggleAdvancedMenus(); + + void triggerOption(const QString& menuOption); static bool isSomeSubmenuShown() { return _isSomeSubmenuShown; }