From d1470d3323f0b4cca78b61aaeb3291bdec37cea1 Mon Sep 17 00:00:00 2001
From: Preston Bezos <preston@highfidelity.io>
Date: Fri, 28 Jun 2019 14:33:03 -0700
Subject: [PATCH] readded ctrl+n and ctrl+b as shortcuts with a default script

---
 .../scripting/WindowScriptingInterface.cpp    | 10 ++++++
 .../src/scripting/WindowScriptingInterface.h  |  6 ++++
 scripts/defaultScripts.js                     |  3 +-
 .../keyboardShortcuts/keyboardShortcuts.js    | 32 +++++++++++++++++++
 4 files changed, 50 insertions(+), 1 deletion(-)
 create mode 100644 scripts/system/keyboardShortcuts/keyboardShortcuts.js

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>();
+    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