mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 10:47:11 +02:00
Merge pull request #13904 from alexiamandeville/menu-updates
Resorting Developer menu organization
This commit is contained in:
commit
b9f8c59f61
2 changed files with 65 additions and 52 deletions
|
@ -274,14 +274,70 @@ Menu::Menu() {
|
||||||
// Developer menu ----------------------------------
|
// Developer menu ----------------------------------
|
||||||
MenuWrapper* developerMenu = addMenu("Developer", "Developer");
|
MenuWrapper* developerMenu = addMenu("Developer", "Developer");
|
||||||
|
|
||||||
|
// Developer > Scripting >>>
|
||||||
|
MenuWrapper* scriptingOptionsMenu = developerMenu->addMenu("Scripting");
|
||||||
|
|
||||||
|
// Developer > Scripting > Console...
|
||||||
|
addActionToQMenuAndActionHash(scriptingOptionsMenu, MenuOption::Console, Qt::CTRL | Qt::ALT | Qt::Key_J,
|
||||||
|
DependencyManager::get<StandAloneJSConsole>().data(),
|
||||||
|
SLOT(toggleConsole()),
|
||||||
|
QAction::NoRole,
|
||||||
|
UNSPECIFIED_POSITION);
|
||||||
|
|
||||||
|
// Developer > Scripting > API Debugger
|
||||||
|
action = addActionToQMenuAndActionHash(scriptingOptionsMenu, "API Debugger");
|
||||||
|
connect(action, &QAction::triggered, [] {
|
||||||
|
QUrl defaultScriptsLoc = PathUtils::defaultScriptsLocation();
|
||||||
|
defaultScriptsLoc.setPath(defaultScriptsLoc.path() + "developer/utilities/tools/currentAPI.js");
|
||||||
|
DependencyManager::get<ScriptEngines>()->loadScript(defaultScriptsLoc.toString());
|
||||||
|
});
|
||||||
|
|
||||||
|
// Developer > Scripting > Entity Script Server Log
|
||||||
|
auto essLogAction = addActionToQMenuAndActionHash(scriptingOptionsMenu, MenuOption::EntityScriptServerLog, 0,
|
||||||
|
qApp, SLOT(toggleEntityScriptServerLogDialog()));
|
||||||
|
{
|
||||||
|
auto nodeList = DependencyManager::get<NodeList>();
|
||||||
|
QObject::connect(nodeList.data(), &NodeList::canRezChanged, essLogAction, [essLogAction] {
|
||||||
|
auto nodeList = DependencyManager::get<NodeList>();
|
||||||
|
essLogAction->setEnabled(nodeList->getThisNodeCanRez());
|
||||||
|
});
|
||||||
|
essLogAction->setEnabled(nodeList->getThisNodeCanRez());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Developer > Scripting > Script Log (HMD friendly)...
|
||||||
|
addActionToQMenuAndActionHash(scriptingOptionsMenu, "Script Log (HMD friendly)...", Qt::NoButton,
|
||||||
|
qApp, SLOT(showScriptLogs()));
|
||||||
|
|
||||||
|
// Developer > Scripting > Verbose Logging
|
||||||
|
addCheckableActionToQMenuAndActionHash(scriptingOptionsMenu, MenuOption::VerboseLogging, 0, false,
|
||||||
|
qApp, SLOT(updateVerboseLogging()));
|
||||||
|
|
||||||
|
// Developer > Scripting > Enable Speech Control API
|
||||||
|
#if defined(Q_OS_MAC) || defined(Q_OS_WIN)
|
||||||
|
auto speechRecognizer = DependencyManager::get<SpeechRecognizer>();
|
||||||
|
QAction* speechRecognizerAction = addCheckableActionToQMenuAndActionHash(scriptingOptionsMenu, MenuOption::ControlWithSpeech,
|
||||||
|
Qt::CTRL | Qt::SHIFT | Qt::Key_C,
|
||||||
|
speechRecognizer->getEnabled(),
|
||||||
|
speechRecognizer.data(),
|
||||||
|
SLOT(setEnabled(bool)),
|
||||||
|
UNSPECIFIED_POSITION);
|
||||||
|
connect(speechRecognizer.data(), SIGNAL(enabledUpdated(bool)), speechRecognizerAction, SLOT(setChecked(bool)));
|
||||||
|
#endif
|
||||||
|
|
||||||
// Developer > UI >>>
|
// Developer > UI >>>
|
||||||
MenuWrapper* uiOptionsMenu = developerMenu->addMenu("UI");
|
MenuWrapper* uiOptionsMenu = developerMenu->addMenu("UI");
|
||||||
action = addCheckableActionToQMenuAndActionHash(uiOptionsMenu, MenuOption::DesktopTabletToToolbar, 0,
|
action = addCheckableActionToQMenuAndActionHash(uiOptionsMenu, MenuOption::DesktopTabletToToolbar, 0,
|
||||||
qApp->getDesktopTabletBecomesToolbarSetting());
|
qApp->getDesktopTabletBecomesToolbarSetting());
|
||||||
|
|
||||||
|
// Developer > UI > Show Overlays
|
||||||
|
addCheckableActionToQMenuAndActionHash(uiOptionsMenu, MenuOption::Overlays, 0, true);
|
||||||
|
|
||||||
|
// Developer > UI > Desktop Tablet Becomes Toolbar
|
||||||
connect(action, &QAction::triggered, [action] {
|
connect(action, &QAction::triggered, [action] {
|
||||||
qApp->setDesktopTabletBecomesToolbarSetting(action->isChecked());
|
qApp->setDesktopTabletBecomesToolbarSetting(action->isChecked());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Developer > UI > HMD Tablet Becomes Toolbar
|
||||||
action = addCheckableActionToQMenuAndActionHash(uiOptionsMenu, MenuOption::HMDTabletToToolbar, 0,
|
action = addCheckableActionToQMenuAndActionHash(uiOptionsMenu, MenuOption::HMDTabletToToolbar, 0,
|
||||||
qApp->getHmdTabletBecomesToolbarSetting());
|
qApp->getHmdTabletBecomesToolbarSetting());
|
||||||
connect(action, &QAction::triggered, [action] {
|
connect(action, &QAction::triggered, [action] {
|
||||||
|
@ -684,11 +740,12 @@ Menu::Menu() {
|
||||||
addCheckableActionToQMenuAndActionHash(pickingOptionsMenu, MenuOption::ForceCoarsePicking, 0, false,
|
addCheckableActionToQMenuAndActionHash(pickingOptionsMenu, MenuOption::ForceCoarsePicking, 0, false,
|
||||||
DependencyManager::get<PickManager>().data(), SLOT(setForceCoarsePicking(bool)));
|
DependencyManager::get<PickManager>().data(), SLOT(setForceCoarsePicking(bool)));
|
||||||
|
|
||||||
// Developer > Display Crash Options
|
|
||||||
addCheckableActionToQMenuAndActionHash(developerMenu, MenuOption::DisplayCrashOptions, 0, true);
|
|
||||||
// Developer > Crash >>>
|
// Developer > Crash >>>
|
||||||
MenuWrapper* crashMenu = developerMenu->addMenu("Crash");
|
MenuWrapper* crashMenu = developerMenu->addMenu("Crash");
|
||||||
|
|
||||||
|
// Developer > Crash > Display Crash Options
|
||||||
|
addCheckableActionToQMenuAndActionHash(crashMenu, MenuOption::DisplayCrashOptions, 0, true);
|
||||||
|
|
||||||
addActionToQMenuAndActionHash(crashMenu, MenuOption::DeadlockInterface, 0, qApp, SLOT(deadlockApplication()));
|
addActionToQMenuAndActionHash(crashMenu, MenuOption::DeadlockInterface, 0, qApp, SLOT(deadlockApplication()));
|
||||||
addActionToQMenuAndActionHash(crashMenu, MenuOption::UnresponsiveInterface, 0, qApp, SLOT(unresponsiveApplication()));
|
addActionToQMenuAndActionHash(crashMenu, MenuOption::UnresponsiveInterface, 0, qApp, SLOT(unresponsiveApplication()));
|
||||||
|
|
||||||
|
@ -722,59 +779,15 @@ Menu::Menu() {
|
||||||
action = addActionToQMenuAndActionHash(crashMenu, MenuOption::CrashNewFaultThreaded);
|
action = addActionToQMenuAndActionHash(crashMenu, MenuOption::CrashNewFaultThreaded);
|
||||||
connect(action, &QAction::triggered, qApp, []() { std::thread(crash::newFault).join(); });
|
connect(action, &QAction::triggered, qApp, []() { std::thread(crash::newFault).join(); });
|
||||||
|
|
||||||
// Developer > Stats
|
// Developer > Show Statistics
|
||||||
addCheckableActionToQMenuAndActionHash(developerMenu, MenuOption::Stats);
|
addCheckableActionToQMenuAndActionHash(developerMenu, MenuOption::Stats);
|
||||||
|
|
||||||
|
// Developer > Show Animation Statistics
|
||||||
addCheckableActionToQMenuAndActionHash(developerMenu, MenuOption::AnimStats);
|
addCheckableActionToQMenuAndActionHash(developerMenu, MenuOption::AnimStats);
|
||||||
|
|
||||||
// Settings > Enable Speech Control API
|
// Developer > Log
|
||||||
#if defined(Q_OS_MAC) || defined(Q_OS_WIN)
|
|
||||||
auto speechRecognizer = DependencyManager::get<SpeechRecognizer>();
|
|
||||||
QAction* speechRecognizerAction = addCheckableActionToQMenuAndActionHash(developerMenu, MenuOption::ControlWithSpeech,
|
|
||||||
Qt::CTRL | Qt::SHIFT | Qt::Key_C,
|
|
||||||
speechRecognizer->getEnabled(),
|
|
||||||
speechRecognizer.data(),
|
|
||||||
SLOT(setEnabled(bool)),
|
|
||||||
UNSPECIFIED_POSITION);
|
|
||||||
connect(speechRecognizer.data(), SIGNAL(enabledUpdated(bool)), speechRecognizerAction, SLOT(setChecked(bool)));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// console
|
|
||||||
addActionToQMenuAndActionHash(developerMenu, MenuOption::Console, Qt::CTRL | Qt::ALT | Qt::Key_J,
|
|
||||||
DependencyManager::get<StandAloneJSConsole>().data(),
|
|
||||||
SLOT(toggleConsole()),
|
|
||||||
QAction::NoRole,
|
|
||||||
UNSPECIFIED_POSITION);
|
|
||||||
|
|
||||||
// Developer > API Debugger
|
|
||||||
action = addActionToQMenuAndActionHash(developerMenu, "API Debugger");
|
|
||||||
connect(action, &QAction::triggered, [] {
|
|
||||||
QUrl defaultScriptsLoc = PathUtils::defaultScriptsLocation();
|
|
||||||
defaultScriptsLoc.setPath(defaultScriptsLoc.path() + "developer/utilities/tools/currentAPI.js");
|
|
||||||
DependencyManager::get<ScriptEngines>()->loadScript(defaultScriptsLoc.toString());
|
|
||||||
});
|
|
||||||
|
|
||||||
// Developer > Log...
|
|
||||||
addActionToQMenuAndActionHash(developerMenu, MenuOption::Log, Qt::CTRL | Qt::SHIFT | Qt::Key_L,
|
addActionToQMenuAndActionHash(developerMenu, MenuOption::Log, Qt::CTRL | Qt::SHIFT | Qt::Key_L,
|
||||||
qApp, SLOT(toggleLogDialog()));
|
qApp, SLOT(toggleLogDialog()));
|
||||||
auto essLogAction = addActionToQMenuAndActionHash(developerMenu, MenuOption::EntityScriptServerLog, 0,
|
|
||||||
qApp, SLOT(toggleEntityScriptServerLogDialog()));
|
|
||||||
{
|
|
||||||
auto nodeList = DependencyManager::get<NodeList>();
|
|
||||||
QObject::connect(nodeList.data(), &NodeList::canRezChanged, essLogAction, [essLogAction] {
|
|
||||||
auto nodeList = DependencyManager::get<NodeList>();
|
|
||||||
essLogAction->setEnabled(nodeList->getThisNodeCanRez());
|
|
||||||
});
|
|
||||||
essLogAction->setEnabled(nodeList->getThisNodeCanRez());
|
|
||||||
}
|
|
||||||
|
|
||||||
addActionToQMenuAndActionHash(developerMenu, "Script Log (HMD friendly)...", Qt::NoButton,
|
|
||||||
qApp, SLOT(showScriptLogs()));
|
|
||||||
|
|
||||||
addCheckableActionToQMenuAndActionHash(developerMenu, MenuOption::VerboseLogging, 0, false,
|
|
||||||
qApp, SLOT(updateVerboseLogging()));
|
|
||||||
|
|
||||||
// Developer > Show Overlays
|
|
||||||
addCheckableActionToQMenuAndActionHash(developerMenu, MenuOption::Overlays, 0, true);
|
|
||||||
|
|
||||||
#if 0 /// -------------- REMOVED FOR NOW --------------
|
#if 0 /// -------------- REMOVED FOR NOW --------------
|
||||||
addDisabledActionAndSeparator(navigateMenu, "History");
|
addDisabledActionAndSeparator(navigateMenu, "History");
|
||||||
|
|
|
@ -45,7 +45,7 @@ if (Window.interstitialModeEnabled) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// add a menu item for debugging
|
// add a menu item for debugging
|
||||||
var MENU_CATEGORY = "Developer";
|
var MENU_CATEGORY = "Developer > Scripting";
|
||||||
var MENU_ITEM = "Debug defaultScripts.js";
|
var MENU_ITEM = "Debug defaultScripts.js";
|
||||||
|
|
||||||
var SETTINGS_KEY = '_debugDefaultScriptsIsChecked';
|
var SETTINGS_KEY = '_debugDefaultScriptsIsChecked';
|
||||||
|
|
Loading…
Reference in a new issue