diff --git a/interface/src/scripting/WindowScriptingInterface.cpp b/interface/src/scripting/WindowScriptingInterface.cpp index eb967dde89..80c0479bd7 100644 --- a/interface/src/scripting/WindowScriptingInterface.cpp +++ b/interface/src/scripting/WindowScriptingInterface.cpp @@ -638,3 +638,13 @@ void WindowScriptingInterface::setActiveDisplayPlugin(int index) { auto name = PluginManager::getInstance()->getDisplayPlugins().at(index)->getName(); qApp->setActiveDisplayPlugin(name); } + +void WindowScriptingInterface::openWebBrowser() { + if (QThread::currentThread() != thread()) { + QMetaObject::invokeMethod(this, "openWebBrowser", Qt::QueuedConnection); + return; + } + + auto offscreenUi = DependencyManager::get(); + offscreenUi->load("Browser.qml"); +} diff --git a/interface/src/scripting/WindowScriptingInterface.h b/interface/src/scripting/WindowScriptingInterface.h index 0c2b494b0b..d05145acb2 100644 --- a/interface/src/scripting/WindowScriptingInterface.h +++ b/interface/src/scripting/WindowScriptingInterface.h @@ -608,6 +608,12 @@ public slots: */ void setActiveDisplayPlugin(int index); + /**jsdoc + * Opens `Browser.qml` in a pop-up window. + * @function Window.openWebBrowser + */ + void openWebBrowser(); + private slots: void onWindowGeometryChanged(const QRect& geometry); diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js index e392680df9..24b62b6653 100644 --- a/scripts/defaultScripts.js +++ b/scripts/defaultScripts.js @@ -33,7 +33,8 @@ var DEFAULT_SCRIPTS_COMBINED = [ "system/tablet-ui/tabletUI.js", "system/emote.js", "system/miniTablet.js", - "system/audioMuteOverlay.js" + "system/audioMuteOverlay.js", + "system/keyboardShortcuts/keyboardShortcuts.js" ]; var DEFAULT_SCRIPTS_SEPARATE = [ "system/controllers/controllerScripts.js", diff --git a/scripts/system/keyboardShortcuts/keyboardShortcuts.js b/scripts/system/keyboardShortcuts/keyboardShortcuts.js new file mode 100644 index 0000000000..9cab11ef42 --- /dev/null +++ b/scripts/system/keyboardShortcuts/keyboardShortcuts.js @@ -0,0 +1,32 @@ +"use strict"; + +// +// keyboardShortcuts.js +// scripts/system/keyboardShortcuts +// +// Created by Preston Bezos on 06/28/2019 +// Copyright 2019 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +(function () { // BEGIN LOCAL_SCOPE + function keyPressEvent(event) { + if (event.text.toUpperCase() === "B" && event.isControl) { + console.log("TEST B"); + Window.openWebBrowser(); + } + + else if (event.text.toUpperCase() === "N" && event.isControl) { + Users.toggleIgnoreRadius(); + } + } + + function scriptEnding() { + Controller.keyPressEvent.disconnect(keyPressEvent); + } + + Controller.keyPressEvent.connect(keyPressEvent); + Script.scriptEnding.connect(scriptEnding); +}()); // END LOCAL_SCOPE