From b50e20c5457151368b7ead81bf44ce678de9dbe2 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Wed, 8 Feb 2017 00:01:48 +0000
Subject: [PATCH 001/247] general function to load QML for javascript for
 tablet

---
 libraries/script-engine/src/TabletScriptingInterface.cpp | 8 ++++++++
 libraries/script-engine/src/TabletScriptingInterface.h   | 4 +++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/libraries/script-engine/src/TabletScriptingInterface.cpp b/libraries/script-engine/src/TabletScriptingInterface.cpp
index 2414ec469f..e7f8ebe2cb 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.cpp
+++ b/libraries/script-engine/src/TabletScriptingInterface.cpp
@@ -212,6 +212,14 @@ void TabletProxy::gotoMenuScreen() {
     }
 }
 
+void TabletProxy::loadQMLSource(const QVariant& path) {
+    if (_qmlTabletRoot) {
+        if (_state != State::QML) {
+            QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, path));
+            _state = State::QML;
+        }
+    }
+}
 void TabletProxy::gotoHomeScreen() {
     if (_qmlTabletRoot) {
         if (_state != State::Home) {
diff --git a/libraries/script-engine/src/TabletScriptingInterface.h b/libraries/script-engine/src/TabletScriptingInterface.h
index 4fe2c44c10..a005152fa9 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.h
+++ b/libraries/script-engine/src/TabletScriptingInterface.h
@@ -89,6 +89,8 @@ public:
     Q_INVOKABLE void gotoWebScreen(const QString& url);
     Q_INVOKABLE void gotoWebScreen(const QString& url, const QString& injectedJavaScriptUrl);
 
+    Q_INVOKABLE void loadQMLSource(const QVariant& path);
+
     /**jsdoc
      * Creates a new button, adds it to this and returns it.
      * @function TabletProxy#addButton
@@ -149,7 +151,7 @@ protected:
     QQuickItem* _qmlTabletRoot { nullptr };
     QObject* _qmlOffscreenSurface { nullptr };
 
-    enum class State { Uninitialized, Home, Web, Menu };
+    enum class State { Uninitialized, Home, Web, Menu, QML };
     State _state { State::Uninitialized };
 };
 

From 4c3a6842a53c0107ae0626bdae3b5877f669aeef Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Thu, 9 Feb 2017 14:03:01 -0800
Subject: [PATCH 002/247] start on moving edit.js to tablet

---
 .../resources/html/createGlobalEventBridge.js |  4 +++
 .../qml/controls-uit/BaseWebView.qml          |  2 +-
 .../qml/hifi/tablet/TabletMouseHandler.qml    |  8 ++----
 interface/src/ui/overlays/Web3DOverlay.cpp    | 17 ++++++++++++
 interface/src/ui/overlays/Web3DOverlay.h      |  2 ++
 .../src/TabletScriptingInterface.cpp          | 12 ++++++++-
 .../src/TabletScriptingInterface.h            |  2 ++
 scripts/system/edit.js                        | 27 +++++++++++--------
 scripts/system/html/js/entityProperties.js    |  1 +
 9 files changed, 56 insertions(+), 19 deletions(-)

diff --git a/interface/resources/html/createGlobalEventBridge.js b/interface/resources/html/createGlobalEventBridge.js
index 027d6fe8db..1dd232ae0a 100644
--- a/interface/resources/html/createGlobalEventBridge.js
+++ b/interface/resources/html/createGlobalEventBridge.js
@@ -27,6 +27,10 @@ var EventBridge;
         };
     };
 
+    console.log("---");
+    console.log("CREATING GLOBAL EVENT BRIDGE");
+    console.log("---");
+
     EventBridge = new TempEventBridge();
 
     var webChannel = new QWebChannel(qt.webChannelTransport, function (channel) {
diff --git a/interface/resources/qml/controls-uit/BaseWebView.qml b/interface/resources/qml/controls-uit/BaseWebView.qml
index 763e6530fb..9c22a8ff8c 100644
--- a/interface/resources/qml/controls-uit/BaseWebView.qml
+++ b/interface/resources/qml/controls-uit/BaseWebView.qml
@@ -15,7 +15,7 @@ import HFWebEngineProfile 1.0
 WebEngineView {
     id: root
 
-    profile: desktop.browserProfile
+    // profile: desktop.browserProfile
 
     Component.onCompleted: {
         console.log("Connecting JS messaging to Hifi Logging")
diff --git a/interface/resources/qml/hifi/tablet/TabletMouseHandler.qml b/interface/resources/qml/hifi/tablet/TabletMouseHandler.qml
index 17a00eccde..f2fa5f8d75 100644
--- a/interface/resources/qml/hifi/tablet/TabletMouseHandler.qml
+++ b/interface/resources/qml/hifi/tablet/TabletMouseHandler.qml
@@ -84,14 +84,10 @@ Item {
                 topMenu.focus = true;
                 topMenu.forceActiveFocus();
                 // show current menu level on nav bar
-                if (topMenu.objectName === "") {
+                if (topMenu.objectName === "" || menuStack.length === 1) {
                     breadcrumbText.text = "Menu";
                 } else {
-                    if (menuStack.length === 1) {
-                        breadcrumbText.text = "Menu";
-                    } else {
-                        breadcrumbText.text = topMenu.objectName;
-                    }
+                    breadcrumbText.text = topMenu.objectName;
                 }
             } else {
                 breadcrumbText.text = "Menu";
diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp
index f33ef24c0d..9fc53f85e8 100644
--- a/interface/src/ui/overlays/Web3DOverlay.cpp
+++ b/interface/src/ui/overlays/Web3DOverlay.cpp
@@ -133,12 +133,29 @@ QString Web3DOverlay::pickURL() {
 
 void Web3DOverlay::loadSourceURL() {
 
+    // if (_javaScriptToInject == "") {
+    //     QString javaScriptToInject;
+    //     QFile webChannelFile(":qtwebchannel/qwebchannel.js");
+    //     QFile createGlobalEventBridgeFile(PathUtils::resourcesPath() + "/html/createGlobalEventBridge.js");
+    //     if (webChannelFile.open(QFile::ReadOnly | QFile::Text) &&
+    //         createGlobalEventBridgeFile.open(QFile::ReadOnly | QFile::Text)) {
+    //         QString webChannelStr = QTextStream(&webChannelFile).readAll();
+    //         QString createGlobalEventBridgeStr = QTextStream(&createGlobalEventBridgeFile).readAll();
+    //         // concatenate these js files
+    //         _javaScriptToInject = webChannelStr + createGlobalEventBridgeStr;
+    //     }
+    // }
+
     QUrl sourceUrl(_url);
     if (sourceUrl.scheme() == "http" || sourceUrl.scheme() == "https" ||
         _url.toLower().endsWith(".htm") || _url.toLower().endsWith(".html")) {
 
         _webSurface->setBaseUrl(QUrl::fromLocalFile(PathUtils::resourcesPath() + "/qml/"));
         _webSurface->load("Web3DOverlay.qml");
+        // _webSurface->load("Web3DOverlay.qml", [&](QQmlContext* context, QObject* obj) {
+        //     qDebug() << "Web3DOverlay::loadSourceURL -- " << _javaScriptToInject;
+        //     context->setContextProperty("eventBridgeJavaScriptToInject", QVariant(_javaScriptToInject));
+        // });
         _webSurface->resume();
         _webSurface->getRootItem()->setProperty("url", _url);
         _webSurface->getRootItem()->setProperty("scriptURL", _scriptURL);
diff --git a/interface/src/ui/overlays/Web3DOverlay.h b/interface/src/ui/overlays/Web3DOverlay.h
index 2b9686919d..2dea70cfd6 100644
--- a/interface/src/ui/overlays/Web3DOverlay.h
+++ b/interface/src/ui/overlays/Web3DOverlay.h
@@ -82,6 +82,8 @@ private:
 
     QMetaObject::Connection _emitScriptEventConnection;
     QMetaObject::Connection _webEventReceivedConnection;
+
+    // QString _javaScriptToInject;
 };
 
 #endif // hifi_Web3DOverlay_h
diff --git a/libraries/script-engine/src/TabletScriptingInterface.cpp b/libraries/script-engine/src/TabletScriptingInterface.cpp
index e7f8ebe2cb..3db4d7d840 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.cpp
+++ b/libraries/script-engine/src/TabletScriptingInterface.cpp
@@ -215,6 +215,7 @@ void TabletProxy::gotoMenuScreen() {
 void TabletProxy::loadQMLSource(const QVariant& path) {
     if (_qmlTabletRoot) {
         if (_state != State::QML) {
+            // _qmlTabletRoot->setProperty("eventBridge", QVariant::fromValue(_qmlOffscreenSurface));
             QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, path));
             _state = State::QML;
         }
@@ -370,7 +371,7 @@ QQuickItem* TabletProxy::getQmlTablet() const {
 }
 
 QQuickItem* TabletProxy::getQmlMenu() const {
-     if (!_qmlTabletRoot) {
+    if (!_qmlTabletRoot) {
         return nullptr;
     }
 
@@ -391,6 +392,15 @@ QQuickItem* TabletProxy::getQmlMenu() const {
     return menuList;
 }
 
+QQuickItem* TabletProxy::findChild(QString childName) const {
+    if (!_qmlTabletRoot) {
+        return nullptr;
+    }
+
+    return _qmlTabletRoot->findChild<QQuickItem*>(childName);
+}
+
+
 //
 // TabletButtonProxy
 //
diff --git a/libraries/script-engine/src/TabletScriptingInterface.h b/libraries/script-engine/src/TabletScriptingInterface.h
index a005152fa9..f5032dbff6 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.h
+++ b/libraries/script-engine/src/TabletScriptingInterface.h
@@ -130,6 +130,8 @@ public:
 
     QQuickItem* getQmlMenu() const;
 
+    Q_INVOKABLE QQuickItem* findChild(QString childName) const;
+
 signals:
     /**jsdoc
      * Signaled when this tablet receives an event from the html/js embedded in the tablet
diff --git a/scripts/system/edit.js b/scripts/system/edit.js
index f8cce6a544..9fa6d89bcc 100644
--- a/scripts/system/edit.js
+++ b/scripts/system/edit.js
@@ -457,7 +457,7 @@ var toolBar = (function () {
 
     that.toggle = function () {
         that.setActive(!isActive);
-        activeButton.editProperties({isActive: isActive});
+        // activeButton.editProperties({isActive: isActive});
     };
 
     that.setActive = function (active) {
@@ -1436,11 +1436,12 @@ var ServerScriptStatusMonitor = function(entityID, statusCallback) {
 var PropertiesTool = function (opts) {
     var that = {};
 
-    var webView = new OverlayWebWindow({
-        title: 'Entity Properties',
-        source: ENTITY_PROPERTIES_URL,
-        toolWindow: true
-    });
+    var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+    // var webView = new OverlayWebWindow({
+    //     title: 'Entity Properties',
+    //     source: ENTITY_PROPERTIES_URL,
+    //     toolWindow: true
+    // });
 
     var visible = false;
 
@@ -1449,16 +1450,20 @@ var PropertiesTool = function (opts) {
     var currentSelectedEntityID = null;
     var statusMonitor = null;
 
-    webView.setVisible(visible);
+    // webView.setVisible(visible);
 
     that.setVisible = function (newVisible) {
+        print("PropertiesTool.setVisible --> " + newVisible);
         visible = newVisible;
-        webView.setVisible(visible);
+        // webView.setVisible(visible);
+        if (visible) {
+            tablet.loadQMLSource("Edit.qml");
+        }
     };
 
     function updateScriptStatus(info) {
         info.type = "server_script_status";
-        webView.emitScriptEvent(JSON.stringify(info));
+        tablet.emitScriptEvent(JSON.stringify(info));
     };
 
     function resetScriptStatus() {
@@ -1510,10 +1515,10 @@ var PropertiesTool = function (opts) {
             selections.push(entity);
         }
         data.selections = selections;
-        webView.emitScriptEvent(JSON.stringify(data));
+        tablet.emitScriptEvent(JSON.stringify(data));
     });
 
-    webView.webEventReceived.connect(function (data) {
+    tablet.webEventReceived.connect(function (data) {
         try {
             data = JSON.parse(data);
         }
diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js
index 6b3bdaa0a4..63e964c218 100644
--- a/scripts/system/html/js/entityProperties.js
+++ b/scripts/system/html/js/entityProperties.js
@@ -710,6 +710,7 @@ function loaded() {
 
         if (window.EventBridge !== undefined) {
             var properties;
+            console.log("HERE -- " + (typeof EventBridge) + " -- " + JSON.stringify(EventBridge));
             EventBridge.scriptEventReceived.connect(function(data) {
                 data = JSON.parse(data);
                 if (data.type == "server_script_status") {

From e12c77e5766069ecbaa5ceb4b823542b48a58d4a Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Thu, 9 Feb 2017 14:43:44 -0800
Subject: [PATCH 003/247] move the edit tabs into tablet

---
 interface/resources/qml/hifi/tablet/Edit.qml | 58 ++++++++++++++++++++
 scripts/system/edit.js                       |  8 +--
 scripts/system/libraries/entityList.js       | 22 ++++----
 scripts/system/libraries/gridTool.js         | 13 +++--
 4 files changed, 81 insertions(+), 20 deletions(-)
 create mode 100644 interface/resources/qml/hifi/tablet/Edit.qml

diff --git a/interface/resources/qml/hifi/tablet/Edit.qml b/interface/resources/qml/hifi/tablet/Edit.qml
new file mode 100644
index 0000000000..cdefefd49e
--- /dev/null
+++ b/interface/resources/qml/hifi/tablet/Edit.qml
@@ -0,0 +1,58 @@
+import QtQuick 2.5
+import QtQuick.Controls 1.0
+import QtWebEngine 1.1
+import QtWebChannel 1.0
+import "../../controls"
+import HFWebEngineProfile 1.0
+
+Item {
+    id: editRoot
+    property var eventBridge;
+
+    TabView {
+        id: editTabView
+        anchors.fill: parent
+
+        Tab {
+            active: true
+            enabled: true
+            property string originalUrl: ""
+
+            WebView {
+                id: entityListToolWebView
+                url: "../../../../../scripts/system/html/entityList.html"
+                eventBridge: editRoot.eventBridge
+                anchors.fill: parent
+                enabled: true
+            }
+        }
+
+        Tab {
+            active: true
+            enabled: true
+            property string originalUrl: ""
+
+            WebView {
+                id: entityPropertiesWebView
+                url: "../../../../../scripts/system/html/entityProperties.html"
+                eventBridge: editRoot.eventBridge
+                anchors.fill: parent
+                enabled: true
+            }
+        }
+
+        Tab {
+            active: true
+            enabled: true
+            property string originalUrl: ""
+
+            WebView {
+                id: entityPropertiesWebView
+                url: "../../../../../scripts/system/html/gridControls.html"
+                eventBridge: editRoot.eventBridge
+                anchors.fill: parent
+                enabled: true
+            }
+        }
+    }
+}
diff --git a/scripts/system/edit.js b/scripts/system/edit.js
index aedc0f81fe..efd1e0bf3b 100644
--- a/scripts/system/edit.js
+++ b/scripts/system/edit.js
@@ -482,6 +482,8 @@ var toolBar = (function () {
             cameraManager.disable();
             selectionDisplay.triggerMapping.disable();
         } else {
+            var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+            tablet.loadQMLSource("Edit.qml");
             UserActivityLogger.enabledEdit();
             entityListTool.setVisible(true);
             gridTool.setVisible(true);
@@ -1453,12 +1455,8 @@ var PropertiesTool = function (opts) {
     // webView.setVisible(visible);
 
     that.setVisible = function (newVisible) {
-        print("PropertiesTool.setVisible --> " + newVisible);
         visible = newVisible;
         // webView.setVisible(visible);
-        if (visible) {
-            webView.loadQMLSource("Edit.qml");
-        }
     };
 
     function updateScriptStatus(info) {
@@ -1521,7 +1519,7 @@ var PropertiesTool = function (opts) {
     webView.webEventReceived.connect(function (data) {
         try {
             data = JSON.parse(data);
-            print("--- edit.js webView.webEventReceived ---");
+            print("--- edit.js PropertiesTool webView.webEventReceived ---");
         }
         catch(e) {
             print('Edit.js received web event that was not valid json.')
diff --git a/scripts/system/libraries/entityList.js b/scripts/system/libraries/entityList.js
index 6dc2486ffb..ff3aa41662 100644
--- a/scripts/system/libraries/entityList.js
+++ b/scripts/system/libraries/entityList.js
@@ -4,9 +4,10 @@ EntityListTool = function(opts) {
     var that = {};
 
     var url = ENTITY_LIST_HTML_URL;
-    var webView = new OverlayWebWindow({
-        title: 'Entity List',  source: url,  toolWindow: true   
-    });
+    var webView = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+    // var webView = new OverlayWebWindow({
+    //     title: 'Entity List',  source: url,  toolWindow: true
+    // });
 
 
     var filterInView = false;
@@ -14,13 +15,13 @@ EntityListTool = function(opts) {
 
     var visible = false;
 
-    webView.setVisible(visible);
+    // webView.setVisible(visible);
 
     that.webView = webView;
 
     that.setVisible = function(newVisible) {
         visible = newVisible;
-        webView.setVisible(visible);
+        // webView.setVisible(visible);
     };
 
     that.toggleVisible = function() {
@@ -100,6 +101,7 @@ EntityListTool = function(opts) {
 
     webView.webEventReceived.connect(function(data) {
         data = JSON.parse(data);
+        print("--- edit.js EntityList webView.webEventReceived ---");
         if (data.type == "selectionUpdate") {
             var ids = data.entityIds;
             var entityIDs = [];
@@ -149,11 +151,11 @@ EntityListTool = function(opts) {
         }
     });
 
-    webView.visibleChanged.connect(function () {
-        if (webView.visible) {
-            that.sendUpdate();
-        }
-    });
+    // webView.visibleChanged.connect(function () {
+    //     if (webView.visible) {
+    //         that.sendUpdate();
+    //     }
+    // });
 
     return that;
 };
diff --git a/scripts/system/libraries/gridTool.js b/scripts/system/libraries/gridTool.js
index c002aec3b1..0b040246f7 100644
--- a/scripts/system/libraries/gridTool.js
+++ b/scripts/system/libraries/gridTool.js
@@ -228,10 +228,12 @@ GridTool = function(opts) {
     var verticalGrid = opts.verticalGrid;
     var listeners = [];
 
-    var url = GRID_CONTROLS_HTML_URL;
-    var webView = new OverlayWebWindow({
-        title: 'Grid',  source: url,  toolWindow: true
-    });
+    var webView = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+    // var url = GRID_CONTROLS_HTML_URL;
+    // var webView = new OverlayWebWindow({
+    //     title: 'Grid',  source: url,  toolWindow: true
+    // });
+
 
     horizontalGrid.addListener(function(data) {
         webView.emitScriptEvent(JSON.stringify(data));
@@ -240,6 +242,7 @@ GridTool = function(opts) {
 
     webView.webEventReceived.connect(function(data) {
         data = JSON.parse(data);
+        print("--- edit.js GridTool webView.webEventReceived ---");
         if (data.type == "init") {
             horizontalGrid.emitUpdate();
         } else if (data.type == "update") {
@@ -268,7 +271,7 @@ GridTool = function(opts) {
     }
 
     that.setVisible = function(visible) {
-        webView.setVisible(visible);
+        // webView.setVisible(visible);
     }
 
     return that;

From 24fc9bbe6703c1f3f96d0fbb4f20cbb7401fa303 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Thu, 9 Feb 2017 15:12:01 -0800
Subject: [PATCH 004/247] honor HUDUIEnabled setting

---
 scripts/system/edit.js                 | 37 +++++++++++++++++---------
 scripts/system/libraries/entityList.js | 21 ++++++++-------
 scripts/system/libraries/gridTool.js   | 19 +++++++------
 3 files changed, 48 insertions(+), 29 deletions(-)

diff --git a/scripts/system/edit.js b/scripts/system/edit.js
index efd1e0bf3b..c91e97cf56 100644
--- a/scripts/system/edit.js
+++ b/scripts/system/edit.js
@@ -256,6 +256,11 @@ var toolBar = (function () {
                 text: "EDIT",
                 sortOrder: 10
             });
+            tablet.screenChanged.connect(function (type, url) {
+                if (isActive && (type !== "QML" || url !== "Edit.qml")) {
+                    that.toggle();
+                }
+            });
         }
 
         activeButton.clicked.connect(function() {
@@ -457,7 +462,9 @@ var toolBar = (function () {
 
     that.toggle = function () {
         that.setActive(!isActive);
-        // activeButton.editProperties({isActive: isActive});
+        if (Settings.getValue("HUDUIEnabled")) {
+            activeButton.editProperties({isActive: isActive});
+        }
     };
 
     that.setActive = function (active) {
@@ -482,8 +489,10 @@ var toolBar = (function () {
             cameraManager.disable();
             selectionDisplay.triggerMapping.disable();
         } else {
-            var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
-            tablet.loadQMLSource("Edit.qml");
+            if (!Settings.getValue("HUDUIEnabled")) {
+                var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+                tablet.loadQMLSource("Edit.qml");
+            }
             UserActivityLogger.enabledEdit();
             entityListTool.setVisible(true);
             gridTool.setVisible(true);
@@ -1438,12 +1447,17 @@ var ServerScriptStatusMonitor = function(entityID, statusCallback) {
 var PropertiesTool = function (opts) {
     var that = {};
 
-    var webView = Tablet.getTablet("com.highfidelity.interface.tablet.system");
-    // var webView = new OverlayWebWindow({
-    //     title: 'Entity Properties',
-    //     source: ENTITY_PROPERTIES_URL,
-    //     toolWindow: true
-    // });
+    var webView = null;
+    if (Settings.getValue("HUDUIEnabled")) {
+        webView = new OverlayWebWindow({
+            title: 'Entity Properties',
+            source: ENTITY_PROPERTIES_URL,
+            toolWindow: true
+        });
+    } else {
+        webView = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+        webView.setVisible = function(value) {};
+    }
 
     var visible = false;
 
@@ -1452,11 +1466,11 @@ var PropertiesTool = function (opts) {
     var currentSelectedEntityID = null;
     var statusMonitor = null;
 
-    // webView.setVisible(visible);
+    webView.setVisible(visible);
 
     that.setVisible = function (newVisible) {
         visible = newVisible;
-        // webView.setVisible(visible);
+        webView.setVisible(visible);
     };
 
     function updateScriptStatus(info) {
@@ -1519,7 +1533,6 @@ var PropertiesTool = function (opts) {
     webView.webEventReceived.connect(function (data) {
         try {
             data = JSON.parse(data);
-            print("--- edit.js PropertiesTool webView.webEventReceived ---");
         }
         catch(e) {
             print('Edit.js received web event that was not valid json.')
diff --git a/scripts/system/libraries/entityList.js b/scripts/system/libraries/entityList.js
index ff3aa41662..8ef028cdce 100644
--- a/scripts/system/libraries/entityList.js
+++ b/scripts/system/libraries/entityList.js
@@ -3,25 +3,29 @@ var ENTITY_LIST_HTML_URL = Script.resolvePath('../html/entityList.html');
 EntityListTool = function(opts) {
     var that = {};
 
-    var url = ENTITY_LIST_HTML_URL;
-    var webView = Tablet.getTablet("com.highfidelity.interface.tablet.system");
-    // var webView = new OverlayWebWindow({
-    //     title: 'Entity List',  source: url,  toolWindow: true
-    // });
-
+    var webView = null;
+    if (Settings.getValue("HUDUIEnabled")) {
+        var url = ENTITY_LIST_HTML_URL;
+        webView = new OverlayWebWindow({
+            title: 'Entity List',  source: url,  toolWindow: true
+        });
+    } else {
+        webView = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+        webView.setVisible = function(value) {};
+    }
 
     var filterInView = false;
     var searchRadius = 100;
 
     var visible = false;
 
-    // webView.setVisible(visible);
+    webView.setVisible(visible);
 
     that.webView = webView;
 
     that.setVisible = function(newVisible) {
         visible = newVisible;
-        // webView.setVisible(visible);
+        webView.setVisible(visible);
     };
 
     that.toggleVisible = function() {
@@ -101,7 +105,6 @@ EntityListTool = function(opts) {
 
     webView.webEventReceived.connect(function(data) {
         data = JSON.parse(data);
-        print("--- edit.js EntityList webView.webEventReceived ---");
         if (data.type == "selectionUpdate") {
             var ids = data.entityIds;
             var entityIDs = [];
diff --git a/scripts/system/libraries/gridTool.js b/scripts/system/libraries/gridTool.js
index 0b040246f7..7176fd00a6 100644
--- a/scripts/system/libraries/gridTool.js
+++ b/scripts/system/libraries/gridTool.js
@@ -228,12 +228,16 @@ GridTool = function(opts) {
     var verticalGrid = opts.verticalGrid;
     var listeners = [];
 
-    var webView = Tablet.getTablet("com.highfidelity.interface.tablet.system");
-    // var url = GRID_CONTROLS_HTML_URL;
-    // var webView = new OverlayWebWindow({
-    //     title: 'Grid',  source: url,  toolWindow: true
-    // });
-
+    var webView = null;
+    if (Settings.getValue("HUDUIEnabled")) {
+        var url = GRID_CONTROLS_HTML_URL;
+        webView = new OverlayWebWindow({
+            title: 'Grid',  source: url,  toolWindow: true
+        });
+    } else {
+        webView = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+        webView.setVisible = function(value) {};
+    }
 
     horizontalGrid.addListener(function(data) {
         webView.emitScriptEvent(JSON.stringify(data));
@@ -242,7 +246,6 @@ GridTool = function(opts) {
 
     webView.webEventReceived.connect(function(data) {
         data = JSON.parse(data);
-        print("--- edit.js GridTool webView.webEventReceived ---");
         if (data.type == "init") {
             horizontalGrid.emitUpdate();
         } else if (data.type == "update") {
@@ -271,7 +274,7 @@ GridTool = function(opts) {
     }
 
     that.setVisible = function(visible) {
-        // webView.setVisible(visible);
+        webView.setVisible(visible);
     }
 
     return that;

From d0d13cdde1ac0357d96d09ef5b823ebd3043e16a Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Thu, 9 Feb 2017 15:52:15 -0800
Subject: [PATCH 005/247] fix tab titles

---
 interface/resources/qml/hifi/tablet/Edit.qml | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/interface/resources/qml/hifi/tablet/Edit.qml b/interface/resources/qml/hifi/tablet/Edit.qml
index cdefefd49e..e95e0f2fc0 100644
--- a/interface/resources/qml/hifi/tablet/Edit.qml
+++ b/interface/resources/qml/hifi/tablet/Edit.qml
@@ -14,6 +14,7 @@ Item {
         anchors.fill: parent
 
         Tab {
+            title: "Entity List"
             active: true
             enabled: true
             property string originalUrl: ""
@@ -28,6 +29,7 @@ Item {
         }
 
         Tab {
+            title: "Entity Properties"
             active: true
             enabled: true
             property string originalUrl: ""
@@ -42,6 +44,7 @@ Item {
         }
 
         Tab {
+            title: "Grid"
             active: true
             enabled: true
             property string originalUrl: ""

From 7a63b07462f7efa9ffaa1c5cf48cc8c1c4a79277 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth@highfidelity.io>
Date: Thu, 9 Feb 2017 17:14:10 -0800
Subject: [PATCH 006/247] attempting to handle new-model dialog

---
 .../qml/hifi/tablet/NewModelDialog.qml        | 118 ++++++++++++++++++
 scripts/system/edit.js                        |  80 ++++++------
 2 files changed, 162 insertions(+), 36 deletions(-)
 create mode 100644 interface/resources/qml/hifi/tablet/NewModelDialog.qml

diff --git a/interface/resources/qml/hifi/tablet/NewModelDialog.qml b/interface/resources/qml/hifi/tablet/NewModelDialog.qml
new file mode 100644
index 0000000000..f2aaf0f3a5
--- /dev/null
+++ b/interface/resources/qml/hifi/tablet/NewModelDialog.qml
@@ -0,0 +1,118 @@
+import QtQuick 2.5
+import QtQuick.Window 2.2
+import QtQuick.Controls 1.5
+
+Item {
+    id: newModelDialog
+    property var eventBridge;
+
+    Column {
+        id: column1
+        anchors.rightMargin: 10
+        anchors.leftMargin: 10
+        anchors.bottomMargin: 10
+        anchors.topMargin: 10
+        anchors.fill: parent
+        spacing: 5
+
+        Text {
+            id: text1
+            text: qsTr("Model URL")
+            font.pixelSize: 12
+        }
+
+        TextInput {
+            id: textInput1
+            height: 20
+            text: qsTr("")
+            anchors.left: parent.left
+            anchors.leftMargin: 0
+            anchors.right: parent.right
+            anchors.rightMargin: 0
+            font.pixelSize: 12
+        }
+
+        Row {
+            id: row1
+            height: 400
+            spacing: 30
+            anchors.left: parent.left
+            anchors.leftMargin: 0
+            anchors.right: parent.right
+            anchors.rightMargin: 0
+
+            Column {
+                id: column2
+                width: 200
+                height: 400
+
+                CheckBox {
+                    id: checkBox1
+                    text: qsTr("Dynamic")
+                }
+
+                Row {
+                    id: row2
+                    width: 200
+                    height: 400
+                    spacing: 20
+
+                    Image {
+                        id: image1
+                        width: 30
+                        height: 30
+                        source: "qrc:/qtquickplugin/images/template_image.png"
+                    }
+
+                    Text {
+                        id: text2
+                        width: 160
+                        text: qsTr("Models with automatic collisions set to 'Exact' cannot be dynamic")
+                        wrapMode: Text.WordWrap
+                        font.pixelSize: 12
+                    }
+                }
+            }
+
+            Column {
+                id: column3
+                height: 400
+
+                Text {
+                    id: text3
+                    text: qsTr("Automatic Collisions")
+                    font.pixelSize: 12
+                }
+
+                ComboBox {
+                    id: comboBox1
+                    width: 200
+                    transformOrigin: Item.Center
+                    model: ListModel {
+                        id: collisionDropdown
+                        ListElement { text: "No Collision" }
+                        ListElement { text: "Basic - Whole model" }
+                        ListElement { text: "Good - Sub-meshes" }
+                        ListElement { text: "Exact - All polygons" }
+                    }
+                }
+
+                Row {
+                    id: row3
+                    width: 200
+                    height: 400
+
+                    Button {
+                        id: button1
+                        text: qsTr("Add")
+                    }
+
+                    Button {
+                        id: button2
+                        text: qsTr("Cancel")
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/scripts/system/edit.js b/scripts/system/edit.js
index c91e97cf56..9df6a30322 100644
--- a/scripts/system/edit.js
+++ b/scripts/system/edit.js
@@ -287,30 +287,33 @@ var toolBar = (function () {
 
             var SHAPE_TYPE_DEFAULT = SHAPE_TYPE_STATIC_MESH;
             var DYNAMIC_DEFAULT = false;
-            var result = Window.customPrompt({
-                textInput: {
-                    label: "Model URL"
-                },
-                comboBox: {
-                    label: "Automatic Collisions",
-                    index: SHAPE_TYPE_DEFAULT,
-                    items: SHAPE_TYPES
-                },
-                checkBox: {
-                    label: "Dynamic",
-                    checked: DYNAMIC_DEFAULT,
-                    disableForItems: [
-                        SHAPE_TYPE_STATIC_MESH
-                    ],
-                    checkStateOnDisable: false,
-                    warningOnDisable: "Models with automatic collisions set to 'Exact' cannot be dynamic"
-                }
-            });
 
-            if (result) {
-                var url = result.textInput;
-                var shapeType;
-                switch (result.comboBox) {
+            if (Settings.getValue("HUDUIEnabled")) {
+                // HUD-ui version of new-model dialog
+                var result = Window.customPrompt({
+                    textInput: {
+                        label: "Model URL"
+                    },
+                    comboBox: {
+                        label: "Automatic Collisions",
+                        index: SHAPE_TYPE_DEFAULT,
+                        items: SHAPE_TYPES
+                    },
+                    checkBox: {
+                        label: "Dynamic",
+                        checked: DYNAMIC_DEFAULT,
+                        disableForItems: [
+                            SHAPE_TYPE_STATIC_MESH
+                        ],
+                        checkStateOnDisable: false,
+                        warningOnDisable: "Models with automatic collisions set to 'Exact' cannot be dynamic"
+                    }
+                });
+
+                if (result) {
+                    var url = result.textInput;
+                    var shapeType;
+                    switch (result.comboBox) {
                     case SHAPE_TYPE_SIMPLE_HULL:
                         shapeType = "simple-hull";
                         break;
@@ -322,21 +325,26 @@ var toolBar = (function () {
                         break;
                     default:
                         shapeType = "none";
-                }
+                    }
 
-                var dynamic = result.checkBox !== null ? result.checkBox : DYNAMIC_DEFAULT;
-                if (shapeType === "static-mesh" && dynamic) {
-                    // The prompt should prevent this case
-                    print("Error: model cannot be both static mesh and dynamic.  This should never happen.");
-                } else if (url) {
-                    createNewEntity({
-                        type: "Model",
-                        modelURL: url,
-                        shapeType: shapeType,
-                        dynamic: dynamic,
-                        gravity: dynamic ? { x: 0, y: -10, z: 0 } : { x: 0, y: 0, z: 0 }
-                    });
+                    var dynamic = result.checkBox !== null ? result.checkBox : DYNAMIC_DEFAULT;
+                    if (shapeType === "static-mesh" && dynamic) {
+                        // The prompt should prevent this case
+                        print("Error: model cannot be both static mesh and dynamic.  This should never happen.");
+                    } else if (url) {
+                        createNewEntity({
+                            type: "Model",
+                            modelURL: url,
+                            shapeType: shapeType,
+                            dynamic: dynamic,
+                            gravity: dynamic ? { x: 0, y: -10, z: 0 } : { x: 0, y: 0, z: 0 }
+                        });
+                    }
                 }
+            } else {
+                // tablet version of new-model dialog
+                var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+                tablet.loadQMLSource("NewModelDialog.qml");
             }
         });
 

From 3171ce160269b5312969952e547e024c02d1f81f Mon Sep 17 00:00:00 2001
From: Seth Alves <seth@highfidelity.io>
Date: Fri, 10 Feb 2017 12:03:26 -0800
Subject: [PATCH 007/247] hook up more of new-model dialog

---
 interface/resources/qml/hifi/tablet/Edit.qml  | 87 +++++++++++--------
 .../qml/hifi/tablet/NewModelDialog.qml        | 28 +++++-
 .../src/TabletScriptingInterface.cpp          | 29 +++++++
 .../src/TabletScriptingInterface.h            |  2 +
 scripts/system/edit.js                        | 14 ++-
 5 files changed, 120 insertions(+), 40 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/Edit.qml b/interface/resources/qml/hifi/tablet/Edit.qml
index cdefefd49e..fe13397c99 100644
--- a/interface/resources/qml/hifi/tablet/Edit.qml
+++ b/interface/resources/qml/hifi/tablet/Edit.qml
@@ -5,53 +5,70 @@ import QtWebChannel 1.0
 import "../../controls"
 import HFWebEngineProfile 1.0
 
-Item {
+StackView {
     id: editRoot
+    objectName: "stack"
+    initialItem: editBasePage
+
     property var eventBridge;
+    signal sendToScript(var message);
 
-    TabView {
-        id: editTabView
-        anchors.fill: parent
+    function pushSource(path) {
+        editRoot.push(Qt.resolvedUrl(path));
+        editRoot.currentItem.eventBridge = editRoot.eventBridge;
+        editRoot.currentItem.sendToScript.connect(editRoot.sendToScript);
+    }
 
-        Tab {
-            active: true
-            enabled: true
-            property string originalUrl: ""
+    function popSource() {
+        editRoot.pop();
+    }
 
-            WebView {
-                id: entityListToolWebView
-                url: "../../../../../scripts/system/html/entityList.html"
-                eventBridge: editRoot.eventBridge
-                anchors.fill: parent
+    Component {
+        id: editBasePage
+        TabView {
+            id: editTabView
+            anchors.fill: parent
+
+            Tab {
+                active: true
                 enabled: true
+                property string originalUrl: ""
+
+                WebView {
+                    id: entityListToolWebView
+                    url: "../../../../../scripts/system/html/entityList.html"
+                    eventBridge: editRoot.eventBridge
+                    anchors.fill: parent
+                    enabled: true
+                }
             }
-        }
 
-        Tab {
-            active: true
-            enabled: true
-            property string originalUrl: ""
-
-            WebView {
-                id: entityPropertiesWebView
-                url: "../../../../../scripts/system/html/entityProperties.html"
-                eventBridge: editRoot.eventBridge
-                anchors.fill: parent
+            Tab {
+                active: true
                 enabled: true
+                property string originalUrl: ""
+
+                WebView {
+                    id: entityPropertiesWebView
+                    url: "../../../../../scripts/system/html/entityProperties.html"
+                    eventBridge: editRoot.eventBridge
+                    anchors.fill: parent
+                    enabled: true
+                }
             }
-        }
 
-        Tab {
-            active: true
-            enabled: true
-            property string originalUrl: ""
-
-            WebView {
-                id: entityPropertiesWebView
-                url: "../../../../../scripts/system/html/gridControls.html"
-                eventBridge: editRoot.eventBridge
-                anchors.fill: parent
+            Tab {
+                active: true
                 enabled: true
+                property string originalUrl: ""
+
+                WebView {
+                    id: entityPropertiesWebView
+                    url: "../../../../../scripts/system/html/gridControls.html"
+                    eventBridge: editRoot.eventBridge
+                    anchors.fill: parent
+                    enabled: true
+                }
             }
         }
     }
diff --git a/interface/resources/qml/hifi/tablet/NewModelDialog.qml b/interface/resources/qml/hifi/tablet/NewModelDialog.qml
index f2aaf0f3a5..15d7fc3616 100644
--- a/interface/resources/qml/hifi/tablet/NewModelDialog.qml
+++ b/interface/resources/qml/hifi/tablet/NewModelDialog.qml
@@ -1,10 +1,24 @@
-import QtQuick 2.5
-import QtQuick.Window 2.2
-import QtQuick.Controls 1.5
+//
+//  NewModelDialog.qml
+//  qml/hifi
+//
+//  Created by Seth Alves on 2017-2-10
+//  Copyright 2017 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
+//
 
-Item {
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+
+Rectangle {
     id: newModelDialog
+    width: parent.width
+    height: parent.height
+
     property var eventBridge;
+    signal sendToScript(var message);
 
     Column {
         id: column1
@@ -105,11 +119,17 @@ Item {
                     Button {
                         id: button1
                         text: qsTr("Add")
+                        onClicked: {
+                            newModelDialog.sendToScript({method: 'newModelDialogAdd'})
+                        }
                     }
 
                     Button {
                         id: button2
                         text: qsTr("Cancel")
+                        onClicked: {
+                            newModelDialog.sendToScript({method: 'newModelDialogCancel'})
+                        }
                     }
                 }
             }
diff --git a/libraries/script-engine/src/TabletScriptingInterface.cpp b/libraries/script-engine/src/TabletScriptingInterface.cpp
index 2e64be750f..fe68f350d2 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.cpp
+++ b/libraries/script-engine/src/TabletScriptingInterface.cpp
@@ -234,8 +234,37 @@ void TabletProxy::loadQMLSource(const QVariant& path) {
             _state = State::QML;
             emit screenChanged(QVariant("QML"), path);
         }
+    } else {
+        qCDebug(scriptengine) << "tablet cannot load QML because _qmlTabletRoot is null";
     }
 }
+
+void TabletProxy::pushOntoStack(const QVariant& path) {
+    if (_qmlTabletRoot) {
+        auto stack = _qmlTabletRoot->findChild<QQuickItem*>("stack");
+        if (stack) {
+            QMetaObject::invokeMethod(stack, "pushSource", Q_ARG(const QVariant&, path));
+        } else {
+            qCDebug(scriptengine) << "tablet cannot push QML because _qmlTabletRoot doesn't have child stack";
+        }
+    } else {
+        qCDebug(scriptengine) << "tablet cannot push QML because _qmlTabletRoot is null";
+    }
+}
+
+void TabletProxy::popFromStack() {
+    if (_qmlTabletRoot) {
+        auto stack = _qmlTabletRoot->findChild<QQuickItem*>("stack");
+        if (stack) {
+            QMetaObject::invokeMethod(stack, "popSource");
+        } else {
+            qCDebug(scriptengine) << "tablet cannot pop QML because _qmlTabletRoot doesn't have child stack";
+        }
+    } else {
+        qCDebug(scriptengine) << "tablet cannot pop QML because _qmlTabletRoot is null";
+    }
+}
+
 void TabletProxy::gotoHomeScreen() {
     if (_qmlTabletRoot) {
         if (_state != State::Home) {
diff --git a/libraries/script-engine/src/TabletScriptingInterface.h b/libraries/script-engine/src/TabletScriptingInterface.h
index 93f5bcf6ba..ff2213dfcc 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.h
+++ b/libraries/script-engine/src/TabletScriptingInterface.h
@@ -90,6 +90,8 @@ public:
     Q_INVOKABLE void gotoWebScreen(const QString& url, const QString& injectedJavaScriptUrl);
 
     Q_INVOKABLE void loadQMLSource(const QVariant& path);
+    Q_INVOKABLE void pushOntoStack(const QVariant& path);
+    Q_INVOKABLE void popFromStack();
 
     /**jsdoc
      * Creates a new button, adds it to this and returns it.
diff --git a/scripts/system/edit.js b/scripts/system/edit.js
index 9df6a30322..95b75ff343 100644
--- a/scripts/system/edit.js
+++ b/scripts/system/edit.js
@@ -225,6 +225,16 @@ var toolBar = (function () {
         return button;
     }
 
+    function fromQml(message) { // messages are {method, params}, like json-rpc. See also sendToQml.
+        print("fromQml: " + JSON.stringify(message));
+        var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+        tablet.popFromStack();
+        // switch (message.method) {
+        // case 'selected':
+        //     break;
+        // }
+    }
+
     function initialize() {
         Script.scriptEnding.connect(cleanup);
 
@@ -249,6 +259,7 @@ var toolBar = (function () {
                 alpha: 0.9,
                 defaultState: 1
             });
+            systemToolbar.fromQml.connect(fromQml);
         } else {
             tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
             activeButton = tablet.addButton({
@@ -261,6 +272,7 @@ var toolBar = (function () {
                     that.toggle();
                 }
             });
+            tablet.fromQml.connect(fromQml);
         }
 
         activeButton.clicked.connect(function() {
@@ -344,7 +356,7 @@ var toolBar = (function () {
             } else {
                 // tablet version of new-model dialog
                 var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
-                tablet.loadQMLSource("NewModelDialog.qml");
+                tablet.pushOntoStack("NewModelDialog.qml");
             }
         });
 

From 0b358a2ac7fbd22be36bb988e89bb94031daf284 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth@highfidelity.io>
Date: Fri, 10 Feb 2017 13:29:06 -0800
Subject: [PATCH 008/247] finish hooking up new-model dialog

---
 .../qml/hifi/tablet/NewModelDialog.qml        |  21 ++-
 scripts/system/edit.js                        | 132 +++++++++---------
 2 files changed, 81 insertions(+), 72 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/NewModelDialog.qml b/interface/resources/qml/hifi/tablet/NewModelDialog.qml
index 15d7fc3616..246e8d515d 100644
--- a/interface/resources/qml/hifi/tablet/NewModelDialog.qml
+++ b/interface/resources/qml/hifi/tablet/NewModelDialog.qml
@@ -14,8 +14,8 @@ import QtQuick.Controls 1.4
 
 Rectangle {
     id: newModelDialog
-    width: parent.width
-    height: parent.height
+    // width: parent.width
+    // height: parent.height
 
     property var eventBridge;
     signal sendToScript(var message);
@@ -36,7 +36,7 @@ Rectangle {
         }
 
         TextInput {
-            id: textInput1
+            id: modelURL
             height: 20
             text: qsTr("")
             anchors.left: parent.left
@@ -59,9 +59,10 @@ Rectangle {
                 id: column2
                 width: 200
                 height: 400
+                spacing: 10
 
                 CheckBox {
-                    id: checkBox1
+                    id: dynamic
                     text: qsTr("Dynamic")
                 }
 
@@ -91,6 +92,7 @@ Rectangle {
             Column {
                 id: column3
                 height: 400
+                spacing: 10
 
                 Text {
                     id: text3
@@ -99,7 +101,7 @@ Rectangle {
                 }
 
                 ComboBox {
-                    id: comboBox1
+                    id: collisionType
                     width: 200
                     transformOrigin: Item.Center
                     model: ListModel {
@@ -120,7 +122,14 @@ Rectangle {
                         id: button1
                         text: qsTr("Add")
                         onClicked: {
-                            newModelDialog.sendToScript({method: 'newModelDialogAdd'})
+                            newModelDialog.sendToScript({
+                                method: 'newModelDialogAdd',
+                                params: {
+                                    textInput: modelURL.text,
+                                    checkBox: dynamic.checked,
+                                    comboBox: collisionType.currentIndex
+                                }
+                            });
                         }
                     }
 
diff --git a/scripts/system/edit.js b/scripts/system/edit.js
index 95b75ff343..bc977b84eb 100644
--- a/scripts/system/edit.js
+++ b/scripts/system/edit.js
@@ -13,6 +13,8 @@
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
 //
 
+/* global Script, SelectionDisplay, LightOverlayManager, CameraManager, Grid, GridTool, EntityListTook, EntityListTool, Vec3, SelectionManager, Overlays, OverlayWebWindow, UserActivityLogger, Settings, Entities, Tablet, Toolbars, Messages, Menu, Camera, progressDialog, tooltip, MyAvatar, Quat, Controller, Clipboard, HMD, UndoStack, ParticleExplorerTool */
+
 (function() { // BEGIN LOCAL_SCOPE
 
 var HIFI_PUBLIC_BUCKET = "http://s3.amazonaws.com/hifi-public/";
@@ -58,18 +60,13 @@ selectionManager.addEventListener(function () {
 
 var DEGREES_TO_RADIANS = Math.PI / 180.0;
 var RADIANS_TO_DEGREES = 180.0 / Math.PI;
-var epsilon = 0.001;
 
 var MIN_ANGULAR_SIZE = 2;
 var MAX_ANGULAR_SIZE = 45;
 var allowLargeModels = true;
 var allowSmallModels = true;
 
-var SPAWN_DISTANCE = 1;
 var DEFAULT_DIMENSION = 0.20;
-var DEFAULT_TEXT_DIMENSION_X = 1.0;
-var DEFAULT_TEXT_DIMENSION_Y = 1.0;
-var DEFAULT_TEXT_DIMENSION_Z = 0.01;
 
 var DEFAULT_DIMENSIONS = {
     x: DEFAULT_DIMENSION,
@@ -84,7 +81,6 @@ var MENU_EASE_ON_FOCUS = "Ease Orientation on Focus";
 var MENU_SHOW_LIGHTS_IN_EDIT_MODE = "Show Lights in Edit Mode";
 var MENU_SHOW_ZONES_IN_EDIT_MODE = "Show Zones in Edit Mode";
 
-var SETTING_INSPECT_TOOL_ENABLED = "inspectToolEnabled";
 var SETTING_AUTO_FOCUS_ON_SELECT = "autoFocusOnSelect";
 var SETTING_EASE_ON_FOCUS = "cameraEaseOnFocus";
 var SETTING_SHOW_LIGHTS_IN_EDIT_MODE = "showLightsInEditMode";
@@ -156,13 +152,13 @@ function hideMarketplace() {
     marketplaceWindow.setURL("about:blank");
 }
 
-function toggleMarketplace() {
-    if (marketplaceWindow.visible) {
-        hideMarketplace();
-    } else {
-        showMarketplace();
-    }
-}
+// function toggleMarketplace() {
+//     if (marketplaceWindow.visible) {
+//         hideMarketplace();
+//     } else {
+//         showMarketplace();
+//     }
+// }
 
 var TOOLS_PATH = Script.resolvePath("assets/images/tools/");
 
@@ -225,14 +221,55 @@ var toolBar = (function () {
         return button;
     }
 
+    var SHAPE_TYPE_NONE = 0;
+    var SHAPE_TYPE_SIMPLE_HULL = 1;
+    var SHAPE_TYPE_SIMPLE_COMPOUND = 2;
+    var SHAPE_TYPE_STATIC_MESH = 3;
+    var DYNAMIC_DEFAULT = false;
+
+    function handleNewModelDialogResult(result) {
+        if (result) {
+            var url = result.textInput;
+            var shapeType;
+            switch (result.comboBox) {
+            case SHAPE_TYPE_SIMPLE_HULL:
+                shapeType = "simple-hull";
+                break;
+            case SHAPE_TYPE_SIMPLE_COMPOUND:
+                shapeType = "simple-compound";
+                break;
+            case SHAPE_TYPE_STATIC_MESH:
+                shapeType = "static-mesh";
+                break;
+            default:
+                shapeType = "none";
+            }
+
+            var dynamic = result.checkBox !== null ? result.checkBox : DYNAMIC_DEFAULT;
+            if (shapeType === "static-mesh" && dynamic) {
+                // The prompt should prevent this case
+                print("Error: model cannot be both static mesh and dynamic.  This should never happen.");
+            } else if (url) {
+                createNewEntity({
+                    type: "Model",
+                    modelURL: url,
+                    shapeType: shapeType,
+                    dynamic: dynamic,
+                    gravity: dynamic ? { x: 0, y: -10, z: 0 } : { x: 0, y: 0, z: 0 }
+                });
+            }
+        }        
+    }
+
     function fromQml(message) { // messages are {method, params}, like json-rpc. See also sendToQml.
         print("fromQml: " + JSON.stringify(message));
         var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
         tablet.popFromStack();
-        // switch (message.method) {
-        // case 'selected':
-        //     break;
-        // }
+        switch (message.method) {
+        case "newModelDialogAdd":
+            handleNewModelDialogResult(message.params);
+            break;
+        }
     }
 
     function initialize() {
@@ -283,22 +320,16 @@ var toolBar = (function () {
         toolBar.writeProperty("shown", false);
         addButton("openAssetBrowserButton","assets-01.svg",function(){
             Window.showAssetServer();
-        })
+        });
 
         addButton("newModelButton", "model-01.svg", function () {
-            var SHAPE_TYPE_NONE = 0;
-            var SHAPE_TYPE_SIMPLE_HULL = 1;
-            var SHAPE_TYPE_SIMPLE_COMPOUND = 2;
-            var SHAPE_TYPE_STATIC_MESH = 3;
 
             var SHAPE_TYPES = [];
             SHAPE_TYPES[SHAPE_TYPE_NONE] = "No Collision";
             SHAPE_TYPES[SHAPE_TYPE_SIMPLE_HULL] = "Basic - Whole model";
             SHAPE_TYPES[SHAPE_TYPE_SIMPLE_COMPOUND] = "Good - Sub-meshes";
             SHAPE_TYPES[SHAPE_TYPE_STATIC_MESH] = "Exact - All polygons";
-
             var SHAPE_TYPE_DEFAULT = SHAPE_TYPE_STATIC_MESH;
-            var DYNAMIC_DEFAULT = false;
 
             if (Settings.getValue("HUDUIEnabled")) {
                 // HUD-ui version of new-model dialog
@@ -322,37 +353,7 @@ var toolBar = (function () {
                     }
                 });
 
-                if (result) {
-                    var url = result.textInput;
-                    var shapeType;
-                    switch (result.comboBox) {
-                    case SHAPE_TYPE_SIMPLE_HULL:
-                        shapeType = "simple-hull";
-                        break;
-                    case SHAPE_TYPE_SIMPLE_COMPOUND:
-                        shapeType = "simple-compound";
-                        break;
-                    case SHAPE_TYPE_STATIC_MESH:
-                        shapeType = "static-mesh";
-                        break;
-                    default:
-                        shapeType = "none";
-                    }
-
-                    var dynamic = result.checkBox !== null ? result.checkBox : DYNAMIC_DEFAULT;
-                    if (shapeType === "static-mesh" && dynamic) {
-                        // The prompt should prevent this case
-                        print("Error: model cannot be both static mesh and dynamic.  This should never happen.");
-                    } else if (url) {
-                        createNewEntity({
-                            type: "Model",
-                            modelURL: url,
-                            shapeType: shapeType,
-                            dynamic: dynamic,
-                            gravity: dynamic ? { x: 0, y: -10, z: 0 } : { x: 0, y: 0, z: 0 }
-                        });
-                    }
-                }
+                handleNewModelDialogResult(result);
             } else {
                 // tablet version of new-model dialog
                 var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
@@ -661,7 +662,6 @@ var idleMouseTimerId = null;
 var CLICK_TIME_THRESHOLD = 500 * 1000; // 500 ms
 var CLICK_MOVE_DISTANCE_THRESHOLD = 20;
 var IDLE_MOUSE_TIMEOUT = 200;
-var DEFAULT_ENTITY_DRAG_DROP_DISTANCE = 2.0;
 
 var lastMouseMoveEvent = null;
 
@@ -1232,11 +1232,11 @@ function getPositionToCreateEntity() {
     var position = Vec3.sum(MyAvatar.position, Vec3.multiply(direction, distance));
 
     if (Camera.mode === "entity" || Camera.mode === "independent") {
-        position = Vec3.sum(Camera.position, Vec3.multiply(Quat.getFront(Camera.orientation), distance))
+        position = Vec3.sum(Camera.position, Vec3.multiply(Quat.getFront(Camera.orientation), distance));
     }
     position.y += 0.5;
     if (position.x > HALF_TREE_SCALE || position.y > HALF_TREE_SCALE || position.z > HALF_TREE_SCALE) {
-        return null
+        return null;
     }
     return position;
 }
@@ -1250,11 +1250,11 @@ function getPositionToImportEntity() {
     var position = Vec3.sum(MyAvatar.position, Vec3.multiply(direction, longest));
 
     if (Camera.mode === "entity" || Camera.mode === "independent") {
-        position = Vec3.sum(Camera.position, Vec3.multiply(Quat.getFront(Camera.orientation), longest))
+        position = Vec3.sum(Camera.position, Vec3.multiply(Quat.getFront(Camera.orientation), longest));
     }
 
     if (position.x > HALF_TREE_SCALE || position.y > HALF_TREE_SCALE || position.z > HALF_TREE_SCALE) {
-        return null
+        return null;
     }
 
     return position;
@@ -1455,11 +1455,11 @@ var ServerScriptStatusMonitor = function(entityID, statusCallback) {
                     Entities.getServerScriptStatus(entityID, onStatusReceived);
                 }
             }, 1000);
-        };
+        }
     };
     self.stop = function() {
         self.active = false;
-    }
+    };
 
     Entities.getServerScriptStatus(entityID, onStatusReceived);
 };
@@ -1496,7 +1496,7 @@ var PropertiesTool = function (opts) {
     function updateScriptStatus(info) {
         info.type = "server_script_status";
         webView.emitScriptEvent(JSON.stringify(info));
-    };
+    }
 
     function resetScriptStatus() {
         updateScriptStatus({
@@ -1555,7 +1555,7 @@ var PropertiesTool = function (opts) {
             data = JSON.parse(data);
         }
         catch(e) {
-            print('Edit.js received web event that was not valid json.')
+            print('Edit.js received web event that was not valid json.');
             return;
         }
         var i, properties, dY, diff, newPosition;
@@ -1576,12 +1576,12 @@ var PropertiesTool = function (opts) {
             } else {
                 if (data.properties.dynamic === false) {
                     // this object is leaving dynamic, so we zero its velocities
-                    data.properties["velocity"] = {
+                    data.properties.velocity = {
                         x: 0,
                         y: 0,
                         z: 0
                     };
-                    data.properties["angularVelocity"] = {
+                    data.properties.angularVelocity = {
                         x: 0,
                         y: 0,
                         z: 0

From fead52f626e347564fc17eaed892b9996c492646 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth@highfidelity.io>
Date: Fri, 10 Feb 2017 15:18:01 -0800
Subject: [PATCH 009/247] put new-entity buttons in a tab of the edit app

---
 interface/resources/qml/hifi/tablet/Edit.qml  | 120 +++++++++++++++++-
 .../qml/hifi/tablet/NewModelDialog.qml        |   4 +-
 scripts/system/edit.js                        |  39 +++---
 .../particle_explorer/particleExplorerTool.js |  25 ++--
 4 files changed, 160 insertions(+), 28 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/Edit.qml b/interface/resources/qml/hifi/tablet/Edit.qml
index 4300c80bd8..7cdf706497 100644
--- a/interface/resources/qml/hifi/tablet/Edit.qml
+++ b/interface/resources/qml/hifi/tablet/Edit.qml
@@ -31,11 +31,112 @@ StackView {
             anchors.fill: parent
 
             Tab {
-                title: "Entity List"
+                title: "Create Entities"
                 active: true
                 enabled: true
                 property string originalUrl: ""
 
+                Flow {
+                    id: createEntitiesFlow
+                    spacing: 16
+
+                    Button {
+                        iconSource: "../../../../../scripts/system/assets/images/tools/assets-01.svg"
+                        text: "ASSETS"
+                        onClicked: {
+                            editRoot.sendToScript({
+                                method: "newEntityButtonClicked", params: { buttonName: "openAssetBrowserButton" }
+                            });
+                        }
+                    }
+
+                    Button {
+                        iconSource: "../../../../../scripts/system/assets/images/tools/model-01.svg"
+                        text: "MODEL"
+                        onClicked: {
+                            editRoot.sendToScript({
+                                method: "newEntityButtonClicked", params: { buttonName: "newModelButton" }
+                            });
+                        }
+                    }
+
+                    Button {
+                        iconSource: "../../../../../scripts/system/assets/images/tools/cube-01.svg"
+                        text: "CUBE"
+                        onClicked: {
+                            editRoot.sendToScript({
+                                method: "newEntityButtonClicked", params: { buttonName: "newCubeButton" }
+                            });
+                        }
+                    }
+
+                    Button {
+                        iconSource: "../../../../../scripts/system/assets/images/tools/sphere-01.svg"
+                        text: "SPHERE"
+                        onClicked: {
+                            editRoot.sendToScript({
+                                method: "newEntityButtonClicked", params: { buttonName: "newSphereButton" }
+                            });
+                        }
+                    }
+
+                    Button {
+                        iconSource: "../../../../../scripts/system/assets/images/tools/light-01.svg"
+                        text: "LIGHT"
+                        onClicked: {
+                            editRoot.sendToScript({
+                                method: "newEntityButtonClicked", params: { buttonName: "newLightButton" }
+                            });
+                        }
+                    }
+
+                    Button {
+                        iconSource: "../../../../../scripts/system/assets/images/tools/text-01.svg"
+                        text: "TEXT"
+                        onClicked: {
+                            editRoot.sendToScript({
+                                method: "newEntityButtonClicked", params: { buttonName: "newTextButton" }
+                            });
+                        }
+                    }
+
+                    Button {
+                        iconSource: "../../../../../scripts/system/assets/images/tools/web-01.svg"
+                        text: "WEB"
+                        onClicked: {
+                            editRoot.sendToScript({
+                                method: "newEntityButtonClicked", params: { buttonName: "newWebButton" }
+                            });
+                        }
+                    }
+
+                    Button {
+                        iconSource: "../../../../../scripts/system/assets/images/tools/zone-01.svg"
+                        text: "ZONE"
+                        onClicked: {
+                            editRoot.sendToScript({
+                                method: "newEntityButtonClicked", params: { buttonName: "newZoneButton" }
+                            });
+                        }
+                    }
+
+                    Button {
+                        iconSource: "../../../../../scripts/system/assets/images/tools/particle-01.svg"
+                        text: "PARTICLE"
+                        onClicked: {
+                            editRoot.sendToScript({
+                                method: "newEntityButtonClicked", params: { buttonName: "newParticleButton" }
+                            });
+                        }
+                    }
+                }
+            }
+
+            Tab {
+                title: "Entity List"
+                active: true
+                enabled: true
+                property string originalUrl: ""
 
                 WebView {
                     id: entityListToolWebView
@@ -68,13 +169,28 @@ StackView {
                 property string originalUrl: ""
 
                 WebView {
-                    id: entityPropertiesWebView
+                    id: gridControlsWebView
                     url: "../../../../../scripts/system/html/gridControls.html"
                     eventBridge: editRoot.eventBridge
                     anchors.fill: parent
                     enabled: true
                 }
             }
+
+            Tab {
+                title: "Particle Explorer"
+                active: true
+                enabled: true
+                property string originalUrl: ""
+
+                WebView {
+                    id: particleExplorerWebView
+                    url: "../../../../../scripts/system/particle_explorer/particleExplorer.html"
+                    eventBridge: editRoot.eventBridge
+                    anchors.fill: parent
+                    enabled: true
+                }
+            }
         }
     }
 }
diff --git a/interface/resources/qml/hifi/tablet/NewModelDialog.qml b/interface/resources/qml/hifi/tablet/NewModelDialog.qml
index 246e8d515d..13c0d963ea 100644
--- a/interface/resources/qml/hifi/tablet/NewModelDialog.qml
+++ b/interface/resources/qml/hifi/tablet/NewModelDialog.qml
@@ -123,7 +123,7 @@ Rectangle {
                         text: qsTr("Add")
                         onClicked: {
                             newModelDialog.sendToScript({
-                                method: 'newModelDialogAdd',
+                                method: "newModelDialogAdd",
                                 params: {
                                     textInput: modelURL.text,
                                     checkBox: dynamic.checked,
@@ -137,7 +137,7 @@ Rectangle {
                         id: button2
                         text: qsTr("Cancel")
                         onClicked: {
-                            newModelDialog.sendToScript({method: 'newModelDialogCancel'})
+                            newModelDialog.sendToScript({method: "newModelDialogCancel"})
                         }
                     }
                 }
diff --git a/scripts/system/edit.js b/scripts/system/edit.js
index bc977b84eb..d3e2143316 100644
--- a/scripts/system/edit.js
+++ b/scripts/system/edit.js
@@ -201,24 +201,30 @@ var toolBar = (function () {
         }
     }
 
+    var buttonHandlers = {}; // only used to tablet mode
+
     function addButton(name, image, handler) {
-        var imageUrl = TOOLS_PATH + image;
-        var button = toolBar.addButton({
-            objectName: name,
-            imageURL: imageUrl,
-            imageOffOut: 1,
-            imageOffIn: 2,
-            imageOnOut: 0,
-            imageOnIn: 2,
-            alpha: 0.9,
-            visible: true
-        });
-        if (handler) {
-            button.clicked.connect(function () {
-                Script.setTimeout(handler, 100);
+        if (Settings.getValue("HUDUIEnabled")) {
+            var imageUrl = TOOLS_PATH + image;
+            var button = toolBar.addButton({
+                objectName: name,
+                imageURL: imageUrl,
+                imageOffOut: 1,
+                imageOffIn: 2,
+                imageOnOut: 0,
+                imageOnIn: 2,
+                alpha: 0.9,
+                visible: true
             });
+            if (handler) {
+                button.clicked.connect(function () {
+                    Script.setTimeout(handler, 100);
+                });
+            }
+            return button;
+        } else {
+            buttonHandlers[name] = handler;
         }
-        return button;
     }
 
     var SHAPE_TYPE_NONE = 0;
@@ -269,6 +275,9 @@ var toolBar = (function () {
         case "newModelDialogAdd":
             handleNewModelDialogResult(message.params);
             break;
+        case "newEntityButtonClicked":
+            buttonHandlers[message.params.buttonName]();
+            break;
         }
     }
 
diff --git a/scripts/system/particle_explorer/particleExplorerTool.js b/scripts/system/particle_explorer/particleExplorerTool.js
index 8a28445c33..e592161414 100644
--- a/scripts/system/particle_explorer/particleExplorerTool.js
+++ b/scripts/system/particle_explorer/particleExplorerTool.js
@@ -18,12 +18,17 @@ ParticleExplorerTool = function() {
     var that = {};
 
     that.createWebView = function() {
-        var url = PARTICLE_EXPLORER_HTML_URL;
-        that.webView = new OverlayWebWindow({
-            title: 'Particle Explorer',
-            source: url,
-            toolWindow: true
-        });
+        if (Settings.getValue("HUDUIEnabled")) {
+            var url = PARTICLE_EXPLORER_HTML_URL;
+            that.webView = new OverlayWebWindow({
+                title: 'Particle Explorer',
+                source: url,
+                toolWindow: true
+            });
+        } else {
+            that.webView = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+            that.webView.setVisible = function(value) {};
+        }
 
         that.webView.setVisible(true);
         that.webView.webEventReceived.connect(that.webEventReceived);        
@@ -35,8 +40,10 @@ ParticleExplorerTool = function() {
             return;
         }
 
-        that.webView.close();
-        that.webView = null;
+        if (Settings.getValue("HUDUIEnabled")) {
+            that.webView.close();
+            that.webView = null;
+        }
         that.activeParticleEntity = 0;
     }
 
@@ -55,4 +62,4 @@ ParticleExplorerTool = function() {
     return that;
 
 
-};
\ No newline at end of file
+};

From 44aa3e044bc017f533d49e8beeec03ed7cc727cb Mon Sep 17 00:00:00 2001
From: Seth Alves <seth@highfidelity.io>
Date: Fri, 10 Feb 2017 16:56:53 -0800
Subject: [PATCH 010/247] make it so near grabbing while edit is active doesn't
 select a new entity

---
 interface/resources/qml/hifi/tablet/Edit.qml  |  29 ++-
 .../system/controllers/handControllerGrab.js  |  13 +-
 .../system/libraries/entitySelectionTool.js   | 191 ++++++++++--------
 3 files changed, 139 insertions(+), 94 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/Edit.qml b/interface/resources/qml/hifi/tablet/Edit.qml
index 7cdf706497..44959395fa 100644
--- a/interface/resources/qml/hifi/tablet/Edit.qml
+++ b/interface/resources/qml/hifi/tablet/Edit.qml
@@ -2,6 +2,7 @@ import QtQuick 2.5
 import QtQuick.Controls 1.0
 import QtWebEngine 1.1
 import QtWebChannel 1.0
+import QtQuick.Controls.Styles 1.4
 import "../../controls"
 import HFWebEngineProfile 1.0
 
@@ -28,10 +29,11 @@ StackView {
         id: editBasePage
         TabView {
             id: editTabView
-            anchors.fill: parent
+            // anchors.fill: parent
+            height: 60
 
             Tab {
-                title: "Create Entities"
+                title: "Create"
                 active: true
                 enabled: true
                 property string originalUrl: ""
@@ -133,7 +135,7 @@ StackView {
             }
 
             Tab {
-                title: "Entity List"
+                title: "List"
                 active: true
                 enabled: true
                 property string originalUrl: ""
@@ -148,7 +150,7 @@ StackView {
             }
 
             Tab {
-                title: "Entity Properties"
+                title: "Properties"
                 active: true
                 enabled: true
                 property string originalUrl: ""
@@ -178,7 +180,7 @@ StackView {
             }
 
             Tab {
-                title: "Particle Explorer"
+                title: "Particles"
                 active: true
                 enabled: true
                 property string originalUrl: ""
@@ -191,6 +193,23 @@ StackView {
                     enabled: true
                 }
             }
+
+
+            style: TabViewStyle {
+                frameOverlap: 1
+                tab: Rectangle {
+                    color: styleData.selected ? "slategrey" :"grey"
+                    implicitWidth: text.width + 25
+                    implicitHeight: 60
+                    radius: 2
+                    Text {
+                        id: text
+                        anchors.centerIn: parent
+                        text: styleData.title
+                        color: styleData.selected ? "white" : "white"
+                    }
+                }
+            }
         }
     }
 }
diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index 527a9cfc2b..f61ea3013e 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -13,8 +13,8 @@
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
 
 /* global getEntityCustomData, flatten, Xform, Script, Quat, Vec3, MyAvatar, Entities, Overlays, Settings,
-   Reticle, Controller, Camera, Messages, Mat4, getControllerWorldLocation, getGrabPointSphereOffset, setGrabCommunications,
-   Menu, HMD */
+   Reticle, Controller, Camera, Messages, Mat4, getControllerWorldLocation, getGrabPointSphereOffset,
+   setGrabCommunications, Menu, HMD, isInEditMode */
 /* eslint indent: ["error", 4, { "outerIIFEBody": 0 }] */
 
 (function() { // BEGIN LOCAL_SCOPE
@@ -1667,6 +1667,15 @@ function MyController(hand) {
         }
 
         if (rayPickInfo.entityID) {
+            if (this.triggerSmoothedGrab() && isInEditMode()) {
+                this.searchIndicatorOn(rayPickInfo.searchRay);
+                Messages.sendLocalMessage("entityToolUpdates", JSON.stringify({
+                    method: "selectEntity",
+                    entityID: rayPickInfo.entityID
+                }));
+                return;
+            }
+
             entity = rayPickInfo.entityID;
             name = entityPropertiesCache.getProps(entity).name;
             if (this.entityWantsTrigger(entity)) {
diff --git a/scripts/system/libraries/entitySelectionTool.js b/scripts/system/libraries/entitySelectionTool.js
index b9bae72d14..4fd708a86e 100644
--- a/scripts/system/libraries/entitySelectionTool.js
+++ b/scripts/system/libraries/entitySelectionTool.js
@@ -11,6 +11,8 @@
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
 //
 
+/* global HIFI_PUBLIC_BUCKET, SPACE_LOCAL, Script, SelectionManager */
+
 HIFI_PUBLIC_BUCKET = "http://s3.amazonaws.com/hifi-public/";
 
 SPACE_LOCAL = "local";
@@ -28,7 +30,7 @@ SelectionManager = (function() {
     var that = {};
 
     function subscribeToUpdateMessages() {
-        Messages.subscribe('entityToolUpdates');
+        Messages.subscribe("entityToolUpdates");
         Messages.messageReceived.connect(handleEntitySelectionToolUpdates);
     }
 
@@ -40,8 +42,20 @@ SelectionManager = (function() {
             return;
         }
 
-        if (message === 'callUpdate') {
-            that._update();
+        var messageParsed;
+        try {
+            messageParsed = JSON.parse(message);
+        } catch (err) {
+            print("error -- entitySelectionTool got malformed message: " + message);
+        }
+
+        // if (message === 'callUpdate') {
+        //     that._update();
+        // }
+
+        if (messageParsed.method === "selectEntity") {
+            print("setting selection to " + messageParsed.entityID);
+            that.setSelections([messageParsed.entityID]);
         }
     }
 
@@ -149,13 +163,14 @@ SelectionManager = (function() {
     };
 
     that._update = function(selectionUpdated) {
-        if (that.selections.length == 0) {
+        var properties = null;
+        if (that.selections.length === 0) {
             that.localDimensions = null;
             that.localPosition = null;
             that.worldDimensions = null;
             that.worldPosition = null;
         } else if (that.selections.length == 1) {
-            var properties = Entities.getEntityProperties(that.selections[0]);
+            properties = Entities.getEntityProperties(that.selections[0]);
             that.localDimensions = properties.dimensions;
             that.localPosition = properties.position;
             that.localRotation = properties.rotation;
@@ -170,7 +185,7 @@ SelectionManager = (function() {
             that.localDimensions = null;
             that.localPosition = null;
 
-            var properties = Entities.getEntityProperties(that.selections[0]);
+            properties = Entities.getEntityProperties(that.selections[0]);
 
             var brn = properties.boundingBox.brn;
             var tfl = properties.boundingBox.tfl;
@@ -203,9 +218,9 @@ SelectionManager = (function() {
             SelectionDisplay.setSpaceMode(SPACE_WORLD);
         }
 
-        for (var i = 0; i < listeners.length; i++) {
+        for (var j = 0; j < listeners.length; j++) {
             try {
-                listeners[i](selectionUpdated === true);
+                listeners[j](selectionUpdated === true);
             } catch (e) {
                 print("EntitySelectionTool got exception: " + JSON.stringify(e));
             }
@@ -229,8 +244,8 @@ function getRelativeCenterPosition(dimensions, registrationPoint) {
     return {
         x: -dimensions.x * (registrationPoint.x - 0.5),
         y: -dimensions.y * (registrationPoint.y - 0.5),
-        z: -dimensions.z * (registrationPoint.z - 0.5),
-    }
+        z: -dimensions.z * (registrationPoint.z - 0.5)
+    };
 }
 
 SelectionDisplay = (function() {
@@ -253,7 +268,7 @@ SelectionDisplay = (function() {
 
     var spaceMode = SPACE_LOCAL;
     var mode = "UNKNOWN";
-    var overlayNames = new Array();
+    var overlayNames = [];
     var lastCameraPosition = Camera.getPosition();
     var lastCameraOrientation = Camera.getOrientation();
 
@@ -679,8 +694,7 @@ SelectionDisplay = (function() {
             green: 0,
             blue: 0
         },
-        ignoreRayIntersection: true, // always ignore this
-        visible: false,
+        ignoreRayIntersection: true // always ignore this
     });
     var yRailOverlay = Overlays.addOverlay("line3d", {
         visible: false,
@@ -700,8 +714,7 @@ SelectionDisplay = (function() {
             green: 255,
             blue: 0
         },
-        ignoreRayIntersection: true, // always ignore this
-        visible: false,
+        ignoreRayIntersection: true // always ignore this
     });
     var zRailOverlay = Overlays.addOverlay("line3d", {
         visible: false,
@@ -721,8 +734,7 @@ SelectionDisplay = (function() {
             green: 0,
             blue: 255
         },
-        ignoreRayIntersection: true, // always ignore this
-        visible: false,
+        ignoreRayIntersection: true // always ignore this
     });
 
     var rotateZeroOverlay = Overlays.addOverlay("line3d", {
@@ -1016,44 +1028,46 @@ SelectionDisplay = (function() {
     that.TRIGGER_OFF_VALUE = 0.15;
     that.triggered = false;
     var activeHand = Controller.Standard.RightHand;
-    function makeTriggerHandler(hand) {
-        return function (value) {
-            if (!that.triggered && (value > that.TRIGGER_GRAB_VALUE)) { // should we smooth?
-                that.triggered = true;
-                if (activeHand !== hand) {
-                    // No switching while the other is already triggered, so no need to release.
-                    activeHand = (activeHand === Controller.Standard.RightHand) ? Controller.Standard.LeftHand : Controller.Standard.RightHand;
-                }
-                if (Reticle.pointingAtSystemOverlay || Overlays.getOverlayAtPoint(Reticle.position)) {
-                    return;
-                }
-                var eventResult = that.mousePressEvent({});
-                if (!eventResult || (eventResult === 'selectionBox')) {
-                    var pickRay = controllerComputePickRay();
-                    if (pickRay) {
-                        var entityIntersection = Entities.findRayIntersection(pickRay, true);
+    // function makeTriggerHandler(hand) {
+    //     return function (value) {
+    //         if (!that.triggered && (value > that.TRIGGER_GRAB_VALUE)) { // should we smooth?
+    //             that.triggered = true;
+    //             if (activeHand !== hand) {
+    //                 // No switching while the other is already triggered, so no need to release.
+    //                 activeHand = (activeHand === Controller.Standard.RightHand) ? Controller.Standard.LeftHand : Controller.Standard.RightHand;
+    //             }
+    //             if (Reticle.pointingAtSystemOverlay || Overlays.getOverlayAtPoint(Reticle.position)) {
+    //                 return;
+    //             }
+    //             var eventResult = that.mousePressEvent({});
+    //             if (!eventResult || (eventResult === 'selectionBox')) {
+    //                 var pickRay = controllerComputePickRay();
+    //                 if (pickRay) {
+    //                     var entityIntersection = Entities.findRayIntersection(pickRay, true);
 
 
-                        var overlayIntersection = Overlays.findRayIntersection(pickRay);
-                        if (entityIntersection.intersects &&
-                            (!overlayIntersection.intersects || (entityIntersection.distance < overlayIntersection.distance))) {
+    //                     var overlayIntersection = Overlays.findRayIntersection(pickRay);
+    //                     if (entityIntersection.intersects &&
+    //                         (!overlayIntersection.intersects || (entityIntersection.distance < overlayIntersection.distance))) {
+
+    //                         if (HMD.tabletID === entityIntersection.entityID) {
+    //                             return;
+    //                         }
+
+    //                         selectionManager.setSelections([entityIntersection.entityID]);
+    //                     }
+    //                 }
+    //             }
+    //         } else if (that.triggered && (value < that.TRIGGER_OFF_VALUE)) {
+    //             that.triggered = false;
+    //             that.mouseReleaseEvent({});
+    //         }
+    //     };
+    // }
+    // that.triggerMapping.from(Controller.Standard.RT).peek().to(makeTriggerHandler(Controller.Standard.RightHand));
+    // that.triggerMapping.from(Controller.Standard.LT).peek().to(makeTriggerHandler(Controller.Standard.LeftHand));
 
-                            if (HMD.tabletID === entityIntersection.entityID) {
-                                return;
-                            }
 
-                            selectionManager.setSelections([entityIntersection.entityID]);
-                        }
-                    }
-                }
-            } else if (that.triggered && (value < that.TRIGGER_OFF_VALUE)) {
-                that.triggered = false;
-                that.mouseReleaseEvent({});
-            }
-        };
-    }
-    that.triggerMapping.from(Controller.Standard.RT).peek().to(makeTriggerHandler(Controller.Standard.RightHand));
-    that.triggerMapping.from(Controller.Standard.LT).peek().to(makeTriggerHandler(Controller.Standard.LeftHand));
     function controllerComputePickRay() {
         var controllerPose = getControllerWorldLocation(activeHand, true);
         if (controllerPose.valid && that.triggered) {
@@ -1072,7 +1086,7 @@ SelectionDisplay = (function() {
             onBegin: tool.onBegin,
             onMove: tool.onMove,
             onEnd: tool.onEnd,
-        }
+        };
     }
 
 
@@ -1080,8 +1094,8 @@ SelectionDisplay = (function() {
         for (var i = 0; i < allOverlays.length; i++) {
             Overlays.deleteOverlay(allOverlays[i]);
         }
-        for (var i = 0; i < selectionBoxes.length; i++) {
-            Overlays.deleteOverlay(selectionBoxes[i]);
+        for (var j = 0; j < selectionBoxes.length; j++) {
+            Overlays.deleteOverlay(selectionBoxes[j]);
         }
     };
 
@@ -1125,7 +1139,7 @@ SelectionDisplay = (function() {
         });
 
         that.updateHandles();
-    }
+    };
 
     that.updateRotationHandles = function() {
         var diagonal = (Vec3.length(selectionManager.worldDimensions) / 2) * 1.1;
@@ -1572,7 +1586,7 @@ SelectionDisplay = (function() {
     that.unselectAll = function() {};
 
     that.updateHandles = function() {
-        if (SelectionManager.selections.length == 0) {
+        if (SelectionManager.selections.length === 0) {
             that.setOverlaysVisible(false);
             return;
         }
@@ -1608,7 +1622,8 @@ SelectionDisplay = (function() {
         var bottom = -registrationPointDimensions.y;
         var top = dimensions.y - registrationPointDimensions.y;
         var near = -registrationPointDimensions.z;
-        var front = far = dimensions.z - registrationPointDimensions.z;
+        var far = dimensions.z - registrationPointDimensions.z;
+        var front = far;
 
         var worldTop = SelectionManager.worldDimensions.y / 2;
 
@@ -1808,9 +1823,9 @@ SelectionDisplay = (function() {
 
         if (selectionManager.selections.length == 1) {
             var properties = Entities.getEntityProperties(selectionManager.selections[0]);
-            if (properties.type == "Light" && properties.isSpotlight == true) {
-                var stretchHandlesVisible = false;
-                var extendedStretchHandlesVisible = false;
+            if (properties.type == "Light" && properties.isSpotlight === true) {
+                stretchHandlesVisible = false;
+                extendedStretchHandlesVisible = false;
 
                 Overlays.editOverlay(grabberSpotLightCenter, {
                     position: position,
@@ -1903,9 +1918,9 @@ SelectionDisplay = (function() {
                 Overlays.editOverlay(grabberPointLightN, {
                     visible: false
                 });
-            } else if (properties.type == "Light" && properties.isSpotlight == false) {
-                var stretchHandlesVisible = false;
-                var extendedStretchHandlesVisible = false;
+            } else if (properties.type == "Light" && properties.isSpotlight === false) {
+                stretchHandlesVisible = false;
+                extendedStretchHandlesVisible = false;
                 Overlays.editOverlay(grabberPointLightT, {
                     position: TOP,
                     rotation: rotation,
@@ -2171,28 +2186,28 @@ SelectionDisplay = (function() {
                 }));
         }
 
-        var i = 0;
+        i = 0;
         // Only show individual selections boxes if there is more than 1 selection
         if (selectionManager.selections.length > 1) {
             for (; i < selectionManager.selections.length; i++) {
-                var properties = Entities.getEntityProperties(selectionManager.selections[i]);
+                var props = Entities.getEntityProperties(selectionManager.selections[i]);
 
                 // Adjust overlay position to take registrationPoint into account
                 // centeredRP = registrationPoint with range [-0.5, 0.5]
-                var centeredRP = Vec3.subtract(properties.registrationPoint, {
+                var centeredRP = Vec3.subtract(props.registrationPoint, {
                     x: 0.5,
                     y: 0.5,
                     z: 0.5
                 });
-                var offset = vec3Mult(properties.dimensions, centeredRP);
+                var offset = vec3Mult(props.dimensions, centeredRP);
                 offset = Vec3.multiply(-1, offset);
-                offset = Vec3.multiplyQbyV(properties.rotation, offset);
-                var boxPosition = Vec3.sum(properties.position, offset);
+                offset = Vec3.multiplyQbyV(props.rotation, offset);
+                var boxPosition = Vec3.sum(props.position, offset);
 
                 Overlays.editOverlay(selectionBoxes[i], {
                     position: boxPosition,
-                    rotation: properties.rotation,
-                    dimensions: properties.dimensions,
+                    rotation: props.rotation,
+                    dimensions: props.dimensions,
                     visible: true,
                 });
             }
@@ -2584,11 +2599,11 @@ SelectionDisplay = (function() {
                 y: v1.y * v2.y,
                 z: v1.z * v2.z
             };
-        }
-        // stretchMode - name of mode
-        // direction - direction to stretch in
-        // pivot - point to use as a pivot
-        // offset - the position of the overlay tool relative to the selections center position
+    };
+    // stretchMode - name of mode
+    // direction - direction to stretch in
+    // pivot - point to use as a pivot
+    // offset - the position of the overlay tool relative to the selections center position
     var makeStretchTool = function(stretchMode, direction, pivot, offset, customOnMove) {
         var signs = {
             x: direction.x < 0 ? -1 : (direction.x > 0 ? 1 : 0),
@@ -2640,7 +2655,7 @@ SelectionDisplay = (function() {
             });
 
             // Scale pivot to be in the same range as registrationPoint
-            var scaledPivot = Vec3.multiply(0.5, pivot)
+            var scaledPivot = Vec3.multiply(0.5, pivot);
             deltaPivot = Vec3.subtract(centeredRP, scaledPivot);
 
             var scaledOffset = Vec3.multiply(0.5, offset);
@@ -2652,14 +2667,16 @@ SelectionDisplay = (function() {
             var scaledOffsetWorld = vec3Mult(initialDimensions, offsetRP);
             pickRayPosition = Vec3.sum(initialPosition, Vec3.multiplyQbyV(rotation, scaledOffsetWorld));
 
+            var start = null;
+            var end = null;
             if (numDimensions == 1 && mask.x) {
-                var start = Vec3.multiplyQbyV(rotation, {
+                start = Vec3.multiplyQbyV(rotation, {
                     x: -10000,
                     y: 0,
                     z: 0
                 });
                 start = Vec3.sum(start, properties.position);
-                var end = Vec3.multiplyQbyV(rotation, {
+                end = Vec3.multiplyQbyV(rotation, {
                     x: 10000,
                     y: 0,
                     z: 0
@@ -2672,13 +2689,13 @@ SelectionDisplay = (function() {
                 });
             }
             if (numDimensions == 1 && mask.y) {
-                var start = Vec3.multiplyQbyV(rotation, {
+                start = Vec3.multiplyQbyV(rotation, {
                     x: 0,
                     y: -10000,
                     z: 0
                 });
                 start = Vec3.sum(start, properties.position);
-                var end = Vec3.multiplyQbyV(rotation, {
+                end = Vec3.multiplyQbyV(rotation, {
                     x: 0,
                     y: 10000,
                     z: 0
@@ -2691,13 +2708,13 @@ SelectionDisplay = (function() {
                 });
             }
             if (numDimensions == 1 && mask.z) {
-                var start = Vec3.multiplyQbyV(rotation, {
+                start = Vec3.multiplyQbyV(rotation, {
                     x: 0,
                     y: 0,
                     z: -10000
                 });
                 start = Vec3.sum(start, properties.position);
-                var end = Vec3.multiplyQbyV(rotation, {
+                end = Vec3.multiplyQbyV(rotation, {
                     x: 0,
                     y: 0,
                     z: 10000
@@ -2730,13 +2747,13 @@ SelectionDisplay = (function() {
                     };
                 }
             } else if (numDimensions == 2) {
-                if (mask.x == 0) {
+                if (mask.x === 0) {
                     planeNormal = {
                         x: 1,
                         y: 0,
                         z: 0
                     };
-                } else if (mask.y == 0) {
+                } else if (mask.y === 0) {
                     planeNormal = {
                         x: 0,
                         y: 1,
@@ -2894,7 +2911,7 @@ SelectionDisplay = (function() {
         });
 
         SelectionManager._update();
-    };
+    }
 
     function radiusStretchFunc(vector, change) {
         var props = selectionManager.savedProperties[selectionManager.selections[0]];
@@ -4413,7 +4430,7 @@ SelectionDisplay = (function() {
                 scale: handleSize / 1.25,
             });
         }
-    }
+    };
     Script.update.connect(that.updateHandleSizes);
 
     that.mouseReleaseEvent = function(event) {

From 6f506d602301e9aa221613fb8a2b584be859404c Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Mon, 13 Feb 2017 14:40:45 -0800
Subject: [PATCH 011/247] some attempts to get icons in create tab

---
 interface/resources/images/sphere-01.svg     | 108 +++++++++++++++++++
 interface/resources/qml/hifi/tablet/Edit.qml |  46 ++++----
 2 files changed, 135 insertions(+), 19 deletions(-)
 create mode 100644 interface/resources/images/sphere-01.svg

diff --git a/interface/resources/images/sphere-01.svg b/interface/resources/images/sphere-01.svg
new file mode 100644
index 0000000000..975199c8da
--- /dev/null
+++ b/interface/resources/images/sphere-01.svg
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 50 150" style="enable-background:new 0 0 50 150;" xml:space="preserve">
+<style type="text/css">
+	.st0{opacity:0.9;}
+	.st1{fill:#FFFFFF;}
+	.st2{fill:#1E1E1E;}
+	.st3{fill:#EAEAEA;}
+	.st4{opacity:0.47;}
+	.st5{opacity:0.47;fill:#EAEAEA;}
+</style>
+<g>
+	<g class="st0">
+		<path class="st1" d="M50,46c0,2.2-1.8,4-4,4H4c-2.2,0-4-1.8-4-4V4c0-2.2,1.8-4,4-4h42c2.2,0,4,1.8,4,4V46z"/>
+	</g>
+</g>
+<g class="st0">
+	<path class="st2" d="M50,96c0,2.2-1.8,4-4,4H4c-2.2,0-4-1.8-4-4V54c0-2.2,1.8-4,4-4h42c2.2,0,4,1.8,4,4V96z"/>
+</g>
+<path d="M32.7,9.4c-4.3-4.3-11.2-4.3-15.5,0c-2.1,2.1-3.2,4.8-3.2,7.7c0,2.9,1.1,5.7,3.2,7.7C19.4,27,22.2,28,25,28
+	c2.8,0,5.6-1.1,7.7-3.2c2.1-2.1,3.2-4.8,3.2-7.7C35.9,14.2,34.8,11.4,32.7,9.4z M18.3,10.4c1.4-1.4,3.2-2.3,5-2.6
+	C23,8.3,22.7,9,22.4,9.9c-0.6,2-1,4.6-1,7.3c0,0.1,0,0.3,0,0.5c0.3,0.1,0.6,0.1,0.9,0.1c0.1,0,0.2,0,0.3,0c0-0.2,0-0.4,0-0.6
+	c0-5.5,1.4-9.2,2.5-9.5c0,0,0,0,0.1-0.1c2.4,0,4.7,1,6.5,2.8c1.7,1.7,2.7,4,2.8,6.5c-0.2,1.1-3.9,2.5-9.5,2.5
+	c-5.5,0-9.1-1.4-9.4-2.4C15.6,14.5,16.6,12.2,18.3,10.4z M31.7,23.8c-1.9,1.9-4.3,2.8-6.8,2.8c-0.7-0.4-1.4-2.1-1.9-4.6l-1.2-0.1
+	c0.2,0.9,0.4,1.8,0.6,2.6c0.2,0.8,0.5,1.4,0.8,1.9c-1.8-0.3-3.5-1.2-4.9-2.6c-1.4-1.4-2.3-3.2-2.6-5.1c0.5,0.3,1.2,0.6,2,0.9
+	c2,0.6,4.6,1,7.3,1s5.3-0.3,7.3-1c0.8-0.3,1.5-0.6,2-0.9C34,20.6,33.1,22.4,31.7,23.8z"/>
+<g>
+	<path d="M11.1,37.5c0,0-0.1-0.1-0.2-0.2c-0.1-0.1-0.2-0.1-0.4-0.2c-0.2-0.1-0.3-0.1-0.5-0.2c-0.2,0-0.4-0.1-0.6-0.1
+		c-0.3,0-0.6,0.1-0.8,0.2c-0.2,0.1-0.3,0.3-0.3,0.5c0,0.1,0,0.2,0.1,0.3c0.1,0.1,0.2,0.2,0.3,0.2s0.3,0.1,0.5,0.2
+		c0.2,0.1,0.4,0.1,0.6,0.2c0.3,0.1,0.6,0.2,0.9,0.3c0.3,0.1,0.5,0.2,0.6,0.4c0.2,0.1,0.3,0.3,0.4,0.5c0.1,0.2,0.1,0.4,0.1,0.7
+		c0,0.3-0.1,0.6-0.2,0.9c-0.1,0.2-0.3,0.4-0.5,0.6s-0.5,0.3-0.8,0.3c-0.3,0.1-0.6,0.1-0.9,0.1c-0.5,0-1-0.1-1.4-0.2
+		s-0.9-0.3-1.3-0.6l0.5-1.1c0.1,0.1,0.2,0.1,0.3,0.2c0.1,0.1,0.3,0.2,0.5,0.3s0.4,0.2,0.6,0.2c0.2,0.1,0.5,0.1,0.7,0.1
+		c0.7,0,1-0.2,1-0.7c0-0.1,0-0.3-0.1-0.4c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1-0.1-0.3-0.1-0.5-0.2c-0.2-0.1-0.4-0.1-0.7-0.2
+		c-0.3-0.1-0.6-0.2-0.8-0.3S7.7,39,7.6,38.9c-0.2-0.1-0.3-0.3-0.3-0.5c-0.1-0.2-0.1-0.4-0.1-0.6c0-0.3,0.1-0.6,0.2-0.9
+		c0.1-0.3,0.3-0.5,0.5-0.6s0.5-0.3,0.7-0.4c0.3-0.1,0.6-0.1,0.9-0.1c0.5,0,0.9,0.1,1.2,0.2c0.4,0.1,0.7,0.3,1,0.5L11.1,37.5z"/>
+	<path d="M13.1,42.2v-6.4h2.7c0.3,0,0.6,0.1,0.8,0.2s0.5,0.3,0.6,0.5c0.2,0.2,0.3,0.4,0.4,0.7c0.1,0.3,0.2,0.5,0.2,0.8
+		c0,0.3,0,0.5-0.1,0.8c-0.1,0.3-0.2,0.5-0.4,0.7c-0.2,0.2-0.4,0.4-0.6,0.5c-0.2,0.1-0.5,0.2-0.8,0.2h-1.5v2.1H13.1z M14.3,39h1.4
+		c0.2,0,0.4-0.1,0.6-0.3c0.2-0.2,0.2-0.4,0.2-0.8c0-0.2,0-0.3-0.1-0.4c0-0.1-0.1-0.2-0.2-0.3C16.2,37.1,16.1,37,16,37
+		c-0.1,0-0.2-0.1-0.3-0.1h-1.4V39z"/>
+	<path d="M24.3,35.8v6.4H23v-2.7h-2.9v2.7h-1.2v-6.4h1.2v2.6H23v-2.6H24.3z"/>
+	<path d="M30.3,41.1v1.1h-4.4v-6.4h4.4v1.1h-3.1v1.5h2.7v1h-2.7v1.7H30.3z"/>
+	<path d="M31.5,42.2v-6.4h2.8c0.3,0,0.6,0.1,0.8,0.2s0.5,0.3,0.6,0.5c0.2,0.2,0.3,0.4,0.4,0.7c0.1,0.3,0.2,0.5,0.2,0.8
+		c0,0.4-0.1,0.8-0.3,1.1c-0.2,0.3-0.5,0.6-0.8,0.7l1.5,2.4h-1.4L34,40.1h-1.2v2.1H31.5z M32.7,39h1.6c0.1,0,0.2,0,0.3-0.1
+		c0.1-0.1,0.2-0.1,0.3-0.2c0.1-0.1,0.1-0.2,0.2-0.3s0.1-0.3,0.1-0.4c0-0.1,0-0.3-0.1-0.4s-0.1-0.2-0.2-0.3c-0.1-0.1-0.2-0.2-0.3-0.2
+		c-0.1-0.1-0.2-0.1-0.3-0.1h-1.5V39z"/>
+	<path d="M42.2,41.1v1.1h-4.4v-6.4h4.4v1.1H39v1.5h2.7v1H39v1.7H42.2z"/>
+</g>
+<path class="st3" d="M33.1,59.4c-4.3-4.3-11.2-4.3-15.5,0c-2.1,2.1-3.2,4.8-3.2,7.7c0,2.9,1.1,5.7,3.2,7.7c2.1,2.1,4.9,3.2,7.7,3.2
+	c2.8,0,5.6-1.1,7.7-3.2c2.1-2.1,3.2-4.8,3.2-7.7C36.3,64.2,35.1,61.5,33.1,59.4z M18.6,60.4c1.4-1.4,3.2-2.3,5-2.6
+	c-0.3,0.5-0.7,1.2-0.9,2.1c-0.6,2-1,4.6-1,7.3c0,0.1,0,0.3,0,0.5c0.3,0.1,0.6,0.1,0.9,0.1c0.1,0,0.2,0,0.3,0c0-0.2,0-0.4,0-0.6
+	c0-5.5,1.4-9.2,2.5-9.5c0,0,0,0,0.1-0.1c2.4,0,4.7,1,6.5,2.8c1.7,1.7,2.7,4,2.8,6.5c-0.2,1.1-3.9,2.5-9.5,2.5
+	c-5.5,0-9.1-1.4-9.4-2.4C15.9,64.5,16.9,62.2,18.6,60.4z M32,73.8c-1.9,1.9-4.3,2.8-6.8,2.8c-0.7-0.4-1.4-2.1-1.9-4.6l-1.2-0.1
+	c0.2,0.9,0.4,1.8,0.6,2.6c0.2,0.8,0.5,1.4,0.8,1.9c-1.8-0.3-3.5-1.2-4.9-2.6c-1.4-1.4-2.3-3.2-2.6-5.1c0.5,0.3,1.2,0.6,2,0.9
+	c2,0.6,4.6,1,7.3,1s5.3-0.3,7.3-1c0.8-0.3,1.5-0.6,2-0.9C34.3,70.7,33.4,72.4,32,73.8z"/>
+<g>
+	<path class="st3" d="M11.5,87.5c0,0-0.1-0.1-0.2-0.2c-0.1-0.1-0.2-0.1-0.4-0.2S10.5,87,10.3,87c-0.2,0-0.4-0.1-0.6-0.1
+		c-0.3,0-0.6,0.1-0.8,0.2s-0.3,0.3-0.3,0.5c0,0.1,0,0.2,0.1,0.3C8.9,88,9,88.1,9.1,88.2c0.1,0.1,0.3,0.1,0.5,0.2
+		c0.2,0.1,0.4,0.1,0.6,0.2c0.3,0.1,0.6,0.2,0.9,0.3s0.5,0.2,0.6,0.4c0.2,0.1,0.3,0.3,0.4,0.5c0.1,0.2,0.1,0.4,0.1,0.7
+		c0,0.3-0.1,0.6-0.2,0.9c-0.1,0.2-0.3,0.4-0.5,0.6c-0.2,0.2-0.5,0.3-0.8,0.3c-0.3,0.1-0.6,0.1-0.9,0.1c-0.5,0-1-0.1-1.4-0.2
+		C8,92,7.6,91.8,7.2,91.5l0.5-1.1c0.1,0.1,0.2,0.1,0.3,0.2c0.1,0.1,0.3,0.2,0.5,0.3s0.4,0.2,0.6,0.2c0.2,0.1,0.5,0.1,0.7,0.1
+		c0.7,0,1-0.2,1-0.7c0-0.1,0-0.3-0.1-0.4c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1-0.1-0.3-0.1-0.5-0.2c-0.2-0.1-0.4-0.1-0.7-0.2
+		c-0.3-0.1-0.6-0.2-0.8-0.3c-0.2-0.1-0.4-0.2-0.6-0.3s-0.3-0.3-0.3-0.5c-0.1-0.2-0.1-0.4-0.1-0.6c0-0.3,0.1-0.6,0.2-0.9
+		c0.1-0.3,0.3-0.5,0.5-0.6s0.5-0.3,0.7-0.4s0.6-0.1,0.9-0.1c0.5,0,0.9,0.1,1.2,0.2s0.7,0.3,1,0.5L11.5,87.5z"/>
+	<path class="st3" d="M13.4,92.2v-6.4h2.7c0.3,0,0.6,0.1,0.8,0.2s0.5,0.3,0.6,0.5s0.3,0.4,0.4,0.7c0.1,0.3,0.2,0.5,0.2,0.8
+		c0,0.3,0,0.5-0.1,0.8c-0.1,0.3-0.2,0.5-0.4,0.7c-0.2,0.2-0.4,0.4-0.6,0.5c-0.2,0.1-0.5,0.2-0.8,0.2h-1.5v2.1H13.4z M14.7,89h1.4
+		c0.2,0,0.4-0.1,0.6-0.3c0.2-0.2,0.2-0.4,0.2-0.8c0-0.2,0-0.3-0.1-0.4c0-0.1-0.1-0.2-0.2-0.3s-0.2-0.2-0.3-0.2
+		c-0.1,0-0.2-0.1-0.3-0.1h-1.4V89z"/>
+	<path class="st3" d="M24.6,85.9v6.4h-1.2v-2.7h-2.9v2.7h-1.2v-6.4h1.2v2.6h2.9v-2.6H24.6z"/>
+	<path class="st3" d="M30.6,91.2v1.1h-4.4v-6.4h4.4v1.1h-3.1v1.5h2.7v1h-2.7v1.7H30.6z"/>
+	<path class="st3" d="M31.8,92.2v-6.4h2.8c0.3,0,0.6,0.1,0.8,0.2s0.5,0.3,0.6,0.5c0.2,0.2,0.3,0.4,0.4,0.7c0.1,0.3,0.2,0.5,0.2,0.8
+		c0,0.4-0.1,0.8-0.3,1.1s-0.5,0.6-0.8,0.7l1.5,2.4h-1.4l-1.3-2.1h-1.2v2.1H31.8z M33.1,89h1.6c0.1,0,0.2,0,0.3-0.1
+		c0.1-0.1,0.2-0.1,0.3-0.2c0.1-0.1,0.1-0.2,0.2-0.3s0.1-0.3,0.1-0.4c0-0.1,0-0.3-0.1-0.4s-0.1-0.2-0.2-0.3S35,87.1,34.9,87
+		c-0.1-0.1-0.2-0.1-0.3-0.1h-1.5V89z"/>
+	<path class="st3" d="M42.5,91.2v1.1h-4.4v-6.4h4.4v1.1h-3.1v1.5H42v1h-2.7v1.7H42.5z"/>
+</g>
+<g class="st4">
+	<path class="st2" d="M50,146c0,2.2-1.8,4-4,4H4c-2.2,0-4-1.8-4-4v-42c0-2.2,1.8-4,4-4h42c2.2,0,4,1.8,4,4V146z"/>
+</g>
+<path class="st5" d="M33.1,109.4c-4.3-4.3-11.2-4.3-15.5,0c-2.1,2.1-3.2,4.8-3.2,7.7c0,2.9,1.1,5.7,3.2,7.7c2.1,2.1,4.9,3.2,7.7,3.2
+	c2.8,0,5.6-1.1,7.7-3.2c2.1-2.1,3.2-4.8,3.2-7.7C36.3,114.2,35.1,111.5,33.1,109.4z M18.6,110.4c1.4-1.4,3.2-2.3,5-2.6
+	c-0.3,0.5-0.7,1.2-0.9,2.1c-0.6,2-1,4.6-1,7.3c0,0.1,0,0.3,0,0.5c0.3,0.1,0.6,0.1,0.9,0.1c0.1,0,0.2,0,0.3,0c0-0.2,0-0.4,0-0.6
+	c0-5.5,1.4-9.2,2.5-9.5c0,0,0,0,0.1-0.1c2.4,0,4.7,1,6.5,2.8c1.7,1.7,2.7,4,2.8,6.5c-0.2,1.1-3.9,2.5-9.5,2.5
+	c-5.5,0-9.1-1.4-9.4-2.4C15.9,114.5,16.9,112.2,18.6,110.4z M32,123.8c-1.9,1.9-4.3,2.8-6.8,2.8c-0.7-0.4-1.4-2.1-1.9-4.6l-1.2-0.1
+	c0.2,0.9,0.4,1.8,0.6,2.6c0.2,0.8,0.5,1.4,0.8,1.9c-1.8-0.3-3.5-1.2-4.9-2.6c-1.4-1.4-2.3-3.2-2.6-5.1c0.5,0.3,1.2,0.6,2,0.9
+	c2,0.6,4.6,1,7.3,1s5.3-0.3,7.3-1c0.8-0.3,1.5-0.6,2-0.9C34.3,120.7,33.4,122.4,32,123.8z"/>
+<g class="st4">
+	<path class="st3" d="M11.5,137.5c0,0-0.1-0.1-0.2-0.2c-0.1-0.1-0.2-0.1-0.4-0.2s-0.3-0.1-0.5-0.2c-0.2,0-0.4-0.1-0.6-0.1
+		c-0.3,0-0.6,0.1-0.8,0.2s-0.3,0.3-0.3,0.5c0,0.1,0,0.2,0.1,0.3c0.1,0.1,0.2,0.2,0.3,0.2c0.1,0.1,0.3,0.1,0.5,0.2
+		c0.2,0.1,0.4,0.1,0.6,0.2c0.3,0.1,0.6,0.2,0.9,0.3s0.5,0.2,0.6,0.4c0.2,0.1,0.3,0.3,0.4,0.5c0.1,0.2,0.1,0.4,0.1,0.7
+		c0,0.3-0.1,0.6-0.2,0.9c-0.1,0.2-0.3,0.4-0.5,0.6c-0.2,0.2-0.5,0.3-0.8,0.3c-0.3,0.1-0.6,0.1-0.9,0.1c-0.5,0-1-0.1-1.4-0.2
+		c-0.5-0.1-0.9-0.3-1.3-0.6l0.5-1.1c0.1,0.1,0.2,0.1,0.3,0.2c0.1,0.1,0.3,0.2,0.5,0.3s0.4,0.2,0.6,0.2c0.2,0.1,0.5,0.1,0.7,0.1
+		c0.7,0,1-0.2,1-0.7c0-0.1,0-0.3-0.1-0.4c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1-0.1-0.3-0.1-0.5-0.2c-0.2-0.1-0.4-0.1-0.7-0.2
+		c-0.3-0.1-0.6-0.2-0.8-0.3c-0.2-0.1-0.4-0.2-0.6-0.3s-0.3-0.3-0.3-0.5c-0.1-0.2-0.1-0.4-0.1-0.6c0-0.3,0.1-0.6,0.2-0.9
+		c0.1-0.3,0.3-0.5,0.5-0.6s0.5-0.3,0.7-0.4s0.6-0.1,0.9-0.1c0.5,0,0.9,0.1,1.2,0.2s0.7,0.3,1,0.5L11.5,137.5z"/>
+	<path class="st3" d="M13.4,142.2v-6.4h2.7c0.3,0,0.6,0.1,0.8,0.2s0.5,0.3,0.6,0.5s0.3,0.4,0.4,0.7c0.1,0.3,0.2,0.5,0.2,0.8
+		c0,0.3,0,0.5-0.1,0.8c-0.1,0.3-0.2,0.5-0.4,0.7c-0.2,0.2-0.4,0.4-0.6,0.5c-0.2,0.1-0.5,0.2-0.8,0.2h-1.5v2.1H13.4z M14.7,139h1.4
+		c0.2,0,0.4-0.1,0.6-0.3c0.2-0.2,0.2-0.4,0.2-0.8c0-0.2,0-0.3-0.1-0.4c0-0.1-0.1-0.2-0.2-0.3s-0.2-0.2-0.3-0.2
+		c-0.1,0-0.2-0.1-0.3-0.1h-1.4V139z"/>
+	<path class="st3" d="M24.6,135.9v6.4h-1.2v-2.7h-2.9v2.7h-1.2v-6.4h1.2v2.6h2.9v-2.6H24.6z"/>
+	<path class="st3" d="M30.6,141.2v1.1h-4.4v-6.4h4.4v1.1h-3.1v1.5h2.7v1h-2.7v1.7H30.6z"/>
+	<path class="st3" d="M31.8,142.2v-6.4h2.8c0.3,0,0.6,0.1,0.8,0.2s0.5,0.3,0.6,0.5c0.2,0.2,0.3,0.4,0.4,0.7c0.1,0.3,0.2,0.5,0.2,0.8
+		c0,0.4-0.1,0.8-0.3,1.1s-0.5,0.6-0.8,0.7l1.5,2.4h-1.4l-1.3-2.1h-1.2v2.1H31.8z M33.1,139h1.6c0.1,0,0.2,0,0.3-0.1
+		c0.1-0.1,0.2-0.1,0.3-0.2c0.1-0.1,0.1-0.2,0.2-0.3s0.1-0.3,0.1-0.4c0-0.1,0-0.3-0.1-0.4s-0.1-0.2-0.2-0.3s-0.2-0.2-0.3-0.2
+		c-0.1-0.1-0.2-0.1-0.3-0.1h-1.5V139z"/>
+	<path class="st3" d="M42.5,141.2v1.1h-4.4v-6.4h4.4v1.1h-3.1v1.5H42v1h-2.7v1.7H42.5z"/>
+</g>
+</svg>
diff --git a/interface/resources/qml/hifi/tablet/Edit.qml b/interface/resources/qml/hifi/tablet/Edit.qml
index 44959395fa..5301ff78f8 100644
--- a/interface/resources/qml/hifi/tablet/Edit.qml
+++ b/interface/resources/qml/hifi/tablet/Edit.qml
@@ -4,6 +4,7 @@ import QtWebEngine 1.1
 import QtWebChannel 1.0
 import QtQuick.Controls.Styles 1.4
 import "../../controls"
+import "../toolbars"
 import HFWebEngineProfile 1.0
 
 StackView {
@@ -41,9 +42,17 @@ StackView {
                 Flow {
                     id: createEntitiesFlow
                     spacing: 16
+                    anchors.right: parent.right
+                    anchors.rightMargin: 30
+                    anchors.left: parent.left
+                    anchors.leftMargin: 30
+                    anchors.bottom: parent.bottom
+                    anchors.bottomMargin: 30
+                    anchors.top: parent.top
+                    anchors.topMargin: 30
 
-                    Button {
-                        iconSource: "../../../../../scripts/system/assets/images/tools/assets-01.svg"
+                    TabletButton {
+                        icon: "icons/assets-01.svg"
                         text: "ASSETS"
                         onClicked: {
                             editRoot.sendToScript({
@@ -52,8 +61,8 @@ StackView {
                         }
                     }
 
-                    Button {
-                        iconSource: "../../../../../scripts/system/assets/images/tools/model-01.svg"
+                    TabletButton {
+                        icon: "model-01.svg"
                         text: "MODEL"
                         onClicked: {
                             editRoot.sendToScript({
@@ -62,8 +71,8 @@ StackView {
                         }
                     }
 
-                    Button {
-                        iconSource: "../../../../../scripts/system/assets/images/tools/cube-01.svg"
+                    TabletButton {
+                        icon: "../cube-01.svg"
                         text: "CUBE"
                         onClicked: {
                             editRoot.sendToScript({
@@ -72,9 +81,8 @@ StackView {
                         }
                     }
 
-                    Button {
-                        iconSource: "../../../../../scripts/system/assets/images/tools/sphere-01.svg"
-                        text: "SPHERE"
+                    ToolbarButton {
+                        imageURL: "../images/sphere-01.svg"
                         onClicked: {
                             editRoot.sendToScript({
                                 method: "newEntityButtonClicked", params: { buttonName: "newSphereButton" }
@@ -82,8 +90,8 @@ StackView {
                         }
                     }
 
-                    Button {
-                        iconSource: "../../../../../scripts/system/assets/images/tools/light-01.svg"
+                    TabletButton {
+                        icon: "../scripts/system/assets/images/tools/light-01.svg"
                         text: "LIGHT"
                         onClicked: {
                             editRoot.sendToScript({
@@ -92,8 +100,8 @@ StackView {
                         }
                     }
 
-                    Button {
-                        iconSource: "../../../../../scripts/system/assets/images/tools/text-01.svg"
+                    TabletButton {
+                        icon: "../scripts/system/assets/images/tools/text-01.svg"
                         text: "TEXT"
                         onClicked: {
                             editRoot.sendToScript({
@@ -102,8 +110,8 @@ StackView {
                         }
                     }
 
-                    Button {
-                        iconSource: "../../../../../scripts/system/assets/images/tools/web-01.svg"
+                    TabletButton {
+                        icon: "../scripts/system/assets/images/tools/web-01.svg"
                         text: "WEB"
                         onClicked: {
                             editRoot.sendToScript({
@@ -112,8 +120,8 @@ StackView {
                         }
                     }
 
-                    Button {
-                        iconSource: "../../../../../scripts/system/assets/images/tools/zone-01.svg"
+                    TabletButton {
+                        icon: "../scripts/system/assets/images/tools/zone-01.svg"
                         text: "ZONE"
                         onClicked: {
                             editRoot.sendToScript({
@@ -122,8 +130,8 @@ StackView {
                         }
                     }
 
-                    Button {
-                        iconSource: "../../../../../scripts/system/assets/images/tools/particle-01.svg"
+                    TabletButton {
+                        icon: "../scripts/system/assets/images/tools/particle-01.svg"
                         text: "PARTICLE"
                         onClicked: {
                             editRoot.sendToScript({

From a57a0435c1a348ce40d9c5b608e948b14b021af8 Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Mon, 13 Feb 2017 15:13:10 -0800
Subject: [PATCH 012/247] fix overlapping issue with the delete button

---
 scripts/system/html/css/edit-style.css | 1 +
 1 file changed, 1 insertion(+)

diff --git a/scripts/system/html/css/edit-style.css b/scripts/system/html/css/edit-style.css
index 251d0a2d75..06a60b5405 100644
--- a/scripts/system/html/css/edit-style.css
+++ b/scripts/system/html/css/edit-style.css
@@ -871,6 +871,7 @@ textarea:enabled[scrolling="true"]::-webkit-resizer {
     float: right;
     margin-right: 0;
     background-color: #ff0000;
+    min-width: 90px;
 }
 
 #entity-list {

From 3a23ec86d55c8a6b91b2356ff41982b6aac81247 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth@highfidelity.io>
Date: Tue, 14 Feb 2017 13:57:48 -0800
Subject: [PATCH 013/247] handles etc work better

---
 .../system/controllers/handControllerGrab.js  | 68 +++++++++++-------
 scripts/system/html/js/entityList.js          |  4 +-
 scripts/system/html/js/entityProperties.js    |  4 +-
 .../system/libraries/entitySelectionTool.js   | 70 +++++++++----------
 4 files changed, 80 insertions(+), 66 deletions(-)

diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index f61ea3013e..e7ca74cf54 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -738,6 +738,7 @@ function MyController(hand) {
     this.grabPointIntersectsEntity = false;
     this.stylus = null;
     this.homeButtonTouched = false;
+    this.editTriggered = false;
 
     // Until there is some reliable way to keep track of a "stack" of parentIDs, we'll have problems
     // when more than one avatar does parenting grabs on things.  This script tries to work
@@ -858,9 +859,10 @@ function MyController(hand) {
     };
 
     this.setState = function(newState, reason) {
-        if ((isInEditMode() && this.grabbedEntity !== HMD.tabletID )&& (newState !== STATE_OFF &&
-                               newState !== STATE_SEARCHING &&
-                               newState !== STATE_OVERLAY_STYLUS_TOUCHING)) {
+        if ((isInEditMode() && this.grabbedEntity !== HMD.tabletID) &&
+            (newState !== STATE_OFF &&
+             newState !== STATE_SEARCHING &&
+             newState !== STATE_OVERLAY_STYLUS_TOUCHING)) {
             return;
         }
         setGrabCommunications((newState === STATE_DISTANCE_HOLDING) || (newState === STATE_NEAR_GRABBING));
@@ -1037,7 +1039,7 @@ function MyController(hand) {
         }
 
         var searchSphereLocation = Vec3.sum(distantPickRay.origin,
-            Vec3.multiply(distantPickRay.direction, this.searchSphereDistance));
+                                            Vec3.multiply(distantPickRay.direction, this.searchSphereDistance));
         this.searchSphereOn(searchSphereLocation, SEARCH_SPHERE_SIZE * this.searchSphereDistance,
                             (this.triggerSmoothedGrab() || this.secondarySqueezed()) ?
                             COLORS_GRAB_SEARCHING_FULL_SQUEEZE :
@@ -1199,6 +1201,10 @@ function MyController(hand) {
 
         this.checkForUnexpectedChildren();
 
+        if (this.editTriggered) {
+            this.editTriggered = false;
+        }
+
         if (this.triggerSmoothedReleased() && this.secondaryReleased()) {
             this.waitForTriggerRelease = false;
         }
@@ -1636,22 +1642,24 @@ function MyController(hand) {
                 return aDistance - bDistance;
             });
             entity = grabbableEntities[0];
-            name = entityPropertiesCache.getProps(entity).name;
-            this.grabbedEntity = entity;
-            if (this.entityWantsTrigger(entity)) {
-                if (this.triggerSmoothedGrab()) {
-                    this.setState(STATE_NEAR_TRIGGER, "near trigger '" + name + "'");
-                    return;
+            if (!isInEditMode() || entity == HMD.tabletID) {
+                name = entityPropertiesCache.getProps(entity).name;
+                this.grabbedEntity = entity;
+                if (this.entityWantsTrigger(entity)) {
+                    if (this.triggerSmoothedGrab()) {
+                        this.setState(STATE_NEAR_TRIGGER, "near trigger '" + name + "'");
+                        return;
+                    } else {
+                        // potentialNearTriggerEntity = entity;
+                    }
                 } else {
-                    // potentialNearTriggerEntity = entity;
-                }
-            } else {
-                //  If near something grabbable, grab it!
-                if ((this.triggerSmoothedGrab() || this.secondarySqueezed()) && nearGrabEnabled) {
-                    this.setState(STATE_NEAR_GRABBING, "near grab '" + name + "'");
-                    return;
-                } else {
-                    // potentialNearGrabEntity = entity;
+                    //  If near something grabbable, grab it!
+                    if ((this.triggerSmoothedGrab() || this.secondarySqueezed()) && nearGrabEnabled) {
+                        this.setState(STATE_NEAR_GRABBING, "near grab '" + name + "'");
+                        return;
+                    } else {
+                        // potentialNearGrabEntity = entity;
+                    }
                 }
             }
         }
@@ -1666,16 +1674,22 @@ function MyController(hand) {
             }
         }
 
-        if (rayPickInfo.entityID) {
-            if (this.triggerSmoothedGrab() && isInEditMode()) {
-                this.searchIndicatorOn(rayPickInfo.searchRay);
-                Messages.sendLocalMessage("entityToolUpdates", JSON.stringify({
-                    method: "selectEntity",
-                    entityID: rayPickInfo.entityID
-                }));
-                return;
+        if (isInEditMode()) {
+            this.searchIndicatorOn(rayPickInfo.searchRay);
+            if (this.triggerSmoothedGrab()) {
+                if (!this.editTriggered && rayPickInfo.entityID) {
+                    Messages.sendLocalMessage("entityToolUpdates", JSON.stringify({
+                        method: "selectEntity",
+                        entityID: rayPickInfo.entityID
+                    }));
+                }
+                this.editTriggered = true;
             }
+            Reticle.setVisible(false);
+            return;
+        }
 
+        if (rayPickInfo.entityID) {
             entity = rayPickInfo.entityID;
             name = entityPropertiesCache.getProps(entity).name;
             if (this.entityWantsTrigger(entity)) {
diff --git a/scripts/system/html/js/entityList.js b/scripts/system/html/js/entityList.js
index 1af9c1e1d6..048d5561df 100644
--- a/scripts/system/html/js/entityList.js
+++ b/scripts/system/html/js/entityList.js
@@ -330,10 +330,10 @@ function loaded() {
                   }
               } else if (data.type == "update") {
                   var newEntities = data.entities;
-                  if (newEntities.length == 0) {
+                  if (newEntities && newEntities.length == 0) {
                       elNoEntitiesMessage.style.display = "block";
                       elFooter.firstChild.nodeValue = "0 entities found";
-                  } else {
+                  } else if (newEntities) {
                       elNoEntitiesMessage.style.display = "none";
                       for (var i = 0; i < newEntities.length; i++) {
                           var id = newEntities[i].id;
diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js
index 957cea4528..1c15aafa8b 100644
--- a/scripts/system/html/js/entityProperties.js
+++ b/scripts/system/html/js/entityProperties.js
@@ -732,7 +732,7 @@ function loaded() {
                     }
                 } else if (data.type == "update") {
 
-                    if (data.selections.length == 0) {
+                    if (!data.selections || data.selections.length == 0) {
                         if (editor !== null && lastEntityID !== null) {
                             saveJSONUserData(true);
                             deleteJSONEditor();
@@ -741,7 +741,7 @@ function loaded() {
                         elType.innerHTML = "<i>No selection</i>";
                         elID.innerHTML = "";
                         disableProperties();
-                    } else if (data.selections.length > 1) {
+                    } else if (data.selections && data.selections.length > 1) {
                         deleteJSONEditor();
                         var selections = data.selections;
 
diff --git a/scripts/system/libraries/entitySelectionTool.js b/scripts/system/libraries/entitySelectionTool.js
index 4fd708a86e..08ae7ae5f7 100644
--- a/scripts/system/libraries/entitySelectionTool.js
+++ b/scripts/system/libraries/entitySelectionTool.js
@@ -1028,44 +1028,44 @@ SelectionDisplay = (function() {
     that.TRIGGER_OFF_VALUE = 0.15;
     that.triggered = false;
     var activeHand = Controller.Standard.RightHand;
-    // function makeTriggerHandler(hand) {
-    //     return function (value) {
-    //         if (!that.triggered && (value > that.TRIGGER_GRAB_VALUE)) { // should we smooth?
-    //             that.triggered = true;
-    //             if (activeHand !== hand) {
-    //                 // No switching while the other is already triggered, so no need to release.
-    //                 activeHand = (activeHand === Controller.Standard.RightHand) ? Controller.Standard.LeftHand : Controller.Standard.RightHand;
-    //             }
-    //             if (Reticle.pointingAtSystemOverlay || Overlays.getOverlayAtPoint(Reticle.position)) {
-    //                 return;
-    //             }
-    //             var eventResult = that.mousePressEvent({});
-    //             if (!eventResult || (eventResult === 'selectionBox')) {
-    //                 var pickRay = controllerComputePickRay();
-    //                 if (pickRay) {
-    //                     var entityIntersection = Entities.findRayIntersection(pickRay, true);
+    function makeTriggerHandler(hand) {
+        return function (value) {
+            if (!that.triggered && (value > that.TRIGGER_GRAB_VALUE)) { // should we smooth?
+                that.triggered = true;
+                if (activeHand !== hand) {
+                    // No switching while the other is already triggered, so no need to release.
+                    activeHand = (activeHand === Controller.Standard.RightHand) ? Controller.Standard.LeftHand : Controller.Standard.RightHand;
+                }
+                if (Reticle.pointingAtSystemOverlay || Overlays.getOverlayAtPoint(Reticle.position)) {
+                    return;
+                }
+                var eventResult = that.mousePressEvent({});
+                // if (!eventResult || (eventResult === 'selectionBox')) {
+                //     var pickRay = controllerComputePickRay();
+                //     if (pickRay) {
+                //         var entityIntersection = Entities.findRayIntersection(pickRay, true);
 
 
-    //                     var overlayIntersection = Overlays.findRayIntersection(pickRay);
-    //                     if (entityIntersection.intersects &&
-    //                         (!overlayIntersection.intersects || (entityIntersection.distance < overlayIntersection.distance))) {
+                //         var overlayIntersection = Overlays.findRayIntersection(pickRay);
+                //         if (entityIntersection.intersects &&
+                //             (!overlayIntersection.intersects || (entityIntersection.distance < overlayIntersection.distance))) {
 
-    //                         if (HMD.tabletID === entityIntersection.entityID) {
-    //                             return;
-    //                         }
+                //             if (HMD.tabletID === entityIntersection.entityID) {
+                //                 return;
+                //             }
 
-    //                         selectionManager.setSelections([entityIntersection.entityID]);
-    //                     }
-    //                 }
-    //             }
-    //         } else if (that.triggered && (value < that.TRIGGER_OFF_VALUE)) {
-    //             that.triggered = false;
-    //             that.mouseReleaseEvent({});
-    //         }
-    //     };
-    // }
-    // that.triggerMapping.from(Controller.Standard.RT).peek().to(makeTriggerHandler(Controller.Standard.RightHand));
-    // that.triggerMapping.from(Controller.Standard.LT).peek().to(makeTriggerHandler(Controller.Standard.LeftHand));
+                //             selectionManager.setSelections([entityIntersection.entityID]);
+                //         }
+                //     }
+                // }
+            } else if (that.triggered && (value < that.TRIGGER_OFF_VALUE)) {
+                that.triggered = false;
+                that.mouseReleaseEvent({});
+            }
+        };
+    }
+    that.triggerMapping.from(Controller.Standard.RT).peek().to(makeTriggerHandler(Controller.Standard.RightHand));
+    that.triggerMapping.from(Controller.Standard.LT).peek().to(makeTriggerHandler(Controller.Standard.LeftHand));
 
 
     function controllerComputePickRay() {
@@ -2064,7 +2064,7 @@ SelectionDisplay = (function() {
                 });
                 Overlays.editOverlay(grabberPointLightL, {
                     visible: false
-                });
+                });
                 Overlays.editOverlay(grabberPointLightR, {
                     visible: false
                 });

From 22baab13592c6de7622db085cf64bcee7f0b5918 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Wed, 15 Feb 2017 15:24:08 +0000
Subject: [PATCH 014/247] updating branch with master

---
 .../resources/qml/hifi/tablet/TabletMenu.qml  | 13 +++++--
 ...etMouseHandler.qml => TabletMenuStack.qml} | 37 +++++++++++--------
 interface/src/Application.cpp                 | 11 +++++-
 3 files changed, 42 insertions(+), 19 deletions(-)
 rename interface/resources/qml/hifi/tablet/{TabletMouseHandler.qml => TabletMenuStack.qml} (88%)

diff --git a/interface/resources/qml/hifi/tablet/TabletMenu.qml b/interface/resources/qml/hifi/tablet/TabletMenu.qml
index cd3a9cacae..618aa30fb4 100644
--- a/interface/resources/qml/hifi/tablet/TabletMenu.qml
+++ b/interface/resources/qml/hifi/tablet/TabletMenu.qml
@@ -2,8 +2,14 @@ import QtQuick 2.5
 import QtGraphicalEffects 1.0
 import QtQuick.Controls 1.4
 import QtQml 2.2
+import QtWebChannel 1.0
+import QtWebEngine  1.1
+import HFWebEngineProfile 1.0
+
+
 import "."
 import "../../styles-uit"
+import "../../controls"
 
 FocusScope {
     id: tabletMenu
@@ -14,8 +20,9 @@ FocusScope {
 
     property var rootMenu: Menu { objectName:"rootMenu" }
     property var point: Qt.point(50, 50)
-
-    TabletMouseHandler { id: menuPopperUpper }
+    property var eventBridge;
+    signal sendToScript(var message);
+    TabletMenuStack { id: menuPopperUpper }
 
     Rectangle {
         id: bgNavBar
@@ -101,6 +108,6 @@ FocusScope {
         buildMenu()
     }
     function buildMenu() {
-        menuPopperUpper.popup(tabletMenu, rootMenu.items)
+        menuPopperUpper.popup(rootMenu.items);
     }
 }
diff --git a/interface/resources/qml/hifi/tablet/TabletMouseHandler.qml b/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
similarity index 88%
rename from interface/resources/qml/hifi/tablet/TabletMouseHandler.qml
rename to interface/resources/qml/hifi/tablet/TabletMenuStack.qml
index f2fa5f8d75..f84f90fbb3 100644
--- a/interface/resources/qml/hifi/tablet/TabletMouseHandler.qml
+++ b/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
@@ -1,7 +1,7 @@
 //
 //  MessageDialog.qml
 //
-//  Created by Bradley Austin Davis on 18 Jan 2016
+//  Created by Dante Ruiz  on 13 Feb 2017
 //  Copyright 2016 High Fidelity, Inc.
 //
 //  Distributed under the Apache License, Version 2.0.
@@ -28,8 +28,11 @@ Item {
         }
     }
 
-    QtObject {
+    StackView {
+        anchors.fill: parent
         id: d
+        objectName: "stack"
+        initialItem: topMenu
         property var menuStack: []
         property var topMenu: null;
         property var modelMaker: Component { ListModel { } }
@@ -53,6 +56,12 @@ Item {
             }
         }
 
+        function pushSource(path) {
+        }
+
+        function popSource() {
+        }
+
         function toModel(items) {
             var result = modelMaker.createObject(tabletMenu);
             for (var i = 0; i < items.length; ++i) {
@@ -76,15 +85,15 @@ Item {
         }
 
         function popMenu() {
-            if (menuStack.length) {
-                menuStack.pop().destroy();
+            if (d.depth) {
+                d.pop();
             }
-            if (menuStack.length) {
-                topMenu = menuStack[menuStack.length - 1];
+            if (d.depth) {
+                topMenu = d.currentItem;
                 topMenu.focus = true;
                 topMenu.forceActiveFocus();
                 // show current menu level on nav bar
-                if (topMenu.objectName === "" || menuStack.length === 1) {
+                if (topMenu.objectName === "" || d.depth === 1) {
                     breadcrumbText.text = "Menu";
                 } else {
                     breadcrumbText.text = topMenu.objectName;
@@ -96,16 +105,14 @@ Item {
         }
 
         function pushMenu(newMenu) {
-            menuStack.push(newMenu);
+            d.push({ item:newMenu, destroyOnPop: true});
             topMenu = newMenu;
             topMenu.focus = true;
             topMenu.forceActiveFocus();
         }
 
         function clearMenus() {
-            while (menuStack.length) {
-                popMenu()
-            }
+            d.clear()
         }
 
         function clampMenuPosition(menu) {
@@ -123,7 +130,7 @@ Item {
             }
         }
 
-        function buildMenu(items, targetPosition) {
+        function buildMenu(items) {
             var model = toModel(items);
             // Menus must be childed to desktop for Z-ordering
             var newMenu = menuViewMaker.createObject(tabletMenu, { model: model, isSubMenu: topMenu !== null });
@@ -154,13 +161,13 @@ Item {
 
     }
 
-    function popup(parent, items) {
+    function popup(items) {
         d.clearMenus();
-        d.buildMenu(items, point);
+        d.buildMenu(items);
     }
 
     function closeLastMenu() {
-        if (d.menuStack.length > 1) {
+        if (d.depth > 1) {
             d.popMenu();
             return true;
         }
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index b7aecfa597..663c1f81fb 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -5743,8 +5743,17 @@ bool Application::displayAvatarAttachmentConfirmationDialog(const QString& name)
 }
 
 void Application::toggleRunningScriptsWidget() const {
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    auto tabletWindow = tabletScriptingInterface->getTabletWindow();
     static const QUrl url("hifi/dialogs/RunningScripts.qml");
-    DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
+    if (tabletWindow) {
+        auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+        if (tablet) {
+            tablet->pushOntoStack("../..//hifi/dialogs/RunningScripts.qml");
+        }
+    } else {
+        DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
+    }
     //if (_runningScriptsWidget->isVisible()) {
     //    if (_runningScriptsWidget->hasFocus()) {
     //        _runningScriptsWidget->hide();

From 792c7ff51f144d6515bf977f370be8267e94bbe4 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Wed, 15 Feb 2017 10:41:56 -0800
Subject: [PATCH 015/247] PointerEvent will now relay keyboard modifiers

---
 interface/src/ui/overlays/Overlays.cpp        | 12 +++++------
 interface/src/ui/overlays/Web3DOverlay.cpp    |  3 +--
 .../src/EntityTreeRenderer.cpp                | 21 ++++++++++++-------
 libraries/shared/src/PointerEvent.cpp         | 13 ++++++++----
 libraries/shared/src/PointerEvent.h           |  6 +++++-
 .../system/libraries/entitySelectionTool.js   |  2 +-
 6 files changed, 36 insertions(+), 21 deletions(-)

diff --git a/interface/src/ui/overlays/Overlays.cpp b/interface/src/ui/overlays/Overlays.cpp
index e81e48f2bc..8a71d51a8b 100644
--- a/interface/src/ui/overlays/Overlays.cpp
+++ b/interface/src/ui/overlays/Overlays.cpp
@@ -693,8 +693,9 @@ static PointerEvent::Button toPointerButton(const QMouseEvent& event) {
     }
 }
 
-PointerEvent Overlays::calculatePointerEvent(Overlay::Pointer overlay, PickRay ray, 
-    RayToOverlayIntersectionResult rayPickResult, QMouseEvent* event, PointerEvent::EventType eventType) {
+PointerEvent Overlays::calculatePointerEvent(Overlay::Pointer overlay, PickRay ray,
+                                             RayToOverlayIntersectionResult rayPickResult, QMouseEvent* event,
+                                             PointerEvent::EventType eventType) {
 
     auto thisOverlay = std::dynamic_pointer_cast<Web3DOverlay>(overlay);
 
@@ -704,10 +705,9 @@ PointerEvent Overlays::calculatePointerEvent(Overlay::Pointer overlay, PickRay r
     auto dimensions = thisOverlay->getSize();
 
     glm::vec2 pos2D = projectOntoOverlayXYPlane(position, rotation, dimensions, ray, rayPickResult);
-    PointerEvent pointerEvent(eventType, MOUSE_POINTER_ID,
-        pos2D, rayPickResult.intersection,
-        rayPickResult.surfaceNormal, ray.direction,
-        toPointerButton(*event), toPointerButtons(*event));
+
+    PointerEvent pointerEvent(eventType, MOUSE_POINTER_ID, pos2D, rayPickResult.intersection, rayPickResult.surfaceNormal,
+                              ray.direction, toPointerButton(*event), toPointerButtons(*event), event->modifiers());
 
     return pointerEvent;
 }
diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp
index cb649e8766..72bd0228f3 100644
--- a/interface/src/ui/overlays/Web3DOverlay.cpp
+++ b/interface/src/ui/overlays/Web3DOverlay.cpp
@@ -344,9 +344,8 @@ void Web3DOverlay::handlePointerEvent(const PointerEvent& event) {
     QList<QTouchEvent::TouchPoint> touchPoints;
     touchPoints.push_back(point);
 
-    QTouchEvent* touchEvent = new QTouchEvent(type);
+    QTouchEvent* touchEvent = new QTouchEvent(type, &_touchDevice, event.getKeyboardModifiers());
     touchEvent->setWindow(_webSurface->getWindow());
-    touchEvent->setDevice(&_touchDevice);
     touchEvent->setTarget(_webSurface->getRootItem());
     touchEvent->setTouchPoints(touchPoints);
     touchEvent->setTouchPointStates(touchPointState);
diff --git a/libraries/entities-renderer/src/EntityTreeRenderer.cpp b/libraries/entities-renderer/src/EntityTreeRenderer.cpp
index 4f4f3bf67f..4e105e4149 100644
--- a/libraries/entities-renderer/src/EntityTreeRenderer.cpp
+++ b/libraries/entities-renderer/src/EntityTreeRenderer.cpp
@@ -713,7 +713,8 @@ void EntityTreeRenderer::mousePressEvent(QMouseEvent* event) {
         PointerEvent pointerEvent(PointerEvent::Press, MOUSE_POINTER_ID,
                                   pos2D, rayPickResult.intersection,
                                   rayPickResult.surfaceNormal, ray.direction,
-                                  toPointerButton(*event), toPointerButtons(*event));
+                                  toPointerButton(*event), toPointerButtons(*event),
+                                  Qt::NoModifier); // TODO -- check for modifier keys?
 
         emit mousePressOnEntity(rayPickResult.entityID, pointerEvent);
 
@@ -753,7 +754,8 @@ void EntityTreeRenderer::mouseReleaseEvent(QMouseEvent* event) {
         PointerEvent pointerEvent(PointerEvent::Release, MOUSE_POINTER_ID,
                                   pos2D, rayPickResult.intersection,
                                   rayPickResult.surfaceNormal, ray.direction,
-                                  toPointerButton(*event), toPointerButtons(*event));
+                                  toPointerButton(*event), toPointerButtons(*event),
+                                  Qt::NoModifier); // TODO -- check for modifier keys?
 
         emit mouseReleaseOnEntity(rayPickResult.entityID, pointerEvent);
         if (_entitiesScriptEngine) {
@@ -773,7 +775,8 @@ void EntityTreeRenderer::mouseReleaseEvent(QMouseEvent* event) {
         PointerEvent pointerEvent(PointerEvent::Release, MOUSE_POINTER_ID,
                                   pos2D, rayPickResult.intersection,
                                   rayPickResult.surfaceNormal, ray.direction,
-                                  toPointerButton(*event), toPointerButtons(*event));
+                                  toPointerButton(*event), toPointerButtons(*event),
+                                  Qt::NoModifier); // TODO -- check for modifier keys?
 
         emit clickReleaseOnEntity(_currentClickingOnEntityID, pointerEvent);
         if (_entitiesScriptEngine) {
@@ -803,7 +806,8 @@ void EntityTreeRenderer::mouseMoveEvent(QMouseEvent* event) {
         PointerEvent pointerEvent(PointerEvent::Move, MOUSE_POINTER_ID,
                                   pos2D, rayPickResult.intersection,
                                   rayPickResult.surfaceNormal, ray.direction,
-                                  toPointerButton(*event), toPointerButtons(*event));
+                                  toPointerButton(*event), toPointerButtons(*event),
+                                  Qt::NoModifier); // TODO -- check for modifier keys?
 
         emit mouseMoveOnEntity(rayPickResult.entityID, pointerEvent);
 
@@ -823,7 +827,8 @@ void EntityTreeRenderer::mouseMoveEvent(QMouseEvent* event) {
             PointerEvent pointerEvent(PointerEvent::Move, MOUSE_POINTER_ID,
                                       pos2D, rayPickResult.intersection,
                                       rayPickResult.surfaceNormal, ray.direction,
-                                      toPointerButton(*event), toPointerButtons(*event));
+                                      toPointerButton(*event), toPointerButtons(*event),
+                                      Qt::NoModifier); // TODO -- check for modifier keys?
 
             emit hoverLeaveEntity(_currentHoverOverEntityID, pointerEvent);
             if (_entitiesScriptEngine) {
@@ -864,7 +869,8 @@ void EntityTreeRenderer::mouseMoveEvent(QMouseEvent* event) {
             PointerEvent pointerEvent(PointerEvent::Move, MOUSE_POINTER_ID,
                                   pos2D, rayPickResult.intersection,
                                   rayPickResult.surfaceNormal, ray.direction,
-                                  toPointerButton(*event), toPointerButtons(*event));
+                                      toPointerButton(*event), toPointerButtons(*event),
+                                      Qt::NoModifier); // TODO -- check for modifier keys?
 
             emit hoverLeaveEntity(_currentHoverOverEntityID, pointerEvent);
             if (_entitiesScriptEngine) {
@@ -883,7 +889,8 @@ void EntityTreeRenderer::mouseMoveEvent(QMouseEvent* event) {
         PointerEvent pointerEvent(PointerEvent::Move, MOUSE_POINTER_ID,
                                   pos2D, rayPickResult.intersection,
                                   rayPickResult.surfaceNormal, ray.direction,
-                                  toPointerButton(*event), toPointerButtons(*event));
+                                  toPointerButton(*event), toPointerButtons(*event),
+                                  Qt::NoModifier); // TODO -- check for modifier keys?
 
         emit holdingClickOnEntity(_currentClickingOnEntityID, pointerEvent);
         if (_entitiesScriptEngine) {
diff --git a/libraries/shared/src/PointerEvent.cpp b/libraries/shared/src/PointerEvent.cpp
index ed9acb9ada..0833657886 100644
--- a/libraries/shared/src/PointerEvent.cpp
+++ b/libraries/shared/src/PointerEvent.cpp
@@ -25,9 +25,9 @@ PointerEvent::PointerEvent() {
 }
 
 PointerEvent::PointerEvent(EventType type, uint32_t id,
-             const glm::vec2& pos2D, const glm::vec3& pos3D,
-             const glm::vec3& normal, const glm::vec3& direction,
-             Button button, uint32_t buttons) :
+                           const glm::vec2& pos2D, const glm::vec3& pos3D,
+                           const glm::vec3& normal, const glm::vec3& direction,
+                           Button button, uint32_t buttons, Qt::KeyboardModifiers keyboardModifiers) :
     _type(type),
     _id(id),
     _pos2D(pos2D),
@@ -35,7 +35,8 @@ PointerEvent::PointerEvent(EventType type, uint32_t id,
     _normal(normal),
     _direction(direction),
     _button(button),
-    _buttons(buttons)
+    _buttons(buttons),
+    _keyboardModifiers(keyboardModifiers)
 {
     ;
 }
@@ -119,6 +120,8 @@ QScriptValue PointerEvent::toScriptValue(QScriptEngine* engine, const PointerEve
     obj.setProperty("isSecondaryHeld", areFlagsSet(event._buttons, SecondaryButton));
     obj.setProperty("isTertiaryHeld", areFlagsSet(event._buttons, TertiaryButton));
 
+    obj.setProperty("keyboardModifiers", QScriptValue(event.getKeyboardModifiers()));
+
     return obj;
 }
 
@@ -174,5 +177,7 @@ void PointerEvent::fromScriptValue(const QScriptValue& object, PointerEvent& eve
         if (tertiary) {
             event._buttons |= TertiaryButton;
         }
+
+        event._keyboardModifiers = (Qt::KeyboardModifiers)(object.property("keyboardModifiers").toUInt32());
     }
 }
diff --git a/libraries/shared/src/PointerEvent.h b/libraries/shared/src/PointerEvent.h
index 054835c4fc..2b98a50487 100644
--- a/libraries/shared/src/PointerEvent.h
+++ b/libraries/shared/src/PointerEvent.h
@@ -12,6 +12,8 @@
 #ifndef hifi_PointerEvent_h
 #define hifi_PointerEvent_h
 
+#include <Qt>
+
 #include <stdint.h>
 #include <glm/glm.hpp>
 #include <QScriptValue>
@@ -35,7 +37,7 @@ public:
     PointerEvent(EventType type, uint32_t id,
                  const glm::vec2& pos2D, const glm::vec3& pos3D,
                  const glm::vec3& normal, const glm::vec3& direction,
-                 Button button, uint32_t buttons);
+                 Button button, uint32_t buttons, Qt::KeyboardModifiers keyboardModifiers);
 
     static QScriptValue toScriptValue(QScriptEngine* engine, const PointerEvent& event);
     static void fromScriptValue(const QScriptValue& object, PointerEvent& event);
@@ -50,6 +52,7 @@ public:
     const glm::vec3& getDirection() const { return _direction; }
     Button getButton() const { return _button; }
     uint32_t getButtons() const { return _buttons; }
+    Qt::KeyboardModifiers getKeyboardModifiers() const { return _keyboardModifiers; }
 
 private:
     EventType _type;
@@ -61,6 +64,7 @@ private:
 
     Button _button { NoButtons };  // button assosiated with this event, (if type is Press, this will be the button that is pressed)
     uint32_t _buttons { NoButtons }; // the current state of all the buttons.
+    Qt::KeyboardModifiers _keyboardModifiers { Qt::NoModifier };
 };
 
 Q_DECLARE_METATYPE(PointerEvent)
diff --git a/scripts/system/libraries/entitySelectionTool.js b/scripts/system/libraries/entitySelectionTool.js
index 08ae7ae5f7..2471de98d3 100644
--- a/scripts/system/libraries/entitySelectionTool.js
+++ b/scripts/system/libraries/entitySelectionTool.js
@@ -2064,7 +2064,7 @@ SelectionDisplay = (function() {
                 });
                 Overlays.editOverlay(grabberPointLightL, {
                     visible: false
-                });
+                });
                 Overlays.editOverlay(grabberPointLightR, {
                     visible: false
                 });

From e6853a925549e148648349e7351d8a073e9c3278 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Wed, 15 Feb 2017 18:57:06 +0000
Subject: [PATCH 016/247] updated menu stack

---
 interface/resources/qml/hifi/tablet/TabletMenu.qml  | 13 +++++--------
 .../resources/qml/hifi/tablet/TabletMenuStack.qml   |  7 ++++++-
 2 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/TabletMenu.qml b/interface/resources/qml/hifi/tablet/TabletMenu.qml
index 10ee247b2d..e4895740e6 100644
--- a/interface/resources/qml/hifi/tablet/TabletMenu.qml
+++ b/interface/resources/qml/hifi/tablet/TabletMenu.qml
@@ -19,7 +19,7 @@ FocusScope {
     height: 720
 
     property var rootMenu: Menu { objectName:"rootMenu" }
-    property var point: Qt.point(50, 50)
+    property var point: Qt.point(50, 50);
     property var eventBridge;
     signal sendToScript(var message);
     TabletMenuStack { id: menuPopperUpper }
@@ -64,6 +64,7 @@ FocusScope {
                 // navigate back to root level menu
                 onClicked: {
                     buildMenu();
+                    breadcrumbText.text = "Menu";
                     tabletRoot.playButtonClickSound();
                 }
             }
@@ -106,12 +107,9 @@ FocusScope {
 
     function setRootMenu(menu) {
         tabletMenu.rootMenu = menu
-        buildMenu()
+        buildMenu();
     }
     function buildMenu() {
-<<<<<<< HEAD
-        menuPopperUpper.popup(rootMenu.items);
-=======
         // Build submenu if specified.
         if (subMenu !== "") {
             var index = 0;
@@ -124,13 +122,12 @@ FocusScope {
             }
             subMenu = "";  // Continue with full menu after initially displaying submenu.
             if (found) {
-                menuPopperUpper.popup(tabletMenu, rootMenu.items[index].items);
+                menuPopperUpper.popup(rootMenu.items[index].items);
                 return;
             }
         }
 
         // Otherwise build whole menu.
-        menuPopperUpper.popup(tabletMenu, rootMenu.items);
->>>>>>> 01bdac49d04ec897a3da7a264a1a26748a4e1938
+        menuPopperUpper.popup(rootMenu.items);
     }
 }
diff --git a/interface/resources/qml/hifi/tablet/TabletMenuStack.qml b/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
index f84f90fbb3..c33f4e648b 100644
--- a/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
+++ b/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
@@ -27,12 +27,13 @@ Item {
             d.clearMenus();
         }
     }
-
+    
     StackView {
         anchors.fill: parent
         id: d
         objectName: "stack"
         initialItem: topMenu
+
         property var menuStack: []
         property var topMenu: null;
         property var modelMaker: Component { ListModel { } }
@@ -57,9 +58,13 @@ Item {
         }
 
         function pushSource(path) {
+            d.push(Qt.resolvedUrl(path));
+            d.currentItem.eventBridge = tabletMenu.eventBridge
+            d.currentItem.sendToScript.connect(tabletMenu.sendToScript);
         }
 
         function popSource() {
+            d.pop();
         }
 
         function toModel(items) {

From 1038e97c7f1c5a0d80e7fe08d8ebcc17dee88b1d Mon Sep 17 00:00:00 2001
From: Seth Alves <seth@highfidelity.io>
Date: Wed, 15 Feb 2017 11:14:23 -0800
Subject: [PATCH 017/247] fix windows build

---
 libraries/shared/src/PointerEvent.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libraries/shared/src/PointerEvent.h b/libraries/shared/src/PointerEvent.h
index 2b98a50487..980510b091 100644
--- a/libraries/shared/src/PointerEvent.h
+++ b/libraries/shared/src/PointerEvent.h
@@ -64,7 +64,7 @@ private:
 
     Button _button { NoButtons };  // button assosiated with this event, (if type is Press, this will be the button that is pressed)
     uint32_t _buttons { NoButtons }; // the current state of all the buttons.
-    Qt::KeyboardModifiers _keyboardModifiers { Qt::NoModifier };
+    Qt::KeyboardModifiers _keyboardModifiers; // set of keys held when event was generated
 };
 
 Q_DECLARE_METATYPE(PointerEvent)

From 3ea0f6d2d2ea08b82b6f8f83d486048d924ac368 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth@highfidelity.io>
Date: Wed, 15 Feb 2017 11:34:48 -0800
Subject: [PATCH 018/247] allow lasers to scroll tablet while in edit-mode

---
 scripts/system/controllers/handControllerGrab.js | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index 6e81c3de52..4c08bb6ef5 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -862,7 +862,8 @@ function MyController(hand) {
         if ((isInEditMode() && this.grabbedEntity !== HMD.tabletID) &&
             (newState !== STATE_OFF &&
              newState !== STATE_SEARCHING &&
-             newState !== STATE_OVERLAY_STYLUS_TOUCHING)) {
+             newState !== STATE_OVERLAY_STYLUS_TOUCHING &&
+             newState !== STATE_OVERLAY_LASER_TOUCHING)) {
             return;
         }
         setGrabCommunications((newState === STATE_DISTANCE_HOLDING) || (newState === STATE_NEAR_GRABBING));

From 076b0ed3ab1b2308d593c94ced1cf096350a5582 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth@highfidelity.io>
Date: Wed, 15 Feb 2017 15:00:25 -0800
Subject: [PATCH 019/247] get particle explorer working, again

---
 scripts/system/edit.js                        | 17 ++++++++-----
 .../system/libraries/entitySelectionTool.js   | 25 +++----------------
 .../particle_explorer/particleExplorer.html   |  2 +-
 .../particle_explorer/particleExplorer.js     |  9 ++++---
 .../particle_explorer/particleExplorerTool.js |  5 ++--
 5 files changed, 25 insertions(+), 33 deletions(-)

diff --git a/scripts/system/edit.js b/scripts/system/edit.js
index 39dd3bc598..fdc14445c5 100644
--- a/scripts/system/edit.js
+++ b/scripts/system/edit.js
@@ -1924,12 +1924,17 @@ entityListTool.webView.webEventReceived.connect(function (data) {
                 selectedParticleEntity = ids[0];
                 particleExplorerTool.setActiveParticleEntity(ids[0]);
 
-                particleExplorerTool.webView.webEventReceived.connect(function (data) {
-                    data = JSON.parse(data);
-                    if (data.messageType === "page_loaded") {
-                        particleExplorerTool.webView.emitScriptEvent(JSON.stringify(particleData));
-                    }
-                });
+                if (Settings.getValue("HUDUIEnabled")) {
+                    particleExplorerTool.webView.webEventReceived.connect(function (data) {
+                        data = JSON.parse(data);
+                        if (data.messageType === "page_loaded") {
+                            particleExplorerTool.webView.emitScriptEvent(JSON.stringify(particleData));
+                        }
+                    });
+                } else {
+                    // in the tablet version, the page was loaded earlier
+                    particleExplorerTool.webView.emitScriptEvent(JSON.stringify(particleData));
+                }
             } else {
                 selectedParticleEntity = 0;
                 particleExplorerTool.destroyWebView();
diff --git a/scripts/system/libraries/entitySelectionTool.js b/scripts/system/libraries/entitySelectionTool.js
index 2471de98d3..596620b59a 100644
--- a/scripts/system/libraries/entitySelectionTool.js
+++ b/scripts/system/libraries/entitySelectionTool.js
@@ -1034,30 +1034,13 @@ SelectionDisplay = (function() {
                 that.triggered = true;
                 if (activeHand !== hand) {
                     // No switching while the other is already triggered, so no need to release.
-                    activeHand = (activeHand === Controller.Standard.RightHand) ? Controller.Standard.LeftHand : Controller.Standard.RightHand;
+                    activeHand = (activeHand === Controller.Standard.RightHand) ?
+                        Controller.Standard.LeftHand : Controller.Standard.RightHand;
                 }
                 if (Reticle.pointingAtSystemOverlay || Overlays.getOverlayAtPoint(Reticle.position)) {
                     return;
                 }
-                var eventResult = that.mousePressEvent({});
-                // if (!eventResult || (eventResult === 'selectionBox')) {
-                //     var pickRay = controllerComputePickRay();
-                //     if (pickRay) {
-                //         var entityIntersection = Entities.findRayIntersection(pickRay, true);
-
-
-                //         var overlayIntersection = Overlays.findRayIntersection(pickRay);
-                //         if (entityIntersection.intersects &&
-                //             (!overlayIntersection.intersects || (entityIntersection.distance < overlayIntersection.distance))) {
-
-                //             if (HMD.tabletID === entityIntersection.entityID) {
-                //                 return;
-                //             }
-
-                //             selectionManager.setSelections([entityIntersection.entityID]);
-                //         }
-                //     }
-                // }
+                that.mousePressEvent({});
             } else if (that.triggered && (value < that.TRIGGER_OFF_VALUE)) {
                 that.triggered = false;
                 that.mouseReleaseEvent({});
@@ -2065,7 +2048,7 @@ SelectionDisplay = (function() {
                 Overlays.editOverlay(grabberPointLightL, {
                     visible: false
                 });
-                Overlays.editOverlay(grabberPointLightR, {
+                Overlays.editOverlay(grabberPointLightR, {
                     visible: false
                 });
                 Overlays.editOverlay(grabberPointLightF, {
diff --git a/scripts/system/particle_explorer/particleExplorer.html b/scripts/system/particle_explorer/particleExplorer.html
index 260d8a7813..d12ceac14b 100644
--- a/scripts/system/particle_explorer/particleExplorer.html
+++ b/scripts/system/particle_explorer/particleExplorer.html
@@ -76,4 +76,4 @@ body{
 </div>
 
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/scripts/system/particle_explorer/particleExplorer.js b/scripts/system/particle_explorer/particleExplorer.js
index 4fd0978a84..44fa242435 100644
--- a/scripts/system/particle_explorer/particleExplorer.js
+++ b/scripts/system/particle_explorer/particleExplorer.js
@@ -358,9 +358,12 @@ function listenForSettingsUpdates() {
                 settings[key] = value;
             });
 
-            loadGUI();
+            if (gui) {
+                manuallyUpdateDisplay();
+            } else {
+                loadGUI();
+            }
         }
-
     });
 }
 
@@ -505,4 +508,4 @@ function registerDOMElementsForListenerBlocking() {
             });
         });
     });
-}
\ No newline at end of file
+}
diff --git a/scripts/system/particle_explorer/particleExplorerTool.js b/scripts/system/particle_explorer/particleExplorerTool.js
index e592161414..0be7c6b588 100644
--- a/scripts/system/particle_explorer/particleExplorerTool.js
+++ b/scripts/system/particle_explorer/particleExplorerTool.js
@@ -58,8 +58,9 @@ ParticleExplorerTool = function() {
         that.activeParticleEntity = id;
     }
 
+    if (Settings.getValue("HUDUIEnabled")) {
+        that.createWebView();
+    }
 
     return that;
-
-
 };

From 33c1c3ac112bb179fa5bfaaa856ebfdb85f1a9f7 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth@highfidelity.io>
Date: Wed, 15 Feb 2017 15:19:49 -0800
Subject: [PATCH 020/247] when a new particle-entity is created, hook the
 particle explorer to it

---
 scripts/system/edit.js | 54 +++++++++++++++++++++++++-----------------
 1 file changed, 32 insertions(+), 22 deletions(-)

diff --git a/scripts/system/edit.js b/scripts/system/edit.js
index fdc14445c5..4820421d46 100644
--- a/scripts/system/edit.js
+++ b/scripts/system/edit.js
@@ -180,8 +180,12 @@ var toolBar = (function () {
             position = grid.snapToSurface(grid.snapToGrid(position, false, dimensions), dimensions),
                 properties.position = position;
             entityID = Entities.addEntity(properties);
+            if (properties.type == "ParticleEffect") {
+                selectParticleEntity(entityID);
+            }
         } else {
-            Window.notifyEditError("Can't create " + properties.type + ": " + properties.type + " would be out of bounds.");
+            Window.notifyEditError("Can't create " + properties.type + ": " +
+                                   properties.type + " would be out of bounds.");
         }
 
         selectionManager.clearSelections();
@@ -1903,6 +1907,32 @@ var showMenuItem = propertyMenu.addMenuItem("Show in Marketplace");
 var propertiesTool = new PropertiesTool();
 var particleExplorerTool = new ParticleExplorerTool();
 var selectedParticleEntity = 0;
+
+function selectParticleEntity(entityID) {
+    var properties = Entities.getEntityProperties(entityID);
+    var particleData = {
+        messageType: "particle_settings",
+        currentProperties: properties
+    };
+    particleExplorerTool.destroyWebView();
+    particleExplorerTool.createWebView();
+
+    selectedParticleEntity = entityID;
+    particleExplorerTool.setActiveParticleEntity(entityID);
+
+    if (Settings.getValue("HUDUIEnabled")) {
+        particleExplorerTool.webView.webEventReceived.connect(function (data) {
+            data = JSON.parse(data);
+            if (data.messageType === "page_loaded") {
+                particleExplorerTool.webView.emitScriptEvent(JSON.stringify(particleData));
+            }
+        });
+    } else {
+        // in the tablet version, the page was loaded earlier
+        particleExplorerTool.webView.emitScriptEvent(JSON.stringify(particleData));
+    }
+}
+
 entityListTool.webView.webEventReceived.connect(function (data) {
     data = JSON.parse(data);
     if (data.type === "selectionUpdate") {
@@ -1914,27 +1944,7 @@ entityListTool.webView.webEventReceived.connect(function (data) {
                     return;
                 }
                 // Destroy the old particles web view first
-                particleExplorerTool.destroyWebView();
-                particleExplorerTool.createWebView();
-                var properties = Entities.getEntityProperties(ids[0]);
-                var particleData = {
-                    messageType: "particle_settings",
-                    currentProperties: properties
-                };
-                selectedParticleEntity = ids[0];
-                particleExplorerTool.setActiveParticleEntity(ids[0]);
-
-                if (Settings.getValue("HUDUIEnabled")) {
-                    particleExplorerTool.webView.webEventReceived.connect(function (data) {
-                        data = JSON.parse(data);
-                        if (data.messageType === "page_loaded") {
-                            particleExplorerTool.webView.emitScriptEvent(JSON.stringify(particleData));
-                        }
-                    });
-                } else {
-                    // in the tablet version, the page was loaded earlier
-                    particleExplorerTool.webView.emitScriptEvent(JSON.stringify(particleData));
-                }
+                selectParticleEntity(ids[0])
             } else {
                 selectedParticleEntity = 0;
                 particleExplorerTool.destroyWebView();

From 3d7733219cb0343b615d48f484277069fb5fb740 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth@highfidelity.io>
Date: Wed, 15 Feb 2017 16:15:18 -0800
Subject: [PATCH 021/247] edit's open-asset-browser button works, again

---
 scripts/system/edit.js | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/scripts/system/edit.js b/scripts/system/edit.js
index 4820421d46..5f7556592e 100644
--- a/scripts/system/edit.js
+++ b/scripts/system/edit.js
@@ -330,9 +330,12 @@ var toolBar = (function () {
             that.toggle();
         });
 
-        toolBar = Toolbars.getToolbar(EDIT_TOOLBAR);
-        toolBar.writeProperty("shown", false);
-        addButton("openAssetBrowserButton","assets-01.svg",function(){
+        if (Settings.getValue("HUDUIEnabled")) {
+            toolBar = Toolbars.getToolbar(EDIT_TOOLBAR);
+            toolBar.writeProperty("shown", false);
+        }
+
+        addButton("openAssetBrowserButton", "assets-01.svg", function(){
             Window.showAssetServer();
         });
 
@@ -543,12 +546,14 @@ var toolBar = (function () {
             // everybody else to think that Interface has lost focus overall. fogbugzid:558
             // Window.setFocus();
         }
-        // Sets visibility of tool buttons, excluding the power button
-        toolBar.writeProperty("shown", active);
-        var visible = toolBar.readProperty("visible");
-        if (active && !visible) {
-            toolBar.writeProperty("shown", false);
-            toolBar.writeProperty("shown", true);
+        if (Settings.getValue("HUDUIEnabled")) {
+            // Sets visibility of tool buttons, excluding the power button
+            toolBar.writeProperty("shown", active);
+            var visible = toolBar.readProperty("visible");
+            if (active && !visible) {
+                toolBar.writeProperty("shown", false);
+                toolBar.writeProperty("shown", true);
+            }
         }
         lightOverlayManager.setVisible(isActive && Menu.isOptionChecked(MENU_SHOW_LIGHTS_IN_EDIT_MODE));
         Entities.setDrawZoneBoundaries(isActive && Menu.isOptionChecked(MENU_SHOW_ZONES_IN_EDIT_MODE));
@@ -1593,7 +1598,7 @@ var PropertiesTool = function (opts) {
                 for (i = 0; i < selectionManager.selections.length; i++) {
                     Entities.editEntity(selectionManager.selections[i], properties);
                 }
-            } else {
+            } else if (data.properties) {
                 if (data.properties.dynamic === false) {
                     // this object is leaving dynamic, so we zero its velocities
                     data.properties.velocity = {

From 12b8a7748895dfd30ef958431038e48c69d459e2 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth@highfidelity.io>
Date: Wed, 15 Feb 2017 16:29:50 -0800
Subject: [PATCH 022/247] in edit.js, convert entity property ID to be a
 text-field so the data can be copied

---
 scripts/system/html/entityProperties.html  | 2 +-
 scripts/system/html/js/entityProperties.js | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/scripts/system/html/entityProperties.html b/scripts/system/html/entityProperties.html
index b11127b26c..59c420b547 100644
--- a/scripts/system/html/entityProperties.html
+++ b/scripts/system/html/entityProperties.html
@@ -77,7 +77,7 @@
             </div>
             <div id="id" class="property value">
                 <label>ID:</label>
-                <span id="property-id" class="selectable"></span>
+                <input type="text" id="property-id" readonly>
             </div>
             <div class="section-header hyperlink-group hyperlink-section">
                 <label>Hyperlink</label><span>M</span>
diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js
index d38a0e66fa..35063a254f 100644
--- a/scripts/system/html/js/entityProperties.js
+++ b/scripts/system/html/js/entityProperties.js
@@ -740,7 +740,7 @@ function loaded() {
                         }
                         elTypeIcon.style.display = "none";
                         elType.innerHTML = "<i>No selection</i>";
-                        elID.innerHTML = "";
+                        elID.value = "";
                         disableProperties();
                     } else if (data.selections && data.selections.length > 1) {
                         deleteJSONEditor();
@@ -770,7 +770,7 @@ function loaded() {
                         elTypeIcon.innerHTML = ICON_FOR_TYPE[type];
                         elTypeIcon.style.display = "inline-block";
 
-                        elID.innerHTML = ids.join("<br>");
+                        elID.value = "";
 
                         disableProperties();
                     } else {
@@ -783,7 +783,7 @@ function loaded() {
                         //the event bridge and json parsing handle our avatar id string differently.  
 
                         lastEntityID = '"' + properties.id + '"';
-                        elID.innerHTML = properties.id;
+                        elID.value = properties.id;
 
                         elType.innerHTML = properties.type;
                         elTypeIcon.innerHTML = ICON_FOR_TYPE[properties.type];

From 896f9d7181f92e77746a1e4cd41eca9897ffc3de Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Thu, 16 Feb 2017 15:58:26 +0000
Subject: [PATCH 023/247] refreshing with master

---
 interface/src/Application.cpp | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 4011eafb6a..78b81f2075 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -5744,13 +5744,10 @@ bool Application::displayAvatarAttachmentConfirmationDialog(const QString& name)
 
 void Application::toggleRunningScriptsWidget() const {
     auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
-    auto tabletWindow = tabletScriptingInterface->getTabletWindow();
     static const QUrl url("hifi/dialogs/RunningScripts.qml");
-    if (tabletWindow) {
+    if (true) {
         auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
-        if (tablet) {
-            tablet->pushOntoStack("../..//hifi/dialogs/RunningScripts.qml");
-        }
+        tablet->pushOntoStack("../..//hifi/dialogs/RunningScripts.qml");
     } else {
         DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
     }

From 2a97ebb076254f9f92aa64f0b33ab0af66311028 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Wed, 15 Feb 2017 15:24:08 +0000
Subject: [PATCH 024/247] updating branch with master

---
 .../resources/qml/hifi/tablet/TabletMenu.qml  | 15 +++++++-
 ...etMouseHandler.qml => TabletMenuStack.qml} | 37 +++++++++++--------
 interface/src/Application.cpp                 | 11 +++++-
 .../system/libraries/entitySelectionTool.js   |  2 +-
 4 files changed, 46 insertions(+), 19 deletions(-)
 rename interface/resources/qml/hifi/tablet/{TabletMouseHandler.qml => TabletMenuStack.qml} (88%)

diff --git a/interface/resources/qml/hifi/tablet/TabletMenu.qml b/interface/resources/qml/hifi/tablet/TabletMenu.qml
index c154ac0f49..1903a700d6 100644
--- a/interface/resources/qml/hifi/tablet/TabletMenu.qml
+++ b/interface/resources/qml/hifi/tablet/TabletMenu.qml
@@ -2,8 +2,14 @@ import QtQuick 2.5
 import QtGraphicalEffects 1.0
 import QtQuick.Controls 1.4
 import QtQml 2.2
+import QtWebChannel 1.0
+import QtWebEngine  1.1
+import HFWebEngineProfile 1.0
+
+
 import "."
 import "../../styles-uit"
+import "../../controls"
 
 FocusScope {
     id: tabletMenu
@@ -15,8 +21,9 @@ FocusScope {
     property var rootMenu: Menu { objectName:"rootMenu" }
     property var point: Qt.point(50, 50)
     property string subMenu: ""
-
-    TabletMouseHandler { id: menuPopperUpper }
+    property var eventBridge;
+    signal sendToScript(var message);
+    TabletMenuStack { id: menuPopperUpper }
 
     Rectangle {
         id: bgNavBar
@@ -102,6 +109,7 @@ FocusScope {
         buildMenu()
     }
     function buildMenu() {
+<<<<<<< HEAD
         // Build submenu if specified.
         if (subMenu !== "") {
             var index = 0;
@@ -121,5 +129,8 @@ FocusScope {
 
         // Otherwise build whole menu.
         menuPopperUpper.popup(tabletMenu, rootMenu.items);
+=======
+        menuPopperUpper.popup(rootMenu.items);
+>>>>>>> updating branch with master
     }
 }
diff --git a/interface/resources/qml/hifi/tablet/TabletMouseHandler.qml b/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
similarity index 88%
rename from interface/resources/qml/hifi/tablet/TabletMouseHandler.qml
rename to interface/resources/qml/hifi/tablet/TabletMenuStack.qml
index f2fa5f8d75..f84f90fbb3 100644
--- a/interface/resources/qml/hifi/tablet/TabletMouseHandler.qml
+++ b/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
@@ -1,7 +1,7 @@
 //
 //  MessageDialog.qml
 //
-//  Created by Bradley Austin Davis on 18 Jan 2016
+//  Created by Dante Ruiz  on 13 Feb 2017
 //  Copyright 2016 High Fidelity, Inc.
 //
 //  Distributed under the Apache License, Version 2.0.
@@ -28,8 +28,11 @@ Item {
         }
     }
 
-    QtObject {
+    StackView {
+        anchors.fill: parent
         id: d
+        objectName: "stack"
+        initialItem: topMenu
         property var menuStack: []
         property var topMenu: null;
         property var modelMaker: Component { ListModel { } }
@@ -53,6 +56,12 @@ Item {
             }
         }
 
+        function pushSource(path) {
+        }
+
+        function popSource() {
+        }
+
         function toModel(items) {
             var result = modelMaker.createObject(tabletMenu);
             for (var i = 0; i < items.length; ++i) {
@@ -76,15 +85,15 @@ Item {
         }
 
         function popMenu() {
-            if (menuStack.length) {
-                menuStack.pop().destroy();
+            if (d.depth) {
+                d.pop();
             }
-            if (menuStack.length) {
-                topMenu = menuStack[menuStack.length - 1];
+            if (d.depth) {
+                topMenu = d.currentItem;
                 topMenu.focus = true;
                 topMenu.forceActiveFocus();
                 // show current menu level on nav bar
-                if (topMenu.objectName === "" || menuStack.length === 1) {
+                if (topMenu.objectName === "" || d.depth === 1) {
                     breadcrumbText.text = "Menu";
                 } else {
                     breadcrumbText.text = topMenu.objectName;
@@ -96,16 +105,14 @@ Item {
         }
 
         function pushMenu(newMenu) {
-            menuStack.push(newMenu);
+            d.push({ item:newMenu, destroyOnPop: true});
             topMenu = newMenu;
             topMenu.focus = true;
             topMenu.forceActiveFocus();
         }
 
         function clearMenus() {
-            while (menuStack.length) {
-                popMenu()
-            }
+            d.clear()
         }
 
         function clampMenuPosition(menu) {
@@ -123,7 +130,7 @@ Item {
             }
         }
 
-        function buildMenu(items, targetPosition) {
+        function buildMenu(items) {
             var model = toModel(items);
             // Menus must be childed to desktop for Z-ordering
             var newMenu = menuViewMaker.createObject(tabletMenu, { model: model, isSubMenu: topMenu !== null });
@@ -154,13 +161,13 @@ Item {
 
     }
 
-    function popup(parent, items) {
+    function popup(items) {
         d.clearMenus();
-        d.buildMenu(items, point);
+        d.buildMenu(items);
     }
 
     function closeLastMenu() {
-        if (d.menuStack.length > 1) {
+        if (d.depth > 1) {
             d.popMenu();
             return true;
         }
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 488e97b5e6..4011eafb6a 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -5743,8 +5743,17 @@ bool Application::displayAvatarAttachmentConfirmationDialog(const QString& name)
 }
 
 void Application::toggleRunningScriptsWidget() const {
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    auto tabletWindow = tabletScriptingInterface->getTabletWindow();
     static const QUrl url("hifi/dialogs/RunningScripts.qml");
-    DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
+    if (tabletWindow) {
+        auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+        if (tablet) {
+            tablet->pushOntoStack("../..//hifi/dialogs/RunningScripts.qml");
+        }
+    } else {
+        DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
+    }
     //if (_runningScriptsWidget->isVisible()) {
     //    if (_runningScriptsWidget->hasFocus()) {
     //        _runningScriptsWidget->hide();
diff --git a/scripts/system/libraries/entitySelectionTool.js b/scripts/system/libraries/entitySelectionTool.js
index 596620b59a..0fd0b01d25 100644
--- a/scripts/system/libraries/entitySelectionTool.js
+++ b/scripts/system/libraries/entitySelectionTool.js
@@ -2048,7 +2048,7 @@ SelectionDisplay = (function() {
                 Overlays.editOverlay(grabberPointLightL, {
                     visible: false
                 });
-                Overlays.editOverlay(grabberPointLightR, {
+                Overlays.editOverlay(grabberPointLightR, {
                     visible: false
                 });
                 Overlays.editOverlay(grabberPointLightF, {

From b50bc99cbdccb8d74bc4ff3b93dfcfd63de16338 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Wed, 15 Feb 2017 18:57:06 +0000
Subject: [PATCH 025/247] updated menu stack

---
 interface/resources/qml/hifi/tablet/TabletMenu.qml   | 12 ++++++++++--
 .../resources/qml/hifi/tablet/TabletMenuStack.qml    |  7 ++++++-
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/TabletMenu.qml b/interface/resources/qml/hifi/tablet/TabletMenu.qml
index 1903a700d6..ec916a60f9 100644
--- a/interface/resources/qml/hifi/tablet/TabletMenu.qml
+++ b/interface/resources/qml/hifi/tablet/TabletMenu.qml
@@ -64,6 +64,7 @@ FocusScope {
                 // navigate back to root level menu
                 onClicked: {
                     buildMenu();
+                    breadcrumbText.text = "Menu";
                     tabletRoot.playButtonClickSound();
                 }
             }
@@ -106,10 +107,13 @@ FocusScope {
 
     function setRootMenu(menu) {
         tabletMenu.rootMenu = menu
-        buildMenu()
+        buildMenu();
     }
     function buildMenu() {
 <<<<<<< HEAD
+<<<<<<< HEAD
+=======
+>>>>>>> updated menu stack
         // Build submenu if specified.
         if (subMenu !== "") {
             var index = 0;
@@ -122,15 +126,19 @@ FocusScope {
             }
             subMenu = "";  // Continue with full menu after initially displaying submenu.
             if (found) {
-                menuPopperUpper.popup(tabletMenu, rootMenu.items[index].items);
+                menuPopperUpper.popup(rootMenu.items[index].items);
                 return;
             }
         }
 
         // Otherwise build whole menu.
+<<<<<<< HEAD
         menuPopperUpper.popup(tabletMenu, rootMenu.items);
 =======
         menuPopperUpper.popup(rootMenu.items);
 >>>>>>> updating branch with master
+=======
+        menuPopperUpper.popup(rootMenu.items);
+>>>>>>> updated menu stack
     }
 }
diff --git a/interface/resources/qml/hifi/tablet/TabletMenuStack.qml b/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
index f84f90fbb3..c33f4e648b 100644
--- a/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
+++ b/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
@@ -27,12 +27,13 @@ Item {
             d.clearMenus();
         }
     }
-
+    
     StackView {
         anchors.fill: parent
         id: d
         objectName: "stack"
         initialItem: topMenu
+
         property var menuStack: []
         property var topMenu: null;
         property var modelMaker: Component { ListModel { } }
@@ -57,9 +58,13 @@ Item {
         }
 
         function pushSource(path) {
+            d.push(Qt.resolvedUrl(path));
+            d.currentItem.eventBridge = tabletMenu.eventBridge
+            d.currentItem.sendToScript.connect(tabletMenu.sendToScript);
         }
 
         function popSource() {
+            d.pop();
         }
 
         function toModel(items) {

From 7ad8a389f62eb743f40d31fb37ed2ab47cfc3c1b Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Thu, 16 Feb 2017 15:58:26 +0000
Subject: [PATCH 026/247] refreshing with master

---
 interface/src/Application.cpp | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 4011eafb6a..78b81f2075 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -5744,13 +5744,10 @@ bool Application::displayAvatarAttachmentConfirmationDialog(const QString& name)
 
 void Application::toggleRunningScriptsWidget() const {
     auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
-    auto tabletWindow = tabletScriptingInterface->getTabletWindow();
     static const QUrl url("hifi/dialogs/RunningScripts.qml");
-    if (tabletWindow) {
+    if (true) {
         auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
-        if (tablet) {
-            tablet->pushOntoStack("../..//hifi/dialogs/RunningScripts.qml");
-        }
+        tablet->pushOntoStack("../..//hifi/dialogs/RunningScripts.qml");
     } else {
         DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
     }

From 21b0e45b0f79232415e2698731e8dd990989d659 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth@highfidelity.io>
Date: Thu, 16 Feb 2017 09:56:50 -0800
Subject: [PATCH 027/247] don't show keyboard in edit.js unless HMD is being
 worn

---
 interface/src/Application.cpp                 |  3 +++
 .../src/scripting/HMDScriptingInterface.cpp   |  2 +-
 libraries/gl/src/gl/OffscreenQmlSurface.cpp   | 26 +++++++++++--------
 .../shared/src/shared/GlobalAppProperties.cpp |  1 +
 .../shared/src/shared/GlobalAppProperties.h   |  1 +
 5 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 488e97b5e6..6e03db5192 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -831,6 +831,9 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
     connect(this, &QCoreApplication::aboutToQuit, addressManager.data(), &AddressManager::storeCurrentAddress);
 
     connect(this, &Application::activeDisplayPluginChanged, this, &Application::updateThreadPoolCount);
+    connect(this, &Application::activeDisplayPluginChanged, this, [](){
+        qApp->setProperty(hifi::properties::HMD, qApp->isHMDMode());
+    });
 
     // Save avatar location immediately after a teleport.
     connect(myAvatar.get(), &MyAvatar::positionGoneTo,
diff --git a/interface/src/scripting/HMDScriptingInterface.cpp b/interface/src/scripting/HMDScriptingInterface.cpp
index 2bca793d80..37f10ed415 100644
--- a/interface/src/scripting/HMDScriptingInterface.cpp
+++ b/interface/src/scripting/HMDScriptingInterface.cpp
@@ -131,7 +131,7 @@ glm::quat HMDScriptingInterface::getOrientation() const {
     return glm::quat();
 }
 
-bool HMDScriptingInterface::isMounted() const{
+bool HMDScriptingInterface::isMounted() const {
     auto displayPlugin = qApp->getActiveDisplayPlugin();
     return (displayPlugin->isHmd() && displayPlugin->isDisplayVisible());
 }
diff --git a/libraries/gl/src/gl/OffscreenQmlSurface.cpp b/libraries/gl/src/gl/OffscreenQmlSurface.cpp
index 447b9d56aa..2d940d6755 100644
--- a/libraries/gl/src/gl/OffscreenQmlSurface.cpp
+++ b/libraries/gl/src/gl/OffscreenQmlSurface.cpp
@@ -32,6 +32,7 @@
 #include <AccountManager.h>
 #include <NetworkAccessManager.h>
 #include <GLMHelpers.h>
+#include <shared/GlobalAppProperties.h>
 
 #include "OffscreenGLCanvas.h"
 #include "GLHelpers.h"
@@ -911,20 +912,23 @@ void OffscreenQmlSurface::setKeyboardRaised(QObject* object, bool raised, bool n
         return;
     }
 
-    QQuickItem* item = dynamic_cast<QQuickItem*>(object);
-    while (item) {
-        // Numeric value may be set in parameter from HTML UI; for QML UI, detect numeric fields here.
-        numeric = numeric || QString(item->metaObject()->className()).left(7) == "SpinBox";
+    // if HMD is being worn, allow keyboard to open.  allow it to close, HMD or not.
+    if (!raised || qApp->property(hifi::properties::HMD).toBool()) {
+        QQuickItem* item = dynamic_cast<QQuickItem*>(object);
+        while (item) {
+            // Numeric value may be set in parameter from HTML UI; for QML UI, detect numeric fields here.
+            numeric = numeric || QString(item->metaObject()->className()).left(7) == "SpinBox";
 
-        if (item->property("keyboardRaised").isValid()) {
-            // FIXME - HMD only: Possibly set value of "keyboardEnabled" per isHMDMode() for use in WebView.qml.
-            if (item->property("punctuationMode").isValid()) {
-                item->setProperty("punctuationMode", QVariant(numeric));
+            if (item->property("keyboardRaised").isValid()) {
+                // FIXME - HMD only: Possibly set value of "keyboardEnabled" per isHMDMode() for use in WebView.qml.
+                if (item->property("punctuationMode").isValid()) {
+                    item->setProperty("punctuationMode", QVariant(numeric));
+                }
+                item->setProperty("keyboardRaised", QVariant(raised));
+                return;
             }
-            item->setProperty("keyboardRaised", QVariant(raised));
-            return;
+            item = dynamic_cast<QQuickItem*>(item->parentItem());
         }
-        item = dynamic_cast<QQuickItem*>(item->parentItem());
     }
 }
 
diff --git a/libraries/shared/src/shared/GlobalAppProperties.cpp b/libraries/shared/src/shared/GlobalAppProperties.cpp
index f2d8990708..b0ba0bf83d 100644
--- a/libraries/shared/src/shared/GlobalAppProperties.cpp
+++ b/libraries/shared/src/shared/GlobalAppProperties.cpp
@@ -16,6 +16,7 @@ namespace hifi { namespace properties {
     const char* OCULUS_STORE = "com.highfidelity.oculusStore";
     const char* TEST = "com.highfidelity.test";
     const char* TRACING = "com.highfidelity.tracing";
+    const char* HMD = "com.highfidelity.hmd";
 
     namespace gl {
         const char* BACKEND = "com.highfidelity.gl.backend";
diff --git a/libraries/shared/src/shared/GlobalAppProperties.h b/libraries/shared/src/shared/GlobalAppProperties.h
index 609f2afd94..b1811586ba 100644
--- a/libraries/shared/src/shared/GlobalAppProperties.h
+++ b/libraries/shared/src/shared/GlobalAppProperties.h
@@ -18,6 +18,7 @@ namespace hifi { namespace properties {
     extern const char* OCULUS_STORE;
     extern const char* TEST;
     extern const char* TRACING;
+    extern const char* HMD;
 
     namespace gl {
         extern const char* BACKEND;

From afd56bbbbe0db2b8c46a1c5d2cdfb5f9eaf0a8a8 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Fri, 17 Feb 2017 00:01:12 +0000
Subject: [PATCH 028/247] fixed qml font path issue for desktop and tablet

---
 .../qml/hifi/dialogs/TabletRunningScripts.qml | 342 ++++++++++++++++++
 .../resources/qml/hifi/tablet/TabletMenu.qml  |  11 -
 .../qml/hifi/tablet/TabletMenuStack.qml       |  14 +-
 .../qml/styles-uit/FiraSansSemiBold.qml       |   2 +-
 .../resources/qml/styles-uit/HiFiGlyphs.qml   |   2 +-
 .../resources/qml/styles-uit/RalewayBold.qml  |   2 +-
 .../qml/styles-uit/RalewayRegular.qml         |   2 +-
 .../qml/styles-uit/RalewaySemiBold.qml        |   2 +-
 interface/src/Application.cpp                 |  11 +-
 interface/src/ui/overlays/Web3DOverlay.cpp    |   4 +
 10 files changed, 358 insertions(+), 34 deletions(-)
 create mode 100644 interface/resources/qml/hifi/dialogs/TabletRunningScripts.qml

diff --git a/interface/resources/qml/hifi/dialogs/TabletRunningScripts.qml b/interface/resources/qml/hifi/dialogs/TabletRunningScripts.qml
new file mode 100644
index 0000000000..235f7103ff
--- /dev/null
+++ b/interface/resources/qml/hifi/dialogs/TabletRunningScripts.qml
@@ -0,0 +1,342 @@
+//
+//  RunningScripts.qml
+//
+//  Created by Bradley Austin Davis on 12 Jan 2016
+//  Copyright 2016 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
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import QtQuick.Dialogs 1.2 as OriginalDialogs
+import Qt.labs.settings 1.0
+
+import "../../styles-uit"
+import "../../controls-uit" as HifiControls
+import "../../windows"
+
+Item {
+    id: root
+    objectName: "RunningScripts"
+    HifiConstants { id: hifi }
+    signal sendToScript(var message);
+    property var eventBridge;
+    property var scripts: ScriptDiscoveryService;
+    property var scriptsModel: scripts.scriptsModelFilter
+    property var runningScriptsModel: ListModel { }
+    property bool isHMD: false
+
+    Connections {
+        target: ScriptDiscoveryService
+        onScriptCountChanged: updateRunningScripts();
+    }
+
+    Component.onCompleted: {
+        isHMD = HMD.active;
+        updateRunningScripts();
+    }
+
+    function updateRunningScripts() {
+        var runningScripts = ScriptDiscoveryService.getRunning();
+        runningScriptsModel.clear()
+        for (var i = 0; i < runningScripts.length; ++i) {
+            runningScriptsModel.append(runningScripts[i]);
+        }
+    }
+
+    function loadScript(script) {
+        console.log("Load script " + script);
+        scripts.loadOneScript(script);
+    }
+
+    function reloadScript(script) {
+        console.log("Reload script " + script);
+        scripts.stopScript(script, true);
+    }
+
+    function stopScript(script) {
+        console.log("Stop script " + script);
+        scripts.stopScript(script);
+    }
+
+    function reloadAll() {
+        console.log("Reload all scripts");
+        scripts.reloadAllScripts();
+    }
+
+    function loadDefaults() {
+        console.log("Load default scripts");
+        scripts.loadOneScript(scripts.defaultScriptsPath + "/defaultScripts.js");
+    }
+
+    function stopAll() {
+        console.log("Stop all scripts");
+        scripts.stopAllScripts();
+    }
+
+    Column {
+        width: parent.width
+        HifiControls.TabletContentSection {
+            name: "Currently Running"
+            isFirst: true
+
+            HifiControls.VerticalSpacer {}
+
+            Row {
+                spacing: hifi.dimensions.contentSpacing.x
+
+                HifiControls.Button {
+                    text: "Reload All"
+                    color: hifi.buttons.black
+                    onClicked: reloadAll()
+                }
+
+                HifiControls.Button {
+                    text: "Remove All"
+                    color: hifi.buttons.red
+                    onClicked: stopAll()
+                }
+            }
+
+            HifiControls.VerticalSpacer {
+                height: hifi.dimensions.controlInterlineHeight + 2  // Add space for border
+            }
+
+            HifiControls.Table {
+                model: runningScriptsModel
+                id: table
+                height: 185
+                colorScheme: hifi.colorSchemes.dark
+                anchors.left: parent.left
+                anchors.right: parent.right
+                expandSelectedRow: true
+
+                itemDelegate: Item {
+                    anchors {
+                        left: parent ? parent.left : undefined
+                        leftMargin: hifi.dimensions.tablePadding
+                        right: parent ? parent.right : undefined
+                        rightMargin: hifi.dimensions.tablePadding
+                    }
+
+                    FiraSansSemiBold {
+                        id: textItem
+                        text: styleData.value
+                        size: hifi.fontSizes.tableText
+                        color: table.colorScheme == hifi.colorSchemes.light
+                                   ? (styleData.selected ? hifi.colors.black : hifi.colors.baseGrayHighlight)
+                                   : (styleData.selected ? hifi.colors.black : hifi.colors.lightGrayText)
+                        anchors {
+                            left: parent.left
+                            right: parent.right
+                            top: parent.top
+                            topMargin: 3
+                        }
+
+                        HiFiGlyphs {
+                            id: reloadButton
+                            text: hifi.glyphs.reloadSmall
+                            color: reloadButtonArea.pressed ? hifi.colors.white : parent.color
+                            anchors {
+                                top: parent.top
+                                right: stopButton.left
+                                verticalCenter: parent.verticalCenter
+                            }
+                            MouseArea {
+                                id: reloadButtonArea
+                                anchors { fill: parent; margins: -2 }
+                                onClicked: reloadScript(model.url)
+                            }
+                        }
+
+                        HiFiGlyphs {
+                            id: stopButton
+                            text: hifi.glyphs.closeSmall
+                            color: stopButtonArea.pressed ? hifi.colors.white : parent.color
+                            anchors {
+                                top: parent.top
+                                right: parent.right
+                                verticalCenter: parent.verticalCenter
+                            }
+                            MouseArea {
+                                id: stopButtonArea
+                                anchors { fill: parent; margins: -2 }
+                                onClicked: stopScript(model.url)
+                            }
+                        }
+
+                    }
+
+                    FiraSansSemiBold {
+                        text: runningScriptsModel.get(styleData.row) ? runningScriptsModel.get(styleData.row).url : ""
+                        elide: Text.ElideMiddle
+                        size: hifi.fontSizes.tableText
+                        color: table.colorScheme == hifi.colorSchemes.light
+                                   ? (styleData.selected ? hifi.colors.black : hifi.colors.lightGray)
+                                   : (styleData.selected ? hifi.colors.black : hifi.colors.lightGrayText)
+                        anchors {
+                            top: textItem.bottom
+                            left: parent.left
+                            right: parent.right
+                        }
+                        visible: styleData.selected
+                    }
+                }
+
+                TableViewColumn {
+                    role: "name"
+                }
+            }
+
+            HifiControls.VerticalSpacer {
+                height: hifi.dimensions.controlInterlineHeight + 2  // Add space for border
+            }
+        }
+
+        HifiControls.TabletContentSection {
+            name: "Load Scripts"
+
+            HifiControls.VerticalSpacer {}
+
+            Row {
+                spacing: hifi.dimensions.contentSpacing.x
+
+                HifiControls.Button {
+                    text: "from URL"
+                    color: hifi.buttons.black
+                    height: 26
+                    onClicked: fromUrlTimer.running = true
+
+                    // For some reason trigginer an API that enters
+                    // an internal event loop directly from the button clicked
+                    // trigger below causes the appliction to behave oddly.
+                    // Most likely because the button onClicked handling is never
+                    // completed until the function returns.
+                    // FIXME find a better way of handling the input dialogs that
+                    // doesn't trigger this.
+                    Timer {
+                        id: fromUrlTimer
+                        interval: 5
+                        repeat: false
+                        running: false
+                        onTriggered: ApplicationInterface.loadScriptURLDialog();
+                    }
+                }
+
+                HifiControls.Button {
+                    text: "from Disk"
+                    color: hifi.buttons.black
+                    height: 26
+                    onClicked: fromDiskTimer.running = true
+
+                    Timer {
+                        id: fromDiskTimer
+                        interval: 5
+                        repeat: false
+                        running: false
+                        onTriggered: ApplicationInterface.loadDialog();
+                    }
+                }
+
+                HifiControls.Button {
+                    text: "Load Defaults"
+                    color: hifi.buttons.black
+                    height: 26
+                    onClicked: loadDefaults()
+                }
+            }
+
+            HifiControls.VerticalSpacer {}
+
+            HifiControls.TextField {
+                id: filterEdit
+                isSearchField: true
+                anchors.left: parent.left
+                anchors.right: parent.right
+                colorScheme: hifi.colorSchemes.dark
+                placeholderText: "Filter"
+                onTextChanged: scriptsModel.filterRegExp =  new RegExp("^.*" + text + ".*$", "i")
+                Component.onCompleted: scriptsModel.filterRegExp = new RegExp("^.*$", "i")
+            }
+
+            HifiControls.VerticalSpacer {
+                height: hifi.dimensions.controlInterlineHeight + 2  // Add space for border
+            }
+
+            HifiControls.Tree {
+                id: treeView
+                height: 155
+                treeModel: scriptsModel
+                colorScheme: hifi.colorSchemes.dark
+                anchors.left: parent.left
+                anchors.right: parent.right
+            }
+
+            HifiControls.VerticalSpacer {
+                height: hifi.dimensions.controlInterlineHeight + 2  // Add space for border
+            }
+
+            HifiControls.TextField {
+                id: selectedScript
+                anchors.left: parent.left
+                anchors.right: parent.right
+                anchors.rightMargin: loadButton.width + hifi.dimensions.contentSpacing.x
+
+                colorScheme: hifi.colorSchemes.dark
+                readOnly: true
+
+                Connections {
+                    target: treeView
+                    onCurrentIndexChanged: {
+                        var path = scriptsModel.data(treeView.currentIndex, 0x100)
+                        if (path) {
+                            selectedScript.text = path
+                        } else {
+                            selectedScript.text = ""
+                        }
+                    }
+                }
+            }
+
+            Item {
+                // Take the loadButton out of the column flow.
+                id: loadButtonContainer
+                anchors.top: selectedScript.top
+                anchors.right: parent.right
+
+                HifiControls.Button {
+                    id: loadButton
+                    anchors.right: parent.right
+
+                    text: "Load"
+                    color: hifi.buttons.blue
+                    enabled: selectedScript.text != ""
+                    onClicked: root.loadScript(selectedScript.text)
+                }
+            }
+
+            HifiControls.VerticalSpacer {
+                height: hifi.dimensions.controlInterlineHeight - (!isHMD ? 3 : 0)
+            }
+
+            HifiControls.TextAction {
+                id: directoryButton
+                icon: hifi.glyphs.script
+                iconSize: 24
+                text: "Reveal Scripts Folder"
+                onClicked: fileDialogHelper.openDirectory(scripts.defaultScriptsPath)
+                colorScheme: hifi.colorSchemes.dark
+                anchors.left: parent.left
+                visible: !isHMD
+            }
+
+            HifiControls.VerticalSpacer {
+                height: hifi.dimensions.controlInterlineHeight - 3
+                visible: !isHMD
+            }
+        }
+    }
+}
+
diff --git a/interface/resources/qml/hifi/tablet/TabletMenu.qml b/interface/resources/qml/hifi/tablet/TabletMenu.qml
index ec916a60f9..46a62ace82 100644
--- a/interface/resources/qml/hifi/tablet/TabletMenu.qml
+++ b/interface/resources/qml/hifi/tablet/TabletMenu.qml
@@ -110,10 +110,6 @@ FocusScope {
         buildMenu();
     }
     function buildMenu() {
-<<<<<<< HEAD
-<<<<<<< HEAD
-=======
->>>>>>> updated menu stack
         // Build submenu if specified.
         if (subMenu !== "") {
             var index = 0;
@@ -132,13 +128,6 @@ FocusScope {
         }
 
         // Otherwise build whole menu.
-<<<<<<< HEAD
-        menuPopperUpper.popup(tabletMenu, rootMenu.items);
-=======
         menuPopperUpper.popup(rootMenu.items);
->>>>>>> updating branch with master
-=======
-        menuPopperUpper.popup(rootMenu.items);
->>>>>>> updated menu stack
     }
 }
diff --git a/interface/resources/qml/hifi/tablet/TabletMenuStack.qml b/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
index c33f4e648b..ca4c657242 100644
--- a/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
+++ b/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
@@ -17,16 +17,6 @@ Item {
     id: root
     anchors.fill: parent
     objectName: "tabletMenuHandlerItem"
-
-    MouseArea {
-        id: menuRoot;
-        objectName: "tabletMenuHandlerMouseArea"
-        anchors.fill: parent
-        enabled: d.topMenu !== null
-        onClicked: {
-            d.clearMenus();
-        }
-    }
     
     StackView {
         anchors.fill: parent
@@ -61,9 +51,11 @@ Item {
             d.push(Qt.resolvedUrl(path));
             d.currentItem.eventBridge = tabletMenu.eventBridge
             d.currentItem.sendToScript.connect(tabletMenu.sendToScript);
+            breadcrumbText.text = d.currentItem.objectName;
         }
 
         function popSource() {
+            console.log("trying to pop page");
             d.pop();
         }
 
@@ -90,7 +82,9 @@ Item {
         }
 
         function popMenu() {
+            console.log("the depth of the stack " + d.depth);
             if (d.depth) {
+                console.log("trying to pop page from stack");
                 d.pop();
             }
             if (d.depth) {
diff --git a/interface/resources/qml/styles-uit/FiraSansSemiBold.qml b/interface/resources/qml/styles-uit/FiraSansSemiBold.qml
index ddbeff7d90..b3f3324090 100644
--- a/interface/resources/qml/styles-uit/FiraSansSemiBold.qml
+++ b/interface/resources/qml/styles-uit/FiraSansSemiBold.qml
@@ -14,7 +14,7 @@ import QtQuick.Controls.Styles 1.4
 
 Text {
     id: root
-    FontLoader { id: firaSansSemiBold; source: "../../fonts/FiraSans-SemiBold.ttf"; }
+    FontLoader { id: firaSansSemiBold; source: pathToFonts + "fonts/FiraSans-SemiBold.ttf"; }
     property real size: 32
     font.pixelSize: size
     verticalAlignment: Text.AlignVCenter
diff --git a/interface/resources/qml/styles-uit/HiFiGlyphs.qml b/interface/resources/qml/styles-uit/HiFiGlyphs.qml
index d0dae746be..cbd6fa1d68 100644
--- a/interface/resources/qml/styles-uit/HiFiGlyphs.qml
+++ b/interface/resources/qml/styles-uit/HiFiGlyphs.qml
@@ -14,7 +14,7 @@ import QtQuick.Controls.Styles 1.4
 
 Text {
     id: root
-    FontLoader { id: hiFiGlyphs; source: "../../fonts/hifi-glyphs.ttf"; }
+    FontLoader { id: hiFiGlyphs; source: pathToFonts + "fonts/hifi-glyphs.ttf"; }
     property int size: 32
     font.pixelSize: size
     width: size
diff --git a/interface/resources/qml/styles-uit/RalewayBold.qml b/interface/resources/qml/styles-uit/RalewayBold.qml
index 97a6a4c208..433fdb7ae6 100644
--- a/interface/resources/qml/styles-uit/RalewayBold.qml
+++ b/interface/resources/qml/styles-uit/RalewayBold.qml
@@ -14,7 +14,7 @@ import QtQuick.Controls.Styles 1.4
 
 Text {
     id: root
-    FontLoader { id: ralewayBold; source: "../../fonts/Raleway-Bold.ttf"; }
+    FontLoader { id: ralewayBold; source: pathToFonts + "fonts/Raleway-Bold.ttf"; }
     property real size: 32
     font.pixelSize: size
     verticalAlignment: Text.AlignVCenter
diff --git a/interface/resources/qml/styles-uit/RalewayRegular.qml b/interface/resources/qml/styles-uit/RalewayRegular.qml
index 1ed5f122dc..2cffeeb59d 100644
--- a/interface/resources/qml/styles-uit/RalewayRegular.qml
+++ b/interface/resources/qml/styles-uit/RalewayRegular.qml
@@ -14,7 +14,7 @@ import QtQuick.Controls.Styles 1.4
 
 Text {
     id: root
-    FontLoader { id: ralewayRegular; source: "../../fonts/Raleway-Regular.ttf"; }
+    FontLoader { id: ralewayRegular; source: pathToFonts + "fonts/Raleway-Regular.ttf"; }
     property real size: 32
     font.pixelSize: size
     verticalAlignment: Text.AlignVCenter
diff --git a/interface/resources/qml/styles-uit/RalewaySemiBold.qml b/interface/resources/qml/styles-uit/RalewaySemiBold.qml
index 3c36a872a4..b6c79e02a4 100644
--- a/interface/resources/qml/styles-uit/RalewaySemiBold.qml
+++ b/interface/resources/qml/styles-uit/RalewaySemiBold.qml
@@ -14,7 +14,7 @@ import QtQuick.Controls.Styles 1.4
 
 Text {
     id: root
-    FontLoader { id: ralewaySemiBold; source: "../../fonts/Raleway-SemiBold.ttf"; }
+    FontLoader { id: ralewaySemiBold; source: pathToFonts + "fonts/Raleway-SemiBold.ttf"; }
     property real size: 32
     font.pixelSize: size
     verticalAlignment: Text.AlignVCenter
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 78b81f2075..d6c69f005d 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -1940,6 +1940,7 @@ void Application::initializeUi() {
     rootContext->setContextProperty("AddressManager", DependencyManager::get<AddressManager>().data());
     rootContext->setContextProperty("FrameTimings", &_frameTimingsScriptingInterface);
     rootContext->setContextProperty("Rates", new RatesScriptingInterface(this));
+    rootContext->setContextProperty("pathToFonts", "../../");
 
     rootContext->setContextProperty("TREE_SCALE", TREE_SCALE);
     rootContext->setContextProperty("Quat", new Quat());
@@ -5743,14 +5744,8 @@ bool Application::displayAvatarAttachmentConfirmationDialog(const QString& name)
 }
 
 void Application::toggleRunningScriptsWidget() const {
-    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
-    static const QUrl url("hifi/dialogs/RunningScripts.qml");
-    if (true) {
-        auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
-        tablet->pushOntoStack("../..//hifi/dialogs/RunningScripts.qml");
-    } else {
-        DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
-    }
+    DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
+        
     //if (_runningScriptsWidget->isVisible()) {
     //    if (_runningScriptsWidget->hasFocus()) {
     //        _runningScriptsWidget->hide();
diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp
index 72bd0228f3..bfd58b9cff 100644
--- a/interface/src/ui/overlays/Web3DOverlay.cpp
+++ b/interface/src/ui/overlays/Web3DOverlay.cpp
@@ -38,8 +38,10 @@
 #include "scripting/AccountScriptingInterface.h"
 #include "scripting/HMDScriptingInterface.h"
 #include <Preferences.h>
+#include <ScriptEngines.h>
 #include "FileDialogHelper.h"
 
+
 static const float DPI = 30.47f;
 static const float INCHES_TO_METERS = 1.0f / 39.3701f;
 static const float METERS_TO_INCHES = 39.3701f;
@@ -170,6 +172,8 @@ void Web3DOverlay::loadSourceURL() {
             _webSurface->getRootContext()->setContextProperty("Account", AccountScriptingInterface::getInstance());
             _webSurface->getRootContext()->setContextProperty("HMD", DependencyManager::get<HMDScriptingInterface>().data());
             _webSurface->getRootContext()->setContextProperty("fileDialogHelper", new FileDialogHelper());
+            _webSurface->getRootContext()->setContextProperty("ScriptDiscoveryService", DependencyManager::get<ScriptEngines>().data());
+            _webSurface->getRootContext()->setContextProperty("pathToFonts", "../../../");
             tabletScriptingInterface->setQmlTabletRoot("com.highfidelity.interface.tablet.system", _webSurface->getRootItem(), _webSurface.data());
 
             // Override min fps for tablet UI, for silky smooth scrolling

From b6b6ad780d57220ff0c1fb32e149885812d58d03 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth@highfidelity.io>
Date: Thu, 16 Feb 2017 17:15:52 -0800
Subject: [PATCH 029/247] allow isSpotlight to be 0 or 1

---
 scripts/system/libraries/entitySelectionTool.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/system/libraries/entitySelectionTool.js b/scripts/system/libraries/entitySelectionTool.js
index 596620b59a..ffce0774b5 100644
--- a/scripts/system/libraries/entitySelectionTool.js
+++ b/scripts/system/libraries/entitySelectionTool.js
@@ -1806,7 +1806,7 @@ SelectionDisplay = (function() {
 
         if (selectionManager.selections.length == 1) {
             var properties = Entities.getEntityProperties(selectionManager.selections[0]);
-            if (properties.type == "Light" && properties.isSpotlight === true) {
+            if (properties.type == "Light" && properties.isSpotlight) {
                 stretchHandlesVisible = false;
                 extendedStretchHandlesVisible = false;
 
@@ -1901,7 +1901,7 @@ SelectionDisplay = (function() {
                 Overlays.editOverlay(grabberPointLightN, {
                     visible: false
                 });
-            } else if (properties.type == "Light" && properties.isSpotlight === false) {
+            } else if (properties.type == "Light" && !properties.isSpotlight) {
                 stretchHandlesVisible = false;
                 extendedStretchHandlesVisible = false;
                 Overlays.editOverlay(grabberPointLightT, {

From 3189b44612edb006ccc23920ae10e79bead59a3c Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Fri, 17 Feb 2017 15:50:08 +0000
Subject: [PATCH 030/247] refreshing with master

---
 interface/resources/qml/hifi/tablet/TabletMenu.qml | 3 ---
 interface/src/Application.cpp                      | 2 ++
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/TabletMenu.qml b/interface/resources/qml/hifi/tablet/TabletMenu.qml
index 8c277fef04..4c687131ca 100644
--- a/interface/resources/qml/hifi/tablet/TabletMenu.qml
+++ b/interface/resources/qml/hifi/tablet/TabletMenu.qml
@@ -20,13 +20,10 @@ FocusScope {
 
     property var rootMenu: Menu { objectName:"rootMenu" }
     property var point: Qt.point(50, 50);
-    property var eventBridge;
-    signal sendToScript(var message);
     TabletMenuStack { id: menuPopperUpper }
     property string subMenu: ""
     property var eventBridge;
     signal sendToScript(var message);
-    TabletMenuStack { id: menuPopperUpper }
 
     Rectangle {
         id: bgNavBar
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 2d049dbec7..ffd5c53d47 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -5744,7 +5744,9 @@ bool Application::displayAvatarAttachmentConfirmationDialog(const QString& name)
 }
 
 void Application::toggleRunningScriptsWidget() const {
+    static const QUrl url("hifi/dialogs/RunningScripts.qml");
     DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
+        
     //if (_runningScriptsWidget->isVisible()) {
     //    if (_runningScriptsWidget->hasFocus()) {
     //        _runningScriptsWidget->hide();

From dedd85d29696445ae3a04237fd1028e9a5714002 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Fri, 17 Feb 2017 18:47:59 +0000
Subject: [PATCH 031/247] saving work

---
 interface/resources/qml/hifi/tablet/TabletRoot.qml |  1 +
 interface/src/Application.cpp                      | 10 +++++++---
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/TabletRoot.qml b/interface/resources/qml/hifi/tablet/TabletRoot.qml
index 481c7846a9..fcefd1af24 100644
--- a/interface/resources/qml/hifi/tablet/TabletRoot.qml
+++ b/interface/resources/qml/hifi/tablet/TabletRoot.qml
@@ -81,6 +81,7 @@ Item {
                 loader.item.subMenu = option;
             }
             loader.item.forceActiveFocus();
+            tabletRoot.findStackableChild();
         }
     }
 
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 4e0cf46634..95620b1ddf 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -5747,9 +5747,13 @@ bool Application::displayAvatarAttachmentConfirmationDialog(const QString& name)
 }
 
 void Application::toggleRunningScriptsWidget() const {
-    static const QUrl url("hifi/dialogs/RunningScripts.qml");
-    DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
-        
+    static const QUrl url("../../hifi/dialogs/TabletRunningScripts.qml");
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+    if (tablet) {
+        tablet->pushOntoStack(url);
+    }
+    //DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
     //if (_runningScriptsWidget->isVisible()) {
     //    if (_runningScriptsWidget->hasFocus()) {
     //        _runningScriptsWidget->hide();

From 5ddcbae9345a6fd885600462bfb373c87234a5c1 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth@highfidelity.io>
Date: Fri, 17 Feb 2017 11:51:23 -0800
Subject: [PATCH 032/247] save tablet web-overlay ID in HMD interface.  don't
 trigger edit affordances if the click was intented for the tablet

---
 interface/src/avatar/MyAvatar.cpp               |  2 +-
 interface/src/scripting/HMDScriptingInterface.h | 11 ++++++++---
 scripts/system/libraries/entitySelectionTool.js | 11 ++++++++---
 scripts/system/tablet-ui/tabletUI.js            |  2 ++
 4 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp
index 29f41c89fd..e39b7e1e50 100644
--- a/interface/src/avatar/MyAvatar.cpp
+++ b/interface/src/avatar/MyAvatar.cpp
@@ -808,7 +808,7 @@ void MyAvatar::saveData() {
     auto hmdInterface = DependencyManager::get<HMDScriptingInterface>();
     _avatarEntitiesLock.withReadLock([&] {
         for (auto entityID : _avatarEntityData.keys()) {
-            if (hmdInterface->getCurrentTableUIID() == entityID) {
+            if (hmdInterface->getCurrentTabletUIID() == entityID) {
                 // don't persist the tablet between domains / sessions
                 continue;
             }
diff --git a/interface/src/scripting/HMDScriptingInterface.h b/interface/src/scripting/HMDScriptingInterface.h
index f5744bb8d1..9a618695d6 100644
--- a/interface/src/scripting/HMDScriptingInterface.h
+++ b/interface/src/scripting/HMDScriptingInterface.h
@@ -29,8 +29,9 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen
     Q_PROPERTY(glm::quat orientation READ getOrientation)
     Q_PROPERTY(bool mounted READ isMounted)
     Q_PROPERTY(bool showTablet READ getShouldShowTablet)
-    Q_PROPERTY(QUuid tabletID READ getCurrentTableUIID WRITE setCurrentTabletUIID)
+    Q_PROPERTY(QUuid tabletID READ getCurrentTabletUIID WRITE setCurrentTabletUIID)
     Q_PROPERTY(unsigned int homeButtonID READ getCurrentHomeButtonUUID WRITE setCurrentHomeButtonUUID)
+    Q_PROPERTY(QUuid tabletScreenID READ getCurrentTabletScreenID WRITE setCurrentTabletScreenID)
     
 
 public:
@@ -91,14 +92,18 @@ public:
     bool getShouldShowTablet() const { return _showTablet; }
 
     void setCurrentTabletUIID(QUuid tabletID) { _tabletUIID = tabletID; }
-    QUuid getCurrentTableUIID() const { return _tabletUIID; }
+    QUuid getCurrentTabletUIID() const { return _tabletUIID; }
 
     void setCurrentHomeButtonUUID(unsigned int homeButtonID) { _homeButtonID = homeButtonID; }
     unsigned int getCurrentHomeButtonUUID() const { return _homeButtonID; }
 
+    void setCurrentTabletScreenID(QUuid tabletID) { _tabletScreenID = tabletID; }
+    QUuid getCurrentTabletScreenID() const { return _tabletScreenID; }
+
 private:
     bool _showTablet { false };
-    QUuid _tabletUIID; // this is the entityID of the WebEntity which is part of (a child of) the tablet-ui.
+    QUuid _tabletUIID; // this is the entityID of the tablet frame
+    QUuid _tabletScreenID; // this is the overlayID which is part of (a child of) the tablet-ui.
     unsigned int _homeButtonID;
     QUuid _tabletEntityID;
 
diff --git a/scripts/system/libraries/entitySelectionTool.js b/scripts/system/libraries/entitySelectionTool.js
index ffce0774b5..b46b1267cc 100644
--- a/scripts/system/libraries/entitySelectionTool.js
+++ b/scripts/system/libraries/entitySelectionTool.js
@@ -2048,7 +2048,7 @@ SelectionDisplay = (function() {
                 Overlays.editOverlay(grabberPointLightL, {
                     visible: false
                 });
-                Overlays.editOverlay(grabberPointLightR, {
+                Overlays.editOverlay(grabberPointLightR, {
                     visible: false
                 });
                 Overlays.editOverlay(grabberPointLightF, {
@@ -3866,6 +3866,12 @@ SelectionDisplay = (function() {
         var somethingClicked = false;
         var pickRay = generalComputePickRay(event.x, event.y);
 
+        var result = Overlays.findRayIntersection(pickRay, true, [HMD.tabletScreenID]);
+        if (result.intersects) {
+            // mouse clicks on the tablet should override the edit affordances
+            return false;
+        }
+
         // before we do a ray test for grabbers, disable the ray intersection for our selection box
         Overlays.editOverlay(selectionBox, {
             ignoreRayIntersection: true
@@ -3879,10 +3885,9 @@ SelectionDisplay = (function() {
         Overlays.editOverlay(rollHandle, {
             ignoreRayIntersection: true
         });
-        var result = Overlays.findRayIntersection(pickRay);
 
+        result = Overlays.findRayIntersection(pickRay);
         if (result.intersects) {
-
             
             if (wantDebug) {
                 print("something intersects... ");
diff --git a/scripts/system/tablet-ui/tabletUI.js b/scripts/system/tablet-ui/tabletUI.js
index 1dc6b7fef8..43eebf15e1 100644
--- a/scripts/system/tablet-ui/tabletUI.js
+++ b/scripts/system/tablet-ui/tabletUI.js
@@ -32,6 +32,7 @@
         UIWebTablet.register();
         HMD.tabletID = UIWebTablet.tabletEntityID;
         HMD.homeButtonID = UIWebTablet.homeButtonEntity;
+        HMD.tabletScreenID = UIWebTablet.webOverlayID;
     }
 
     function hideTabletUI() {
@@ -48,6 +49,7 @@
             UIWebTablet = null;
             HMD.tabletID = null;
             HMD.homeButtonID = null;
+            HMD.tabletScreenID = null;
         }
     }
 

From 2db8517303776b11b0c59ac7d7f21213cb6e5931 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Mon, 20 Feb 2017 12:42:57 -0800
Subject: [PATCH 033/247] remove ctrl-M from file

---
 scripts/system/libraries/entitySelectionTool.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/system/libraries/entitySelectionTool.js b/scripts/system/libraries/entitySelectionTool.js
index 596620b59a..0fd0b01d25 100644
--- a/scripts/system/libraries/entitySelectionTool.js
+++ b/scripts/system/libraries/entitySelectionTool.js
@@ -2048,7 +2048,7 @@ SelectionDisplay = (function() {
                 Overlays.editOverlay(grabberPointLightL, {
                     visible: false
                 });
-                Overlays.editOverlay(grabberPointLightR, {
+                Overlays.editOverlay(grabberPointLightR, {
                     visible: false
                 });
                 Overlays.editOverlay(grabberPointLightF, {

From 5bff2034c33feb52dd774c54c5f1b5825eed57b8 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth@highfidelity.io>
Date: Wed, 22 Feb 2017 12:07:18 -0800
Subject: [PATCH 034/247] cleanups, attempt to get particle explorer to work
 right

---
 interface/resources/qml/windows/Window.qml    |   4 +-
 scripts/system/edit.js                        | 157 ++++--------------
 scripts/system/libraries/entityList.js        |  34 ++--
 scripts/system/libraries/gridTool.js          |  11 +-
 .../particle_explorer/particleExplorer.js     |  15 ++
 .../particle_explorer/particleExplorerTool.js |  30 +---
 scripts/system/tablet-users.js                |   1 -
 7 files changed, 79 insertions(+), 173 deletions(-)

diff --git a/interface/resources/qml/windows/Window.qml b/interface/resources/qml/windows/Window.qml
index 20216ed7ae..a0ef73290a 100644
--- a/interface/resources/qml/windows/Window.qml
+++ b/interface/resources/qml/windows/Window.qml
@@ -313,6 +313,6 @@ Fadable {
         }
     }
 
-    onMouseEntered: console.log("Mouse entered " + window)
-    onMouseExited: console.log("Mouse exited " + window)
+    // onMouseEntered: console.log("Mouse entered " + window)
+    // onMouseExited: console.log("Mouse exited " + window)
 }
diff --git a/scripts/system/edit.js b/scripts/system/edit.js
index 5f7556592e..f954f0d258 100644
--- a/scripts/system/edit.js
+++ b/scripts/system/edit.js
@@ -1,7 +1,6 @@
 "use strict";
 
-//  newEditEntities.js
-//  examples
+//  edit.js
 //
 //  Created by Brad Hefta-Gaub on 10/2/14.
 //  Persist toolbar by HRS 6/11/15.
@@ -13,7 +12,7 @@
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
 //
 
-/* global Script, SelectionDisplay, LightOverlayManager, CameraManager, Grid, GridTool, EntityListTook, EntityListTool, Vec3, SelectionManager, Overlays, OverlayWebWindow, UserActivityLogger, Settings, Entities, Tablet, Toolbars, Messages, Menu, Camera, progressDialog, tooltip, MyAvatar, Quat, Controller, Clipboard, HMD, UndoStack, ParticleExplorerTool */
+/* global Script, SelectionDisplay, LightOverlayManager, CameraManager, Grid, GridTool, EntityListTool, Vec3, SelectionManager, Overlays, OverlayWebWindow, UserActivityLogger, Settings, Entities, Tablet, Toolbars, Messages, Menu, Camera, progressDialog, tooltip, MyAvatar, Quat, Controller, Clipboard, HMD, UndoStack, ParticleExplorerTool */
 
 (function() { // BEGIN LOCAL_SCOPE
 
@@ -208,27 +207,7 @@ var toolBar = (function () {
     var buttonHandlers = {}; // only used to tablet mode
 
     function addButton(name, image, handler) {
-        if (Settings.getValue("HUDUIEnabled")) {
-            var imageUrl = TOOLS_PATH + image;
-            var button = toolBar.addButton({
-                objectName: name,
-                imageURL: imageUrl,
-                imageOffOut: 1,
-                imageOffIn: 2,
-                imageOnOut: 0,
-                imageOnIn: 2,
-                alpha: 0.9,
-                visible: true
-            });
-            if (handler) {
-                button.clicked.connect(function () {
-                    Script.setTimeout(handler, 100);
-                });
-            }
-            return button;
-        } else {
-            buttonHandlers[name] = handler;
-        }
+        buttonHandlers[name] = handler;
     }
 
     var SHAPE_TYPE_NONE = 0;
@@ -272,7 +251,6 @@ var toolBar = (function () {
     }
 
     function fromQml(message) { // messages are {method, params}, like json-rpc. See also sendToQml.
-        print("fromQml: " + JSON.stringify(message));
         var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
         tablet.popFromStack();
         switch (message.method) {
@@ -299,42 +277,24 @@ var toolBar = (function () {
             }
         });
 
-
-        if (Settings.getValue("HUDUIEnabled")) {
-            systemToolbar = Toolbars.getToolbar(SYSTEM_TOOLBAR);
-            activeButton = systemToolbar.addButton({
-                objectName: EDIT_TOGGLE_BUTTON,
-                imageURL: TOOLS_PATH + "edit.svg",
-                visible: true,
-                alpha: 0.9,
-                defaultState: 1
-            });
-            systemToolbar.fromQml.connect(fromQml);
-        } else {
-            tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
-            activeButton = tablet.addButton({
-                icon: "icons/tablet-icons/edit-i.svg",
-                activeIcon: "icons/tablet-icons/edit-a.svg",
-                text: "EDIT",
-                sortOrder: 10
-            });
-            tablet.screenChanged.connect(function (type, url) {
-                if (isActive && (type !== "QML" || url !== "Edit.qml")) {
-                    that.toggle();
-                }
-            });
-            tablet.fromQml.connect(fromQml);
-        }
+        tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+        activeButton = tablet.addButton({
+            icon: "icons/tablet-icons/edit-i.svg",
+            activeIcon: "icons/tablet-icons/edit-a.svg",
+            text: "EDIT",
+            sortOrder: 10
+        });
+        tablet.screenChanged.connect(function (type, url) {
+            if (isActive && (type !== "QML" || url !== "Edit.qml")) {
+                that.toggle();
+            }
+        });
+        tablet.fromQml.connect(fromQml);
 
         activeButton.clicked.connect(function() {
             that.toggle();
         });
 
-        if (Settings.getValue("HUDUIEnabled")) {
-            toolBar = Toolbars.getToolbar(EDIT_TOOLBAR);
-            toolBar.writeProperty("shown", false);
-        }
-
         addButton("openAssetBrowserButton", "assets-01.svg", function(){
             Window.showAssetServer();
         });
@@ -348,34 +308,9 @@ var toolBar = (function () {
             SHAPE_TYPES[SHAPE_TYPE_STATIC_MESH] = "Exact - All polygons";
             var SHAPE_TYPE_DEFAULT = SHAPE_TYPE_STATIC_MESH;
 
-            if (Settings.getValue("HUDUIEnabled")) {
-                // HUD-ui version of new-model dialog
-                var result = Window.customPrompt({
-                    textInput: {
-                        label: "Model URL"
-                    },
-                    comboBox: {
-                        label: "Automatic Collisions",
-                        index: SHAPE_TYPE_DEFAULT,
-                        items: SHAPE_TYPES
-                    },
-                    checkBox: {
-                        label: "Dynamic",
-                        checked: DYNAMIC_DEFAULT,
-                        disableForItems: [
-                            SHAPE_TYPE_STATIC_MESH
-                        ],
-                        checkStateOnDisable: false,
-                        warningOnDisable: "Models with automatic collisions set to 'Exact' cannot be dynamic"
-                    }
-                });
-
-                handleNewModelDialogResult(result);
-            } else {
-                // tablet version of new-model dialog
-                var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
-                tablet.pushOntoStack("NewModelDialog.qml");
-            }
+            // tablet version of new-model dialog
+            var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+            tablet.pushOntoStack("NewModelDialog.qml");
         });
 
         addButton("newCubeButton", "cube-01.svg", function () {
@@ -497,11 +432,11 @@ var toolBar = (function () {
         entityListTool.clearEntityList();
     };
 
-
     that.toggle = function () {
         that.setActive(!isActive);
-        if (Settings.getValue("HUDUIEnabled")) {
-            activeButton.editProperties({isActive: isActive});
+        activeButton.editProperties({isActive: isActive});
+        if (!isActive) {
+            tablet.gotoHomeScreen();
         }
     };
 
@@ -532,10 +467,8 @@ var toolBar = (function () {
             cameraManager.disable();
             selectionDisplay.triggerMapping.disable();
         } else {
-            if (!Settings.getValue("HUDUIEnabled")) {
-                var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
-                tablet.loadQMLSource("Edit.qml");
-            }
+            var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+            tablet.loadQMLSource("Edit.qml");
             UserActivityLogger.enabledEdit();
             entityListTool.setVisible(true);
             gridTool.setVisible(true);
@@ -546,15 +479,6 @@ var toolBar = (function () {
             // everybody else to think that Interface has lost focus overall. fogbugzid:558
             // Window.setFocus();
         }
-        if (Settings.getValue("HUDUIEnabled")) {
-            // Sets visibility of tool buttons, excluding the power button
-            toolBar.writeProperty("shown", active);
-            var visible = toolBar.readProperty("visible");
-            if (active && !visible) {
-                toolBar.writeProperty("shown", false);
-                toolBar.writeProperty("shown", true);
-            }
-        }
         lightOverlayManager.setVisible(isActive && Menu.isOptionChecked(MENU_SHOW_LIGHTS_IN_EDIT_MODE));
         Entities.setDrawZoneBoundaries(isActive && Menu.isOptionChecked(MENU_SHOW_ZONES_IN_EDIT_MODE));
     };
@@ -815,6 +739,12 @@ function mouseClickEvent(event) {
                 orientation = MyAvatar.orientation;
                 intersection = rayPlaneIntersection(pickRay, P, Quat.getFront(orientation));
 
+                if (event.isShifted) {
+                    particleExplorerTool.destroyWebView();
+                }
+                if (properties.type !== "ParticleEffect") {
+                    particleExplorerTool.destroyWebView();
+                }
 
                 if (!event.isShifted) {
                     selectionManager.setSelections([foundEntity]);
@@ -1493,16 +1423,8 @@ var PropertiesTool = function (opts) {
     var that = {};
 
     var webView = null;
-    if (Settings.getValue("HUDUIEnabled")) {
-        webView = new OverlayWebWindow({
-            title: 'Entity Properties',
-            source: ENTITY_PROPERTIES_URL,
-            toolWindow: true
-        });
-    } else {
-        webView = Tablet.getTablet("com.highfidelity.interface.tablet.system");
-        webView.setVisible = function(value) {};
-    }
+    webView = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+    webView.setVisible = function(value) {};
 
     var visible = false;
 
@@ -1924,18 +1846,7 @@ function selectParticleEntity(entityID) {
 
     selectedParticleEntity = entityID;
     particleExplorerTool.setActiveParticleEntity(entityID);
-
-    if (Settings.getValue("HUDUIEnabled")) {
-        particleExplorerTool.webView.webEventReceived.connect(function (data) {
-            data = JSON.parse(data);
-            if (data.messageType === "page_loaded") {
-                particleExplorerTool.webView.emitScriptEvent(JSON.stringify(particleData));
-            }
-        });
-    } else {
-        // in the tablet version, the page was loaded earlier
-        particleExplorerTool.webView.emitScriptEvent(JSON.stringify(particleData));
-    }
+    particleExplorerTool.webView.emitScriptEvent(JSON.stringify(particleData));
 }
 
 entityListTool.webView.webEventReceived.connect(function (data) {
@@ -1949,7 +1860,7 @@ entityListTool.webView.webEventReceived.connect(function (data) {
                     return;
                 }
                 // Destroy the old particles web view first
-                selectParticleEntity(ids[0])
+                selectParticleEntity(ids[0]);
             } else {
                 selectedParticleEntity = 0;
                 particleExplorerTool.destroyWebView();
diff --git a/scripts/system/libraries/entityList.js b/scripts/system/libraries/entityList.js
index 8ef028cdce..63ac33a1dd 100644
--- a/scripts/system/libraries/entityList.js
+++ b/scripts/system/libraries/entityList.js
@@ -1,18 +1,22 @@
-var ENTITY_LIST_HTML_URL = Script.resolvePath('../html/entityList.html');
+"use strict";
+
+//  entityList.js
+//
+//  Copyright 2014 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
+//
+
+/* global EntityListTool, Tablet, selectionManager, Entities, Camera, MyAvatar, Vec3, Menu, Messages,
+   cameraManager, MENU_EASE_ON_FOCUS, deleteSelectedEntities, toggleSelectedEntitiesLocked, toggleSelectedEntitiesVisible */
 
 EntityListTool = function(opts) {
     var that = {};
 
     var webView = null;
-    if (Settings.getValue("HUDUIEnabled")) {
-        var url = ENTITY_LIST_HTML_URL;
-        webView = new OverlayWebWindow({
-            title: 'Entity List',  source: url,  toolWindow: true
-        });
-    } else {
-        webView = Tablet.getTablet("com.highfidelity.interface.tablet.system");
-        webView.setVisible = function(value) {};
-    }
+    webView = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+    webView.setVisible = function(value) {};
 
     var filterInView = false;
     var searchRadius = 100;
@@ -30,7 +34,7 @@ EntityListTool = function(opts) {
 
     that.toggleVisible = function() {
         that.setVisible(!visible);
-    }
+    };
 
     selectionManager.addEventListener(function() {
         var selectedIDs = [];
@@ -49,7 +53,7 @@ EntityListTool = function(opts) {
     that.clearEntityList = function () {
         var data = {
             type: 'clearEntityList'
-        }
+        };
         webView.emitScriptEvent(JSON.stringify(data));
     };
 
@@ -91,8 +95,8 @@ EntityListTool = function(opts) {
         }
 
         var selectedIDs = [];
-        for (var i = 0; i < selectionManager.selections.length; i++) {
-            selectedIDs.push(selectionManager.selections[i].id);
+        for (var j = 0; j < selectionManager.selections.length; j++) {
+            selectedIDs.push(selectionManager.selections[j].id);
         }
 
         var data = {
@@ -101,7 +105,7 @@ EntityListTool = function(opts) {
             selectedIDs: selectedIDs,
         };
         webView.emitScriptEvent(JSON.stringify(data));
-    }
+    };
 
     webView.webEventReceived.connect(function(data) {
         data = JSON.parse(data);
diff --git a/scripts/system/libraries/gridTool.js b/scripts/system/libraries/gridTool.js
index 7176fd00a6..0290674a0f 100644
--- a/scripts/system/libraries/gridTool.js
+++ b/scripts/system/libraries/gridTool.js
@@ -229,15 +229,8 @@ GridTool = function(opts) {
     var listeners = [];
 
     var webView = null;
-    if (Settings.getValue("HUDUIEnabled")) {
-        var url = GRID_CONTROLS_HTML_URL;
-        webView = new OverlayWebWindow({
-            title: 'Grid',  source: url,  toolWindow: true
-        });
-    } else {
-        webView = Tablet.getTablet("com.highfidelity.interface.tablet.system");
-        webView.setVisible = function(value) {};
-    }
+    webView = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+    webView.setVisible = function(value) {};
 
     horizontalGrid.addListener(function(data) {
         webView.emitScriptEvent(JSON.stringify(data));
diff --git a/scripts/system/particle_explorer/particleExplorer.js b/scripts/system/particle_explorer/particleExplorer.js
index 44fa242435..e0987ecd09 100644
--- a/scripts/system/particle_explorer/particleExplorer.js
+++ b/scripts/system/particle_explorer/particleExplorer.js
@@ -32,6 +32,8 @@ var gui = null;
 var settings = new Settings();
 var updateInterval;
 
+var active = false;
+
 var currentInputField;
 var storedController;
 //CHANGE TO WHITELIST
@@ -363,6 +365,19 @@ function listenForSettingsUpdates() {
             } else {
                 loadGUI();
             }
+            if (!active) {
+                // gui.toggleHide();
+                gui.closed = false;
+            }
+            active = true;
+
+        } else if (data.messageType === "particle_close") {
+            // none of this seems to work.
+            // if (active) {
+            //     gui.toggleHide();
+            // }
+            active = false;
+            gui.closed = true;
         }
     });
 }
diff --git a/scripts/system/particle_explorer/particleExplorerTool.js b/scripts/system/particle_explorer/particleExplorerTool.js
index 0be7c6b588..b3db475ab0 100644
--- a/scripts/system/particle_explorer/particleExplorerTool.js
+++ b/scripts/system/particle_explorer/particleExplorerTool.js
@@ -18,33 +18,21 @@ ParticleExplorerTool = function() {
     var that = {};
 
     that.createWebView = function() {
-        if (Settings.getValue("HUDUIEnabled")) {
-            var url = PARTICLE_EXPLORER_HTML_URL;
-            that.webView = new OverlayWebWindow({
-                title: 'Particle Explorer',
-                source: url,
-                toolWindow: true
-            });
-        } else {
-            that.webView = Tablet.getTablet("com.highfidelity.interface.tablet.system");
-            that.webView.setVisible = function(value) {};
-        }
-
-        that.webView.setVisible(true);
+        that.webView = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+        that.webView.setVisible = function(value) {};
         that.webView.webEventReceived.connect(that.webEventReceived);        
     }
 
-
     that.destroyWebView = function() {
         if (!that.webView) {
             return;
         }
-
-        if (Settings.getValue("HUDUIEnabled")) {
-            that.webView.close();
-            that.webView = null;
-        }
         that.activeParticleEntity = 0;
+
+        var messageData = {
+            messageType: "particle_close"
+        };
+        that.webView.emitScriptEvent(JSON.stringify(messageData));
     }
 
     that.webEventReceived = function(data) {
@@ -58,9 +46,5 @@ ParticleExplorerTool = function() {
         that.activeParticleEntity = id;
     }
 
-    if (Settings.getValue("HUDUIEnabled")) {
-        that.createWebView();
-    }
-
     return that;
 };
diff --git a/scripts/system/tablet-users.js b/scripts/system/tablet-users.js
index ce50c4686d..5edc8d17ec 100644
--- a/scripts/system/tablet-users.js
+++ b/scripts/system/tablet-users.js
@@ -49,7 +49,6 @@
     }
 
     function onWebEventReceived(event) {
-        print("Script received a web event, its type is " + typeof event);
         if (typeof event === "string") {
             event = JSON.parse(event);
         }

From 3ba605bf23cd53e4962de78a15a647c93ef48c23 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Thu, 23 Feb 2017 00:28:30 +0000
Subject: [PATCH 035/247] saving work

---
 cmake/macros/LinkHifiLibraries.cmake          |   2 +-
 .../qml/dialogs/TabletQueryDialog.qml         | 205 ++++++++++++++++++
 .../resources/qml/hifi/tablet/TabletRoot.qml  |  20 +-
 .../qml/windows/TabletModalFrame.qml          |  85 ++++++++
 .../qml/windows/TabletModalWindow.qml         |  22 ++
 interface/src/Application.cpp                 |   8 +-
 .../src/TabletScriptingInterface.h            |   2 +
 libraries/ui/CMakeLists.txt                   |   2 +-
 libraries/ui/src/OffscreenUi.cpp              |  20 +-
 9 files changed, 355 insertions(+), 11 deletions(-)
 create mode 100644 interface/resources/qml/dialogs/TabletQueryDialog.qml
 create mode 100644 interface/resources/qml/windows/TabletModalFrame.qml
 create mode 100644 interface/resources/qml/windows/TabletModalWindow.qml

diff --git a/cmake/macros/LinkHifiLibraries.cmake b/cmake/macros/LinkHifiLibraries.cmake
index 3767dc7131..de4ff23863 100644
--- a/cmake/macros/LinkHifiLibraries.cmake
+++ b/cmake/macros/LinkHifiLibraries.cmake
@@ -21,7 +21,7 @@ macro(LINK_HIFI_LIBRARIES)
     include_directories("${HIFI_LIBRARY_DIR}/${HIFI_LIBRARY}/src")
     include_directories("${CMAKE_BINARY_DIR}/libraries/${HIFI_LIBRARY}/shaders")
 
-    add_dependencies(${TARGET_NAME} ${HIFI_LIBRARY})
+   #add_dependencies(${TARGET_NAME} ${HIFI_LIBRARY})
 
     # link the actual library - it is static so don't bubble it up
     target_link_libraries(${TARGET_NAME} ${HIFI_LIBRARY})
diff --git a/interface/resources/qml/dialogs/TabletQueryDialog.qml b/interface/resources/qml/dialogs/TabletQueryDialog.qml
new file mode 100644
index 0000000000..0ae18d1c2d
--- /dev/null
+++ b/interface/resources/qml/dialogs/TabletQueryDialog.qml
@@ -0,0 +1,205 @@
+//
+//  QueryDialog.qml
+//
+//  Created by Bradley Austin Davis on 22 Jan 2016
+//  Copyright 2015 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
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import QtQuick.Dialogs 1.2 as OriginalDialogs
+
+import "../controls-uit"
+import "../styles-uit"
+import "../windows"
+
+TabletModalWindow {
+    id: root
+    HifiConstants { id: hifi }
+    signal selected(var result);
+    signal canceled();
+    layer.enabled: true
+    property int icon: hifi.icons.none
+    property string iconText: ""
+    property int iconSize: 35
+
+    MouseArea {
+        width: parent.width
+        height: parent.height
+    }
+
+    property bool keyboardOverride: true
+    onIconChanged: updateIcon();
+
+    property var items;
+    property string label: "" 
+    property var result;
+    property alias current: textResult.text 
+
+    // For text boxes
+    property alias placeholderText: textResult.placeholderText
+
+    // For combo boxes
+    property bool editable: true;
+
+    property int titleWidth: 0
+    onTitleWidthChanged: d.resize();
+
+    property bool keyboardEnabled: false
+    property bool keyboardRaised: false
+    property bool punctuationMode: false
+
+    onKeyboardRaisedChanged: d.resize();
+
+    function updateIcon() {
+        if (!root) {
+            return;
+        }
+        iconText = hifi.glyphForIcon(root.icon);
+    }
+
+    Rectangle {
+        id: modalWindowItem
+        width: parent.width
+        height: 480
+        anchors.margins: 0
+        anchors {
+            verticalCenter: parent.verticalCenter
+            horizontalCenter: parent.horizontalCenter
+        }
+        
+       QtObject {
+            id: d
+            readonly property int minWidth: 480
+            readonly property int maxWdith: 480
+            readonly property int minHeight: 120
+            readonly property int maxHeight: 720
+
+            function resize() {
+                var targetWidth = Math.max(titleWidth, 480)
+                var targetHeight = (items ? comboBox.controlHeight : textResult.controlHeight) + 5 * hifi.dimensions.contentSpacing.y + buttons.height
+                modalWindowItem.width = (targetWidth < d.minWidth) ? d.minWidth : ((targetWidth > d.maxWdith) ? d.maxWidth : targetWidth);
+                modalWindowItem.height = ((targetHeight < d.minHeight) ? d.minHeight : ((targetHeight > d.maxHeight) ? d.maxHeight : targetHeight)) + ((keyboardEnabled && keyboardRaised) ? (keyboard.raisedHeight + 2 * hifi.dimensions.contentSpacing.y) : 0)
+            }
+        }
+        
+        Item {
+            anchors {
+                top: frameTitle.bottom
+                bottom: keyboard.top;
+                left: parent.left;
+                right: parent.right;
+                margins: 0
+                bottomMargin: 2 * hifi.dimensions.contentSpacing.y
+            }
+
+            // FIXME make a text field type that can be bound to a history for autocompletion
+            TextField {
+                id: textResult
+                label: root.label
+                focus: items ? false : true
+                visible: items ? false : true
+                anchors {
+                    left: parent.left;
+                    right: parent.right;
+                    bottom: parent.bottom
+                }
+            }
+
+            TabletComboBox {
+                id: comboBox
+                label: root.label
+                focus: true
+                visible: items ? true : false
+                anchors {
+                    left: parent.left
+                    right: parent.right
+                    bottom: parent.bottom
+                }
+                model: items ? items : []
+            }
+        }
+        
+        property alias keyboardOverride: root.keyboardOverride
+        property alias keyboardRaised: root.keyboardRaised
+        property alias punctuationMode: root.punctuationMode
+        
+        Keyboard {
+            id: keyboard
+            raised: keyboardEnabled && keyboardRaised
+            numeric: punctuationMode
+            anchors {
+                left: parent.left
+                right: parent.right
+                bottom: buttons.top
+                bottomMargin: raised ? 2 * hifi.dimensions.contentSpacing.y : 0
+            }
+        }
+       
+        Flow {
+            id: buttons
+            focus: true
+            spacing: hifi.dimensions.contentSpacing.x
+            onHeightChanged: d.resize(); onWidthChanged: d.resize();
+            layoutDirection: Qt.RightToLeft
+            anchors {
+                bottom: parent.bottom
+                right: parent.right
+                margins: 0
+                bottomMargin: hifi.dimensions.contentSpacing.y
+            }
+            Button { action: cancelAction }
+            Button { action: acceptAction }
+        }
+
+        Action {
+            id: cancelAction
+            text: qsTr("Cancel")
+            shortcut: Qt.Key_Escape
+            onTriggered: {
+                root.canceled();
+                root.destroy();
+            }
+        }
+        Action {
+            id: acceptAction
+            text: qsTr("OK")
+            shortcut: Qt.Key_Return
+            onTriggered: {
+                root.result = items ? comboBox.currentText : textResult.text
+                root.selected(root.result);
+                root.destroy();
+            }
+        }
+    }
+
+   Keys.onPressed: {
+        if (!visible) {
+            return
+        }
+
+        switch (event.key) {
+        case Qt.Key_Escape:
+        case Qt.Key_Back:
+            cancelAction.trigger()
+            event.accepted = true;
+            break;
+
+        case Qt.Key_Return:
+        case Qt.Key_Enter:
+            acceptAction.trigger()
+            event.accepted = true;
+            break;
+        }
+    }
+
+   Component.onCompleted: {
+       keyboardEnabled = HMD.active;
+       updateIcon();
+       d.resize();
+       textResult.forceActiveFocus();
+   }
+}
diff --git a/interface/resources/qml/hifi/tablet/TabletRoot.qml b/interface/resources/qml/hifi/tablet/TabletRoot.qml
index 22efe63064..79b127098b 100644
--- a/interface/resources/qml/hifi/tablet/TabletRoot.qml
+++ b/interface/resources/qml/hifi/tablet/TabletRoot.qml
@@ -1,6 +1,7 @@
 import QtQuick 2.0
 import Hifi 1.0
-
+import QtQuick.Controls 1.4
+import "../../dialogs"
 Item {
     id: tabletRoot
     objectName: "tabletRoot"
@@ -9,13 +10,26 @@ Item {
 
     property var rootMenu;
     property string subMenu: ""
-
     signal showDesktop();
 
     function setOption(value) {
         option = value;
     }
 
+    Component { id: inputDialogBuilder; TabletQueryDialog { } }
+    function inputDialog(properties) {
+        return inputDialogBuilder.createObject(tabletRoot, properties);
+    }
+
+    function messageBox(properties) {
+    }
+
+    function customInputDialog(properties) {
+    }
+
+    function fileDialog(properties) {
+    }
+
     function setMenuProperties(rootMenu, subMenu) {
         tabletRoot.rootMenu = rootMenu;
         tabletRoot.subMenu = subMenu;
@@ -68,6 +82,7 @@ Item {
         objectName: "loader"
         asynchronous: false
 
+        
         width: parent.width
         height: parent.height
 
@@ -89,7 +104,6 @@ Item {
                 loader.item.setRootMenu(tabletRoot.rootMenu, tabletRoot.subMenu);
             }
             loader.item.forceActiveFocus();
-            tabletRoot.findStackableChild();
         }
     }
 
diff --git a/interface/resources/qml/windows/TabletModalFrame.qml b/interface/resources/qml/windows/TabletModalFrame.qml
new file mode 100644
index 0000000000..41775f6b3e
--- /dev/null
+++ b/interface/resources/qml/windows/TabletModalFrame.qml
@@ -0,0 +1,85 @@
+//
+//  ModalFrame.qml
+//
+//  Created by Bradley Austin Davis on 15 Jan 2016
+//  Copyright 2015 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
+//
+
+import QtQuick 2.5
+
+import "."
+import "../controls-uit"
+import "../styles-uit"
+
+
+Rectangle {
+    HifiConstants { id: hifi }
+
+
+    Rectangle {
+           id: frameContent
+
+        //readonly property bool hasTitle: window.title != ""
+
+        readonly property int frameMarginLeft: hifi.dimensions.modalDialogMargin.x
+        readonly property int frameMarginRight: hifi.dimensions.modalDialogMargin.x
+        readonly property int frameMarginTop: hifi.dimensions.modalDialogMargin.y + (frameContent.hasTitle ? hifi.dimensions.modalDialogTitleHeight + 10 : 0)
+        readonly property int frameMarginBottom: hifi.dimensions.modalDialogMargin.y
+
+         border {
+         width: hifi.dimensions.borderWidth
+         color: hifi.colors.lightGrayText80
+    }
+    radius: hifi.dimensions.borderRadius
+    color: hifi.colors.faintGray
+        Item {
+            id: frameTitle
+            visible: true//frameContent.hasTitle
+            //anchors.fill: parent
+
+            anchors {
+                 fill: parent
+                 topMargin: -frameMarginTop
+                 leftMargin: -frameMarginLeft
+                 rightMargin: -frameMarginRight
+                 bottomMargin: -frameMarginBottom
+             }
+            
+            Item {
+                width: title.width + (icon.text !== "" ? icon.width + hifi.dimensions.contentSpacing.x : 20)
+                
+                onWidthChanged: root.titleWidth = width
+                
+                HiFiGlyphs {
+                    id: icon
+                    text: root.iconText ? root.iconText : "hello"
+                    size: root.iconSize ? root.iconSize : 30
+                    color: hifi.colors.lightGray
+                    visible: true
+                    anchors.verticalCenter: title.verticalCenter
+                    anchors.left: parent.left
+                }
+                RalewayRegular {
+                    id: title
+                    text: root.title
+                    elide: Text.ElideRight
+                    color: hifi.colors.baseGrayHighlight
+                    size: hifi.fontSizes.overlayTitle
+                    y: -hifi.dimensions.modalDialogTitleHeight
+                    anchors.right: parent.right
+                }
+            }
+            
+            Rectangle {
+                anchors.left: parent.left
+                anchors.right: parent.right
+                height: 1
+                color: hifi.colors.lightGray
+            }
+        }
+    }
+   
+}
diff --git a/interface/resources/qml/windows/TabletModalWindow.qml b/interface/resources/qml/windows/TabletModalWindow.qml
new file mode 100644
index 0000000000..05f192f7a7
--- /dev/null
+++ b/interface/resources/qml/windows/TabletModalWindow.qml
@@ -0,0 +1,22 @@
+//
+//  ModalWindow.qml
+//
+//  Created by Bradley Austin Davis on 22 Jan 2016
+//  Copyright 2015 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
+//
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import QtQuick.Dialogs 1.2 as OriginalDialogs
+import "."
+
+Rectangle {
+    id: modalWindow
+    layer.enabled: true
+    property var title: "Modal"
+    width: tabletRoot.width
+    height: tabletRoot.height
+    color: "#80000000"
+}
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index cf677a1c95..c016b31a14 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -5769,10 +5769,14 @@ bool Application::displayAvatarAttachmentConfirmationDialog(const QString& name)
 }
 
 void Application::toggleRunningScriptsWidget() const {
-    static const QUrl url("../../hifi/dialogs/TabletRunningScripts.qml");
+    
     auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
     auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
-    if (tablet) {
+    if (tablet->getToolbarMode()) {
+        static const QUrl url("hifi/dialogs/RunningScripts.qml");
+        DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
+    } else {
+        static const QUrl url("../../hifi/dialogs/TabletRunningScripts.qml");
         tablet->pushOntoStack(url);
     }
     //DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
diff --git a/libraries/script-engine/src/TabletScriptingInterface.h b/libraries/script-engine/src/TabletScriptingInterface.h
index a30b4459e3..8b9bec4013 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.h
+++ b/libraries/script-engine/src/TabletScriptingInterface.h
@@ -154,6 +154,8 @@ public:
 
     Q_INVOKABLE bool onHomeScreen();
 
+    QQuickItem* getTabletRoot() const { return _qmlTabletRoot; }
+
     QObject* getTabletSurface();
 
     QQuickItem* getQmlTablet() const;
diff --git a/libraries/ui/CMakeLists.txt b/libraries/ui/CMakeLists.txt
index cc2382926f..f2b48446fe 100644
--- a/libraries/ui/CMakeLists.txt
+++ b/libraries/ui/CMakeLists.txt
@@ -1,3 +1,3 @@
 set(TARGET_NAME ui)
 setup_hifi_library(OpenGL Network Qml Quick Script WebChannel WebSockets XmlPatterns)
-link_hifi_libraries(shared networking gl)
+link_hifi_libraries(shared networking gl script-engine)
diff --git a/libraries/ui/src/OffscreenUi.cpp b/libraries/ui/src/OffscreenUi.cpp
index 7724a409f0..f3cb28b8ce 100644
--- a/libraries/ui/src/OffscreenUi.cpp
+++ b/libraries/ui/src/OffscreenUi.cpp
@@ -19,7 +19,8 @@
 
 #include <AbstractUriHandler.h>
 #include <AccountManager.h>
-
+#include <DependencyManager.h>
+#include <TabletScriptingInterface.h>
 #include "FileDialogHelper.h"
 #include "VrMenu.h"
 
@@ -405,10 +406,21 @@ QQuickItem* OffscreenUi::createInputDialog(const Icon icon, const QString& title
     map.insert("label", label);
     map.insert("current", current);
     QVariant result;
-    bool invokeResult = QMetaObject::invokeMethod(_desktop, "inputDialog",
-        Q_RETURN_ARG(QVariant, result),
-        Q_ARG(QVariant, QVariant::fromValue(map)));
 
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    TabletProxy* tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+
+    bool invokeResult;
+    if (tablet->getToolbarMode()) {
+        invokeResult = QMetaObject::invokeMethod(_desktop, "inputDialog",
+                                                 Q_RETURN_ARG(QVariant, result),
+                                                 Q_ARG(QVariant, QVariant::fromValue(map)));
+    } else {
+        QQuickItem* tabletRoot = tablet->getTabletRoot();
+        invokeResult = QMetaObject::invokeMethod(tabletRoot, "inputDialog",
+                                                 Q_RETURN_ARG(QVariant, result),
+                                                 Q_ARG(QVariant, QVariant::fromValue(map)));
+    }
     if (!invokeResult) {
         qWarning() << "Failed to create message box";
         return nullptr;

From 88318c1911f522925c81ab6f3fa3df6b92021bb2 Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Thu, 23 Feb 2017 11:40:26 -0800
Subject: [PATCH 036/247] create tab background and new entity buttons

---
 interface/resources/qml/hifi/tablet/Edit.qml  | 169 ++++++++-------
 .../qml/hifi/tablet/NewEntityButton.qml       | 204 ++++++++++++++++++
 2 files changed, 291 insertions(+), 82 deletions(-)
 create mode 100644 interface/resources/qml/hifi/tablet/NewEntityButton.qml

diff --git a/interface/resources/qml/hifi/tablet/Edit.qml b/interface/resources/qml/hifi/tablet/Edit.qml
index 5301ff78f8..4a5930e6e7 100644
--- a/interface/resources/qml/hifi/tablet/Edit.qml
+++ b/interface/resources/qml/hifi/tablet/Edit.qml
@@ -39,106 +39,111 @@ StackView {
                 enabled: true
                 property string originalUrl: ""
 
-                Flow {
-                    id: createEntitiesFlow
-                    spacing: 16
-                    anchors.right: parent.right
-                    anchors.rightMargin: 30
-                    anchors.left: parent.left
-                    anchors.leftMargin: 30
-                    anchors.bottom: parent.bottom
-                    anchors.bottomMargin: 30
-                    anchors.top: parent.top
-                    anchors.topMargin: 30
+                Rectangle { 
+                    color: "#383838"
+                    Flow {
+                        id: createEntitiesFlow
+                        spacing: 35
+                        anchors.right: parent.right
+                        anchors.rightMargin: 55
+                        anchors.left: parent.left
+                        anchors.leftMargin: 55
+                        anchors.bottom: parent.bottom
+                        anchors.bottomMargin: 30
+                        anchors.top: parent.top
+                        anchors.topMargin: 70
 
-                    TabletButton {
-                        icon: "icons/assets-01.svg"
-                        text: "ASSETS"
-                        onClicked: {
-                            editRoot.sendToScript({
-                                method: "newEntityButtonClicked", params: { buttonName: "openAssetBrowserButton" }
-                            });
+                        NewEntityButton {
+                            icon: "icons/assets-01.svg"
+                            text: "ASSETS"
+                            onClicked: {
+                                editRoot.sendToScript({
+                                    method: "newEntityButtonClicked", params: { buttonName: "openAssetBrowserButton" }
+                                });
+                            }
                         }
-                    }
 
-                    TabletButton {
-                        icon: "model-01.svg"
-                        text: "MODEL"
-                        onClicked: {
-                            editRoot.sendToScript({
-                                method: "newEntityButtonClicked", params: { buttonName: "newModelButton" }
-                            });
+                        NewEntityButton {
+                            icon: "model-01.svg"
+                            text: "MODEL"
+                            onClicked: {
+                                editRoot.sendToScript({
+                                    method: "newEntityButtonClicked", params: { buttonName: "newModelButton" }
+                                });
+                            }
                         }
-                    }
 
-                    TabletButton {
-                        icon: "../cube-01.svg"
-                        text: "CUBE"
-                        onClicked: {
-                            editRoot.sendToScript({
-                                method: "newEntityButtonClicked", params: { buttonName: "newCubeButton" }
-                            });
+                        NewEntityButton {
+                            icon: "../cube-01.svg"
+                            text: "CUBE"
+                            onClicked: {
+                                editRoot.sendToScript({
+                                    method: "newEntityButtonClicked", params: { buttonName: "newCubeButton" }
+                                });
+                            }
                         }
-                    }
 
-                    ToolbarButton {
-                        imageURL: "../images/sphere-01.svg"
-                        onClicked: {
-                            editRoot.sendToScript({
-                                method: "newEntityButtonClicked", params: { buttonName: "newSphereButton" }
-                            });
+                        NewEntityButton {
+                            icon: "../images/sphere-01.svg"
+                            text: "SPHERE"
+                            onClicked: {
+                                editRoot.sendToScript({
+                                    method: "newEntityButtonClicked", params: { buttonName: "newSphereButton" }
+                                });
+                            }
                         }
-                    }
 
-                    TabletButton {
-                        icon: "../scripts/system/assets/images/tools/light-01.svg"
-                        text: "LIGHT"
-                        onClicked: {
-                            editRoot.sendToScript({
-                                method: "newEntityButtonClicked", params: { buttonName: "newLightButton" }
-                            });
+                        NewEntityButton {
+                            icon: "../scripts/system/assets/images/tools/light-01.svg"
+                            text: "LIGHT"
+                            onClicked: {
+                                editRoot.sendToScript({
+                                    method: "newEntityButtonClicked", params: { buttonName: "newLightButton" }
+                                });
+                            }
                         }
-                    }
 
-                    TabletButton {
-                        icon: "../scripts/system/assets/images/tools/text-01.svg"
-                        text: "TEXT"
-                        onClicked: {
-                            editRoot.sendToScript({
-                                method: "newEntityButtonClicked", params: { buttonName: "newTextButton" }
-                            });
+                        NewEntityButton {
+                            icon: "../scripts/system/assets/images/tools/text-01.svg"
+                            text: "TEXT"
+                            onClicked: {
+                                editRoot.sendToScript({
+                                    method: "newEntityButtonClicked", params: { buttonName: "newTextButton" }
+                                });
+                            }
                         }
-                    }
 
-                    TabletButton {
-                        icon: "../scripts/system/assets/images/tools/web-01.svg"
-                        text: "WEB"
-                        onClicked: {
-                            editRoot.sendToScript({
-                                method: "newEntityButtonClicked", params: { buttonName: "newWebButton" }
-                            });
+                        NewEntityButton {
+                            icon: "../scripts/system/assets/images/tools/web-01.svg"
+                            text: "WEB"
+                            onClicked: {
+                                editRoot.sendToScript({
+                                    method: "newEntityButtonClicked", params: { buttonName: "newWebButton" }
+                                });
+                            }
                         }
-                    }
 
-                    TabletButton {
-                        icon: "../scripts/system/assets/images/tools/zone-01.svg"
-                        text: "ZONE"
-                        onClicked: {
-                            editRoot.sendToScript({
-                                method: "newEntityButtonClicked", params: { buttonName: "newZoneButton" }
-                            });
+                        NewEntityButton {
+                            icon: "../scripts/system/assets/images/tools/zone-01.svg"
+                            text: "ZONE"
+                            onClicked: {
+                                editRoot.sendToScript({
+                                    method: "newEntityButtonClicked", params: { buttonName: "newZoneButton" }
+                                });
+                            }
                         }
-                    }
 
-                    TabletButton {
-                        icon: "../scripts/system/assets/images/tools/particle-01.svg"
-                        text: "PARTICLE"
-                        onClicked: {
-                            editRoot.sendToScript({
-                                method: "newEntityButtonClicked", params: { buttonName: "newParticleButton" }
-                            });
+                        NewEntityButton {
+                            icon: "../scripts/system/assets/images/tools/particle-01.svg"
+                            text: "PARTICLE"
+                            onClicked: {
+                                editRoot.sendToScript({
+                                    method: "newEntityButtonClicked", params: { buttonName: "newParticleButton" }
+                                });
+                            }
                         }
-                    }
+                    } 
+
                 }
             }
 
diff --git a/interface/resources/qml/hifi/tablet/NewEntityButton.qml b/interface/resources/qml/hifi/tablet/NewEntityButton.qml
new file mode 100644
index 0000000000..93816be71b
--- /dev/null
+++ b/interface/resources/qml/hifi/tablet/NewEntityButton.qml
@@ -0,0 +1,204 @@
+import QtQuick 2.0
+import QtGraphicalEffects 1.0
+
+Item {
+    id: tabletButton
+    property var uuid;
+    property string text: "EDIT"
+    property string icon: "icons/edit-icon.svg"
+    property string activeText: tabletButton.text
+    property string activeIcon: tabletButton.icon
+    property bool isActive: false
+    property bool inDebugMode: false
+    property bool isEntered: false
+    property double sortOrder: 100
+    property int stableOrder: 0
+    property var tabletRoot;
+    width: 100
+    height: 100
+
+    signal clicked()
+
+    function changeProperty(key, value) {
+        tabletButton[key] = value;
+    }
+
+    onIsActiveChanged: {
+        if (tabletButton.isEntered) {
+            tabletButton.state = (tabletButton.isActive) ? "hover active state" : "hover sate";
+        } else {
+            tabletButton.state = (tabletButton.isActive) ? "active state" : "base sate";
+        }
+    }
+
+    Rectangle {
+        id: buttonBg
+        color: "#222222"
+        opacity: 1
+        radius: 8
+        anchors.right: parent.right
+        anchors.rightMargin: 0
+        anchors.left: parent.left
+        anchors.leftMargin: 0
+        anchors.bottom: parent.bottom
+        anchors.bottomMargin: 0
+        anchors.top: parent.top
+        anchors.topMargin: 0
+    }
+
+    function urlHelper(src) {
+        if (src.match(/\bhttp/)) {
+            return src;
+        } else {
+            return "../../../" + src;
+        }
+    }
+
+    Image {
+        id: icon
+        width: 50
+        height: 50
+        visible: false
+        anchors.bottom: text.top
+        anchors.bottomMargin: 5
+        anchors.horizontalCenter: parent.horizontalCenter
+        fillMode: Image.Stretch
+        source: tabletButton.urlHelper(tabletButton.icon)
+    }
+
+    ColorOverlay {
+        id: iconColorOverlay
+        anchors.fill: icon
+        source: icon
+        color: "#ffffff"
+    }
+
+    Text {
+        id: text
+        color: "#ffffff"
+        text: tabletButton.text
+        font.bold: true
+        font.pixelSize: 18
+        anchors.bottom: parent.bottom
+        anchors.bottomMargin: 10
+        anchors.horizontalCenter: parent.horizontalCenter
+        horizontalAlignment: Text.AlignHCenter
+    }
+
+    MouseArea {
+        anchors.fill: parent
+        hoverEnabled: true
+        enabled: true
+        onClicked: {
+            console.log("Tablet Button Clicked!");
+            if (tabletButton.inDebugMode) {
+                if (tabletButton.isActive) {
+                    tabletButton.isActive = false;
+                } else {
+                    tabletButton.isActive = true;
+                }
+            }
+            tabletButton.clicked();
+            if (tabletRoot) {
+                tabletRoot.playButtonClickSound();
+            }
+        }
+        onEntered: {
+            tabletButton.isEntered = true;
+            if (tabletButton.isActive) {
+                tabletButton.state = "hover active state";
+            } else {
+                tabletButton.state = "hover state";
+            }
+        }
+        onExited: {
+            tabletButton.isEntered = false;
+            if (tabletButton.isActive) {
+                tabletButton.state = "active state";
+            } else {
+                tabletButton.state = "base state";
+            }
+        }
+    }
+
+    states: [
+        State {
+            name: "hover state"
+
+            PropertyChanges {
+                target: buttonOutline
+                border.color: "#1fc6a6"
+                opacity: 1
+            }
+
+            PropertyChanges {
+                target: glow
+                visible: true
+            }
+        },
+        State {
+            name: "active state"
+
+            PropertyChanges {
+                target: buttonOutline
+                border.color: "#1fc6a6"
+                opacity: 1
+            }
+
+            PropertyChanges {
+                target: buttonBg
+                color: "#1fc6a6"
+                opacity: 1
+            }
+
+            PropertyChanges {
+                target: text
+                color: "#333333"
+                text: tabletButton.activeText
+            }
+
+            PropertyChanges {
+                target: iconColorOverlay
+                color: "#333333"
+            }
+
+            PropertyChanges {
+                target: icon
+                source: tabletButton.urlHelper(tabletButton.activeIcon)
+            }
+        },
+        State {
+            name: "hover active state"
+
+            PropertyChanges {
+                target: glow
+                visible: true
+            }
+
+            PropertyChanges {
+                target: buttonOutline
+                border.color: "#ffffff"
+                opacity: 1
+            }
+
+            PropertyChanges {
+                target: buttonBg
+                color: "#1fc6a6"
+                opacity: 1
+            }
+
+            PropertyChanges {
+                target: text
+                color: "#333333"
+            }
+
+            PropertyChanges {
+                target: iconColorOverlay
+                color: "#333333"
+            }
+
+        }
+    ]
+}
+
+

From 8e89e0773211edb37d6259a6e5981e5e2a87f742 Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Thu, 23 Feb 2017 11:50:39 -0800
Subject: [PATCH 037/247] text choose an entity type to create

---
 interface/resources/qml/hifi/tablet/Edit.qml | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/interface/resources/qml/hifi/tablet/Edit.qml b/interface/resources/qml/hifi/tablet/Edit.qml
index 4a5930e6e7..6e0995779a 100644
--- a/interface/resources/qml/hifi/tablet/Edit.qml
+++ b/interface/resources/qml/hifi/tablet/Edit.qml
@@ -41,6 +41,18 @@ StackView {
 
                 Rectangle { 
                     color: "#383838"
+
+                    Text {
+                        color: "#ffffff"
+                        text: "Choose an Entity Type to Create:"
+                        font.pixelSize: 14
+                        font.bold: true
+                        anchors.top: parent.top
+                        anchors.topMargin: 28
+                        anchors.left: parent.left
+                        anchors.leftMargin: 28
+                    }
+
                     Flow {
                         id: createEntitiesFlow
                         spacing: 35

From bd834097d59428b1e9bd53ebf10fb057078173a0 Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Thu, 23 Feb 2017 12:36:27 -0800
Subject: [PATCH 038/247] tab bar styling

---
 interface/resources/qml/hifi/tablet/Edit.qml  | 32 +++++++++++++------
 .../qml/hifi/tablet/NewEntityButton.qml       |  2 +-
 2 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/Edit.qml b/interface/resources/qml/hifi/tablet/Edit.qml
index 6e0995779a..3489af5fcb 100644
--- a/interface/resources/qml/hifi/tablet/Edit.qml
+++ b/interface/resources/qml/hifi/tablet/Edit.qml
@@ -34,13 +34,13 @@ StackView {
             height: 60
 
             Tab {
-                title: "Create"
+                title: "CREATE"
                 active: true
                 enabled: true
                 property string originalUrl: ""
 
                 Rectangle { 
-                    color: "#383838"
+                    color: "#404040"
 
                     Text {
                         color: "#ffffff"
@@ -160,7 +160,7 @@ StackView {
             }
 
             Tab {
-                title: "List"
+                title: "LIST"
                 active: true
                 enabled: true
                 property string originalUrl: ""
@@ -175,7 +175,7 @@ StackView {
             }
 
             Tab {
-                title: "Properties"
+                title: "PROPERTIES"
                 active: true
                 enabled: true
                 property string originalUrl: ""
@@ -190,7 +190,7 @@ StackView {
             }
 
             Tab {
-                title: "Grid"
+                title: "GRID"
                 active: true
                 enabled: true
                 property string originalUrl: ""
@@ -205,7 +205,7 @@ StackView {
             }
 
             Tab {
-                title: "Particles"
+                title: "P"
                 active: true
                 enabled: true
                 property string originalUrl: ""
@@ -223,17 +223,29 @@ StackView {
             style: TabViewStyle {
                 frameOverlap: 1
                 tab: Rectangle {
-                    color: styleData.selected ? "slategrey" :"grey"
-                    implicitWidth: text.width + 25
-                    implicitHeight: 60
-                    radius: 2
+                    color: styleData.selected ? "#404040" :"black"
+                    implicitWidth: text.width + 42
+                    implicitHeight: 40
                     Text {
                         id: text
                         anchors.centerIn: parent
                         text: styleData.title
+                        font.pixelSize: 16
+                        font.bold: true
                         color: styleData.selected ? "white" : "white"
                     }
                 }
+                tabBar: Rectangle {
+                    color: "black"
+                    anchors.right: parent.right
+                    anchors.rightMargin: 0
+                    anchors.left: parent.left
+                    anchors.leftMargin: 0
+                    anchors.bottom: parent.bottom
+                    anchors.bottomMargin: 0
+                    anchors.top: parent.top
+                    anchors.topMargin: 0
+                }
             }
         }
     }
diff --git a/interface/resources/qml/hifi/tablet/NewEntityButton.qml b/interface/resources/qml/hifi/tablet/NewEntityButton.qml
index 93816be71b..5cb3d169e7 100644
--- a/interface/resources/qml/hifi/tablet/NewEntityButton.qml
+++ b/interface/resources/qml/hifi/tablet/NewEntityButton.qml
@@ -33,7 +33,7 @@ Item {
 
     Rectangle {
         id: buttonBg
-        color: "#222222"
+        color: "#1c1c1c"
         opacity: 1
         radius: 8
         anchors.right: parent.right

From 3850bc35a9ffe90f0c7ce2cd78ff7e852dddfb09 Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Thu, 23 Feb 2017 13:31:03 -0800
Subject: [PATCH 039/247] icons on new entity buttons

---
 .../icons/create-icons/20-text-01.svg         |  26 ++++
 .../icons/create-icons/21-cube-01.svg         |  17 +++
 .../icons/create-icons/22-sphere-01.svg       |  21 +++
 .../icons/create-icons/23-zone-01.svg         |  38 +++++
 .../icons/create-icons/24-light-01.svg        |  34 +++++
 .../icons/create-icons/25-web-1-01.svg        |  30 ++++
 .../icons/create-icons/90-particles-01.svg    |  29 ++++
 .../icons/create-icons/94-model-01.svg        |  20 +++
 interface/resources/qml/hifi/tablet/Edit.qml  |  20 +--
 .../qml/hifi/tablet/NewEntityButton.qml       | 134 ++++++------------
 10 files changed, 271 insertions(+), 98 deletions(-)
 create mode 100644 interface/resources/icons/create-icons/20-text-01.svg
 create mode 100644 interface/resources/icons/create-icons/21-cube-01.svg
 create mode 100644 interface/resources/icons/create-icons/22-sphere-01.svg
 create mode 100644 interface/resources/icons/create-icons/23-zone-01.svg
 create mode 100644 interface/resources/icons/create-icons/24-light-01.svg
 create mode 100644 interface/resources/icons/create-icons/25-web-1-01.svg
 create mode 100644 interface/resources/icons/create-icons/90-particles-01.svg
 create mode 100644 interface/resources/icons/create-icons/94-model-01.svg

diff --git a/interface/resources/icons/create-icons/20-text-01.svg b/interface/resources/icons/create-icons/20-text-01.svg
new file mode 100644
index 0000000000..337f3b70e3
--- /dev/null
+++ b/interface/resources/icons/create-icons/20-text-01.svg
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:none;stroke:#000000;stroke-width:18;stroke-miterlimit:10;}
+	.st1{fill:none;stroke:#000000;stroke-width:18;stroke-linecap:round;stroke-miterlimit:10;}
+	.st2{fill:none;stroke:#000000;stroke-width:19;stroke-linecap:round;stroke-miterlimit:10;}
+</style>
+<g>
+	<g>
+		<path d="M220.3,378.4l-81.1-232c-1-2.8-3.6-4.3-6.6-4.3h-9.2c-3,0-5.6,1.5-6.6,4.3L34,378.5c-0.8,2.1-0.4,5.1,0.9,7
+			c1.3,1.9,3.4,3.5,5.7,3.5h15.9c3,0,5.6-2.6,6.6-5.4L90.2,305h73.7l27,78.6c1,2.8,3.6,5.4,6.6,5.4h16.2c2.3,0,4.4-1.8,5.7-3.6
+			C220.7,383.5,221.1,380.5,220.3,378.4z M100.3,276l25.6-73.1c0.6-1.7,1.3-3.3,1.9-5.1c0.6,1.8,1.2,3,1.7,4.5l24.9,73.7H100.3z"/>
+		<path d="M351.6,215.5c-9.7-11.4-24.3-17.2-43.2-17.2c-17.5,0-35.5,4.7-53.2,14.1c-3.1,1.7-4.6,5.4-3.3,8.7l5.2,13.6
+			c0.7,1.9,2.3,3.4,4.2,4.1c1.9,0.7,4.1,0.5,5.8-0.6c14.1-8.2,27.7-12.3,40.6-12.3c10.9,0,18.8,3.2,23.3,9.6c5.2,7.3,8,18.4,8,33
+			v4.6l-22.7,0.7c-25,0.6-44.7,6-58.2,16.1c-14.3,10.7-21.6,25.7-21.6,44.7c0,17.1,4.9,30.9,14.5,40.8c9.7,10,23.2,15.1,40.1,15.1
+			c12,0,22.8-2.7,32.2-8c5.6-3.1,11.1-7.7,16.4-13.6l1.6,13.3c0.4,3.5,3.4,6.8,6.9,6.8h10.2c3.9,0,7.6-4.4,7.6-8.3V265.9
+			C366,243.2,361.1,226.7,351.6,215.5z M265.1,335.2c0-11.2,3.5-19.1,10.7-24.1c8-5.6,22.1-9,42-10.1l19.1-0.9v9.6
+			c0,17.2-3.8,29.9-12,39.1c-8.1,9-19,13.4-33.3,13.4c-8.8,0-15.3-2.2-19.8-6.9C267.3,350.8,265.1,344.2,265.1,335.2z"/>
+		<path d="M451.3,439.9c-10,0-15.3-8.1-15.3-18c-0.1-22.2-0.2-298.2-0.4-320.4c-0.1-10,5.2-18.2,15.2-18.3c0.1,0,0.1,0,0.2,0
+			c9.9,0,15.2,8,15.3,18c0.2,22.2,0.3,298.3,0.4,320.5C466.7,431.7,461.4,439.9,451.3,439.9C451.4,439.9,451.3,439.9,451.3,439.9z"
+			/>
+	</g>
+</g>
+</svg>
diff --git a/interface/resources/icons/create-icons/21-cube-01.svg b/interface/resources/icons/create-icons/21-cube-01.svg
new file mode 100644
index 0000000000..21a980ca35
--- /dev/null
+++ b/interface/resources/icons/create-icons/21-cube-01.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:none;stroke:#000000;stroke-width:18;stroke-miterlimit:10;}
+	.st1{fill:none;stroke:#000000;stroke-width:18;stroke-linecap:round;stroke-miterlimit:10;}
+	.st2{fill:none;stroke:#000000;stroke-width:19;stroke-linecap:round;stroke-miterlimit:10;}
+</style>
+<g>
+	<path d="M451.6,90.8L189.4,64.9c-3.2-0.3-6.2,0.5-8.8,2.4l0.1,0L54.9,155.4l0,0c-0.5,0.3-0.5,0.7-0.9,1c-2.8,2.5-4,6.1-4,9.9v262.5
+		c0,6.8,4.8,12.6,11.6,13.2l262.3,25.9c0.4,0,0.8,0.1,1.2,0.1c2.7,0,5.3-0.9,7.6-2.4l0,0l125.8-88.2l0,0c0.5-0.3,0.3-0.7,0.7-1
+		c2.8-2.5,3.8-6.1,3.8-9.9V104.1C463,97.2,458.4,91.5,451.6,90.8z M430.1,364.7l-1.8,1.4c-0.2,0.1-0.3,0.3-0.6,0.4c0,0,0.4,0,0.4,0
+		L339,429.2v-230l98-69.5v222.2C436,358,435,361.1,430.1,364.7z M203.3,93l210.6,20.8l-92.4,64.7L99.6,156.6l86.7-60.8
+		c0.2,0,0.3,0,0.5,0c0,0,0,0,0.1,0c3.4-2.1,7.4-3.4,11.4-3.4C200,92.4,201.7,92.6,203.3,93z M313,440L76,416.7V181l237,23.3V440z"/>
+</g>
+</svg>
diff --git a/interface/resources/icons/create-icons/22-sphere-01.svg b/interface/resources/icons/create-icons/22-sphere-01.svg
new file mode 100644
index 0000000000..5080a16e78
--- /dev/null
+++ b/interface/resources/icons/create-icons/22-sphere-01.svg
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:none;stroke:#000000;stroke-width:18;stroke-miterlimit:10;}
+	.st1{fill:none;stroke:#000000;stroke-width:18;stroke-linecap:round;stroke-miterlimit:10;}
+	.st2{fill:none;stroke:#000000;stroke-width:19;stroke-linecap:round;stroke-miterlimit:10;}
+</style>
+<g>
+	<path d="M417.6,96.6c-90.2-90.2-236.9-90.2-327.1,0c-43.7,43.7-67.8,101.8-67.8,163.6c0,61.8,24.1,119.9,67.8,163.6
+		c45.1,45.1,104.3,67.6,163.6,67.6c59.2,0,118.5-22.5,163.6-67.6c43.7-43.7,67.8-101.8,67.8-163.6
+		C485.4,198.4,461.3,140.3,417.6,96.6z M112.7,118.8c30-30,67.2-48.4,106.1-55.3c-7.4,11.3-14,26-19.8,44
+		c-13.2,41.4-20.5,96.3-20.5,154.5c0,2.8,0,7,0.1,9.8c6.4,1.6,12.8,1.7,19.3,2.8c1.9,0.3,3.9,0.6,5.9,0.8c-0.1-4.4-0.1-8.8-0.1-13.3
+		c0-116.9,30-193.4,52.3-200c0.5-0.5,1-1,1.4-1.6c50.1,0.8,99.9,20.3,138,58.4c36.6,36.6,57.3,85,58.5,136.6
+		c-4.8,22.4-81.7,53.2-200.2,53.2c-115.3,0-191.3-29.1-199.6-51.4C54.9,204.9,75.6,155.9,112.7,118.8z M395.5,401.6
+		C356,441.1,304,460.5,252.1,460c-14.1-8.9-30.3-43.3-39.9-96.6l-25.6-1.4c3.2,19.2,7.4,38.5,12.5,54.3c5.1,16,10.9,29.4,17.3,40.1
+		c-38-7.2-74.3-25.5-103.7-54.9C83.2,372.1,64,334.9,57.1,294.6c11,6.9,25.2,13.2,42.3,18.7c41.4,13.2,96.3,20.5,154.5,20.5
+		c58.2,0,113-7.3,154.5-20.5c17.4-5.6,31.7-11.9,42.9-19C444.2,334.7,425.1,372,395.5,401.6z"/>
+</g>
+</svg>
diff --git a/interface/resources/icons/create-icons/23-zone-01.svg b/interface/resources/icons/create-icons/23-zone-01.svg
new file mode 100644
index 0000000000..5428257893
--- /dev/null
+++ b/interface/resources/icons/create-icons/23-zone-01.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:none;stroke:#000000;stroke-width:18;stroke-miterlimit:10;}
+	.st1{fill:none;stroke:#000000;stroke-width:18;stroke-linecap:round;stroke-miterlimit:10;}
+	.st2{fill:none;stroke:#000000;stroke-width:19;stroke-linecap:round;stroke-miterlimit:10;}
+</style>
+<g>
+	<path d="M380.7,139.8c-2.7-6.6-9.2-10.8-16.3-10.8H292v34h29.9L159,326.1V290h-36v79h1.3c0.1,2,0.5,4.1,1.3,5.9
+		c2.7,6.6,9.1,11.1,16.2,11.1H225v-35h-40.8L346,189.7V215h35v-62.4C382,148.5,382.4,144,380.7,139.8z"/>
+	<path d="M338.4,437.6c0-12,9.7-21.7,21.7-21.7l0,0c12,0,21.7,9.7,21.7,21.7l0,0c0,12-9.7,21.7-21.7,21.7l0,0
+		C348.1,459.3,338.4,449.6,338.4,437.6z M266.9,437.6c0-12,9.7-21.7,21.7-21.7l0,0c12,0,21.7,9.7,21.7,21.7l0,0
+		c0,12-9.7,21.7-21.7,21.7l0,0C276.6,459.3,266.9,449.6,266.9,437.6z M195.4,437.6c0-12,9.7-21.7,21.7-21.7l0,0
+		c12,0,21.7,9.7,21.7,21.7l0,0c0,12-9.7,21.7-21.7,21.7l0,0C205.1,459.3,195.4,449.6,195.4,437.6z M123.9,437.6
+		c0-12,9.7-21.7,21.7-21.7l0,0c12,0,21.7,9.7,21.7,21.7l0,0c0,12-9.7,21.7-21.7,21.7l0,0C133.6,459.3,123.9,449.6,123.9,437.6z"/>
+	<path d="M74.1,459.3c-5.7,0-11.3-2.3-15.4-6.4c-4-4-6.4-9.6-6.4-15.3c0-5.7,2.3-11.3,6.4-15.3c4-4,9.6-6.4,15.4-6.4
+		c5.7,0,11.3,2.3,15.3,6.4c4,4,6.4,9.6,6.4,15.3c0,5.7-2.3,11.3-6.4,15.3C85.4,457,79.8,459.3,74.1,459.3z"/>
+	<path d="M52.4,366.1c0-12,9.7-21.7,21.7-21.7l0,0c12,0,21.7,9.7,21.7,21.7l0,0c0,12-9.7,21.7-21.7,21.7l0,0
+		C62.1,387.8,52.4,378,52.4,366.1z M52.4,294.6c0-12,9.7-21.7,21.7-21.7l0,0c12,0,21.7,9.7,21.7,21.7l0,0c0,12-9.7,21.7-21.7,21.7
+		l0,0C62.1,316.3,52.4,306.5,52.4,294.6z M52.4,223.1c0-12,9.7-21.7,21.7-21.7l0,0c12,0,21.7,9.7,21.7,21.7l0,0
+		c0,12-9.7,21.7-21.7,21.7l0,0C62.1,244.8,52.4,235,52.4,223.1z M52.4,151.5c0-12,9.7-21.7,21.7-21.7l0,0c12,0,21.7,9.7,21.7,21.7
+		l0,0c0,12-9.7,21.7-21.7,21.7l0,0C62.1,173.2,52.4,163.5,52.4,151.5z"/>
+	<path d="M338.4,80c0-12,9.7-21.7,21.7-21.7l0,0c12,0,21.7,9.7,21.7,21.7l0,0c0,12-9.7,21.7-21.7,21.7l0,0
+		C348.1,101.7,338.4,92,338.4,80z M266.9,80c0-12,9.7-21.7,21.7-21.7l0,0c12,0,21.7,9.7,21.7,21.7l0,0c0,12-9.7,21.7-21.7,21.7l0,0
+		C276.6,101.7,266.9,92,266.9,80z M195.4,80c0-12,9.7-21.7,21.7-21.7l0,0c12,0,21.7,9.7,21.7,21.7l0,0c0,12-9.7,21.7-21.7,21.7l0,0
+		C205.1,101.7,195.4,92,195.4,80z M123.9,80c0-12,9.7-21.7,21.7-21.7l0,0c12,0,21.7,9.7,21.7,21.7l0,0c0,12-9.7,21.7-21.7,21.7l0,0
+		C133.6,101.7,123.9,92,123.9,80z"/>
+	<path d="M431.6,101.7c-5.7,0-11.3-2.3-15.3-6.4c-4-4-6.4-9.6-6.4-15.3c0-5.7,2.3-11.3,6.4-15.3c4-4,9.6-6.4,15.3-6.4
+		s11.3,2.3,15.3,6.4c4,4,6.4,9.6,6.4,15.3c0,5.7-2.3,11.3-6.4,15.3C442.9,99.4,437.4,101.7,431.6,101.7z"/>
+	<path d="M409.9,366.1c0-12,9.7-21.7,21.7-21.7l0,0c12,0,21.7,9.7,21.7,21.7l0,0c0,12-9.7,21.7-21.7,21.7l0,0
+		C419.7,387.8,409.9,378.1,409.9,366.1z M409.9,294.6c0-12,9.7-21.7,21.7-21.7l0,0c12,0,21.7,9.7,21.7,21.7l0,0
+		c0,12-9.7,21.7-21.7,21.7l0,0C419.7,316.3,409.9,306.5,409.9,294.6z M409.9,223.1c0-12,9.7-21.7,21.7-21.7l0,0
+		c12,0,21.7,9.7,21.7,21.7l0,0c0,12-9.7,21.7-21.7,21.7l0,0C419.7,244.7,409.9,235,409.9,223.1z M409.9,151.5
+		c0-12,9.7-21.7,21.7-21.7l0,0c12,0,21.7,9.7,21.7,21.7l0,0c0,12-9.7,21.7-21.7,21.7l0,0C419.7,173.2,409.9,163.5,409.9,151.5z"/>
+</g>
+</svg>
diff --git a/interface/resources/icons/create-icons/24-light-01.svg b/interface/resources/icons/create-icons/24-light-01.svg
new file mode 100644
index 0000000000..028ea22793
--- /dev/null
+++ b/interface/resources/icons/create-icons/24-light-01.svg
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:none;stroke:#000000;stroke-width:18;stroke-miterlimit:10;}
+	.st1{fill:none;stroke:#000000;stroke-width:18;stroke-linecap:round;stroke-miterlimit:10;}
+	.st2{fill:none;stroke:#000000;stroke-width:19;stroke-linecap:round;stroke-miterlimit:10;}
+</style>
+<g>
+	<circle cx="259.2" cy="252.5" r="38.3"/>
+	<path d="M259.2,361.8c-60.3,0-109.3-49-109.3-109.3s49-109.3,109.3-109.3s109.3,49,109.3,109.3S319.4,361.8,259.2,361.8z
+		 M259.2,171.8c-44.5,0-80.7,36.2-80.7,80.7s36.2,80.7,80.7,80.7s80.7-36.2,80.7-80.7S303.7,171.8,259.2,171.8z"/>
+	<path d="M414.1,268.5c-7.9,0-14.2-6.4-14.3-14.2c0-7.9,6.3-14.3,14.2-14.3c17.1-0.1,34.5-0.2,51.6-0.3c0,0,0.1,0,0.1,0
+		c7.8,0,14.2,6.3,14.3,14.2c0.1,7.9-6.3,14.3-14.2,14.4C448.8,268.3,431.4,268.4,414.1,268.5C414.2,268.5,414.1,268.5,414.1,268.5z"
+		/>
+	<path d="M105.8,268.5C105.8,268.5,105.8,268.5,105.8,268.5c-17.3-0.1-34.6-0.2-51.7-0.4c-7.9-0.1-14.2-6.5-14.1-14.4
+		c0.1-7.8,6.5-14.1,14.3-14.1c0.1,0,0.1,0,0.2,0c17,0.2,34.3,0.3,51.5,0.4c7.9,0,14.3,6.5,14.2,14.3
+		C120.1,262.2,113.7,268.5,105.8,268.5z"/>
+	<path d="M369.1,159.5c-3.6,0-7.3-1.4-10-4.1c-5.6-5.6-5.6-14.6-0.1-20.2c12-12.1,24.2-24.5,36.3-36.7c5.5-5.6,14.6-5.7,20.2-0.2
+		c5.6,5.5,5.7,14.6,0.2,20.2c-12.1,12.3-24.3,24.7-36.4,36.8C376.4,158.1,372.8,159.5,369.1,159.5z"/>
+	<path d="M114.4,413.7c-3.7,0-7.4-1.4-10.2-4.3c-5.5-5.6-5.4-14.7,0.2-20.2c12.2-11.9,24.5-24.1,36.7-36.1
+		c5.6-5.6,14.6-5.5,20.2,0.1c5.6,5.6,5.5,14.6-0.1,20.2c-12.2,12.1-24.6,24.3-36.8,36.2C121.6,412.3,118,413.7,114.4,413.7z"/>
+	<path d="M260.2,114.2c-7.9,0-14.2-6.4-14.3-14.2c-0.1-17-0.2-34.4-0.3-51.6c-0.1-7.9,6.3-14.3,14.2-14.4c0,0,0.1,0,0.1,0
+		c7.8,0,14.2,6.3,14.3,14.2c0.1,17.3,0.3,34.7,0.3,51.7C274.5,107.8,268.1,114.2,260.2,114.2C260.2,114.2,260.2,114.2,260.2,114.2z"
+		/>
+	<path d="M259.9,474.1c-0.1,0-0.1,0-0.2,0c-7.9-0.1-14.2-6.5-14.1-14.4c0.2-16.9,0.3-34.3,0.4-51.5c0-7.9,6.4-14.2,14.3-14.2
+		c0,0,0,0,0.1,0c7.9,0,14.3,6.5,14.2,14.3c-0.1,17.3-0.2,34.6-0.4,51.7C274,467.8,267.7,474.1,259.9,474.1z"/>
+	<path d="M151.2,159.3c-3.6,0-7.3-1.4-10-4.1c-12.2-12.1-24.6-24.3-36.7-36.3c-5.6-5.5-5.7-14.6-0.2-20.2c5.5-5.6,14.6-5.7,20.2-0.2
+		c12.2,12,24.6,24.2,36.8,36.4c5.6,5.6,5.6,14.6,0.1,20.2C158.5,157.9,154.9,159.3,151.2,159.3z"/>
+	<path d="M405.4,414c-3.7,0-7.4-1.4-10.2-4.3c-11.9-12.2-24-24.5-36.1-36.7c-5.6-5.6-5.5-14.6,0.1-20.2c5.6-5.6,14.6-5.5,20.2,0.1
+		c12.1,12.2,24.3,24.6,36.2,36.8c5.5,5.6,5.4,14.7-0.2,20.2C412.6,412.6,409,414,405.4,414z"/>
+</g>
+</svg>
diff --git a/interface/resources/icons/create-icons/25-web-1-01.svg b/interface/resources/icons/create-icons/25-web-1-01.svg
new file mode 100644
index 0000000000..4f0eccc11e
--- /dev/null
+++ b/interface/resources/icons/create-icons/25-web-1-01.svg
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:none;stroke:#000000;stroke-width:18;stroke-miterlimit:10;}
+	.st1{fill:none;stroke:#000000;stroke-width:18;stroke-linecap:round;stroke-miterlimit:10;}
+	.st2{fill:none;stroke:#000000;stroke-width:19;stroke-linecap:round;stroke-miterlimit:10;}
+	.st3{stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
+</style>
+<g>
+	<path d="M438,121.5c0-8-6.5-14.5-14.5-14.5h-333c-8,0-14.5,6.5-14.5,14.5v298c0,8,6.5,14.5,14.5,14.5h333c8,0,14.5-6.5,14.5-14.5
+		V121.5z M219.4,130H391c8.3,0,15,7.2,15,16s-6.7,16-15,16H219.4c-8.3,0-15-7.2-15-16S211.1,130,219.4,130z M171.5,128.6
+		c9.2,0,16.7,7.5,16.7,16.7c0,9.2-7.5,16.7-16.7,16.7c-9.2,0-16.7-7.5-16.7-16.7C154.8,136,162.3,128.6,171.5,128.6z M121,128.6
+		c9.2,0,16.7,7.5,16.7,16.7c0,9.2-7.5,16.7-16.7,16.7c-9.2,0-16.7-7.5-16.7-16.7C104.4,136,111.8,128.6,121,128.6z M412,405H104V186
+		h308V405z"/>
+</g>
+<g>
+	<path class="st3" d="M161.6,320.5h-14.3l-20.5-59.3h12.9l14.7,44.8l14.7-44.8h12.9l14.7,44.8l14.7-44.8h12.9L204,320.5h-14.3
+		l-14-40.6L161.6,320.5z"/>
+	<path class="st3" d="M299.4,296.3h-46.5c0.3,4.3,2.3,7.8,5.9,10.4c3.6,2.6,7.8,4,12.5,4c7.4,0,13.1-2.3,16.9-7l7.1,7.8
+		c-6.4,6.6-14.7,9.9-25,9.9c-8.3,0-15.4-2.8-21.2-8.3c-5.8-5.5-8.7-13-8.7-22.3c0-9.3,3-16.7,8.9-22.2c5.9-5.5,12.9-8.2,21-8.2
+		c8.1,0,14.9,2.4,20.6,7.3c5.6,4.9,8.5,11.6,8.5,20.1V296.3z M252.9,286.5h34c0-5-1.6-8.8-4.7-11.5s-7-4-11.5-4
+		c-4.6,0-8.7,1.4-12.3,4.2C254.7,278,252.9,281.8,252.9,286.5z"/>
+	<path class="st3" d="M353.6,260.3c7.9,0,14.7,2.8,20.4,8.2c5.6,5.5,8.5,12.8,8.5,22c0,9.1-2.8,16.6-8.4,22.3
+		c-5.6,5.7-12.1,8.6-19.6,8.6s-14.2-3.3-20.1-9.8v8.9h-12.5v-82.7h12.5v33.8C339.2,264.1,345.6,260.3,353.6,260.3z M334.1,291
+		c0,5.6,1.7,10.3,5.1,13.9c3.4,3.6,7.6,5.4,12.5,5.4c4.9,0,9.2-1.8,12.8-5.3c3.6-3.6,5.5-8.2,5.5-13.9c0-5.7-1.8-10.4-5.3-14.2
+		c-3.6-3.8-7.8-5.6-12.8-5.6c-5,0-9.2,1.9-12.6,5.6C335.8,280.6,334.1,285.3,334.1,291z"/>
+</g>
+</svg>
diff --git a/interface/resources/icons/create-icons/90-particles-01.svg b/interface/resources/icons/create-icons/90-particles-01.svg
new file mode 100644
index 0000000000..5e0105d7cd
--- /dev/null
+++ b/interface/resources/icons/create-icons/90-particles-01.svg
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<path d="M331.8,283.4c0-12.8,10.4-23.2,23.2-23.2l0,0c12.8,0,23.2,10.4,23.2,23.2l0,0c0,12.8-10.4,23.2-23.2,23.2l0,0
+	C342.1,306.6,331.8,296.2,331.8,283.4z"/>
+<path d="M277.8,350.9c0-12.8,10.4-23.2,23.2-23.2l0,0c12.8,0,23.2,10.4,23.2,23.2l0,0c0,12.8-10.4,23.2-23.2,23.2l0,0
+	C288.1,374.2,277.8,363.8,277.8,350.9z"/>
+<path d="M216.3,368.8c0-12.8,10.4-23.2,23.2-23.2l0,0c12.8,0,23.2,10.4,23.2,23.2l0,0c0,12.8-10.4,23.2-23.2,23.2l0,0
+	C226.7,392,216.3,381.6,216.3,368.8z"/>
+<path d="M169.9,308.9c0-12.8,10.4-23.2,23.2-23.2l0,0c12.8,0,23.2,10.4,23.2,23.2l0,0c0,12.8-10.4,23.2-23.2,23.2l0,0
+	C180.3,332.1,169.9,321.7,169.9,308.9z"/>
+<path d="M251.2,447.4c-4.9-3.6-8.3-9.1-9.2-15.3c-0.9-6,0.6-12.3,4.2-17.2c3.6-4.9,9.1-8.3,15.2-9.1c6-0.9,12.3,0.6,17.3,4.3
+	c4.9,3.6,8.3,9.1,9.1,15.2c0.9,6-0.6,12.3-4.2,17.2s-9.1,8.3-15.2,9.1C262.4,452.6,256.1,451,251.2,447.4z"/>
+<path d="M67.6,246.1c0-12.8,10.4-23.2,23.2-23.2l0,0c12.8,0,23.2,10.4,23.2,23.2l0,0c0,12.8-10.4,23.2-23.2,23.2l0,0
+	C78,269.3,67.6,258.8,67.6,246.1z"/>
+<path d="M178.8,199.5c0-12.8,10.4-23.2,23.2-23.2l0,0c12.8,0,23.2,10.4,23.2,23.2l0,0c0,12.8-10.4,23.2-23.2,23.2l0,0
+	C189.1,222.7,178.8,212.2,178.8,199.5z"/>
+<path d="M250.3,293.9c0-12.8,10.4-23.2,23.2-23.2l0,0c12.8,0,23.2,10.4,23.2,23.2l0,0c0,12.8-10.4,23.2-23.2,23.2l0,0
+	C260.7,317.1,250.3,306.6,250.3,293.9z"/>
+<path d="M413,242.1c0-12.8,10.4-23.2,23.2-23.2l0,0c12.8,0,23.2,10.4,23.2,23.2l0,0c0,12.8-10.4,23.2-23.2,23.2l0,0
+	C423.5,265.3,413,255,413,242.1z"/>
+<path d="M302.1,203.7c0-12.8,10.4-23.2,23.2-23.2l0,0c12.8,0,23.2,10.4,23.2,23.2l0,0c0,12.8-10.4,23.2-23.2,23.2l0,0
+	C312.6,226.9,302.1,216.5,302.1,203.7z"/>
+<path d="M132.3,113.5c0-12.8,10.4-23.2,23.2-23.2l0,0c12.8,0,23.2,10.4,23.2,23.2l0,0c0,12.8-10.4,23.2-23.2,23.2l0,0
+	C142.8,136.6,132.3,126.2,132.3,113.5z"/>
+<path d="M366.6,136.7c0-12.8,10.4-23.2,23.2-23.2l0,0c12.8,0,23.2,10.4,23.2,23.2l0,0c0,12.8-10.4,23.2-23.2,23.2l0,0
+	C377.1,159.9,366.6,149.5,366.6,136.7z"/>
+</svg>
diff --git a/interface/resources/icons/create-icons/94-model-01.svg b/interface/resources/icons/create-icons/94-model-01.svg
new file mode 100644
index 0000000000..5d8c4c5eca
--- /dev/null
+++ b/interface/resources/icons/create-icons/94-model-01.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<path d="M494.2,117.2c-2.2-5.3-7.8-8.4-13.5-7.3l-89.9,16.4l44.9-72.6c2.8-4.6,2.3-10.5-1.2-14.5s-9.3-5.3-14.2-3l-213.1,98
+	c-15.3-4.9-72.2-27.3-111.4-43.2c-0.3-0.1-0.6-0.2-0.8-0.3c0,0-0.1,0-0.1,0c-0.4-0.1-0.9-0.2-1.3-0.3c-0.1,0-0.2-0.1-0.3-0.1
+	c-0.5-0.1-0.9-0.2-1.4-0.2c0,0,0,0-0.1,0c-0.5,0-0.9,0.1-1.4,0.1c-0.1,0-0.1,0-0.2,0c0,0-0.1,0-0.1,0c-0.5,0-0.9,0.1-1.3,0.2
+	c-0.1,0-0.2,0-0.3,0.1c-0.4,0.1-0.8,0.2-1.2,0.3c-0.1,0-0.1,0-0.2,0.1c-0.4,0.1-0.8,0.3-1.2,0.5c-0.1,0-0.2,0.1-0.3,0.1
+	c-0.8,0.4-1.6,0.9-2.3,1.5c-0.1,0.1-0.2,0.1-0.2,0.2c-0.3,0.3-0.7,0.6-1,0.9c0,0-0.1,0.1-0.1,0.1c-0.2,0.2-0.4,0.4-0.5,0.6
+	c-0.1,0.1-0.2,0.2-0.3,0.4c-0.1,0.1-0.1,0.2-0.2,0.3c-0.3,0.4-0.5,0.8-0.7,1.2c0,0,0,0,0,0l-27.3,52.1l-32.7,40.1
+	c-3.4,4.2-3.7,10.2-0.6,14.7c2.3,3.3,6.1,5.2,10,5.2c1.3,0,2.6-0.2,3.9-0.7l50.1-17l40.6-1.9l-26.7,50.3c-2.4,4.5-1.7,9.9,1.6,13.7
+	c0.3,0.3,25.6,29.3,51.7,57.7c15.4,16.8,28,30.1,37.6,39.6c6.6,6.5,11.6,11.2,15.6,14.4l-16,61l-45.7,18.2
+	c-6.3,2.5-9.3,9.6-6.8,15.8c1.9,4.8,6.5,7.7,11.3,7.7c1.5,0,3-0.3,4.5-0.9l44.5-17.7l17.2,15.4c2.3,2.1,5.2,3.1,8.1,3.1
+	c3.4,0,6.7-1.4,9.1-4.1c4.5-5,4-12.7-1-17.2L212.1,431l16-60.7l75.7,89.3c2.4,2.8,5.8,4.3,9.3,4.3c1.1,0,2.1-0.1,3.2-0.4l84.6-22.8
+	c4.8-1.3,8.4-5.4,8.9-10.4c0.6-5-2-9.8-6.4-12.1l-136.2-71.8l44.4-91.2L489.9,132C494.6,128.7,496.4,122.6,494.2,117.2z
+	 M294.4,234.2l-122.6-55.4l41.5-20.6c0,0,0,0,0,0l180.4-82.9L294.4,234.2z M146.4,160.8l-24.8-33.2c16.7,6.6,39.3,15.5,54,21
+	L146.4,160.8z M87.3,166.6l-9.6-12.3l15.1-28.9l27.4,37.3l1.7,2.3L87.3,166.6z M123.2,243.6l22.8-43.3c18.3,44.8,35.2,91,47,121
+	C173.7,301.1,147.7,271.5,123.2,243.6z M317.4,438l-57.5-67.8l104.6,55.1L317.4,438z M223.3,336.7c-5.5-14.1-42.6-104.1-30.8-76.4
+	c0.6,1.4-20.5-49.2-27.9-66.3l120.9,58.9l-47.1,95L223.3,336.7z M330.5,216.7l43-62.3l70.9-16.2L330.5,216.7z"/>
+</svg>
diff --git a/interface/resources/qml/hifi/tablet/Edit.qml b/interface/resources/qml/hifi/tablet/Edit.qml
index 3489af5fcb..601dbb5d73 100644
--- a/interface/resources/qml/hifi/tablet/Edit.qml
+++ b/interface/resources/qml/hifi/tablet/Edit.qml
@@ -76,7 +76,7 @@ StackView {
                         }
 
                         NewEntityButton {
-                            icon: "model-01.svg"
+                            icon: "icons/create-icons/94-model-01.svg"
                             text: "MODEL"
                             onClicked: {
                                 editRoot.sendToScript({
@@ -86,7 +86,7 @@ StackView {
                         }
 
                         NewEntityButton {
-                            icon: "../cube-01.svg"
+                            icon: "icons/create-icons/21-cube-01.svg"
                             text: "CUBE"
                             onClicked: {
                                 editRoot.sendToScript({
@@ -96,7 +96,7 @@ StackView {
                         }
 
                         NewEntityButton {
-                            icon: "../images/sphere-01.svg"
+                            icon: "icons/create-icons/22-sphere-01.svg"
                             text: "SPHERE"
                             onClicked: {
                                 editRoot.sendToScript({
@@ -106,7 +106,7 @@ StackView {
                         }
 
                         NewEntityButton {
-                            icon: "../scripts/system/assets/images/tools/light-01.svg"
+                            icon: "icons/create-icons/24-light-01.svg"
                             text: "LIGHT"
                             onClicked: {
                                 editRoot.sendToScript({
@@ -116,7 +116,7 @@ StackView {
                         }
 
                         NewEntityButton {
-                            icon: "../scripts/system/assets/images/tools/text-01.svg"
+                            icon: "icons/create-icons/20-text-01.svg"
                             text: "TEXT"
                             onClicked: {
                                 editRoot.sendToScript({
@@ -126,7 +126,7 @@ StackView {
                         }
 
                         NewEntityButton {
-                            icon: "../scripts/system/assets/images/tools/web-01.svg"
+                            icon: "icons/create-icons/25-web-1-01.svg"
                             text: "WEB"
                             onClicked: {
                                 editRoot.sendToScript({
@@ -136,7 +136,7 @@ StackView {
                         }
 
                         NewEntityButton {
-                            icon: "../scripts/system/assets/images/tools/zone-01.svg"
+                            icon: "icons/create-icons/23-zone-01.svg"
                             text: "ZONE"
                             onClicked: {
                                 editRoot.sendToScript({
@@ -146,7 +146,7 @@ StackView {
                         }
 
                         NewEntityButton {
-                            icon: "../scripts/system/assets/images/tools/particle-01.svg"
+                            icon: "icons/create-icons/90-particles-01.svg"
                             text: "PARTICLE"
                             onClicked: {
                                 editRoot.sendToScript({
@@ -154,7 +154,9 @@ StackView {
                                 });
                             }
                         }
-                    } 
+                    }
+
+
 
                 }
             }
diff --git a/interface/resources/qml/hifi/tablet/NewEntityButton.qml b/interface/resources/qml/hifi/tablet/NewEntityButton.qml
index 5cb3d169e7..e5684fa791 100644
--- a/interface/resources/qml/hifi/tablet/NewEntityButton.qml
+++ b/interface/resources/qml/hifi/tablet/NewEntityButton.qml
@@ -2,12 +2,12 @@ import QtQuick 2.0
 import QtGraphicalEffects 1.0
 
 Item {
-    id: tabletButton
+    id: newEntityButton
     property var uuid;
-    property string text: "EDIT"
+    property string text: "ENTITY"
     property string icon: "icons/edit-icon.svg"
-    property string activeText: tabletButton.text
-    property string activeIcon: tabletButton.icon
+    property string activeText: newEntityButton.text
+    property string activeIcon: newEntityButton.icon
     property bool isActive: false
     property bool inDebugMode: false
     property bool isEntered: false
@@ -54,6 +54,38 @@ Item {
         }
     }
 
+    Rectangle {
+        id: buttonOutline
+        color: "#00000000"
+        opacity: 0
+        radius: 8
+        z: 1
+        border.width: 2
+        border.color: "#ffffff"
+        anchors.right: parent.right
+        anchors.rightMargin: 0
+        anchors.left: parent.left
+        anchors.leftMargin: 0
+        anchors.bottom: parent.bottom
+        anchors.bottomMargin: 0
+        anchors.top: parent.top
+        anchors.topMargin: 0
+    }
+
+    DropShadow {
+        id: glow
+        visible: false
+        anchors.fill: parent
+        horizontalOffset: 0
+        verticalOffset: 0
+        color: "#ffffff"
+        radius: 20
+        z: -1
+        samples: 41
+        source: buttonOutline
+    }
+
+
     Image {
         id: icon
         width: 50
@@ -63,7 +95,7 @@ Item {
         anchors.bottomMargin: 5
         anchors.horizontalCenter: parent.horizontalCenter
         fillMode: Image.Stretch
-        source: tabletButton.urlHelper(tabletButton.icon)
+        source: newEntityButton.urlHelper(newEntityButton.icon)
     }
 
     ColorOverlay {
@@ -76,11 +108,11 @@ Item {
     Text {
         id: text
         color: "#ffffff"
-        text: tabletButton.text
+        text: newEntityButton.text
         font.bold: true
-        font.pixelSize: 18
+        font.pixelSize: 16
         anchors.bottom: parent.bottom
-        anchors.bottomMargin: 10
+        anchors.bottomMargin: 12
         anchors.horizontalCenter: parent.horizontalCenter
         horizontalAlignment: Text.AlignHCenter
     }
@@ -90,34 +122,13 @@ Item {
         hoverEnabled: true
         enabled: true
         onClicked: {
-            console.log("Tablet Button Clicked!");
-            if (tabletButton.inDebugMode) {
-                if (tabletButton.isActive) {
-                    tabletButton.isActive = false;
-                } else {
-                    tabletButton.isActive = true;
-                }
-            }
-            tabletButton.clicked();
-            if (tabletRoot) {
-                tabletRoot.playButtonClickSound();
-            }
+            newEntityButton.clicked();
         }
         onEntered: {
-            tabletButton.isEntered = true;
-            if (tabletButton.isActive) {
-                tabletButton.state = "hover active state";
-            } else {
-                tabletButton.state = "hover state";
-            }
+            newEntityButton.state = "hover state";
         }
         onExited: {
-            tabletButton.isEntered = false;
-            if (tabletButton.isActive) {
-                tabletButton.state = "active state";
-            } else {
-                tabletButton.state = "base state";
-            }
+            newEntityButton.state = "base state";
         }
     }
 
@@ -127,7 +138,6 @@ Item {
 
             PropertyChanges {
                 target: buttonOutline
-                border.color: "#1fc6a6"
                 opacity: 1
             }
 
@@ -137,66 +147,12 @@ Item {
             }
         },
         State {
-            name: "active state"
-
-            PropertyChanges {
-                target: buttonOutline
-                border.color: "#1fc6a6"
-                opacity: 1
-            }
-
-            PropertyChanges {
-                target: buttonBg
-                color: "#1fc6a6"
-                opacity: 1
-            }
-
-            PropertyChanges {
-                target: text
-                color: "#333333"
-                text: tabletButton.activeText
-            }
-
-            PropertyChanges {
-                target: iconColorOverlay
-                color: "#333333"
-            }
-
-            PropertyChanges {
-                target: icon
-                source: tabletButton.urlHelper(tabletButton.activeIcon)
-            }
-        },
-        State {
-            name: "hover active state"
+            name: "base state"
 
             PropertyChanges {
                 target: glow
-                visible: true
+                visible: false
             }
-
-            PropertyChanges {
-                target: buttonOutline
-                border.color: "#ffffff"
-                opacity: 1
-            }
-
-            PropertyChanges {
-                target: buttonBg
-                color: "#1fc6a6"
-                opacity: 1
-            }
-
-            PropertyChanges {
-                target: text
-                color: "#333333"
-            }
-
-            PropertyChanges {
-                target: iconColorOverlay
-                color: "#333333"
-            }
-
         }
     ]
 }

From d4ea0c116dbba42f15346a95ed48d3c04e132702 Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Thu, 23 Feb 2017 14:36:39 -0800
Subject: [PATCH 040/247] asset server button

---
 interface/resources/qml/hifi/tablet/Edit.qml | 102 +++++++++++++++++--
 1 file changed, 91 insertions(+), 11 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/Edit.qml b/interface/resources/qml/hifi/tablet/Edit.qml
index 601dbb5d73..b3f28569cc 100644
--- a/interface/resources/qml/hifi/tablet/Edit.qml
+++ b/interface/resources/qml/hifi/tablet/Edit.qml
@@ -6,6 +6,7 @@ import QtQuick.Controls.Styles 1.4
 import "../../controls"
 import "../toolbars"
 import HFWebEngineProfile 1.0
+import QtGraphicalEffects 1.0
 
 StackView {
     id: editRoot
@@ -60,20 +61,9 @@ StackView {
                         anchors.rightMargin: 55
                         anchors.left: parent.left
                         anchors.leftMargin: 55
-                        anchors.bottom: parent.bottom
-                        anchors.bottomMargin: 30
                         anchors.top: parent.top
                         anchors.topMargin: 70
 
-                        NewEntityButton {
-                            icon: "icons/assets-01.svg"
-                            text: "ASSETS"
-                            onClicked: {
-                                editRoot.sendToScript({
-                                    method: "newEntityButtonClicked", params: { buttonName: "openAssetBrowserButton" }
-                                });
-                            }
-                        }
 
                         NewEntityButton {
                             icon: "icons/create-icons/94-model-01.svg"
@@ -156,8 +146,98 @@ StackView {
                         }
                     }
 
+                    Item {
+                        id: assetServerButton
+                        width: 370
+                        height: 38
+                        anchors.horizontalCenter: parent.horizontalCenter
+                        anchors.top: createEntitiesFlow.bottom
+                        anchors.topMargin: 35
+                        
+                        Rectangle {
+                            id: assetServerButtonBg
+                            color: "black"
+                            opacity: 1
+                            radius: 6
+                            anchors.right: parent.right
+                            anchors.rightMargin: 0
+                            anchors.left: parent.left
+                            anchors.leftMargin: 0
+                            anchors.bottom: parent.bottom
+                            anchors.bottomMargin: 0
+                            anchors.top: parent.top
+                            anchors.topMargin: 0
+                        }
 
+                        Rectangle {
+                            id: assetServerButtonGradient
+                            gradient: Gradient {
+                                GradientStop {
+                                    position: 0
+                                    color: "#383838"
+                                }
 
+                                GradientStop {
+                                    position: 1
+                                    color: "black"
+                                }
+                            }
+                            opacity: 1
+                            radius: 6
+                            anchors.right: parent.right
+                            anchors.rightMargin: 0
+                            anchors.left: parent.left
+                            anchors.leftMargin: 0
+                            anchors.bottom: parent.bottom
+                            anchors.bottomMargin: 0
+                            anchors.top: parent.top
+                            anchors.topMargin: 0
+                        }
+
+                        Text {
+                            color: "#ffffff"
+                            text: "OPEN THIS DOMAIN'S ASSET SERVER"
+                            font.bold: true
+                            font.pixelSize: 14
+                            anchors.centerIn: parent
+                        }
+
+                        MouseArea {
+                            anchors.fill: parent
+                            hoverEnabled: true
+                            enabled: true
+                            onClicked: {
+                                editRoot.sendToScript({
+                                    method: "newEntityButtonClicked", params: { buttonName: "openAssetBrowserButton" }
+                                });
+                            }
+                            onEntered: {
+                                assetServerButton.state = "hover state";
+                            }
+                            onExited: {
+                                assetServerButton.state = "base state";
+                            }
+                        }
+
+                        states: [
+                            State {
+                                name: "hover state"
+
+                                PropertyChanges {
+                                    target: assetServerButtonGradient
+                                    opacity: 0
+                                }
+                            },
+                            State {
+                                name: "base state"
+
+                                PropertyChanges {
+                                    target: assetServerButtonGradient
+                                    opacity: 1
+                                }
+                            }
+                        ]
+                    }
                 }
             }
 

From 80c3c003984b58b5a1f57833780b4e72aa3b8b85 Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Thu, 23 Feb 2017 14:48:06 -0800
Subject: [PATCH 041/247] switch to properties tab when you create an entity

---
 interface/resources/qml/hifi/tablet/Edit.qml | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/interface/resources/qml/hifi/tablet/Edit.qml b/interface/resources/qml/hifi/tablet/Edit.qml
index b3f28569cc..a4e3db73f4 100644
--- a/interface/resources/qml/hifi/tablet/Edit.qml
+++ b/interface/resources/qml/hifi/tablet/Edit.qml
@@ -72,6 +72,7 @@ StackView {
                                 editRoot.sendToScript({
                                     method: "newEntityButtonClicked", params: { buttonName: "newModelButton" }
                                 });
+                                editTabView.currentIndex = 2
                             }
                         }
 
@@ -82,6 +83,7 @@ StackView {
                                 editRoot.sendToScript({
                                     method: "newEntityButtonClicked", params: { buttonName: "newCubeButton" }
                                 });
+                                editTabView.currentIndex = 2
                             }
                         }
 
@@ -92,6 +94,7 @@ StackView {
                                 editRoot.sendToScript({
                                     method: "newEntityButtonClicked", params: { buttonName: "newSphereButton" }
                                 });
+                                editTabView.currentIndex = 2
                             }
                         }
 
@@ -102,6 +105,7 @@ StackView {
                                 editRoot.sendToScript({
                                     method: "newEntityButtonClicked", params: { buttonName: "newLightButton" }
                                 });
+                                editTabView.currentIndex = 2
                             }
                         }
 
@@ -112,6 +116,7 @@ StackView {
                                 editRoot.sendToScript({
                                     method: "newEntityButtonClicked", params: { buttonName: "newTextButton" }
                                 });
+                                editTabView.currentIndex = 2
                             }
                         }
 
@@ -122,6 +127,7 @@ StackView {
                                 editRoot.sendToScript({
                                     method: "newEntityButtonClicked", params: { buttonName: "newWebButton" }
                                 });
+                                editTabView.currentIndex = 2
                             }
                         }
 
@@ -132,6 +138,7 @@ StackView {
                                 editRoot.sendToScript({
                                     method: "newEntityButtonClicked", params: { buttonName: "newZoneButton" }
                                 });
+                                editTabView.currentIndex = 2
                             }
                         }
 
@@ -142,6 +149,7 @@ StackView {
                                 editRoot.sendToScript({
                                     method: "newEntityButtonClicked", params: { buttonName: "newParticleButton" }
                                 });
+                                editTabView.currentIndex = 2
                             }
                         }
                     }

From 4a5be4238e4c5ba44851a1924af3f35ec1db9172 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Fri, 24 Feb 2017 00:19:32 +0000
Subject: [PATCH 042/247] messages and file dialogs in tablet

---
 .../qml/dialogs/TabletFileDialog.qml          | 776 ++++++++++++++++++
 .../qml/dialogs/TabletMessageBox.qml          | 248 ++++++
 .../qml/dialogs/TabletQueryDialog.qml         |   8 +-
 .../qml/hifi/dialogs/TabletRunningScripts.qml |   4 +-
 .../resources/qml/hifi/tablet/TabletRoot.qml  |  17 +-
 .../qml/windows/TabletModalFrame.qml          | 101 +--
 libraries/ui/src/OffscreenUi.cpp              |  49 +-
 7 files changed, 1137 insertions(+), 66 deletions(-)
 create mode 100644 interface/resources/qml/dialogs/TabletFileDialog.qml
 create mode 100644 interface/resources/qml/dialogs/TabletMessageBox.qml

diff --git a/interface/resources/qml/dialogs/TabletFileDialog.qml b/interface/resources/qml/dialogs/TabletFileDialog.qml
new file mode 100644
index 0000000000..1b0e6d694d
--- /dev/null
+++ b/interface/resources/qml/dialogs/TabletFileDialog.qml
@@ -0,0 +1,776 @@
+//
+//  FileDialog.qml
+//
+//  Created by Dante Ruiz on 23 Feb 2017
+//  Copyright 2015 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
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import Qt.labs.folderlistmodel 2.1
+import Qt.labs.settings 1.0
+import QtQuick.Controls.Styles 1.4
+import QtQuick.Dialogs 1.2 as OriginalDialogs
+
+import ".."
+import "../controls-uit"
+import "../styles-uit"
+import "../windows"
+
+import "fileDialog"
+
+//FIXME implement shortcuts for favorite location
+TabletModalWindow {
+    id: root
+    anchors.fill: parent
+    width: parent.width
+    height: parent.height
+    HifiConstants { id: hifi }
+
+    Settings {
+        category: "FileDialog"
+        property alias width: root.width
+        property alias height: root.height
+        property alias x: root.x
+        property alias y: root.y
+    }
+
+
+    // Set from OffscreenUi::getOpenFile()
+     property alias caption: root.title;
+    // Set from OffscreenUi::getOpenFile()
+    property alias dir: fileTableModel.folder;
+    // Set from OffscreenUi::getOpenFile()
+    property alias filter: selectionType.filtersString;
+    // Set from OffscreenUi::getOpenFile()
+    property int options; // <-- FIXME unused
+
+    property string iconText: root.title !== "" ? hifi.glyphs.scriptUpload : ""
+    property int iconSize: 40
+
+    property bool selectDirectory: false;
+    property bool showHidden: false;
+    // FIXME implement
+    property bool multiSelect: false;
+    property bool saveDialog: false;
+    property var helper: fileDialogHelper
+    property alias model: fileTableView.model
+    property var drives: helper.drives()
+
+    property int titleWidth: 0
+
+    signal selectedFile(var file);
+    signal canceled();
+
+    Component.onCompleted: {
+        console.log("Helper " + helper + " drives " + drives);
+
+        fileDialogItem.keyboardEnabled = HMD.active;
+
+        // HACK: The following lines force the model to initialize properly such that the go-up button
+        // works properly from the initial screen.
+        var initialFolder = folderListModel.folder;
+        fileTableModel.folder = helper.pathToUrl(drives[0]);
+        fileTableModel.folder = initialFolder;
+
+        iconText = root.title !== "" ? hifi.glyphs.scriptUpload : "";
+
+        // Clear selection when click on external frame.
+        //frameClicked.connect(function() { d.clearSelection(); });
+
+        if (selectDirectory) {
+            currentSelection.text = d.capitalizeDrive(helper.urlToPath(initialFolder));
+            d.currentSelectionIsFolder = true;
+            d.currentSelectionUrl = initialFolder;
+        }
+
+        helper.contentsChanged.connect(function() {
+            if (folderListModel) {
+                // Make folderListModel refresh.
+                var save = folderListModel.folder;
+                folderListModel.folder = "";
+                folderListModel.folder = save;
+            }
+        });
+
+        fileTableView.forceActiveFocus();
+    }
+
+    TabletModalFrame {
+        id: fileDialogItem
+        width: parent.width
+        height: parent.height
+        anchors.margins: 0
+
+        property bool keyboardEnabled: false
+        property bool keyboardRaised: false
+        property bool punctuationMode: false
+
+        MouseArea {
+            // Clear selection when click on internal unused area.
+            anchors.fill: parent
+            onClicked: {
+                d.clearSelection();
+            }
+        }
+
+        Row {
+            id: navControls
+            anchors {
+                top: parent.top
+                topMargin: (fileDialogItem.hasTitle ? (fileDialogItem.frameMarginTop + hifi.dimensions.modalDialogMargin.y) : hifi.dimension.modalDialogMargin.y) 
+                left: parent.left
+            }
+            spacing: hifi.dimensions.contentSpacing.x
+
+            GlyphButton {
+                id: upButton
+                glyph: hifi.glyphs.levelUp
+                width: height
+                size: 30
+                enabled: fileTableModel.parentFolder && fileTableModel.parentFolder !== ""
+                onClicked: d.navigateUp();
+            }
+
+            GlyphButton {
+                id: homeButton
+                property var destination: helper.home();
+                glyph: hifi.glyphs.home
+                size: 28
+                width: height
+                enabled: d.homeDestination ? true : false
+                onClicked: d.navigateHome();
+            }
+        }
+
+        /*TabletComboBox {
+            id: pathSelector
+           anchors {
+                top: parent.top
+                topMargin: hifi.dimensions.contentMargin.y
+                left: navControls.right
+                leftMargin: hifi.dimensions.contentSpacing.x
+                right: parent.right
+            }
+
+            property var lastValidFolder: helper.urlToPath(fileTableModel.folder)
+
+            function calculatePathChoices(folder) {
+                var folders = folder.split("/"),
+                    choices = [],
+                    i, length;
+
+                if (folders[folders.length - 1] === "") {
+                    folders.pop();
+                }
+
+                choices.push(folders[0]);
+
+                for (i = 1, length = folders.length; i < length; i++) {
+                    choices.push(choices[i - 1] + "/" + folders[i]);
+                }
+
+                if (folders[0] === "") {
+                    // Special handling for OSX root dir.
+                    choices[0] = "/";
+                }
+
+                choices.reverse();
+
+                if (drives && drives.length > 1) {
+                    choices.push("This PC");
+                }
+
+                if (choices.length > 0) {
+                    pathSelector.model = choices;
+                }
+            }
+
+            onLastValidFolderChanged: {
+                var folder = d.capitalizeDrive(lastValidFolder);
+                calculatePathChoices(folder);
+            }
+
+            onCurrentTextChanged: {
+                var folder = currentText;
+
+                if (/^[a-zA-z]:$/.test(folder)) {
+                    folder = "file:///" + folder + "/";
+                } else if (folder === "This PC") {
+                    folder = "file:///";
+                } else {
+                    folder = helper.pathToUrl(folder);
+                }
+
+                if (helper.urlToPath(folder).toLowerCase() !== helper.urlToPath(fileTableModel.folder).toLowerCase()) {
+                    if (root.selectDirectory) {
+                        currentSelection.text = currentText !== "This PC" ? currentText : "";
+                        d.currentSelectionUrl = helper.pathToUrl(currentText);
+                    }
+                    fileTableModel.folder = folder;
+                    fileTableView.forceActiveFocus();
+                }
+            }
+        }*/
+
+        QtObject {
+            id: d
+            property var currentSelectionUrl;
+            readonly property string currentSelectionPath: helper.urlToPath(currentSelectionUrl);
+            property bool currentSelectionIsFolder;
+            property var backStack: []
+            property var tableViewConnection: Connections { target: fileTableView; onCurrentRowChanged: d.update(); }
+            property var modelConnection: Connections { target: fileTableModel; onFolderChanged: d.update(); }
+            property var homeDestination: helper.home();
+
+            function capitalizeDrive(path) {
+                // Consistently capitalize drive letter for Windows.
+                if (/[a-zA-Z]:/.test(path)) {
+                    return path.charAt(0).toUpperCase() + path.slice(1);
+                }
+                return path;
+            }
+
+            function update() {
+                var row = fileTableView.currentRow;
+
+                if (row === -1) {
+                    if (!root.selectDirectory) {
+                        currentSelection.text = "";
+                        currentSelectionIsFolder = false;
+                    }
+                    return;
+                }
+
+                currentSelectionUrl = helper.pathToUrl(fileTableView.model.get(row).filePath);
+                currentSelectionIsFolder = fileTableView.model.isFolder(row);
+                if (root.selectDirectory || !currentSelectionIsFolder) {
+                    currentSelection.text = capitalizeDrive(helper.urlToPath(currentSelectionUrl));
+                } else {
+                    currentSelection.text = "";
+                }
+            }
+
+            function navigateUp() {
+                if (fileTableModel.parentFolder && fileTableModel.parentFolder !== "") {
+                    fileTableModel.folder = fileTableModel.parentFolder;
+                    return true;
+                }
+            }
+
+            function navigateHome() {
+                fileTableModel.folder = homeDestination;
+                return true;
+            }
+
+            function clearSelection() {
+                fileTableView.selection.clear();
+                fileTableView.currentRow = -1;
+                update();
+            }
+        }
+
+        FolderListModel {
+            id: folderListModel
+            nameFilters: selectionType.currentFilter
+            showDirsFirst: true
+            showDotAndDotDot: false
+            showFiles: !root.selectDirectory
+            Component.onCompleted: {
+                showFiles = !root.selectDirectory
+            }
+
+            onFolderChanged: {
+                fileTableModel.update();  // Update once the data from the folder change is available.
+            }
+
+            function getItem(index, field) {
+                return get(index, field);
+            }
+        }
+
+        ListModel {
+            // Emulates FolderListModel but contains drive data.
+            id: driveListModel
+
+            property int count: 1
+
+            Component.onCompleted: initialize();
+
+            function initialize() {
+                var drive,
+                    i;
+
+                count = drives.length;
+
+                for (i = 0; i < count; i++) {
+                    drive = drives[i].slice(0, -1);  // Remove trailing "/".
+                    append({
+                       fileName: drive,
+                       fileModified: new Date(0),
+                       fileSize: 0,
+                       filePath: drive + "/",
+                       fileIsDir: true,
+                       fileNameSort: drive.toLowerCase()
+                    });
+                }
+            }
+
+            function getItem(index, field) {
+                return get(index)[field];
+            }
+        }
+
+        ListModel {
+            id: fileTableModel
+
+            // FolderListModel has a couple of problems:
+            // 1) Files and directories sort case-sensitively: https://bugreports.qt.io/browse/QTBUG-48757
+            // 2) Cannot browse up to the "computer" level to view Windows drives: https://bugreports.qt.io/browse/QTBUG-42901
+            //
+            // To solve these problems an intermediary ListModel is used that implements proper sorting and can be populated with
+            // drive information when viewing at the computer level.
+
+            property var folder
+            property int sortOrder: Qt.AscendingOrder
+            property int sortColumn: 0
+            property var model: folderListModel
+            property string parentFolder: calculateParentFolder();
+
+            readonly property string rootFolder: "file:///"
+
+            function calculateParentFolder() {
+                if (model === folderListModel) {
+                    if (folderListModel.parentFolder.toString() === "" && driveListModel.count > 1) {
+                        return rootFolder;
+                    } else {
+                        return folderListModel.parentFolder;
+                    }
+                } else {
+                    return "";
+                }
+            }
+
+            onFolderChanged: {
+                if (folder === rootFolder) {
+                    model = driveListModel;
+                    helper.monitorDirectory("");
+                    update();
+                } else {
+                    var needsUpdate = model === driveListModel && folder === folderListModel.folder;
+
+                    model = folderListModel;
+                    folderListModel.folder = folder;
+                    helper.monitorDirectory(helper.urlToPath(folder));
+
+                    if (needsUpdate) {
+                        update();
+                    }
+                }
+            }
+
+            function isFolder(row) {
+                if (row === -1) {
+                    return false;
+                }
+                return get(row).fileIsDir;
+            }
+
+            function update() {
+                var dataFields = ["fileName", "fileModified", "fileSize"],
+                    sortFields = ["fileNameSort", "fileModified", "fileSize"],
+                    dataField = dataFields[sortColumn],
+                    sortField = sortFields[sortColumn],
+                    sortValue,
+                    fileName,
+                    fileIsDir,
+                    comparisonFunction,
+                    lower,
+                    middle,
+                    upper,
+                    rows = 0,
+                    i;
+
+                clear();
+
+                comparisonFunction = sortOrder === Qt.AscendingOrder
+                    ? function(a, b) { return a < b; }
+                    : function(a, b) { return a > b; }
+
+                for (i = 0; i < model.count; i++) {
+                    fileName = model.getItem(i, "fileName");
+                    fileIsDir = model.getItem(i, "fileIsDir");
+
+                    sortValue = model.getItem(i, dataField);
+                    if (dataField === "fileName") {
+                        // Directories first by prefixing a "*".
+                        // Case-insensitive.
+                        sortValue = (fileIsDir ? "*" : "") + sortValue.toLowerCase();
+                    }
+
+                    lower = 0;
+                    upper = rows;
+                    while (lower < upper) {
+                        middle = Math.floor((lower + upper) / 2);
+                        var lessThan;
+                        if (comparisonFunction(sortValue, get(middle)[sortField])) {
+                            lessThan = true;
+                            upper = middle;
+                        } else {
+                            lessThan = false;
+                            lower = middle + 1;
+                        }
+                    }
+
+                    insert(lower, {
+                       fileName: fileName,
+                       fileModified: (fileIsDir ? new Date(0) : model.getItem(i, "fileModified")),
+                       fileSize: model.getItem(i, "fileSize"),
+                       filePath: model.getItem(i, "filePath"),
+                       fileIsDir: fileIsDir,
+                       fileNameSort: (fileIsDir ? "*" : "") + fileName.toLowerCase()
+                    });
+
+                    rows++;
+                }
+
+                d.clearSelection();
+            }
+        }
+
+        Table {
+            id: fileTableView
+            colorScheme: hifi.colorSchemes.light
+            anchors {
+                top: navControls.bottom
+                topMargin: hifi.dimensions.contentSpacing.y
+                left: parent.left
+                right: parent.right
+                bottom: currentSelection.top
+                bottomMargin: hifi.dimensions.contentSpacing.y + currentSelection.controlHeight - currentSelection.height
+            }
+            headerVisible: !selectDirectory
+            onDoubleClicked: navigateToRow(row);
+            focus: true
+            Keys.onReturnPressed: navigateToCurrentRow();
+            Keys.onEnterPressed: navigateToCurrentRow();
+
+            sortIndicatorColumn: 0
+            sortIndicatorOrder: Qt.AscendingOrder
+            sortIndicatorVisible: true
+
+            model: fileTableModel
+
+            function updateSort() {
+                model.sortOrder = sortIndicatorOrder;
+                model.sortColumn = sortIndicatorColumn;
+                model.update();
+            }
+
+            onSortIndicatorColumnChanged: { updateSort(); }
+
+            onSortIndicatorOrderChanged: { updateSort(); }
+
+            itemDelegate: Item {
+                clip: true
+
+                //FontLoader { id: firaSansSemiBold; source: "../../fonts/FiraSans-SemiBold.ttf"; }
+                //FontLoader { id: firaSansRegular; source: "../../fonts/FiraSans-Regular.ttf"; }
+
+                FiraSansSemiBold {
+                    text: getText();
+                    elide: styleData.elideMode
+                    anchors {
+                        left: parent.left
+                        leftMargin: hifi.dimensions.tablePadding
+                        right: parent.right
+                        rightMargin: hifi.dimensions.tablePadding
+                        verticalCenter: parent.verticalCenter
+                    }
+                    size: hifi.fontSizes.tableText
+                    color: hifi.colors.baseGrayHighlight
+                    //font.family: (styleData.row !== -1 && fileTableView.model.get(styleData.row).fileIsDir)
+                        //? firaSansSemiBold.name : firaSansRegular.name
+
+                    function getText() {
+                        if (styleData.row === -1) {
+                            return styleData.value;
+                        }
+
+                        switch (styleData.column) {
+                            case 1: return fileTableView.model.get(styleData.row).fileIsDir ? "" : styleData.value;
+                            case 2: return fileTableView.model.get(styleData.row).fileIsDir ? "" : formatSize(styleData.value);
+                            default: return styleData.value;
+                        }
+                    }
+                    function formatSize(size) {
+                        var suffixes = [ "bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" ];
+                        var suffixIndex = 0
+                        while ((size / 1024.0) > 1.1) {
+                            size /= 1024.0;
+                            ++suffixIndex;
+                        }
+
+                        size = Math.round(size*1000)/1000;
+                        size = size.toLocaleString()
+
+                        return size + " " + suffixes[suffixIndex];
+                    }
+                }
+            }
+
+            TableViewColumn {
+                id: fileNameColumn
+                role: "fileName"
+                title: "Name"
+                width: (selectDirectory ? 1.0 : 0.5) * fileTableView.width
+                movable: false
+                resizable: true
+            }
+            TableViewColumn {
+                id: fileMofifiedColumn
+                role: "fileModified"
+                title: "Date"
+                width: 0.3 * fileTableView.width
+                movable: false
+                resizable: true
+                visible: !selectDirectory
+            }
+            TableViewColumn {
+                role: "fileSize"
+                title: "Size"
+                width: fileTableView.width - fileNameColumn.width - fileMofifiedColumn.width
+                movable: false
+                resizable: true
+                visible: !selectDirectory
+            }
+
+            function navigateToRow(row) {
+                currentRow = row;
+                navigateToCurrentRow();
+            }
+
+            function navigateToCurrentRow() {
+                var row = fileTableView.currentRow
+                var isFolder = model.isFolder(row);
+                var file = model.get(row).filePath;
+                if (isFolder) {
+                    fileTableView.model.folder = helper.pathToUrl(file);
+                } else {
+                    okAction.trigger();
+                }
+            }
+
+            property string prefix: ""
+
+            function addToPrefix(event) {
+                if (!event.text || event.text === "") {
+                    return false;
+                }
+                var newPrefix = prefix + event.text.toLowerCase();
+                var matchedIndex = -1;
+                for (var i = 0; i < model.count; ++i) {
+                    var name = model.get(i).fileName.toLowerCase();
+                    if (0 === name.indexOf(newPrefix)) {
+                        matchedIndex = i;
+                        break;
+                    }
+                }
+
+                if (matchedIndex !== -1) {
+                    fileTableView.selection.clear();
+                    fileTableView.selection.select(matchedIndex);
+                    fileTableView.currentRow = matchedIndex;
+                    fileTableView.prefix = newPrefix;
+                }
+                prefixClearTimer.restart();
+                return true;
+            }
+
+            Timer {
+                id: prefixClearTimer
+                interval: 1000
+                repeat: false
+                running: false
+                onTriggered: fileTableView.prefix = "";
+            }
+
+            Keys.onPressed: {
+                switch (event.key) {
+                case Qt.Key_Backspace:
+                case Qt.Key_Tab:
+                case Qt.Key_Backtab:
+                    event.accepted = false;
+                    break;
+
+                default:
+                    if (addToPrefix(event)) {
+                        event.accepted = true
+                    } else {
+                        event.accepted = false;
+                    }
+                    break;
+                }
+            }
+        }
+
+        TextField {
+            id: currentSelection
+            label: selectDirectory ? "Directory:" : "File name:"
+            anchors {
+                left: parent.left
+                right: selectionType.visible ? selectionType.left: parent.right
+                rightMargin: selectionType.visible ? hifi.dimensions.contentSpacing.x : 0
+                bottom: keyboard.top
+                bottomMargin: hifi.dimensions.contentSpacing.y
+            }
+            readOnly: !root.saveDialog
+            activeFocusOnTab: !readOnly
+            onActiveFocusChanged: if (activeFocus) { selectAll(); }
+            onAccepted: okAction.trigger();
+        }
+
+        FileTypeSelection {
+            id: selectionType
+            anchors {
+                top: currentSelection.top
+                left: buttonRow.left
+                right: parent.right
+            }
+            visible: !selectDirectory && filtersCount > 1
+            KeyNavigation.left: fileTableView
+            KeyNavigation.right: openButton
+        }
+
+        Keyboard {
+            id: keyboard
+            raised: parent.keyboardEnabled && parent.keyboardRaised
+            numeric: parent.punctuationMode
+            anchors {
+                left: parent.left
+                right: parent.right
+                bottom: buttonRow.top
+                bottomMargin: visible ? hifi.dimensions.contentSpacing.y : 0
+            }
+        }
+
+        Row {
+            id: buttonRow
+            anchors {
+                right: parent.right
+                bottom: parent.bottom
+            }
+            spacing: hifi.dimensions.contentSpacing.y
+
+            Button {
+                id: openButton
+                color: hifi.buttons.blue
+                action: okAction
+                Keys.onReturnPressed: okAction.trigger()
+                KeyNavigation.up: selectionType
+                KeyNavigation.left: selectionType
+                KeyNavigation.right: cancelButton
+            }
+
+            Button {
+                id: cancelButton
+                action: cancelAction
+                KeyNavigation.up: selectionType
+                KeyNavigation.left: openButton
+                KeyNavigation.right: fileTableView.contentItem
+                Keys.onReturnPressed: { canceled(); root.enabled = false }
+            }
+        }
+
+        Action {
+            id: okAction
+            text: currentSelection.text ? (root.selectDirectory && fileTableView.currentRow === -1 ? "Choose" : (root.saveDialog ? "Save" : "Open")) : "Open"
+            enabled: currentSelection.text || !root.selectDirectory && d.currentSelectionIsFolder ? true : false
+            onTriggered: {
+                if (!root.selectDirectory && !d.currentSelectionIsFolder
+                        || root.selectDirectory && fileTableView.currentRow === -1) {
+                    okActionTimer.start();
+                } else {
+                    fileTableView.navigateToCurrentRow();
+                }
+            }
+        }
+
+        Timer {
+            id: okActionTimer
+            interval: 50
+            running: false
+            repeat: false
+            onTriggered: {
+                if (!root.saveDialog) {
+                    selectedFile(d.currentSelectionUrl);
+                    root.destroy();
+                    return;
+                }
+
+                // Handle the ambiguity between different cases
+                // * typed name (with or without extension)
+                // * full path vs relative vs filename only
+                var selection = helper.saveHelper(currentSelection.text, root.dir, selectionType.currentFilter);
+
+                if (!selection) {
+                    desktop.messageBox({ icon: OriginalDialogs.StandardIcon.Warning, text: "Unable to parse selection" })
+                    return;
+                }
+
+                if (helper.urlIsDir(selection)) {
+                    root.dir = selection;
+                    currentSelection.text = "";
+                    return;
+                }
+
+                // Check if the file is a valid target
+                if (!helper.urlIsWritable(selection)) {
+                    desktop.messageBox({
+                                           icon: OriginalDialogs.StandardIcon.Warning,
+                                           text: "Unable to write to location " + selection
+                                       })
+                    return;
+                }
+
+                if (helper.urlExists(selection)) {
+                    var messageBox = desktop.messageBox({
+                                                            icon: OriginalDialogs.StandardIcon.Question,
+                                                            buttons: OriginalDialogs.StandardButton.Yes | OriginalDialogs.StandardButton.No,
+                                                            text: "Do you wish to overwrite " + selection + "?",
+                                                        });
+                    var result = messageBox.exec();
+                    if (OriginalDialogs.StandardButton.Yes !== result) {
+                        return;
+                    }
+                }
+
+                console.log("Selecting " + selection)
+                selectedFile(selection);
+                root.destroy();
+            }
+        }
+
+        Action {
+            id: cancelAction
+            text: "Cancel"
+            onTriggered: { canceled();root.destroy(); }
+        }
+    }
+
+    Keys.onPressed: {
+        switch (event.key) {
+        case Qt.Key_Backspace:
+            event.accepted = d.navigateUp();
+            break;
+
+        case Qt.Key_Home:
+            event.accepted = d.navigateHome();
+            break;
+
+        }
+    }
+}
diff --git a/interface/resources/qml/dialogs/TabletMessageBox.qml b/interface/resources/qml/dialogs/TabletMessageBox.qml
new file mode 100644
index 0000000000..2102874ffd
--- /dev/null
+++ b/interface/resources/qml/dialogs/TabletMessageBox.qml
@@ -0,0 +1,248 @@
+//
+//  MessageDialog.qml
+//
+//  Created by Bradley Austin Davis on 15 Jan 2016
+//  Copyright 2016 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
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import QtQuick.Dialogs 1.2 as OriginalDialogs
+
+import "../controls-uit"
+import "../styles-uit"
+import "../windows"
+
+import "messageDialog"
+
+TabletModalWindow {
+    id: root
+    HifiConstants { id: hifi }
+    visible: true
+
+    signal selected(int button);
+
+    MouseArea {
+        id: mouse;
+        anchors.fill: parent
+    }
+    
+    function click(button) {
+        clickedButton = button;
+        selected(button);
+        destroy();
+    }
+
+    function exec() {
+        return OffscreenUi.waitForMessageBoxResult(root);
+    }
+
+    property alias detailedText: detailedText.text
+    property alias text: mainTextContainer.text
+    property alias informativeText: informativeTextContainer.text
+    property int buttons: OriginalDialogs.StandardButton.Ok
+    property int icon: OriginalDialogs.StandardIcon.NoIcon
+    property string iconText: ""
+    property int iconSize: 50
+   // onIconChanged: updateIcon();
+    property int defaultButton: OriginalDialogs.StandardButton.NoButton;
+    property int clickedButton: OriginalDialogs.StandardButton.NoButton;
+    //focus: defaultButton === OriginalDialogs.StandardButton.NoButton
+
+    property int titleWidth: 0
+    onTitleWidthChanged: d.resize();
+
+    function updateIcon() {
+        if (!root) {
+            return;
+        }
+        iconText = hifi.glyphForIcon(root.icon);
+    }
+
+    TabletModalFrame {
+        id: messageBox
+        clip: true
+        anchors.verticalCenter: parent.verticalCenter
+        width: parent.width
+        height: 300
+
+        QtObject {
+            id: d
+            readonly property int minWidth: 200
+            readonly property int maxWidth: 1280
+            readonly property int minHeight: 120
+            readonly property int maxHeight: 720
+
+            function resize() {
+                console.log("[DR]-> setting the target height");
+                var targetWidth = Math.max(titleWidth, mainTextContainer.contentWidth)
+                var targetHeight = mainTextContainer.height + 3 * hifi.dimensions.contentSpacing.y
+                        + (informativeTextContainer.text != "" ? informativeTextContainer.contentHeight + 3 * hifi.dimensions.contentSpacing.y : 0)
+                        + buttons.height
+                        + (details.implicitHeight + hifi.dimensions.contentSpacing.y) + messageBox.frameMarginTop
+                //messageBox.width = (targetWidth < d.minWidth) ? d.minWidth : ((targetWidth > d.maxWidth) ? d.maxWidth : targetWidth)
+
+                console.log("[DR} -> about to set the height");
+                messageBox.height = (targetHeight < d.minHeight) ? d.minHeight: ((targetHeight > d.maxHeight) ? d.maxHeight : targetHeight)
+            }
+        }
+
+        RalewaySemiBold {
+            id: mainTextContainer
+            onTextChanged: d.resize();
+            wrapMode: Text.WrapAnywhere
+            size: hifi.fontSizes.sectionName
+            color: hifi.colors.baseGrayHighlight
+            anchors {
+                top: parent.top
+                horizontalCenter: parent.horizontalCenter
+                margins: 0
+                topMargin: hifi.dimensions.contentSpacing.y + messageBox.frameMarginTop
+            }
+            lineHeight: 2
+            lineHeightMode: Text.ProportionalHeight
+            horizontalAlignment: Text.AlignHCenter
+        }
+
+        RalewaySemiBold {
+            id: informativeTextContainer
+            onTextChanged: d.resize();
+            wrapMode: Text.WrapAnywhere
+            size: hifi.fontSizes.sectionName
+            color: hifi.colors.baseGrayHighlight
+            anchors {
+                top: mainTextContainer.bottom
+                left: parent.left
+                right: parent.right
+                margins: 0
+                topMargin: text != "" ? hifi.dimensions.contentSpacing.y : 0
+            }
+        }
+
+        Flow {
+            id: buttons
+            focus: true
+            spacing: hifi.dimensions.contentSpacing.x
+            onHeightChanged: d.resize(); onWidthChanged: d.resize();
+            layoutDirection: Qt.RightToLeft
+            anchors {
+                top: informativeTextContainer.text == "" ? mainTextContainer.bottom : informativeTextContainer.bottom
+                horizontalCenter: parent.horizontalCenter
+                margins: 0
+                topMargin: 2 * hifi.dimensions.contentSpacing.y
+            }
+            MessageDialogButton { dialog: root; text: qsTr("Close"); button: OriginalDialogs.StandardButton.Close; }
+            MessageDialogButton { dialog: root; text: qsTr("Abort"); button: OriginalDialogs.StandardButton.Abort; }
+            MessageDialogButton { dialog: root; text: qsTr("Cancel"); button: OriginalDialogs.StandardButton.Cancel; }
+            MessageDialogButton { dialog: root; text: qsTr("Restore Defaults"); button: OriginalDialogs.StandardButton.RestoreDefaults; }
+            MessageDialogButton { dialog: root; text: qsTr("Reset"); button: OriginalDialogs.StandardButton.Reset; }
+            MessageDialogButton { dialog: root; text: qsTr("Discard"); button: OriginalDialogs.StandardButton.Discard; }
+            MessageDialogButton { dialog: root; text: qsTr("No to All"); button: OriginalDialogs.StandardButton.NoToAll; }
+            MessageDialogButton { dialog: root; text: qsTr("No"); button: OriginalDialogs.StandardButton.No; }
+            MessageDialogButton { dialog: root; text: qsTr("Yes to All"); button: OriginalDialogs.StandardButton.YesToAll; }
+            MessageDialogButton { dialog: root; text: qsTr("Yes"); button: OriginalDialogs.StandardButton.Yes; }
+            MessageDialogButton { dialog: root; text: qsTr("Apply"); button: OriginalDialogs.StandardButton.Apply; }
+            MessageDialogButton { dialog: root; text: qsTr("Ignore"); button: OriginalDialogs.StandardButton.Ignore; }
+            MessageDialogButton { dialog: root; text: qsTr("Retry"); button: OriginalDialogs.StandardButton.Retry; }
+            MessageDialogButton { dialog: root; text: qsTr("Save All"); button: OriginalDialogs.StandardButton.SaveAll; }
+            MessageDialogButton { dialog: root; text: qsTr("Save"); button: OriginalDialogs.StandardButton.Save; }
+            MessageDialogButton { dialog: root; text: qsTr("Open"); button: OriginalDialogs.StandardButton.Open; }
+            MessageDialogButton { dialog: root; text: qsTr("OK"); button: OriginalDialogs.StandardButton.Ok; }
+
+            Button {
+                id: moreButton
+                text: qsTr("Show Details...")
+                width: 160
+                onClicked: { content.state = (content.state === "" ? "expanded" : "") }
+                visible: detailedText && detailedText.length > 0
+            }
+            MessageDialogButton { dialog: root; text: qsTr("Help"); button: OriginalDialogs.StandardButton.Help; }
+        }
+
+        Item {
+            id: details
+            width: parent.width
+            implicitHeight: detailedText.implicitHeight
+            height: 0
+            clip: true
+            anchors {
+                top: buttons.bottom
+                left: parent.left;
+                right: parent.right;
+                margins: 0
+                topMargin: hifi.dimensions.contentSpacing.y
+            }
+            Flickable {
+                id: flickable
+                contentHeight: detailedText.height
+                anchors.fill: parent
+                anchors.topMargin: hifi.dimensions.contentSpacing.x
+                anchors.bottomMargin: hifi.dimensions.contentSpacing.y
+                TextEdit {
+                    id: detailedText
+                    size: hifi.fontSizes.menuItem
+                    color: hifi.colors.baseGrayHighlight
+                    width: details.width
+                    wrapMode: Text.WordWrap
+                    readOnly: true
+                    selectByMouse: true
+                    anchors.margins: 0
+                }
+            }
+        }
+
+        states: [
+            State {
+                name: "expanded"
+                PropertyChanges { target: root; anchors.fill: undefined }
+                PropertyChanges { target: details; height: 120 }
+                PropertyChanges { target: moreButton; text: qsTr("Hide Details") }
+            }
+        ]
+
+        Component.onCompleted: {
+            updateIcon();
+            d.resize();
+        }
+        onStateChanged: d.resize()
+    }
+
+    Keys.onPressed: {
+        if (!visible) {
+            return
+        }
+
+        if (event.modifiers === Qt.ControlModifier)
+            switch (event.key) {
+            case Qt.Key_A:
+                event.accepted = true
+                detailedText.selectAll()
+                break
+            case Qt.Key_C:
+                event.accepted = true
+                detailedText.copy()
+                break
+            case Qt.Key_Period:
+                if (Qt.platform.os === "osx") {
+                    event.accepted = true
+                    content.reject()
+                }
+                break
+        } else switch (event.key) {
+            case Qt.Key_Escape:
+            case Qt.Key_Back:
+                event.accepted = true
+                root.click(OriginalDialogs.StandardButton.Cancel)
+                break
+
+            case Qt.Key_Enter:
+            case Qt.Key_Return:
+                event.accepted = true
+                root.click(root.defaultButton)
+                break
+        }
+    }
+}
diff --git a/interface/resources/qml/dialogs/TabletQueryDialog.qml b/interface/resources/qml/dialogs/TabletQueryDialog.qml
index 0ae18d1c2d..a920971031 100644
--- a/interface/resources/qml/dialogs/TabletQueryDialog.qml
+++ b/interface/resources/qml/dialogs/TabletQueryDialog.qml
@@ -61,10 +61,10 @@ TabletModalWindow {
         iconText = hifi.glyphForIcon(root.icon);
     }
 
-    Rectangle {
+    TabletModalFrame {
         id: modalWindowItem
         width: parent.width
-        height: 480
+        height: 240
         anchors.margins: 0
         anchors {
             verticalCenter: parent.verticalCenter
@@ -82,13 +82,13 @@ TabletModalWindow {
                 var targetWidth = Math.max(titleWidth, 480)
                 var targetHeight = (items ? comboBox.controlHeight : textResult.controlHeight) + 5 * hifi.dimensions.contentSpacing.y + buttons.height
                 modalWindowItem.width = (targetWidth < d.minWidth) ? d.minWidth : ((targetWidth > d.maxWdith) ? d.maxWidth : targetWidth);
-                modalWindowItem.height = ((targetHeight < d.minHeight) ? d.minHeight : ((targetHeight > d.maxHeight) ? d.maxHeight : targetHeight)) + ((keyboardEnabled && keyboardRaised) ? (keyboard.raisedHeight + 2 * hifi.dimensions.contentSpacing.y) : 0)
+                modalWindowItem.height = ((targetHeight < d.minHeight) ? d.minHeight : ((targetHeight > d.maxHeight) ? d.maxHeight : targetHeight)) + ((keyboardEnabled && keyboardRaised) ? (keyboard.raisedHeight + 2 * hifi.dimensions.contentSpacing.y) : 0) + modalWindowItem.frameMarginTop
             }
         }
         
         Item {
             anchors {
-                top: frameTitle.bottom
+                top: parent.top
                 bottom: keyboard.top;
                 left: parent.left;
                 right: parent.right;
diff --git a/interface/resources/qml/hifi/dialogs/TabletRunningScripts.qml b/interface/resources/qml/hifi/dialogs/TabletRunningScripts.qml
index 235f7103ff..e217a6e38e 100644
--- a/interface/resources/qml/hifi/dialogs/TabletRunningScripts.qml
+++ b/interface/resources/qml/hifi/dialogs/TabletRunningScripts.qml
@@ -17,7 +17,7 @@ import "../../styles-uit"
 import "../../controls-uit" as HifiControls
 import "../../windows"
 
-Item {
+Rectangle {
     id: root
     objectName: "RunningScripts"
     HifiConstants { id: hifi }
@@ -28,6 +28,8 @@ Item {
     property var runningScriptsModel: ListModel { }
     property bool isHMD: false
 
+    color: hifi.colors.baseGray
+
     Connections {
         target: ScriptDiscoveryService
         onScriptCountChanged: updateRunningScripts();
diff --git a/interface/resources/qml/hifi/tablet/TabletRoot.qml b/interface/resources/qml/hifi/tablet/TabletRoot.qml
index 79b127098b..348d8167b1 100644
--- a/interface/resources/qml/hifi/tablet/TabletRoot.qml
+++ b/interface/resources/qml/hifi/tablet/TabletRoot.qml
@@ -9,6 +9,7 @@ Item {
     property var eventBridge;
 
     property var rootMenu;
+    property var openModal: null;
     property string subMenu: ""
     signal showDesktop();
 
@@ -18,16 +19,22 @@ Item {
 
     Component { id: inputDialogBuilder; TabletQueryDialog { } }
     function inputDialog(properties) {
-        return inputDialogBuilder.createObject(tabletRoot, properties);
+        openModal = inputDialogBuilder.createObject(tabletRoot, properties);
+        return openModal;
     }
-
+    Component { id: messageBoxBuilder; TabletMessageBox { } }
     function messageBox(properties) {
+        openModal = messageBoxBuilder.createObject(tabletRoot, properties);
+        return openModal;
     }
 
     function customInputDialog(properties) {
     }
 
+    Component { id: fileDialogBuilder; TabletFileDialog { } }
     function fileDialog(properties) {
+        openModal = fileDialogBuilder.createObject(tabletRoot, properties);
+        return openModal; 
     }
 
     function setMenuProperties(rootMenu, subMenu) {
@@ -104,6 +111,12 @@ Item {
                 loader.item.setRootMenu(tabletRoot.rootMenu, tabletRoot.subMenu);
             }
             loader.item.forceActiveFocus();
+
+            if (openModal) {
+                openModal.canceled();
+                openModal.destroy();
+                openModal = null;
+            }
         }
     }
 
diff --git a/interface/resources/qml/windows/TabletModalFrame.qml b/interface/resources/qml/windows/TabletModalFrame.qml
index 41775f6b3e..6d357a091a 100644
--- a/interface/resources/qml/windows/TabletModalFrame.qml
+++ b/interface/resources/qml/windows/TabletModalFrame.qml
@@ -18,68 +18,69 @@ import "../styles-uit"
 Rectangle {
     HifiConstants { id: hifi }
 
+    id: frameContent
 
-    Rectangle {
-           id: frameContent
+    readonly property bool hasTitle: root.title != ""
 
-        //readonly property bool hasTitle: window.title != ""
+    readonly property int frameMarginLeft: hifi.dimensions.modalDialogMargin.x
+    readonly property int frameMarginRight: hifi.dimensions.modalDialogMargin.x
+    readonly property int frameMarginTop: hifi.dimensions.modalDialogMargin.y + (frameContent.hasTitle ? hifi.dimensions.modalDialogTitleHeight + 10 : 0)
+    readonly property int frameMarginBottom: hifi.dimensions.modalDialogMargin.y
 
-        readonly property int frameMarginLeft: hifi.dimensions.modalDialogMargin.x
-        readonly property int frameMarginRight: hifi.dimensions.modalDialogMargin.x
-        readonly property int frameMarginTop: hifi.dimensions.modalDialogMargin.y + (frameContent.hasTitle ? hifi.dimensions.modalDialogTitleHeight + 10 : 0)
-        readonly property int frameMarginBottom: hifi.dimensions.modalDialogMargin.y
-
-         border {
-         width: hifi.dimensions.borderWidth
-         color: hifi.colors.lightGrayText80
+    border {
+        width: hifi.dimensions.borderWidth
+        color: hifi.colors.lightGrayText80
     }
+
     radius: hifi.dimensions.borderRadius
     color: hifi.colors.faintGray
+    Item {
+        id: frameTitle
+        visible: frameContent.hasTitle
+        
+        anchors {
+            fill: parent
+            topMargin: frameMarginTop
+            leftMargin: frameMarginLeft
+            rightMargin: frameMarginRight
+            //bottomMargin: frameMarginBottom
+        }
+        
         Item {
-            id: frameTitle
-            visible: true//frameContent.hasTitle
-            //anchors.fill: parent
-
-            anchors {
-                 fill: parent
-                 topMargin: -frameMarginTop
-                 leftMargin: -frameMarginLeft
-                 rightMargin: -frameMarginRight
-                 bottomMargin: -frameMarginBottom
-             }
+            width: title.width + (icon.text !== "" ? icon.width + hifi.dimensions.contentSpacing.x : 20)
             
-            Item {
-                width: title.width + (icon.text !== "" ? icon.width + hifi.dimensions.contentSpacing.x : 20)
-                
-                onWidthChanged: root.titleWidth = width
-                
-                HiFiGlyphs {
-                    id: icon
-                    text: root.iconText ? root.iconText : "hello"
-                    size: root.iconSize ? root.iconSize : 30
-                    color: hifi.colors.lightGray
-                    visible: true
-                    anchors.verticalCenter: title.verticalCenter
-                    anchors.left: parent.left
-                }
-                RalewayRegular {
-                    id: title
-                    text: root.title
-                    elide: Text.ElideRight
-                    color: hifi.colors.baseGrayHighlight
-                    size: hifi.fontSizes.overlayTitle
-                    y: -hifi.dimensions.modalDialogTitleHeight
-                    anchors.right: parent.right
-                }
+            onWidthChanged: root.titleWidth = width
+            
+            HiFiGlyphs {
+                id: icon
+                text: root.iconText ? root.iconText : ""
+                size: root.iconSize ? root.iconSize : 30
+                color: hifi.colors.lightGray
+                visible: true
+                anchors.verticalCenter: title.verticalCenter
+                anchors.leftMargin: 50
+                anchors.left: parent.left
             }
             
-            Rectangle {
-                anchors.left: parent.left
+            RalewayRegular {
+                id: title
+                text: root.title
+                elide: Text.ElideRight
+                color: hifi.colors.baseGrayHighlight
+                size: hifi.fontSizes.overlayTitle
+                y: -hifi.dimensions.modalDialogTitleHeight
+                anchors.rightMargin: -50
                 anchors.right: parent.right
-                height: 1
-                color: hifi.colors.lightGray
             }
         }
+        
+        Rectangle {
+            anchors.left: parent.left
+            anchors.right: parent.right
+            height: 1
+            color: hifi.colors.lightGray
+        }
+        
     }
-   
+    
 }
diff --git a/libraries/ui/src/OffscreenUi.cpp b/libraries/ui/src/OffscreenUi.cpp
index f3cb28b8ce..982d58464f 100644
--- a/libraries/ui/src/OffscreenUi.cpp
+++ b/libraries/ui/src/OffscreenUi.cpp
@@ -211,9 +211,19 @@ QQuickItem* OffscreenUi::createMessageBox(Icon icon, const QString& title, const
     map.insert("buttons", buttons.operator int());
     map.insert("defaultButton", defaultButton);
     QVariant result;
-    bool invokeResult = QMetaObject::invokeMethod(_desktop, "messageBox",
-        Q_RETURN_ARG(QVariant, result),
-        Q_ARG(QVariant, QVariant::fromValue(map)));
+    bool invokeResult;
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    TabletProxy* tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+    if (tablet->getToolbarMode()) {
+       invokeResult =  QMetaObject::invokeMethod(_desktop, "messageBox",
+                                  Q_RETURN_ARG(QVariant, result),
+                                  Q_ARG(QVariant, QVariant::fromValue(map)));
+    } else {
+        QQuickItem* tabletRoot = tablet->getTabletRoot();
+        invokeResult =  QMetaObject::invokeMethod(tabletRoot, "messageBox",
+                                                  Q_RETURN_ARG(QVariant, result),
+                                                  Q_ARG(QVariant, QVariant::fromValue(map)));
+    }
 
     if (!invokeResult) {
         qWarning() << "Failed to create message box";
@@ -434,10 +444,21 @@ QQuickItem* OffscreenUi::createCustomInputDialog(const Icon icon, const QString&
     map.insert("title", title);
     map.insert("icon", icon);
     QVariant result;
-    bool invokeResult = QMetaObject::invokeMethod(_desktop, "customInputDialog",
-                                                  Q_RETURN_ARG(QVariant, result),
-                                                  Q_ARG(QVariant, QVariant::fromValue(map)));
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    TabletProxy* tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
 
+    bool invokeResult;
+    if (tablet->getToolbarMode()) {
+        invokeResult = QMetaObject::invokeMethod(_desktop, "inputDialog",
+                                                 Q_RETURN_ARG(QVariant, result),
+                                                 Q_ARG(QVariant, QVariant::fromValue(map)));
+    } else {
+        QQuickItem* tabletRoot = tablet->getTabletRoot();
+        invokeResult = QMetaObject::invokeMethod(tabletRoot, "inputDialog",
+                                                 Q_RETURN_ARG(QVariant, result),
+                                                 Q_ARG(QVariant, QVariant::fromValue(map)));
+    }
+    
     if (!invokeResult) {
         qWarning() << "Failed to create custom message box";
         return nullptr;
@@ -581,9 +602,19 @@ private slots:
 
 QString OffscreenUi::fileDialog(const QVariantMap& properties) {
     QVariant buildDialogResult;
-    bool invokeResult = QMetaObject::invokeMethod(_desktop, "fileDialog",
-        Q_RETURN_ARG(QVariant, buildDialogResult),
-        Q_ARG(QVariant, QVariant::fromValue(properties)));
+    bool invokeResult;
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    TabletProxy* tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+    if (tablet->getToolbarMode()) {
+       invokeResult =  QMetaObject::invokeMethod(_desktop, "fileDialog",
+                                  Q_RETURN_ARG(QVariant, buildDialogResult),
+                                  Q_ARG(QVariant, QVariant::fromValue(properties)));
+    } else {
+        QQuickItem* tabletRoot = tablet->getTabletRoot();
+        invokeResult =  QMetaObject::invokeMethod(tabletRoot, "fileDialog",
+                                  Q_RETURN_ARG(QVariant, buildDialogResult),
+                                  Q_ARG(QVariant, QVariant::fromValue(properties)));
+    }
 
     if (!invokeResult) {
         qWarning() << "Failed to create file open dialog";

From c60360b6e070cf29c01a89d8d8bf5b70089cfcbe Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Thu, 23 Feb 2017 16:34:10 -0800
Subject: [PATCH 043/247] particle explorer icon

---
 interface/resources/qml/hifi/tablet/Edit.qml | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/interface/resources/qml/hifi/tablet/Edit.qml b/interface/resources/qml/hifi/tablet/Edit.qml
index a4e3db73f4..00856f8212 100644
--- a/interface/resources/qml/hifi/tablet/Edit.qml
+++ b/interface/resources/qml/hifi/tablet/Edit.qml
@@ -1,5 +1,5 @@
 import QtQuick 2.5
-import QtQuick.Controls 1.0
+import QtQuick.Controls 1.4
 import QtWebEngine 1.1
 import QtWebChannel 1.0
 import QtQuick.Controls.Styles 1.4
@@ -7,6 +7,7 @@ import "../../controls"
 import "../toolbars"
 import HFWebEngineProfile 1.0
 import QtGraphicalEffects 1.0
+import "../../styles-uit"
 
 StackView {
     id: editRoot
@@ -323,6 +324,17 @@ StackView {
                         font.pixelSize: 16
                         font.bold: true
                         color: styleData.selected ? "white" : "white"
+                        property string glyphtext: ""
+                        HiFiGlyphs {
+                            anchors.centerIn: parent
+                            size: 30
+                            color: "#ffffff"
+                            text: text.glyphtext
+                        }
+                        Component.onCompleted: if (styleData.title == "P") {
+                            text.text = "   ";
+                            text.glyphtext = "\ue004";
+                        }
                     }
                 }
                 tabBar: Rectangle {

From e43c4c17f508289842a4733217a5097504739eeb Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Thu, 23 Feb 2017 21:27:25 -0800
Subject: [PATCH 044/247] in 2d mode, clicks on tablet don't get used for other
 things

---
 interface/src/Application.cpp                 | 40 +++++++++++++------
 interface/src/Application.h                   |  2 +
 interface/src/ui/overlays/Overlays.cpp        | 15 +++----
 interface/src/ui/overlays/Overlays.h          |  6 +--
 scripts/system/controllers/grab.js            |  6 +++
 scripts/system/edit.js                        |  5 +++
 .../system/libraries/entitySelectionTool.js   |  2 +-
 7 files changed, 52 insertions(+), 24 deletions(-)

diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index ed8fe8b9b2..dbfd6fb085 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -3097,17 +3097,23 @@ void Application::mouseMoveEvent(QMouseEvent* event) {
 
     if (compositor.getReticleVisible() || !isHMDMode() || !compositor.getReticleOverDesktop() ||
         getOverlays().getOverlayAtPoint(glm::vec2(transformedPos.x(), transformedPos.y())) != UNKNOWN_OVERLAY_ID) {
-        getOverlays().mouseMoveEvent(&mappedEvent);
-        getEntities()->mouseMoveEvent(&mappedEvent);
+        if (_mouseToOverlays) {
+            getOverlays().mouseMoveEvent(&mappedEvent);
+        } else {
+            getEntities()->mouseMoveEvent(&mappedEvent);
+        }
+    }
+
+    if (!_mouseToOverlays) {
+        _controllerScriptingInterface->emitMouseMoveEvent(&mappedEvent); // send events to any registered scripts
     }
-    _controllerScriptingInterface->emitMouseMoveEvent(&mappedEvent); // send events to any registered scripts
 
     // if one of our scripts have asked to capture this event, then stop processing it
     if (_controllerScriptingInterface->isMouseCaptured()) {
         return;
     }
 
-    if (_keyboardMouseDevice->isActive()) {
+    if (!_mouseToOverlays && _keyboardMouseDevice->isActive()) {
         _keyboardMouseDevice->mouseMoveEvent(event);
     }
 }
@@ -3115,6 +3121,7 @@ void Application::mouseMoveEvent(QMouseEvent* event) {
 void Application::mousePressEvent(QMouseEvent* event) {
     // Inhibit the menu if the user is using alt-mouse dragging
     _altPressed = false;
+    _mouseToOverlays = false;
 
     auto offscreenUi = DependencyManager::get<OffscreenUi>();
     // If we get a mouse press event it means it wasn't consumed by the offscreen UI,
@@ -3131,21 +3138,23 @@ void Application::mousePressEvent(QMouseEvent* event) {
         event->buttons(), event->modifiers());
 
     if (!_aboutToQuit) {
-        getOverlays().mousePressEvent(&mappedEvent);
-
-        if (!_controllerScriptingInterface->areEntityClicksCaptured()) {
+        if (getOverlays().mousePressEvent(&mappedEvent)) {
+            _mouseToOverlays = true;
+        } else if (!_controllerScriptingInterface->areEntityClicksCaptured()) {
             getEntities()->mousePressEvent(&mappedEvent);
         }
     }
 
-    _controllerScriptingInterface->emitMousePressEvent(&mappedEvent); // send events to any registered scripts
+    if (!_mouseToOverlays) {
+        _controllerScriptingInterface->emitMousePressEvent(&mappedEvent); // send events to any registered scripts
+    }
 
     // if one of our scripts have asked to capture this event, then stop processing it
     if (_controllerScriptingInterface->isMouseCaptured()) {
         return;
     }
 
-    if (hasFocus()) {
+    if (!_mouseToOverlays && hasFocus()) {
         if (_keyboardMouseDevice->isActive()) {
             _keyboardMouseDevice->mousePressEvent(event);
         }
@@ -3179,18 +3188,23 @@ void Application::mouseReleaseEvent(QMouseEvent* event) {
         event->buttons(), event->modifiers());
 
     if (!_aboutToQuit) {
-        getOverlays().mouseReleaseEvent(&mappedEvent);
-        getEntities()->mouseReleaseEvent(&mappedEvent);
+        if (_mouseToOverlays) {
+            getOverlays().mouseReleaseEvent(&mappedEvent);
+        } else {
+            getEntities()->mouseReleaseEvent(&mappedEvent);
+        }
     }
 
-    _controllerScriptingInterface->emitMouseReleaseEvent(&mappedEvent); // send events to any registered scripts
+    if (!_mouseToOverlays) {
+        _controllerScriptingInterface->emitMouseReleaseEvent(&mappedEvent); // send events to any registered scripts
+    }
 
     // if one of our scripts have asked to capture this event, then stop processing it
     if (_controllerScriptingInterface->isMouseCaptured()) {
         return;
     }
 
-    if (hasFocus()) {
+    if (!_mouseToOverlays && hasFocus()) {
         if (_keyboardMouseDevice->isActive()) {
             _keyboardMouseDevice->mouseReleaseEvent(event);
         }
diff --git a/interface/src/Application.h b/interface/src/Application.h
index 13c1458aee..fa98f6bd6e 100644
--- a/interface/src/Application.h
+++ b/interface/src/Application.h
@@ -676,6 +676,8 @@ private:
     void addAssetToWorldInfoDone(QString modelName);
     void addAssetToWorldError(QString modelName, QString errorText);
 
+    bool _mouseToOverlays { false };
+
     QQuickItem* _addAssetToWorldMessageBox{ nullptr };
     QStringList _addAssetToWorldInfoKeys;  // Model name
     QStringList _addAssetToWorldInfoMessages;  // Info message
diff --git a/interface/src/ui/overlays/Overlays.cpp b/interface/src/ui/overlays/Overlays.cpp
index a783f14102..5cc0686984 100644
--- a/interface/src/ui/overlays/Overlays.cpp
+++ b/interface/src/ui/overlays/Overlays.cpp
@@ -759,7 +759,7 @@ RayToOverlayIntersectionResult Overlays::findRayIntersectionForMouseEvent(PickRa
     return findRayIntersection(ray);
 }
 
-void Overlays::mousePressEvent(QMouseEvent* event) {
+bool Overlays::mousePressEvent(QMouseEvent* event) {
     PerformanceTimer perfTimer("Overlays::mousePressEvent");
 
     PickRay ray = qApp->computePickRay(event->x(), event->y());
@@ -772,15 +772,14 @@ void Overlays::mousePressEvent(QMouseEvent* event) {
         if (thisOverlay) {
             auto pointerEvent = calculatePointerEvent(thisOverlay, ray, rayPickResult, event, PointerEvent::Press);
             emit mousePressOnOverlay(_currentClickingOnOverlayID, pointerEvent);
-        } else {
-            emit mousePressOffOverlay();
+            return true;
         }
-    } else {
-        emit mousePressOffOverlay();
     }
+    emit mousePressOffOverlay();
+    return false;
 }
 
-void Overlays::mouseReleaseEvent(QMouseEvent* event) {
+bool Overlays::mouseReleaseEvent(QMouseEvent* event) {
     PerformanceTimer perfTimer("Overlays::mouseReleaseEvent");
 
     PickRay ray = qApp->computePickRay(event->x(), event->y());
@@ -796,9 +795,10 @@ void Overlays::mouseReleaseEvent(QMouseEvent* event) {
     }
 
     _currentClickingOnOverlayID = UNKNOWN_OVERLAY_ID;
+    return false;
 }
 
-void Overlays::mouseMoveEvent(QMouseEvent* event) {
+bool Overlays::mouseMoveEvent(QMouseEvent* event) {
     PerformanceTimer perfTimer("Overlays::mouseMoveEvent");
 
     PickRay ray = qApp->computePickRay(event->x(), event->y());
@@ -842,6 +842,7 @@ void Overlays::mouseMoveEvent(QMouseEvent* event) {
             _currentHoverOverOverlayID = UNKNOWN_OVERLAY_ID;
         }
     }
+    return false;
 }
 
 QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) const {
diff --git a/interface/src/ui/overlays/Overlays.h b/interface/src/ui/overlays/Overlays.h
index 865df6309a..5c22e46880 100644
--- a/interface/src/ui/overlays/Overlays.h
+++ b/interface/src/ui/overlays/Overlays.h
@@ -100,9 +100,9 @@ public:
     OverlayID addOverlay(Overlay* overlay) { return addOverlay(Overlay::Pointer(overlay)); }
     OverlayID addOverlay(Overlay::Pointer overlay);
 
-    void mousePressEvent(QMouseEvent* event);
-    void mouseReleaseEvent(QMouseEvent* event);
-    void mouseMoveEvent(QMouseEvent* event);
+    bool mousePressEvent(QMouseEvent* event);
+    bool mouseReleaseEvent(QMouseEvent* event);
+    bool mouseMoveEvent(QMouseEvent* event);
 
     void cleanupAllOverlays();
 
diff --git a/scripts/system/controllers/grab.js b/scripts/system/controllers/grab.js
index 74a3c3d25b..f0b6663bec 100644
--- a/scripts/system/controllers/grab.js
+++ b/scripts/system/controllers/grab.js
@@ -331,6 +331,12 @@ Grabber.prototype.pressEvent = function(event) {
     }
 
     var pickRay = Camera.computePickRay(event.x, event.y);
+
+    var overlayResult = Overlays.findRayIntersection(pickRay, true, [HMD.tabletID, HMD.tabletScreenID, HMD.homeButtonID]);
+    if (overlayResult.intersects) {
+        return;
+    }
+
     var pickResults = Entities.findRayIntersection(pickRay, true); // accurate picking
     if (!pickResults.intersects) {
         // didn't click on anything
diff --git a/scripts/system/edit.js b/scripts/system/edit.js
index f954f0d258..404cc26fcb 100644
--- a/scripts/system/edit.js
+++ b/scripts/system/edit.js
@@ -538,6 +538,11 @@ function findClickedEntity(event) {
 
     var pickRay = Camera.computePickRay(event.x, event.y);
 
+    var overlayResult = Overlays.findRayIntersection(pickRay, true, [HMD.tabletID, HMD.tabletScreenID, HMD.homeButtonID]);
+    if (overlayResult.intersects) {
+        return null;
+    }
+
     var entityResult = Entities.findRayIntersection(pickRay, true); // want precision picking
     var lightResult = lightOverlayManager.findRayIntersection(pickRay);
     lightResult.accurate = true;
diff --git a/scripts/system/libraries/entitySelectionTool.js b/scripts/system/libraries/entitySelectionTool.js
index 59dd73d77e..cacb8b0872 100644
--- a/scripts/system/libraries/entitySelectionTool.js
+++ b/scripts/system/libraries/entitySelectionTool.js
@@ -3866,7 +3866,7 @@ SelectionDisplay = (function() {
         var somethingClicked = false;
         var pickRay = generalComputePickRay(event.x, event.y);
 
-        var result = Overlays.findRayIntersection(pickRay, true, [HMD.tabletScreenID, HMD.homeButtonID]);
+        var result = Overlays.findRayIntersection(pickRay, true, [HMD.tabletID, HMD.tabletScreenID, HMD.homeButtonID]);
         if (result.intersects) {
             // mouse clicks on the tablet should override the edit affordances
             return false;

From f208f5e2d17b70297ff3ea13fd4ae3da43703ac7 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth@highfidelity.io>
Date: Fri, 24 Feb 2017 11:34:10 -0800
Subject: [PATCH 045/247] fix a couple of problems related to grabbing tablet
 while edit.js is active

---
 interface/src/ui/overlays/Overlays.cpp        | 33 +++++++++----------
 .../system/controllers/handControllerGrab.js  | 10 +++---
 2 files changed, 21 insertions(+), 22 deletions(-)

diff --git a/interface/src/ui/overlays/Overlays.cpp b/interface/src/ui/overlays/Overlays.cpp
index 5cc0686984..709d86c305 100644
--- a/interface/src/ui/overlays/Overlays.cpp
+++ b/interface/src/ui/overlays/Overlays.cpp
@@ -341,27 +341,26 @@ OverlayID Overlays::getOverlayAtPoint(const glm::vec2& point) {
         return UNKNOWN_OVERLAY_ID;
     }
     QMapIterator<OverlayID, Overlay::Pointer> i(_overlaysHUD);
-    i.toBack();
 
     const float LARGE_NEGATIVE_FLOAT = -9999999;
     glm::vec3 origin(pointCopy.x, pointCopy.y, LARGE_NEGATIVE_FLOAT);
     glm::vec3 direction(0, 0, 1);
-    BoxFace thisFace;
+    // BoxFace thisFace;
     glm::vec3 thisSurfaceNormal;
-    float distance;
+    // float distance;
     unsigned int bestStackOrder = 0;
     OverlayID bestOverlayID = UNKNOWN_OVERLAY_ID;
 
-    while (i.hasPrevious()) {
-        i.previous();
+    while (i.hasNext()) {
+        i.next();
         OverlayID thisID = i.key();
         if (i.value()->is3D()) {
-            auto thisOverlay = std::dynamic_pointer_cast<Base3DOverlay>(i.value());
-            if (thisOverlay && !thisOverlay->getIgnoreRayIntersection()) {
-                if (thisOverlay->findRayIntersection(origin, direction, distance, thisFace, thisSurfaceNormal)) {
-                    return thisID;
-                }
-            }
+            // auto thisOverlay = std::dynamic_pointer_cast<Base3DOverlay>(i.value());
+            // if (thisOverlay && !thisOverlay->getIgnoreRayIntersection()) {
+            //     if (thisOverlay->findRayIntersection(origin, direction, distance, thisFace, thisSurfaceNormal)) {
+            //         return thisID;
+            //     }
+            // }
         } else {
             auto thisOverlay = std::dynamic_pointer_cast<Overlay2D>(i.value());
             if (thisOverlay && thisOverlay->getVisible() && thisOverlay->isLoaded() &&
@@ -423,9 +422,8 @@ RayToOverlayIntersectionResult Overlays::findRayIntersectionInternal(const PickR
 
     RayToOverlayIntersectionResult result;
     QMapIterator<OverlayID, Overlay::Pointer> i(_overlaysWorld);
-    i.toBack();
-    while (i.hasPrevious()) {
-        i.previous();
+    while (i.hasNext()) {
+        i.next();
         OverlayID thisID = i.key();
         auto thisOverlay = std::dynamic_pointer_cast<Base3DOverlay>(i.value());
 
@@ -849,9 +847,10 @@ QVector<QUuid> Overlays::findOverlays(const glm::vec3& center, float radius) con
     QVector<QUuid> result;
 
     QMapIterator<OverlayID, Overlay::Pointer> i(_overlaysWorld);
-    i.toBack();
-    while (i.hasPrevious()) {
-        i.previous();
+    int checked = 0;
+    while (i.hasNext()) {
+        checked++;
+        i.next();
         OverlayID thisID = i.key();
         auto overlay = std::dynamic_pointer_cast<Volume3DOverlay>(i.value());
         if (overlay && overlay->getVisible() && !overlay->getIgnoreRayIntersection() && overlay->isLoaded()) {
diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index 015cbf1221..86f080ae8d 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -863,7 +863,7 @@ function MyController(hand) {
     };
 
     this.setState = function(newState, reason) {
-        if ((isInEditMode() && this.grabbedEntity !== HMD.tabletID) &&
+        if ((isInEditMode() && this.grabbedThingID !== HMD.tabletID) &&
             (newState !== STATE_OFF &&
              newState !== STATE_SEARCHING &&
              newState !== STATE_OVERLAY_STYLUS_TOUCHING &&
@@ -1446,7 +1446,7 @@ function MyController(hand) {
 
         var okToEquipFromOtherHand = ((this.getOtherHandController().state == STATE_NEAR_GRABBING ||
                                        this.getOtherHandController().state == STATE_DISTANCE_HOLDING) &&
-                                      this.getOtherHandController().grabbedEntity == hotspot.entityID);
+                                      this.getOtherHandController().grabbedThingID == hotspot.entityID);
         var hasParent = true;
         if (props.parentID === NULL_UUID) {
             hasParent = false;
@@ -1666,7 +1666,7 @@ function MyController(hand) {
             grabbableOverlays.sort(function(a, b) {
                 var aPosition = Overlays.getProperty(a, "position");
                 var aDistance = Vec3.distance(aPosition, handPosition);
-                var bPosition = Overlays.getProperty(a, "position");
+                var bPosition = Overlays.getProperty(b, "position");
                 var bDistance = Vec3.distance(bPosition, handPosition);
                 return aDistance - bDistance;
             });
@@ -3352,8 +3352,8 @@ var handleHandMessages = function(channel, message, sender) {
                 selectedController.release();
                 var wearableEntity = data.entityID;
                 entityPropertiesCache.addEntity(wearableEntity);
-                selectedController.grabbedEntity = wearableEntity;
-                var hotspots = selectedController.collectEquipHotspots(selectedController.grabbedEntity);
+                selectedController.grabbedThingID = wearableEntity;
+                var hotspots = selectedController.collectEquipHotspots(selectedController.grabbedThingID);
                 if (hotspots.length > 0) {
                     if (hotspotIndex >= hotspots.length) {
                         hotspotIndex = 0;

From 835b23832fc309df61bbb56988729bc6d7a8791b Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Sat, 25 Feb 2017 00:40:38 +0000
Subject: [PATCH 046/247] some modal clean up

---
 .../qml/dialogs/TabletFileDialog.qml          | 14 +++++++----
 .../qml/dialogs/TabletMessageBox.qml          | 15 ++++++------
 .../qml/dialogs/TabletQueryDialog.qml         | 11 +++++----
 .../resources/qml/hifi/tablet/TabletRoot.qml  | 11 ++++++++-
 .../qml/windows/TabletModalFrame.qml          |  3 +++
 interface/src/Application.cpp                 | 20 ++++++++++++----
 .../src/TabletScriptingInterface.cpp          | 12 ++++++++++
 .../src/TabletScriptingInterface.h            | 10 ++++++++
 scripts/system/libraries/WebTablet.js         | 23 ++++++++++++++-----
 9 files changed, 91 insertions(+), 28 deletions(-)

diff --git a/interface/resources/qml/dialogs/TabletFileDialog.qml b/interface/resources/qml/dialogs/TabletFileDialog.qml
index 1b0e6d694d..0aef9179e8 100644
--- a/interface/resources/qml/dialogs/TabletFileDialog.qml
+++ b/interface/resources/qml/dialogs/TabletFileDialog.qml
@@ -101,9 +101,13 @@ TabletModalWindow {
 
     TabletModalFrame {
         id: fileDialogItem
-        width: parent.width
-        height: parent.height
-        anchors.margins: 0
+        width: parent.width - 6
+        height: parent.height - 6
+
+        anchors {
+            horizontalCenter: root.horizontalCenter
+            verticalCenter: root.verticalCenter
+        }
 
         property bool keyboardEnabled: false
         property bool keyboardRaised: false
@@ -123,6 +127,7 @@ TabletModalWindow {
                 top: parent.top
                 topMargin: (fileDialogItem.hasTitle ? (fileDialogItem.frameMarginTop + hifi.dimensions.modalDialogMargin.y) : hifi.dimension.modalDialogMargin.y) 
                 left: parent.left
+                leftMargin: hifi.dimensions.contentSpacing.x
             }
             spacing: hifi.dimensions.contentSpacing.x
 
@@ -623,7 +628,8 @@ TabletModalWindow {
             anchors {
                 left: parent.left
                 right: selectionType.visible ? selectionType.left: parent.right
-                rightMargin: selectionType.visible ? hifi.dimensions.contentSpacing.x : 0
+                rightMargin: hifi.dimensions.contentSpacing.x
+                leftMargin: hifi.dimensions.contentSpacing.x
                 bottom: keyboard.top
                 bottomMargin: hifi.dimensions.contentSpacing.y
             }
diff --git a/interface/resources/qml/dialogs/TabletMessageBox.qml b/interface/resources/qml/dialogs/TabletMessageBox.qml
index 2102874ffd..e9b5f45e7f 100644
--- a/interface/resources/qml/dialogs/TabletMessageBox.qml
+++ b/interface/resources/qml/dialogs/TabletMessageBox.qml
@@ -66,7 +66,8 @@ TabletModalWindow {
         id: messageBox
         clip: true
         anchors.verticalCenter: parent.verticalCenter
-        width: parent.width
+        anchors.horizontalCenter: parent.horizontalCenter
+        width: parent.width - 6
         height: 300
 
         QtObject {
@@ -77,15 +78,11 @@ TabletModalWindow {
             readonly property int maxHeight: 720
 
             function resize() {
-                console.log("[DR]-> setting the target height");
                 var targetWidth = Math.max(titleWidth, mainTextContainer.contentWidth)
                 var targetHeight = mainTextContainer.height + 3 * hifi.dimensions.contentSpacing.y
                         + (informativeTextContainer.text != "" ? informativeTextContainer.contentHeight + 3 * hifi.dimensions.contentSpacing.y : 0)
                         + buttons.height
                         + (details.implicitHeight + hifi.dimensions.contentSpacing.y) + messageBox.frameMarginTop
-                //messageBox.width = (targetWidth < d.minWidth) ? d.minWidth : ((targetWidth > d.maxWidth) ? d.maxWidth : targetWidth)
-
-                console.log("[DR} -> about to set the height");
                 messageBox.height = (targetHeight < d.minHeight) ? d.minHeight: ((targetHeight > d.maxHeight) ? d.maxHeight : targetHeight)
             }
         }
@@ -93,24 +90,28 @@ TabletModalWindow {
         RalewaySemiBold {
             id: mainTextContainer
             onTextChanged: d.resize();
-            wrapMode: Text.WrapAnywhere
+            wrapMode: Text.WordWrap
             size: hifi.fontSizes.sectionName
             color: hifi.colors.baseGrayHighlight
+            width: parent.width - 6
             anchors {
                 top: parent.top
                 horizontalCenter: parent.horizontalCenter
                 margins: 0
                 topMargin: hifi.dimensions.contentSpacing.y + messageBox.frameMarginTop
             }
+            maximumLineCount: 30
+            elide: Text.ElideLeft
             lineHeight: 2
             lineHeightMode: Text.ProportionalHeight
             horizontalAlignment: Text.AlignHCenter
+            verticalAlignment: Text.AlignVCenter
         }
 
         RalewaySemiBold {
             id: informativeTextContainer
             onTextChanged: d.resize();
-            wrapMode: Text.WrapAnywhere
+            wrapMode: Text.WordWrap
             size: hifi.fontSizes.sectionName
             color: hifi.colors.baseGrayHighlight
             anchors {
diff --git a/interface/resources/qml/dialogs/TabletQueryDialog.qml b/interface/resources/qml/dialogs/TabletQueryDialog.qml
index a920971031..3ff3347ebc 100644
--- a/interface/resources/qml/dialogs/TabletQueryDialog.qml
+++ b/interface/resources/qml/dialogs/TabletQueryDialog.qml
@@ -63,9 +63,8 @@ TabletModalWindow {
 
     TabletModalFrame {
         id: modalWindowItem
-        width: parent.width
+        width: parent.width - 12
         height: 240
-        anchors.margins: 0
         anchors {
             verticalCenter: parent.verticalCenter
             horizontalCenter: parent.horizontalCenter
@@ -73,13 +72,13 @@ TabletModalWindow {
         
        QtObject {
             id: d
-            readonly property int minWidth: 480
-            readonly property int maxWdith: 480
+            readonly property int minWidth: 470
+            readonly property int maxWidth: 470
             readonly property int minHeight: 120
             readonly property int maxHeight: 720
 
             function resize() {
-                var targetWidth = Math.max(titleWidth, 480)
+                var targetWidth = Math.max(titleWidth, 470)
                 var targetHeight = (items ? comboBox.controlHeight : textResult.controlHeight) + 5 * hifi.dimensions.contentSpacing.y + buttons.height
                 modalWindowItem.width = (targetWidth < d.minWidth) ? d.minWidth : ((targetWidth > d.maxWdith) ? d.maxWidth : targetWidth);
                 modalWindowItem.height = ((targetHeight < d.minHeight) ? d.minHeight : ((targetHeight > d.maxHeight) ? d.maxHeight : targetHeight)) + ((keyboardEnabled && keyboardRaised) ? (keyboard.raisedHeight + 2 * hifi.dimensions.contentSpacing.y) : 0) + modalWindowItem.frameMarginTop
@@ -106,6 +105,7 @@ TabletModalWindow {
                     left: parent.left;
                     right: parent.right;
                     bottom: parent.bottom
+                    leftMargin: 5
                 }
             }
 
@@ -118,6 +118,7 @@ TabletModalWindow {
                     left: parent.left
                     right: parent.right
                     bottom: parent.bottom
+                    rightMargin: 5
                 }
                 model: items ? items : []
             }
diff --git a/interface/resources/qml/hifi/tablet/TabletRoot.qml b/interface/resources/qml/hifi/tablet/TabletRoot.qml
index 348d8167b1..102094ae1a 100644
--- a/interface/resources/qml/hifi/tablet/TabletRoot.qml
+++ b/interface/resources/qml/hifi/tablet/TabletRoot.qml
@@ -10,6 +10,7 @@ Item {
 
     property var rootMenu;
     property var openModal: null;
+    property var openMessage: null;
     property string subMenu: ""
     signal showDesktop();
 
@@ -24,7 +25,7 @@ Item {
     }
     Component { id: messageBoxBuilder; TabletMessageBox { } }
     function messageBox(properties) {
-        openModal = messageBoxBuilder.createObject(tabletRoot, properties);
+        openMessage  = messageBoxBuilder.createObject(tabletRoot, properties);
         return openModal;
     }
 
@@ -42,6 +43,14 @@ Item {
         tabletRoot.subMenu = subMenu;
     }
 
+    function isDialogOpen() {
+        if (openMessage !== null || openModal !== null) {
+            return true;
+        }
+
+        return false;
+    }
+
     function loadSource(url) {
         loader.source = "";  // make sure we load the qml fresh each time.
         loader.source = url;
diff --git a/interface/resources/qml/windows/TabletModalFrame.qml b/interface/resources/qml/windows/TabletModalFrame.qml
index 6d357a091a..550eec8357 100644
--- a/interface/resources/qml/windows/TabletModalFrame.qml
+++ b/interface/resources/qml/windows/TabletModalFrame.qml
@@ -39,6 +39,8 @@ Rectangle {
         visible: frameContent.hasTitle
         
         anchors {
+            horizontalCenter: parent.horizontalCenter
+            verticalCenter: parent.verticalCenter
             fill: parent
             topMargin: frameMarginTop
             leftMargin: frameMarginLeft
@@ -71,6 +73,7 @@ Rectangle {
                 y: -hifi.dimensions.modalDialogTitleHeight
                 anchors.rightMargin: -50
                 anchors.right: parent.right
+                //anchors.horizontalCenter: parent.horizontalCenter
             }
         }
         
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index d8b974def2..c0c5a1d748 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -1617,9 +1617,13 @@ void Application::toggleTabletUI() const {
         return;
     }
     lastTabletUIToggle = now;
-
-    auto HMD = DependencyManager::get<HMDScriptingInterface>();
-    HMD->toggleShouldShowTablet();
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    TabletProxy* tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+    bool messageOpen = tablet->isMessageDialogOpen();
+    if (!messageOpen) {
+        auto HMD = DependencyManager::get<HMDScriptingInterface>();
+        HMD->toggleShouldShowTablet();
+    }
 }
 
 void Application::checkChangeCursor() {
@@ -5776,8 +5780,14 @@ void Application::toggleRunningScriptsWidget() const {
         static const QUrl url("hifi/dialogs/RunningScripts.qml");
         DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
     } else {
-        static const QUrl url("../../hifi/dialogs/TabletRunningScripts.qml");
-        tablet->pushOntoStack(url);
+        QQuickItem* tabletRoot = tablet->getTabletRoot();
+        if (!tabletRoot && !isHMDMode()) {
+            static const QUrl url("hifi/dialogs/RunningScripts.qml");
+            DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
+        } else {
+            static const QUrl url("../../hifi/dialogs/TabletRunningScripts.qml");
+            tablet->pushOntoStack(url);
+        }
     }
     //DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
     //if (_runningScriptsWidget->isVisible()) {
diff --git a/libraries/script-engine/src/TabletScriptingInterface.cpp b/libraries/script-engine/src/TabletScriptingInterface.cpp
index 04e170a8d7..3e0babd086 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.cpp
+++ b/libraries/script-engine/src/TabletScriptingInterface.cpp
@@ -250,6 +250,18 @@ static QString getUsername() {
     }
 }
 
+bool TabletProxy::isMessageDialogOpen() {
+    if (_qmlTabletRoot) {
+        QVariant result;
+        QMetaObject::invokeMethod(_qmlTabletRoot, "isDialogOpen",Qt::DirectConnection,
+                                  Q_RETURN_ARG(QVariant, result));
+
+        return result.toBool();
+    }
+
+    return false;
+}
+
 void TabletProxy::setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscreenSurface) {
     std::lock_guard<std::mutex> guard(_mutex);
     _qmlOffscreenSurface = qmlOffscreenSurface;
diff --git a/libraries/script-engine/src/TabletScriptingInterface.h b/libraries/script-engine/src/TabletScriptingInterface.h
index 8b9bec4013..f17d441023 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.h
+++ b/libraries/script-engine/src/TabletScriptingInterface.h
@@ -109,6 +109,12 @@ public:
     Q_INVOKABLE void pushOntoStack(const QVariant& path);
     Q_INVOKABLE void popFromStack();
 
+    /** jsdoc
+     * Check if the tablet has a message dialog open
+     * @function TabletProxy#isMessageDialogOpen
+     */
+    Q_INVOKABLE bool isMessageDialogOpen();
+
     /**jsdoc
      * Creates a new button, adds it to this and returns it.
      * @function TabletProxy#addButton
@@ -152,6 +158,10 @@ public:
      */
     Q_INVOKABLE void sendToQml(QVariant msg);
 
+    /**jsdoc
+     * Check if the tablet is on the homescreen
+     * @function TabletProxy#onHomeScreen()
+     */
     Q_INVOKABLE bool onHomeScreen();
 
     QQuickItem* getTabletRoot() const { return _qmlTabletRoot; }
diff --git a/scripts/system/libraries/WebTablet.js b/scripts/system/libraries/WebTablet.js
index 367ef05aea..dbda42e407 100644
--- a/scripts/system/libraries/WebTablet.js
+++ b/scripts/system/libraries/WebTablet.js
@@ -169,10 +169,16 @@ WebTablet = function (url, width, dpi, hand, clientOnly) {
             var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
             var onHomeScreen = tablet.onHomeScreen();
             if (onHomeScreen) {
-                HMD.closeTablet();
+                var isMessageOpen = tablet.isMessageDialogOpen();
+                if (isMessageOpen === false) {
+                    HMD.closeTablet();
+                }
             } else {
-                tablet.gotoHomeScreen();
-                _this.setHomeButtonTexture();
+                var isMessageOpen = tablet.isMessageDialogOpen();
+                if (isMessageOpen === false) {
+                    tablet.gotoHomeScreen();
+                    _this.setHomeButtonTexture();
+                }
             }
         }
     };
@@ -432,11 +438,16 @@ WebTablet.prototype.mousePressEvent = function (event) {
         if (overlayPickResults.intersects && overlayPickResults.overlayID === HMD.homeButtonID) {
             var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
             var onHomeScreen = tablet.onHomeScreen();
+            var isMessageOpen = tablet.isMessageDialogOpen();
             if (onHomeScreen) {
-                HMD.closeTablet();
+                if (isMessageOpen === false) {
+                    HMD.closeTablet();
+                }
             } else {
-                tablet.gotoHomeScreen();
-                this.setHomeButtonTexture();
+                if (isMessageOpen === false) {
+                    tablet.gotoHomeScreen();
+                    this.setHomeButtonTexture();
+                }
             }
         } else if (!HMD.active && (!overlayPickResults.intersects || !overlayPickResults.overlayID === this.webOverlayID)) {
             this.dragging = true;

From f0f2b8c4dafa62048bddd6aae51b7513feb5016e Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Tue, 28 Feb 2017 21:30:25 +0000
Subject: [PATCH 047/247] fix comboBox and PushOntoStack

---
 .../qml/controls-uit/TabletComboBox.qml       | 15 ++++-----
 .../qml/hifi/tablet/NewModelDialog.qml        | 31 +++++++++++++------
 .../src/TabletScriptingInterface.cpp          | 20 ++++++++++--
 3 files changed, 46 insertions(+), 20 deletions(-)

diff --git a/interface/resources/qml/controls-uit/TabletComboBox.qml b/interface/resources/qml/controls-uit/TabletComboBox.qml
index e5dec315e5..86a5f6b5cc 100644
--- a/interface/resources/qml/controls-uit/TabletComboBox.qml
+++ b/interface/resources/qml/controls-uit/TabletComboBox.qml
@@ -14,7 +14,7 @@ import QtQuick.Controls.Styles 1.4
 
 import "../styles-uit"
 import "../controls-uit" as HifiControls
-import "." as VrControls
+//import "." as VrControls
 
 FocusScope {
     id: root
@@ -119,14 +119,14 @@ FocusScope {
     }
 
     function showList() {
-        var r = 20//desktop.mapFromItem(root, 0, 0, root.width, root.height);
-        var y = 200;
-        var bottom = 0 + scrollView.height;
+        var r = mapFromItem(root, 0, 0, root.width, root.height);
+        var y = r.y + r.height;
+        var bottom = y + scrollView.height;
         if (bottom > 720) {
-           y -= bottom - 720 + 8;
+           y -= bottom - tabletRoot.height + 8;
         }
-        scrollView.x = 0;
-        scrollView.y = 0;
+        scrollView.x = r.x;
+        scrollView.y = y;
         popup.visible = true;
         popup.forceActiveFocus();
         listView.currentIndex = root.currentIndex;
@@ -141,6 +141,7 @@ FocusScope {
 
     FocusScope {
         id: popup
+        z: 12
         parent: parent
         anchors.fill: parent
         visible: false
diff --git a/interface/resources/qml/hifi/tablet/NewModelDialog.qml b/interface/resources/qml/hifi/tablet/NewModelDialog.qml
index 13c0d963ea..d57ffdc72f 100644
--- a/interface/resources/qml/hifi/tablet/NewModelDialog.qml
+++ b/interface/resources/qml/hifi/tablet/NewModelDialog.qml
@@ -11,12 +11,15 @@
 
 import QtQuick 2.5
 import QtQuick.Controls 1.4
+import "../../styles-uit"
+import "../../controls-uit"
 
 Rectangle {
     id: newModelDialog
     // width: parent.width
     // height: parent.height
-
+    HifiConstants { id: hifi }
+    color: hifi.colors.baseGray;
     property var eventBridge;
     signal sendToScript(var message);
 
@@ -32,6 +35,7 @@ Rectangle {
         Text {
             id: text1
             text: qsTr("Model URL")
+            color: "#ffffff"
             font.pixelSize: 12
         }
 
@@ -64,6 +68,7 @@ Rectangle {
                 CheckBox {
                     id: dynamic
                     text: qsTr("Dynamic")
+                    
                 }
 
                 Row {
@@ -82,6 +87,7 @@ Rectangle {
                     Text {
                         id: text2
                         width: 160
+                        color: "#ffffff"
                         text: qsTr("Models with automatic collisions set to 'Exact' cannot be dynamic")
                         wrapMode: Text.WordWrap
                         font.pixelSize: 12
@@ -97,30 +103,34 @@ Rectangle {
                 Text {
                     id: text3
                     text: qsTr("Automatic Collisions")
+                    color: "#ffffff"
                     font.pixelSize: 12
                 }
 
-                ComboBox {
+                TabletComboBox {
                     id: collisionType
                     width: 200
+                    z: 100
                     transformOrigin: Item.Center
-                    model: ListModel {
-                        id: collisionDropdown
-                        ListElement { text: "No Collision" }
-                        ListElement { text: "Basic - Whole model" }
-                        ListElement { text: "Good - Sub-meshes" }
-                        ListElement { text: "Exact - All polygons" }
-                    }
+                    model: ["No Collision",
+                            "Basic - Whole model",
+                            "Good - Sub-meshes",
+                            "Exact - All polygons"]
                 }
 
                 Row {
                     id: row3
                     width: 200
                     height: 400
-
+                    spacing: 5
+                    
+                    anchors {
+                        rightMargin: 15
+                    }
                     Button {
                         id: button1
                         text: qsTr("Add")
+                        z: -1
                         onClicked: {
                             newModelDialog.sendToScript({
                                 method: "newModelDialogAdd",
@@ -135,6 +145,7 @@ Rectangle {
 
                     Button {
                         id: button2
+                        z: -1
                         text: qsTr("Cancel")
                         onClicked: {
                             newModelDialog.sendToScript({method: "newModelDialogCancel"})
diff --git a/libraries/script-engine/src/TabletScriptingInterface.cpp b/libraries/script-engine/src/TabletScriptingInterface.cpp
index 04e170a8d7..61851e33b0 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.cpp
+++ b/libraries/script-engine/src/TabletScriptingInterface.cpp
@@ -344,8 +344,15 @@ void TabletProxy::pushOntoStack(const QVariant& path) {
         } else {
             qCDebug(scriptengine) << "tablet cannot push QML because _qmlTabletRoot doesn't have child stack";
         }
+    } else if (_desktopWindow) {
+        auto stack = _desktopWindow->asQuickItem()->findChild<QQuickItem*>("stack");
+        if (stack) {
+            QMetaObject::invokeMethod(stack, "pushSource", Q_ARG(const QVariant&, path));
+        } else {
+            qCDebug(scriptengine) << "tablet cannot push QML because _desktopWindow doesn't have child stack";
+        }
     } else {
-        qCDebug(scriptengine) << "tablet cannot push QML because _qmlTabletRoot is null";
+        qCDebug(scriptengine) << "tablet cannot push QML because _qmlTabletRoot or _desktopWindow is null";
     }
 }
 
@@ -355,10 +362,17 @@ void TabletProxy::popFromStack() {
         if (stack) {
             QMetaObject::invokeMethod(stack, "popSource");
         } else {
-            qCDebug(scriptengine) << "tablet cannot pop QML because _qmlTabletRoot doesn't have child stack";
+            qCDebug(scriptengine) << "tablet cannot push QML because _qmlTabletRoot doesn't have child stack";
+        }
+    } else if (_desktopWindow) {
+        auto stack = _desktopWindow->asQuickItem()->findChild<QQuickItem*>("stack");
+        if (stack) {
+            QMetaObject::invokeMethod(stack, "popSource");
+        } else { 
+            qCDebug(scriptengine) << "tablet cannot pop QML because _desktopWindow doesn't have child stack";
         }
     } else {
-        qCDebug(scriptengine) << "tablet cannot pop QML because _qmlTabletRoot is null";
+        qCDebug(scriptengine) << "tablet cannot pop QML because _qmlTabletRoot or _desktopWindow is null";
     }
 }
 

From 16d3f22e77fa3f9d9d43cd404a65f5b4514c521a Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Tue, 28 Feb 2017 21:39:33 +0000
Subject: [PATCH 048/247] remove uncommented code

---
 interface/resources/qml/controls-uit/TabletComboBox.qml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/interface/resources/qml/controls-uit/TabletComboBox.qml b/interface/resources/qml/controls-uit/TabletComboBox.qml
index 86a5f6b5cc..7361833a45 100644
--- a/interface/resources/qml/controls-uit/TabletComboBox.qml
+++ b/interface/resources/qml/controls-uit/TabletComboBox.qml
@@ -14,7 +14,6 @@ import QtQuick.Controls.Styles 1.4
 
 import "../styles-uit"
 import "../controls-uit" as HifiControls
-//import "." as VrControls
 
 FocusScope {
     id: root

From 9f56d2f6f6f5779b471c4b7465b779770b59a0ce Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 2 Mar 2017 12:30:36 +1300
Subject: [PATCH 049/247] Make tablet general settings dialog naming more
 consistent with desktop

---
 .../qml/hifi/dialogs/GeneralPreferencesDialog.qml        | 2 +-
 ...tGeneralSettings.qml => TabletGeneralPreferences.qml} | 9 +++------
 scripts/system/generalSettings.js                        | 2 +-
 3 files changed, 5 insertions(+), 8 deletions(-)
 rename interface/resources/qml/hifi/tablet/{TabletGeneralSettings.qml => TabletGeneralPreferences.qml} (85%)

diff --git a/interface/resources/qml/hifi/dialogs/GeneralPreferencesDialog.qml b/interface/resources/qml/hifi/dialogs/GeneralPreferencesDialog.qml
index 9be1c30e55..44cae95696 100644
--- a/interface/resources/qml/hifi/dialogs/GeneralPreferencesDialog.qml
+++ b/interface/resources/qml/hifi/dialogs/GeneralPreferencesDialog.qml
@@ -1,5 +1,5 @@
 //
-//  PreferencesDialog.qml
+//  GeneralPreferencesDialog.qml
 //
 //  Created by Bradley Austin Davis on 24 Jan 2016
 //  Copyright 2015 High Fidelity, Inc.
diff --git a/interface/resources/qml/hifi/tablet/TabletGeneralSettings.qml b/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml
similarity index 85%
rename from interface/resources/qml/hifi/tablet/TabletGeneralSettings.qml
rename to interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml
index b445e6a463..dcfd48746d 100644
--- a/interface/resources/qml/hifi/tablet/TabletGeneralSettings.qml
+++ b/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml
@@ -1,9 +1,8 @@
 //
-//  TabletGeneralSettings.qml
-//  scripts/system/
+//  TabletGeneralPreferences.qml
 //
 //  Created by Dante Ruiz on 9 Feb 2017
-//  Copyright 2016 High Fidelity, Inc.
+//  Copyright 2017 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
@@ -34,11 +33,9 @@ StackView {
     
     TabletPreferencesDialog {
         id: root
-        objectName: "GeneralPreferencesDialog"
+        objectName: "TabletGeneralPreferences"
         width: parent.width
         height: parent.height
         showCategories: ["UI", "Snapshots", "Scripts", "Privacy", "Octree", "HMD", "Sixense Controllers", "Perception Neuron", "Kinect"]
-        
     }
-
 }
diff --git a/scripts/system/generalSettings.js b/scripts/system/generalSettings.js
index 0a9fc823ae..7d97f13757 100644
--- a/scripts/system/generalSettings.js
+++ b/scripts/system/generalSettings.js
@@ -18,7 +18,7 @@
     var buttonName = "Settings";
     var toolBar = null;
     var tablet = null;
-    var settings = "TabletGeneralSettings.qml"
+    var settings = "TabletGeneralPreferences.qml"
     function onClicked(){
         if (tablet) {
             tablet.loadQMLSource(settings);

From b9869264badce1cf473d86d3ccfbb64a6f91e419 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 2 Mar 2017 13:16:23 +1300
Subject: [PATCH 050/247] Display avatar settings dialog in tablet

---
 .../hifi/tablet/TabletAvatarPreferences.qml   | 41 +++++++++++++++++++
 interface/src/Application.cpp                 | 10 +++++
 interface/src/Application.h                   |  2 +
 interface/src/Menu.cpp                        |  3 +-
 4 files changed, 55 insertions(+), 1 deletion(-)
 create mode 100644 interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml

diff --git a/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml b/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml
new file mode 100644
index 0000000000..a4a0dabd58
--- /dev/null
+++ b/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml
@@ -0,0 +1,41 @@
+//
+//  TabletAvatarPreferences.qml
+//
+//  Created by Davd Rowe on 2 Mar 2017.
+//  Copyright 2017 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
+//
+
+import QtQuick 2.5
+import "tabletWindows"
+import "../../dialogs"
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import QtGraphicalEffects 1.0
+
+StackView {
+    id: profileRoot
+    initialItem: root
+    objectName: "stack"
+
+    property var eventBridge;
+    signal sendToScript(var message);
+
+    function pushSource(path) {
+        editRoot.push(Qt.reslovedUrl(path));
+    }
+
+    function popSource() {
+
+    }
+
+    TabletPreferencesDialog {
+        id: root
+        objectName: "TabletAvatarPreferences"
+        width: parent.width
+        height: parent.height
+        showCategories: ["Avatar Basics", "Avatar Tuning", "Avatar Camera"]
+    }
+}
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 8bb2092f94..7f6a6ce2b3 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -5853,6 +5853,16 @@ void Application::addAssetToWorldFromURL(QString url) {
     request->send();
 }
 
+void Application::showDialog(const QString& desktopURL, const QString& tabletURL, const QString& name) const {
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+    if (tablet->getToolbarMode() && tablet->getTabletRoot() && !isHMDMode()) {
+        DependencyManager::get<OffscreenUi>()->show(desktopURL, name);
+    } else {
+        tablet->loadQMLSource(tabletURL);
+    }
+}
+
 void Application::addAssetToWorldFromURLRequestFinished() {
     auto request = qobject_cast<ResourceRequest*>(sender());
     auto url = request->getUrl().toString();
diff --git a/interface/src/Application.h b/interface/src/Application.h
index 13c1458aee..c4e1fad207 100644
--- a/interface/src/Application.h
+++ b/interface/src/Application.h
@@ -331,6 +331,8 @@ public slots:
     void toggleRunningScriptsWidget() const;
     Q_INVOKABLE void showAssetServerWidget(QString filePath = "");
 
+    void showDialog(const QString& desktopURL, const QString& tabletURL, const QString& name) const;
+
     // FIXME: Move addAssetToWorld* methods to own class?
     void addAssetToWorldFromURL(QString url);
     void addAssetToWorldFromURLRequestFinished();
diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp
index acf97ad5f7..f5f624caf1 100644
--- a/interface/src/Menu.cpp
+++ b/interface/src/Menu.cpp
@@ -300,7 +300,8 @@ Menu::Menu() {
     // Settings > Avatar...
     action = addActionToQMenuAndActionHash(settingsMenu, "Avatar...");
     connect(action, &QAction::triggered, [] {
-        DependencyManager::get<OffscreenUi>()->toggle(QString("hifi/dialogs/AvatarPreferencesDialog.qml"), "AvatarPreferencesDialog");
+        qApp->showDialog(QString("hifi/dialogs/AvatarPreferencesDialog.qml"), 
+            QString("../../hifi/tablet/TabletAvatarPreferences.qml"), "AvatarPreferencesDialog");
     });
 
     // Settings > LOD...

From ebe41bb4438363b991ed8998a19f0a9915804e22 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 2 Mar 2017 14:11:56 +1300
Subject: [PATCH 051/247] Add a title to the tablet settings dialogs

---
 .../hifi/tablet/TabletAvatarPreferences.qml   |  1 +
 .../hifi/tablet/TabletGeneralPreferences.qml  |  1 +
 .../tabletWindows/TabletPreferencesDialog.qml | 46 +++++++++++++++----
 3 files changed, 38 insertions(+), 10 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml b/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml
index a4a0dabd58..f5c1ddf8f7 100644
--- a/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml
@@ -33,6 +33,7 @@ StackView {
 
     TabletPreferencesDialog {
         id: root
+        property string title: "Avatar Preferences"
         objectName: "TabletAvatarPreferences"
         width: parent.width
         height: parent.height
diff --git a/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml b/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml
index dcfd48746d..4473a997e6 100644
--- a/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml
@@ -33,6 +33,7 @@ StackView {
     
     TabletPreferencesDialog {
         id: root
+        property string title: "General Preferences"
         objectName: "TabletGeneralPreferences"
         width: parent.width
         height: parent.height
diff --git a/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml b/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
index 7d214237a3..7a57bd7568 100644
--- a/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
+++ b/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
@@ -43,19 +43,50 @@ Item {
     }
     
     Rectangle {
-        id: main
-        height: parent.height - 40
+        id: header
+        height: 90
         anchors {
             top: parent.top
-            bottom: footer.top
             left: parent.left
             right: parent.right
         }
+        z: 100
+
+        gradient: Gradient {
+            GradientStop {
+                position: 0
+                color: "#2b2b2b"
+            }
+
+            GradientStop {
+                position: 1
+                color: "#1e1e1e"
+            }
+        }
+
+        RalewayBold {
+            text: title
+            size: 26
+            color: "#34a2c7"
+            anchors.verticalCenter: parent.verticalCenter
+            anchors.left: parent.left
+            anchors.leftMargin: hifi.dimensions.contentMargin.x
+        }
+    }
+
+    Rectangle {
+        id: main
+        anchors {
+            top: header.bottom
+            bottom: footer.top
+            left: parent.left
+            right: parent.right
+        }
+
         gradient: Gradient {
             GradientStop {
                 position: 0
                 color: "#2b2b2b"
-                
             }
             
             GradientStop {
@@ -110,9 +141,7 @@ Item {
                     }
 
                     scrollView.contentHeight = scrollView.getSectionsHeight();
-
                 }
-               
 
                 Column {
                     id: prefControls
@@ -136,7 +165,6 @@ Item {
         height: 40
 
         anchors {
-            top: main.bottom
             bottom: parent.bottom
             left: parent.left
             right: parent.right
@@ -145,7 +173,6 @@ Item {
             GradientStop {
                 position: 0
                 color: "#2b2b2b"
-                
             }
             
             GradientStop {
@@ -156,7 +183,7 @@ Item {
 
         Row {
             anchors {
-                top: parent,top
+                verticalCenter: parent.verticalCenter
                 right: parent.right
                 rightMargin: hifi.dimensions.contentMargin.x
             }
@@ -175,5 +202,4 @@ Item {
             }
         }
     }
-    
 }

From e445fe551f1d68a2f8675d7f9bc9329bab2b50a4 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 2 Mar 2017 15:00:38 +1300
Subject: [PATCH 052/247] Fix showing wrong version of dialog in desktop mode

---
 interface/src/Application.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 7f6a6ce2b3..4875b5dc5f 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -5856,7 +5856,7 @@ void Application::addAssetToWorldFromURL(QString url) {
 void Application::showDialog(const QString& desktopURL, const QString& tabletURL, const QString& name) const {
     auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
     auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
-    if (tablet->getToolbarMode() && tablet->getTabletRoot() && !isHMDMode()) {
+    if (tablet->getToolbarMode() || !tablet->getTabletRoot() && !isHMDMode()) {
         DependencyManager::get<OffscreenUi>()->show(desktopURL, name);
     } else {
         tablet->loadQMLSource(tabletURL);

From 62f91b4af696e573ed3e1517899510a4d3f043a5 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 2 Mar 2017 15:01:31 +1300
Subject: [PATCH 053/247] Work around MyAvatar not being available in avatar
 preference control

---
 .../resources/qml/dialogs/preferences/AvatarPreference.qml   | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/interface/resources/qml/dialogs/preferences/AvatarPreference.qml b/interface/resources/qml/dialogs/preferences/AvatarPreference.qml
index 0c5c5bf630..53d36b6c79 100644
--- a/interface/resources/qml/dialogs/preferences/AvatarPreference.qml
+++ b/interface/resources/qml/dialogs/preferences/AvatarPreference.qml
@@ -23,7 +23,10 @@ Preference {
 
     Component.onCompleted: {
         dataTextField.text = preference.value;
-        console.log("MyAvatar modelName " + MyAvatar.getFullAvatarModelName())
+        // FIXME: MyAvatar object isn't available in HMD mode for some reason.
+        if (typeof MyAvatar !== "undefined") {
+            console.log("MyAvatar modelName " + MyAvatar.getFullAvatarModelName())
+        }
         console.log("Application : " + ApplicationInterface)
         ApplicationInterface.fullAvatarURLChanged.connect(processNewAvatar);
     }

From b592205f7e01a247c5d3bfb0739943e828962c3d Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 2 Mar 2017 18:45:42 +1300
Subject: [PATCH 054/247] Fix OSX warning

---
 interface/src/Application.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 4875b5dc5f..8c8ec6791b 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -5856,7 +5856,7 @@ void Application::addAssetToWorldFromURL(QString url) {
 void Application::showDialog(const QString& desktopURL, const QString& tabletURL, const QString& name) const {
     auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
     auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
-    if (tablet->getToolbarMode() || !tablet->getTabletRoot() && !isHMDMode()) {
+    if (tablet->getToolbarMode() || (!tablet->getTabletRoot() && !isHMDMode())) {
         DependencyManager::get<OffscreenUi>()->show(desktopURL, name);
     } else {
         tablet->loadQMLSource(tabletURL);

From 5ba89e67afdac2dfabba6a3e3df4f5d4d5fae29b Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Thu, 2 Mar 2017 16:50:42 +0000
Subject: [PATCH 055/247] fixed message dialog bug

---
 interface/resources/qml/dialogs/TabletMessageBox.qml | 4 ++--
 interface/resources/qml/hifi/tablet/TabletRoot.qml   | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/interface/resources/qml/dialogs/TabletMessageBox.qml b/interface/resources/qml/dialogs/TabletMessageBox.qml
index e9b5f45e7f..f8876b1ec8 100644
--- a/interface/resources/qml/dialogs/TabletMessageBox.qml
+++ b/interface/resources/qml/dialogs/TabletMessageBox.qml
@@ -47,10 +47,10 @@ TabletModalWindow {
     property int icon: OriginalDialogs.StandardIcon.NoIcon
     property string iconText: ""
     property int iconSize: 50
-   // onIconChanged: updateIcon();
+    onIconChanged: updateIcon();
     property int defaultButton: OriginalDialogs.StandardButton.NoButton;
     property int clickedButton: OriginalDialogs.StandardButton.NoButton;
-    //focus: defaultButton === OriginalDialogs.StandardButton.NoButton
+    focus: defaultButton === OriginalDialogs.StandardButton.NoButton
 
     property int titleWidth: 0
     onTitleWidthChanged: d.resize();
diff --git a/interface/resources/qml/hifi/tablet/TabletRoot.qml b/interface/resources/qml/hifi/tablet/TabletRoot.qml
index 102094ae1a..8eaddfb601 100644
--- a/interface/resources/qml/hifi/tablet/TabletRoot.qml
+++ b/interface/resources/qml/hifi/tablet/TabletRoot.qml
@@ -26,7 +26,7 @@ Item {
     Component { id: messageBoxBuilder; TabletMessageBox { } }
     function messageBox(properties) {
         openMessage  = messageBoxBuilder.createObject(tabletRoot, properties);
-        return openModal;
+        return openMessage;
     }
 
     function customInputDialog(properties) {

From 94b5e6333c744274f37d3ee83f2acce3b9647c29 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Thu, 2 Mar 2017 11:02:06 -0800
Subject: [PATCH 056/247] get handControllerGrab overlay lines working again

---
 scripts/system/controllers/handControllerGrab.js | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index 58ab4febc8..1dad85bb9f 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -796,9 +796,6 @@ function MyController(hand) {
 
     // for visualizations
     this.overlayLine = null;
-
-    // for lights
-    this.overlayLine = null;
     this.searchSphere = null;
 
     this.waitForTriggerRelease = false;
@@ -1033,11 +1030,13 @@ function MyController(hand) {
             if (farParentID && farParentID != NULL_UUID) {
                 Overlays.editOverlay(this.overlayLine, {
                     color: color,
+                    endParentID: farParentID
                 });
             } else {
                 Overlays.editOverlay(this.overlayLine, {
                     length: Vec3.distance(farPoint, closePoint),
                     color: color,
+                    endParentID: farParentID
                 });
             }
         }
@@ -2240,7 +2239,7 @@ function MyController(hand) {
         this.overlayLineOn(rayPickInfo.searchRay.origin,
                            Vec3.subtract(grabbedProperties.position, this.offsetPosition),
                            COLORS_GRAB_DISTANCE_HOLD,
-                           this.grabbedEntity);
+                           this.grabbedThingID);
 
         var distanceToObject = Vec3.length(Vec3.subtract(MyAvatar.position, this.currentObjectPosition));
         var success = Entities.updateAction(this.grabbedThingID, this.actionID, {
@@ -3212,7 +3211,8 @@ function MyController(hand) {
         children = children.concat(Entities.getChildrenIDsOfJoint(AVATAR_SELF_ID, controllerCRJointIndex));
 
         children.forEach(function(childID) {
-            if (childID !== _this.stylus) {
+            if (childID !== _this.stylus &&
+                childID !== _this.overlayLine) {
                 // we appear to be holding something and this script isn't in a state that would be holding something.
                 // unhook it.  if we previously took note of this entity's parent, put it back where it was.  This
                 // works around some problems that happen when more than one hand or avatar is passing something around.

From f321ffdf91cbfd1a84a6b974bf10ba0927409161 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Thu, 2 Mar 2017 13:00:52 -0800
Subject: [PATCH 057/247] don't clear EDIT_SETTING flag when creating new
 entities

---
 scripts/system/edit.js | 2 --
 1 file changed, 2 deletions(-)

diff --git a/scripts/system/edit.js b/scripts/system/edit.js
index 404cc26fcb..5ed6bd4f9d 100644
--- a/scripts/system/edit.js
+++ b/scripts/system/edit.js
@@ -170,8 +170,6 @@ var toolBar = (function () {
         tablet = null;
 
     function createNewEntity(properties) {
-        Settings.setValue(EDIT_SETTING, false);
-
         var dimensions = properties.dimensions ? properties.dimensions : DEFAULT_DIMENSIONS;
         var position = getPositionToCreateEntity();
         var entityID = null;

From 2b53cb4722c60f41c8a91bb969b622ab99641ca2 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Fri, 3 Mar 2017 11:31:41 +1300
Subject: [PATCH 058/247] Display audio stats in tablet

---
 scripts/developer/utilities/audio/stats.js | 28 +++++++++++++---------
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/scripts/developer/utilities/audio/stats.js b/scripts/developer/utilities/audio/stats.js
index 493271ac99..064fd72fe5 100644
--- a/scripts/developer/utilities/audio/stats.js
+++ b/scripts/developer/utilities/audio/stats.js
@@ -9,17 +9,23 @@
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
 //
 
-var INITIAL_WIDTH = 400;
-var INITIAL_OFFSET = 50;
+if (HMD.active && !Settings.getValue("HUDUIEnabled")) {
+    var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+    var qml = Script.resolvePath("stats.qml");
+    tablet.loadQMLSource(qml);
+    Script.stop();
 
-// Set up the qml ui
-var qml = Script.resolvePath('stats.qml');
-var window = new OverlayWindow({
-    title: 'Audio Interface Statistics',
-    source: qml,
-    width: 500, height: 520 // stats.qml may be too large for some screens
-});
-window.setPosition(INITIAL_OFFSET, INITIAL_OFFSET);
+} else {
+    var INITIAL_WIDTH = 400;
+    var INITIAL_OFFSET = 50;
 
-window.closed.connect(function() { Script.stop(); });
+    var qml = Script.resolvePath("stats.qml");
+    var window = new OverlayWindow({
+        title: "Audio Interface Statistics",
+        source: qml,
+        width: 500, height: 520 // stats.qml may be too large for some screens
+    });
+    window.setPosition(INITIAL_OFFSET, INITIAL_OFFSET);
 
+    window.closed.connect(function () { Script.stop(); });
+}

From 6a4d47738127bb0cf7eeb3ed4d6b86af18817a9d Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Thu, 2 Mar 2017 16:15:41 -0800
Subject: [PATCH 059/247] fix up bounds handling in Line3DOverlay

---
 interface/src/ui/overlays/Line3DOverlay.cpp   | 28 ++++++++++++-------
 .../render-utils/src/RenderDeferredTask.cpp   |  3 +-
 2 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/interface/src/ui/overlays/Line3DOverlay.cpp b/interface/src/ui/overlays/Line3DOverlay.cpp
index 99e418bf4f..6c7ab3f411 100644
--- a/interface/src/ui/overlays/Line3DOverlay.cpp
+++ b/interface/src/ui/overlays/Line3DOverlay.cpp
@@ -53,7 +53,7 @@ glm::vec3 Line3DOverlay::getEnd() const {
     if (_endParentID != QUuid()) {
         glm::vec3 localOffset = _direction * _length;
         bool success;
-        worldEnd = localToWorld(localOffset, _endParentID, _endParentJointIndex, success);
+        worldEnd = localToWorld(getLocalStart() + localOffset, _endParentID, _endParentJointIndex, success);
         return worldEnd;
     }
 
@@ -86,8 +86,13 @@ void Line3DOverlay::setEnd(const glm::vec3& end) {
         qDebug() << "Line3DOverlay::setEnd failed";
         return;
     }
-    _direction = glm::normalize(offset);
+
     _length = glm::length(offset);
+    if (_length > 0.0f) {
+        _direction = glm::normalize(offset);
+    } else {
+        _direction = glm::vec3(0.0f);
+    }
 }
 
 void Line3DOverlay::setLocalEnd(const glm::vec3& localEnd) {
@@ -98,16 +103,18 @@ void Line3DOverlay::setLocalEnd(const glm::vec3& localEnd) {
         glm::vec3 localStart = getLocalStart();
         offset = localEnd - localStart;
     }
-    _direction = glm::normalize(offset);
     _length = glm::length(offset);
+    if (_length > 0.0f) {
+        _direction = glm::normalize(offset);
+    } else {
+        _direction = glm::vec3(0.0f);
+    }
 }
 
 AABox Line3DOverlay::getBounds() const {
     auto extents = Extents{};
     extents.addPoint(getStart());
     extents.addPoint(getEnd());
-    extents.transform(getTransform());
-
     return AABox(extents);
 }
 
@@ -122,19 +129,20 @@ void Line3DOverlay::render(RenderArgs* args) {
     glm::vec4 colorv4(color.red / MAX_COLOR, color.green / MAX_COLOR, color.blue / MAX_COLOR, alpha);
     auto batch = args->_batch;
     if (batch) {
-        // batch->setModelTransform(getTransform());
+        batch->setModelTransform(Transform());
+        glm::vec3 start = getStart();
+        glm::vec3 end = getEnd();
 
         auto geometryCache = DependencyManager::get<GeometryCache>();
         if (getIsDashedLine()) {
             // TODO: add support for color to renderDashedLine()
             geometryCache->bindSimpleProgram(*batch, false, false, false, true, true);
-            geometryCache->renderDashedLine(*batch, getStart(), getEnd(), colorv4, _geometryCacheID);
+            geometryCache->renderDashedLine(*batch, start, end, colorv4, _geometryCacheID);
         } else if (_glow > 0.0f) {
-            geometryCache->renderGlowLine(*batch, getStart(), getEnd(),
-                                          colorv4, _glow, _glowWidth, _geometryCacheID);
+            geometryCache->renderGlowLine(*batch, start, end, colorv4, _glow, _glowWidth, _geometryCacheID);
         } else {
             geometryCache->bindSimpleProgram(*batch, false, false, false, true, true);
-            geometryCache->renderLine(*batch, getStart(), getEnd(), colorv4, _geometryCacheID);
+            geometryCache->renderLine(*batch, start, end, colorv4, _geometryCacheID);
         }
     }
 }
diff --git a/libraries/render-utils/src/RenderDeferredTask.cpp b/libraries/render-utils/src/RenderDeferredTask.cpp
index 55a9c8b9e4..8ab65efd24 100644
--- a/libraries/render-utils/src/RenderDeferredTask.cpp
+++ b/libraries/render-utils/src/RenderDeferredTask.cpp
@@ -160,13 +160,14 @@ RenderDeferredTask::RenderDeferredTask(RenderFetchCullSortTask::Output items) {
     addJob<DrawOverlay3D>("DrawOverlay3DOpaque", overlayOpaquesInputs, true);
     addJob<DrawOverlay3D>("DrawOverlay3DTransparent", overlayTransparentsInputs, false);
 
-    
     // Debugging stages
     {
 
 
         // Bounds do not draw on stencil buffer, so they must come last
         addJob<DrawBounds>("DrawMetaBounds", metas);
+        addJob<DrawBounds>("DrawOverlayOpaqueBounds", overlayOpaques);
+        addJob<DrawBounds>("DrawOverlayTransparentBounds", overlayTransparents);
 
         // Debugging Deferred buffer job
         const auto debugFramebuffers = render::Varying(DebugDeferredBuffer::Inputs(deferredFramebuffer, linearDepthTarget, surfaceGeometryFramebuffer, ambientOcclusionFramebuffer));

From f055711c76d0653b546b2c75e736215c80065cc4 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Thu, 2 Mar 2017 16:47:19 -0800
Subject: [PATCH 060/247] refix

---
 interface/src/ui/overlays/Line3DOverlay.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/src/ui/overlays/Line3DOverlay.cpp b/interface/src/ui/overlays/Line3DOverlay.cpp
index 6c7ab3f411..e1ea06c599 100644
--- a/interface/src/ui/overlays/Line3DOverlay.cpp
+++ b/interface/src/ui/overlays/Line3DOverlay.cpp
@@ -53,7 +53,7 @@ glm::vec3 Line3DOverlay::getEnd() const {
     if (_endParentID != QUuid()) {
         glm::vec3 localOffset = _direction * _length;
         bool success;
-        worldEnd = localToWorld(getLocalStart() + localOffset, _endParentID, _endParentJointIndex, success);
+        worldEnd = localToWorld(localOffset, _endParentID, _endParentJointIndex, success);
         return worldEnd;
     }
 

From 02a2bb6fc3461bbf20db4a90f6667e7866a8bd1c Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Fri, 3 Mar 2017 16:25:15 +1300
Subject: [PATCH 061/247] Rename QML file

---
 scripts/developer/utilities/audio/{stats.qml => DesktopStats.qml} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename scripts/developer/utilities/audio/{stats.qml => DesktopStats.qml} (100%)

diff --git a/scripts/developer/utilities/audio/stats.qml b/scripts/developer/utilities/audio/DesktopStats.qml
similarity index 100%
rename from scripts/developer/utilities/audio/stats.qml
rename to scripts/developer/utilities/audio/DesktopStats.qml

From 3285816fca60d813bdc97aea6e4b16993dea2855 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Fri, 3 Mar 2017 16:45:35 +1300
Subject: [PATCH 062/247] Fix up audio stats displayed in tablet

---
 interface/src/ui/overlays/Web3DOverlay.cpp    |  2 +
 .../audio/{DesktopStats.qml => Stats.qml}     |  7 +-
 .../developer/utilities/audio/TabletStats.qml | 89 +++++++++++++++++++
 scripts/developer/utilities/audio/stats.js    |  4 +-
 4 files changed, 94 insertions(+), 8 deletions(-)
 rename scripts/developer/utilities/audio/{DesktopStats.qml => Stats.qml} (96%)
 create mode 100644 scripts/developer/utilities/audio/TabletStats.qml

diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp
index 8d72f877b6..508ac00c5f 100644
--- a/interface/src/ui/overlays/Web3DOverlay.cpp
+++ b/interface/src/ui/overlays/Web3DOverlay.cpp
@@ -40,6 +40,7 @@
 #include <Preferences.h>
 #include <ScriptEngines.h>
 #include "FileDialogHelper.h"
+#include "AudioClient.h"
 
 
 static const float DPI = 30.47f;
@@ -170,6 +171,7 @@ void Web3DOverlay::loadSourceURL() {
             _webSurface->getRootContext()->setContextProperty("offscreenFlags", flags);
             _webSurface->getRootContext()->setContextProperty("AddressManager", DependencyManager::get<AddressManager>().data());
             _webSurface->getRootContext()->setContextProperty("Account", AccountScriptingInterface::getInstance());
+            _webSurface->getRootContext()->setContextProperty("AudioStats", DependencyManager::get<AudioClient>()->getStats().data());
             _webSurface->getRootContext()->setContextProperty("HMD", DependencyManager::get<HMDScriptingInterface>().data());
             _webSurface->getRootContext()->setContextProperty("fileDialogHelper", new FileDialogHelper());
             _webSurface->getRootContext()->setContextProperty("ScriptDiscoveryService", DependencyManager::get<ScriptEngines>().data());
diff --git a/scripts/developer/utilities/audio/DesktopStats.qml b/scripts/developer/utilities/audio/Stats.qml
similarity index 96%
rename from scripts/developer/utilities/audio/DesktopStats.qml
rename to scripts/developer/utilities/audio/Stats.qml
index 346e5e3544..614c682f98 100644
--- a/scripts/developer/utilities/audio/DesktopStats.qml
+++ b/scripts/developer/utilities/audio/Stats.qml
@@ -1,5 +1,5 @@
 //
-//  stats.qml
+//  Stats.qml
 //  scripts/developer/utilities/audio
 //
 //  Created by Zach Pomerantz on 9/22/2016
@@ -15,7 +15,6 @@ import QtQuick.Layouts 1.3
 Column {
     id: stats
     width: parent.width
-    height: parent.height
     property bool showGraphs: toggleGraphs.checked
 
     RowLayout {
@@ -35,11 +34,9 @@ Column {
 
     Grid {
         width: parent.width
-        height: parent.height - 30
 
         Column {
             width: parent.width / 2
-            height: parent.height
 
             Section {
                 label: "Latency"
@@ -76,7 +73,6 @@ Column {
 
         Column {
             width: parent.width / 2
-            height: parent.height
 
             Section {
                 label: "Mixer (upstream)"
@@ -92,4 +88,3 @@ Column {
         }
     }
 }
-
diff --git a/scripts/developer/utilities/audio/TabletStats.qml b/scripts/developer/utilities/audio/TabletStats.qml
new file mode 100644
index 0000000000..130b90f032
--- /dev/null
+++ b/scripts/developer/utilities/audio/TabletStats.qml
@@ -0,0 +1,89 @@
+//
+//  TabletStats.qml
+//  scripts/developer/utilities/audio
+//
+//  Created by David Rowe on 3 Mar 2017.
+//  Copyright 2017 High Fidelity, Inc.
+//
+//  Distributed under the Apache License, Version 2.0.
+//  See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html
+//
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import QtQuick.Layouts 1.3
+
+import "../../../../resources/qml/styles-uit"
+
+Item {
+    id: dialog
+    width: 480
+    height: 720
+
+    HifiConstants { id: hifi }
+
+    Rectangle {
+        id: header
+        height: 90
+        anchors {
+            top: parent.top
+            left: parent.left
+            right: parent.right
+        }
+        z: 100
+
+        gradient: Gradient {
+            GradientStop {
+                position: 0
+                color: "#2b2b2b"
+            }
+
+            GradientStop {
+                position: 1
+                color: "#1e1e1e"
+            }
+        }
+
+        RalewayBold {
+            text: "Audio Interface Statistics"
+            size: 26
+            color: "#34a2c7"
+            anchors.verticalCenter: parent.verticalCenter
+            anchors.left: parent.left
+            anchors.leftMargin: hifi.dimensions.contentMargin.x  // ####### hifi is not defined
+        }
+    }
+
+    Rectangle {
+        id: main
+        anchors {
+            top: header.bottom
+            bottom: parent.bottom
+            left: parent.left
+            right: parent.right
+        }
+
+        gradient: Gradient {
+            GradientStop {
+                position: 0
+                color: "#2b2b2b"
+            }
+
+            GradientStop {
+                position: 1
+                color: "#0f212e"
+            }
+        }
+
+        Flickable {
+            id: scrollView
+            width: parent.width
+            height: parent.height
+            contentWidth: parent.width
+            contentHeight: stats.height
+
+            Stats {
+                id: stats
+            }
+        }
+    }
+}
diff --git a/scripts/developer/utilities/audio/stats.js b/scripts/developer/utilities/audio/stats.js
index 064fd72fe5..382e14df5f 100644
--- a/scripts/developer/utilities/audio/stats.js
+++ b/scripts/developer/utilities/audio/stats.js
@@ -11,7 +11,7 @@
 
 if (HMD.active && !Settings.getValue("HUDUIEnabled")) {
     var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
-    var qml = Script.resolvePath("stats.qml");
+    var qml = Script.resolvePath("TabletStats.qml");
     tablet.loadQMLSource(qml);
     Script.stop();
 
@@ -19,7 +19,7 @@ if (HMD.active && !Settings.getValue("HUDUIEnabled")) {
     var INITIAL_WIDTH = 400;
     var INITIAL_OFFSET = 50;
 
-    var qml = Script.resolvePath("stats.qml");
+    var qml = Script.resolvePath("Stats.qml");
     var window = new OverlayWindow({
         title: "Audio Interface Statistics",
         source: qml,

From b31cf23c8d57253d604f5a703657ec20d4db31eb Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Fri, 3 Mar 2017 17:45:23 +1300
Subject: [PATCH 063/247] Fix tablet QML fonts path

This is the path for running scripts from build/install directory rather
than from source directory.
---
 interface/src/ui/overlays/Web3DOverlay.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp
index 508ac00c5f..e2001d7766 100644
--- a/interface/src/ui/overlays/Web3DOverlay.cpp
+++ b/interface/src/ui/overlays/Web3DOverlay.cpp
@@ -175,7 +175,7 @@ void Web3DOverlay::loadSourceURL() {
             _webSurface->getRootContext()->setContextProperty("HMD", DependencyManager::get<HMDScriptingInterface>().data());
             _webSurface->getRootContext()->setContextProperty("fileDialogHelper", new FileDialogHelper());
             _webSurface->getRootContext()->setContextProperty("ScriptDiscoveryService", DependencyManager::get<ScriptEngines>().data());
-            _webSurface->getRootContext()->setContextProperty("pathToFonts", "../../../");
+            _webSurface->getRootContext()->setContextProperty("pathToFonts", "../../");
             tabletScriptingInterface->setQmlTabletRoot("com.highfidelity.interface.tablet.system", _webSurface->getRootItem(), _webSurface.data());
 
             // Override min fps for tablet UI, for silky smooth scrolling

From 55963c4418f79731cba27e2bfa5699beb3d78621 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Fri, 3 Mar 2017 17:46:12 +1300
Subject: [PATCH 064/247] Style audio stats dialog button

---
 scripts/developer/utilities/audio/Stats.qml | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/scripts/developer/utilities/audio/Stats.qml b/scripts/developer/utilities/audio/Stats.qml
index 614c682f98..7f559ea664 100644
--- a/scripts/developer/utilities/audio/Stats.qml
+++ b/scripts/developer/utilities/audio/Stats.qml
@@ -12,21 +12,21 @@ import QtQuick 2.5
 import QtQuick.Controls 1.4
 import QtQuick.Layouts 1.3
 
+import "../../../../resources/qml/controls-uit" as HifiControls
+
 Column {
     id: stats
     width: parent.width
     property bool showGraphs: toggleGraphs.checked
 
-    RowLayout {
+    Item {
         width: parent.width
         height: 30
 
-        Button {
+        HifiControls.Button {
             id: toggleGraphs
             property bool checked: false
-
-            Layout.alignment: Qt.AlignCenter
-
+            anchors.horizontalCenter: parent.horizontalCenter
             text: checked ? "Hide graphs" : "Show graphs"
             onClicked: function() { checked = !checked; }
         }

From 88c0db969c56c70867cce43dbef9190fd1fa8c07 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Fri, 3 Mar 2017 17:14:00 +0000
Subject: [PATCH 065/247] added tabletComboBox to tabletFileDialog

---
 interface/resources/qml/dialogs/TabletFileDialog.qml | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/interface/resources/qml/dialogs/TabletFileDialog.qml b/interface/resources/qml/dialogs/TabletFileDialog.qml
index 0aef9179e8..b55eca7493 100644
--- a/interface/resources/qml/dialogs/TabletFileDialog.qml
+++ b/interface/resources/qml/dialogs/TabletFileDialog.qml
@@ -151,11 +151,12 @@ TabletModalWindow {
             }
         }
 
-        /*TabletComboBox {
+        TabletComboBox {
             id: pathSelector
-           anchors {
+            z: 10
+            anchors {
                 top: parent.top
-                topMargin: hifi.dimensions.contentMargin.y
+                topMargin: (fileDialogItem.hasTitle ? (fileDialogItem.frameMarginTop + hifi.dimensions.modalDialogMargin.y) : hifi.dimension.modalDialogMargin.y) 
                 left: navControls.right
                 leftMargin: hifi.dimensions.contentSpacing.x
                 right: parent.right
@@ -219,7 +220,7 @@ TabletModalWindow {
                     fileTableView.forceActiveFocus();
                 }
             }
-        }*/
+        }
 
         QtObject {
             id: d

From 53cfad65cd89de003fb8c293be67b503e3304141 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Sat, 4 Mar 2017 13:01:02 +1300
Subject: [PATCH 066/247] Add keyboard to preferences dialogs

---
 .../tabletWindows/TabletPreferencesDialog.qml | 50 ++++++++++++++++++-
 1 file changed, 48 insertions(+), 2 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml b/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
index 7a57bd7568..fa6d2bb923 100644
--- a/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
+++ b/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
@@ -27,6 +27,10 @@ Item {
     HifiConstants { id: hifi }
     property var sections: []
     property var showCategories: []
+
+    property bool keyboardEnabled: false
+    property bool keyboardRaised: false
+    property bool punctuationMode: false
   
     function saveAll() {
         for (var i = 0; i < sections.length; ++i) {
@@ -41,7 +45,7 @@ Item {
             section.restoreAll();
         }
     }
-    
+
     Rectangle {
         id: header
         height: 90
@@ -165,7 +169,7 @@ Item {
         height: 40
 
         anchors {
-            bottom: parent.bottom
+            bottom: keyboard.top
             left: parent.left
             right: parent.right
         }
@@ -202,4 +206,46 @@ Item {
             }
         }
     }
+
+    HifiControls.Keyboard {
+        id: keyboard
+        raised: parent.keyboardEnabled && parent.keyboardRaised
+        numeric: parent.punctuationMode
+        anchors {
+            bottom: parent.bottom
+            left: parent.left
+            right: parent.right
+        }
+    }
+
+    Component.onCompleted: {
+        keyboardEnabled = HMD.active;
+    }
+
+    onKeyboardRaisedChanged: {
+        if (keyboardEnabled && keyboardRaised) {
+            var delta = mouseArea.mouseY - (dialog.height - footer.height - keyboard.raisedHeight -hifi.dimensions.controlLineHeight);
+            if (delta > 0) {
+                scrollView.contentY += delta;
+            }
+        }
+    }
+
+    MouseArea {
+        // Defocuses the current control so that the HMD keyboard gets hidden.
+        id: mouseArea
+        anchors {
+            top: parent.top
+            left: parent.left
+            right: parent.right
+            bottom: keyboard.top
+        }
+        propagateComposedEvents: true
+        acceptedButtons: Qt.AllButtons
+        enabled: window.visible
+        onPressed: {
+            parent.forceActiveFocus();
+            mouse.accepted = false;
+        }
+    }
 }

From 0333122b2370d2e65a739b4387884d014a37e75e Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Sat, 4 Mar 2017 15:27:31 +1300
Subject: [PATCH 067/247] Make Save and Cancel buttons close preferences dialog

---
 .../tabletWindows/TabletPreferencesDialog.qml | 53 ++++++++++++-------
 interface/src/ui/overlays/Web3DOverlay.cpp    |  1 +
 2 files changed, 34 insertions(+), 20 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml b/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
index fa6d2bb923..95ce7f5a1d 100644
--- a/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
+++ b/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
@@ -31,12 +31,18 @@ Item {
     property bool keyboardEnabled: false
     property bool keyboardRaised: false
     property bool punctuationMode: false
+
+    property var tablet;
   
     function saveAll() {
+        dialog.forceActiveFocus();  // Accept any text box edits in progress.
+
         for (var i = 0; i < sections.length; ++i) {
             var section = sections[i];
             section.saveAll();
         }
+
+        closeDialog();
     }
 
     function restoreAll() {
@@ -44,6 +50,12 @@ Item {
             var section = sections[i];
             section.restoreAll();
         }
+
+        closeDialog();
+    }
+
+    function closeDialog() {
+        Tablet.getTablet("com.highfidelity.interface.tablet.system").gotoHomeScreen();
     }
 
     Rectangle {
@@ -164,6 +176,24 @@ Item {
         }
     }
 
+    MouseArea {
+        // Defocuses the current control so that the HMD keyboard gets hidden.
+        // Created under the footer so that the non-button part of the footer can defocus a control.
+        id: mouseArea
+        anchors {
+            top: parent.top
+            left: parent.left
+            right: parent.right
+            bottom: keyboard.top
+        }
+        propagateComposedEvents: true
+        acceptedButtons: Qt.AllButtons
+        onPressed: {
+            parent.forceActiveFocus();
+            mouse.accepted = false;
+        }
+    }
+
     Rectangle {
         id: footer
         height: 40
@@ -196,13 +226,13 @@ Item {
             HifiControls.Button {
                 text: "Save changes"
                 color: hifi.buttons.blue
-                onClicked: root.saveAll()
+                onClicked: dialog.saveAll()
             }
 
             HifiControls.Button {
                 text: "Cancel"
                 color: hifi.buttons.white
-                onClicked: root.restoreAll()
+                onClicked: dialog.restoreAll()
             }
         }
     }
@@ -219,6 +249,7 @@ Item {
     }
 
     Component.onCompleted: {
+        tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
         keyboardEnabled = HMD.active;
     }
 
@@ -230,22 +261,4 @@ Item {
             }
         }
     }
-
-    MouseArea {
-        // Defocuses the current control so that the HMD keyboard gets hidden.
-        id: mouseArea
-        anchors {
-            top: parent.top
-            left: parent.left
-            right: parent.right
-            bottom: keyboard.top
-        }
-        propagateComposedEvents: true
-        acceptedButtons: Qt.AllButtons
-        enabled: window.visible
-        onPressed: {
-            parent.forceActiveFocus();
-            mouse.accepted = false;
-        }
-    }
 }
diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp
index 8d72f877b6..f86844430a 100644
--- a/interface/src/ui/overlays/Web3DOverlay.cpp
+++ b/interface/src/ui/overlays/Web3DOverlay.cpp
@@ -173,6 +173,7 @@ void Web3DOverlay::loadSourceURL() {
             _webSurface->getRootContext()->setContextProperty("HMD", DependencyManager::get<HMDScriptingInterface>().data());
             _webSurface->getRootContext()->setContextProperty("fileDialogHelper", new FileDialogHelper());
             _webSurface->getRootContext()->setContextProperty("ScriptDiscoveryService", DependencyManager::get<ScriptEngines>().data());
+            _webSurface->getRootContext()->setContextProperty("Tablet", DependencyManager::get<TabletScriptingInterface>().data());
             _webSurface->getRootContext()->setContextProperty("pathToFonts", "../../../");
             tabletScriptingInterface->setQmlTabletRoot("com.highfidelity.interface.tablet.system", _webSurface->getRootItem(), _webSurface.data());
 

From 6385bb2b8003031c1dbb568d22867527cfed6652 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Sat, 4 Mar 2017 15:57:58 +1300
Subject: [PATCH 068/247] Open general settings dialog in tablet from tablet
 menu

---
 interface/src/Menu.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp
index 5b0c67e350..92da1b0d83 100644
--- a/interface/src/Menu.cpp
+++ b/interface/src/Menu.cpp
@@ -294,7 +294,8 @@ Menu::Menu() {
     // Settings > General...
     action = addActionToQMenuAndActionHash(settingsMenu, MenuOption::Preferences, Qt::CTRL | Qt::Key_Comma, nullptr, nullptr, QAction::PreferencesRole);
     connect(action, &QAction::triggered, [] {
-        DependencyManager::get<OffscreenUi>()->toggle(QString("hifi/dialogs/GeneralPreferencesDialog.qml"), "GeneralPreferencesDialog");
+        qApp->showDialog(QString("hifi/dialogs/GeneralPreferencesDialog.qml"),
+            QString("../../hifi/tablet/TabletGeneralPreferences.qml"), "GeneralPreferencesDialog");
     });
 
     // Settings > Avatar...

From 4886f1cbfcbebeeff7aefe42344707b6d62d29c8 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Mon, 6 Mar 2017 12:38:19 -0800
Subject: [PATCH 069/247] don't run stylus-on-overlay code unless the overlay
 is a web3d overlay

---
 interface/src/ui/overlays/Overlay.cpp            | 3 +++
 scripts/system/controllers/handControllerGrab.js | 5 ++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/interface/src/ui/overlays/Overlay.cpp b/interface/src/ui/overlays/Overlay.cpp
index 0ad2c94241..764422019e 100644
--- a/interface/src/ui/overlays/Overlay.cpp
+++ b/interface/src/ui/overlays/Overlay.cpp
@@ -100,6 +100,9 @@ void Overlay::setProperties(const QVariantMap& properties) {
 }
 
 QVariant Overlay::getProperty(const QString& property) {
+    if (property == "type") {
+        return QVariant(getType());
+    }
     if (property == "color") {
         return xColorToVariant(_color);
     }
diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index 86461c0c0a..4dfa0b8f79 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -2031,6 +2031,9 @@ function MyController(hand) {
         var pointerEvent;
         if (rayPickInfo.overlayID) {
             var overlay = rayPickInfo.overlayID;
+            if (Overlays.getProperty(overlay, "type") != "web3d") {
+                return false;
+            }
             if (Overlays.keyboardFocusOverlay != overlay) {
                 Entities.keyboardFocusEntity = null;
                 Overlays.keyboardFocusOverlay = overlay;
@@ -3388,7 +3391,7 @@ function MyController(hand) {
 
             if (this.state == STATE_OVERLAY_STYLUS_TOUCHING && intersectInfo.distance > max) {
                 this.grabbedThingID = null;
-                this.setState(STATE_OFF, "pulled away from overlay");
+                this.setState(STATE_OFF, "pulled away from overlay -- " + intersectInfo.distance + " max = " + max);
                 return;
             }
 

From 6d9e7de6dcb8d1555332ca2f5314a55827f5c75a Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Mon, 6 Mar 2017 21:45:55 +0100
Subject: [PATCH 070/247] Implemented AssetBrowser in Tablet view

---
 CMakeLists.txt                                |  11 +
 interface/CMakeLists.txt                      |  11 +
 .../qml/dialogs/TabletCustomQueryDialog.qml   | 339 ++++++++++
 .../qml/hifi/dialogs/TabletAssetServer.qml    | 614 ++++++++++++++++++
 .../resources/qml/hifi/tablet/TabletRoot.qml  |   3 +
 .../qml/styles-uit/HifiConstants.qml          |   1 +
 interface/src/Application.cpp                 |  19 +-
 interface/src/main.cpp                        |   2 +
 .../AssetMappingsScriptingInterface.h         |   8 +-
 interface/src/ui/overlays/Web3DOverlay.cpp    |   7 +
 10 files changed, 1011 insertions(+), 4 deletions(-)
 create mode 100644 interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
 create mode 100644 interface/resources/qml/hifi/dialogs/TabletAssetServer.qml

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1ab7e55343..d7ea297637 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -201,6 +201,17 @@ set(HF_CMAKE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
 set(MACRO_DIR "${HF_CMAKE_DIR}/macros")
 set(EXTERNAL_PROJECT_DIR "${HF_CMAKE_DIR}/externals")
 
+file(GLOB_RECURSE JS_SRC scripts/*.js)
+add_custom_target(js SOURCES ${JS_SRC})
+
+if (UNIX)
+   install(
+   DIRECTORY "${CMAKE_SOURCE_DIR}/scripts"
+   DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/interface
+   COMPONENT ${CLIENT_COMPONENT}
+   )
+endif()
+
 file(GLOB HIFI_CUSTOM_MACROS "cmake/macros/*.cmake")
 foreach(CUSTOM_MACRO ${HIFI_CUSTOM_MACROS})
   include(${CUSTOM_MACRO})
diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt
index 868a2cf933..0ae7539448 100644
--- a/interface/CMakeLists.txt
+++ b/interface/CMakeLists.txt
@@ -54,6 +54,17 @@ find_package(
   WebChannel WebSockets
 )
 
+file(GLOB_RECURSE QML_SRC resources/qml/*.qml resources/qml/*.js)
+add_custom_target(qml SOURCES ${QML_SRC})
+
+if (UNIX)
+  install(
+  DIRECTORY "${CMAKE_SOURCE_DIR}/interface/resources/qml"
+  DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/resources
+  COMPONENT ${CLIENT_COMPONENT}
+  )
+endif()
+
 # grab the ui files in resources/ui
 file (GLOB_RECURSE QT_UI_FILES ui/*.ui)
 source_group("UI Files" FILES ${QT_UI_FILES})
diff --git a/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml b/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
new file mode 100644
index 0000000000..6e5bc50d32
--- /dev/null
+++ b/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
@@ -0,0 +1,339 @@
+//
+//  TabletCustomQueryDialog.qml
+//
+//  Created by Vlad Stelmahovsky on 3/27/17
+//  Copyright 2017 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
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import QtQuick.Dialogs 1.2 as OriginalDialogs
+
+import "../controls-uit" as ControlsUIT
+import "../styles-uit"
+import "../windows"
+
+TabletModalWindow {
+    id: root;
+    HifiConstants { id: hifi; }
+
+    y: hifi.dimensions.tabletMenuHeader
+
+    title: ""
+    visible: true;
+    property bool keyboardOverride: true
+
+    signal selected(var result);
+    signal canceled();
+
+    property int icon: hifi.icons.none;
+    property string iconText: "";
+    property int iconSize: 35;
+    onIconChanged: updateIcon();
+
+    property var textInput;
+    property var comboBox;
+    property var checkBox;
+    onTextInputChanged: {
+        if (textInput && textInput.text !== undefined) {
+            textField.text = textInput.text;
+        }
+    }
+    onComboBoxChanged: {
+        if (comboBox && comboBox.index !== undefined) {
+            comboBoxField.currentIndex = comboBox.index;
+        }
+    }
+    onCheckBoxChanged: {
+        if (checkBox && checkBox.checked !== undefined) {
+            checkBoxField.checked = checkBox.checked;
+        }
+    }
+
+    property bool keyboardEnabled: false
+    property bool keyboardRaised: false
+    property bool punctuationMode: false
+    onKeyboardRaisedChanged: d.resize();
+
+    property var warning: "";
+    property var result;
+
+    property var implicitCheckState: null;
+
+    property int titleWidth: 0;
+    onTitleWidthChanged: d.resize();
+
+    MouseArea {
+        width: parent.width
+        height: parent.height
+    }
+
+    function updateIcon() {
+        if (!root) {
+            return;
+        }
+        iconText = hifi.glyphForIcon(root.icon);
+    }
+
+    function updateCheckbox() {
+        if (checkBox.disableForItems) {
+            var currentItemInDisableList = false;
+            for (var i in checkBox.disableForItems) {
+                if (comboBoxField.currentIndex === checkBox.disableForItems[i]) {
+                    currentItemInDisableList = true;
+                    break;
+                }
+            }
+
+            if (currentItemInDisableList) {
+                checkBoxField.enabled = false;
+                if (checkBox.checkStateOnDisable !== null && checkBox.checkStateOnDisable !== undefined) {
+                    root.implicitCheckState = checkBoxField.checked;
+                    checkBoxField.checked = checkBox.checkStateOnDisable;
+                }
+                root.warning = checkBox.warningOnDisable;
+            } else {
+                checkBoxField.enabled = true;
+                if (root.implicitCheckState !== null) {
+                    checkBoxField.checked = root.implicitCheckState;
+                    root.implicitCheckState = null;
+                }
+                root.warning = "";
+            }
+        }
+    }
+
+    TabletModalFrame {
+        id: modalWindowItem
+        width: parent.width - 12
+        height: 240
+        anchors {
+            verticalCenter: parent.verticalCenter
+            horizontalCenter: parent.horizontalCenter
+        }
+
+        QtObject {
+            id: d;
+            readonly property int minWidth: 470
+            readonly property int maxWidth: 470
+            readonly property int minHeight: 240
+            readonly property int maxHeight: 720
+
+            function resize() {
+                var targetWidth = Math.max(titleWidth, 470);
+                var targetHeight = (textField.visible ? textField.controlHeight + hifi.dimensions.contentSpacing.y : 0) +
+                        (extraInputs.visible ? extraInputs.height + hifi.dimensions.contentSpacing.y : 0) +
+                        (buttons.height + 3 * hifi.dimensions.contentSpacing.y) +
+                        ((keyboardEnabled && keyboardRaised) ? (keyboard.raisedHeight + hifi.dimensions.contentSpacing.y) : 0);
+
+                root.width = (targetWidth < d.minWidth) ? d.minWidth : ((targetWidth > d.maxWdith) ? d.maxWidth : targetWidth);
+                root.height = (targetHeight < d.minHeight) ? d.minHeight : ((targetHeight > d.maxHeight) ?
+                                                                                d.maxHeight : targetHeight);
+                if (checkBoxField.visible && comboBoxField.visible) {
+                    checkBoxField.width = extraInputs.width / 2;
+                    comboBoxField.width = extraInputs.width / 2;
+                } else if (!checkBoxField.visible && comboBoxField.visible) {
+                    comboBoxField.width = extraInputs.width;
+                }
+            }
+        }
+//        Item {
+//            anchors {
+//                //                top: parent.top;
+//                //                bottom: extraInputs.visible ? extraInputs.top : buttons.top;
+//                left: parent.left;
+//                right: parent.right;
+//                topMargin: 20
+//            }
+
+            // FIXME make a text field type that can be bound to a history for autocompletion
+            ControlsUIT.TextField {
+                id: textField;
+                label: root.textInput.label;
+                focus: root.textInput ? true : false;
+                visible: root.textInput ? true : false;
+                anchors {
+                    top: parent.top
+                    left: parent.left;
+                    right: parent.right;
+                    leftMargin: 5; rightMargin: 5;
+                    topMargin: textField.controlHeight - textField.height + 5
+                }
+            }
+
+            ControlsUIT.Keyboard {
+                id: keyboard
+                raised: keyboardEnabled && keyboardRaised
+                numeric: punctuationMode
+                anchors {
+                    left: parent.left
+                    right: parent.right
+                    leftMargin: 5; rightMargin: 5;
+                    top: textField.bottom
+                    topMargin: raised ? hifi.dimensions.contentSpacing.y : 0
+                }
+            }
+            //        }
+
+            Row {
+                id: extraInputs;
+                visible: Boolean(root.checkBox || root.comboBox);
+                anchors {
+                    left: parent.left;
+                    right: parent.right;
+                    leftMargin: 5; rightMargin: 5;
+                    top: keyboard.bottom;
+                    topMargin: hifi.dimensions.contentSpacing.y + 20;
+                }
+                height: comboBoxField.controlHeight;
+                onHeightChanged: d.resize();
+                onWidthChanged: d.resize();
+
+                ControlsUIT.CheckBox {
+                    id: checkBoxField;
+                    text: root.checkBox.label;
+                    focus: Boolean(root.checkBox);
+                    visible: Boolean(root.checkBox);
+                    //                anchors {
+                    //                    left: parent.left;
+                    //                    bottom: parent.bottom;
+                    //                    leftMargin: 6;  // Magic number to align with warning icon
+                    //                    bottomMargin: 6;
+                    //                }
+                }
+
+                ControlsUIT.TabletComboBox {
+                    id: comboBoxField;
+                    label: root.comboBox.label;
+                    focus: Boolean(root.comboBox);
+                    visible: Boolean(root.comboBox);
+                    //                anchors {
+                    //                    right: parent.right;
+                    //                    bottom: parent.bottom;
+                    //                }
+                    model: root.comboBox ? root.comboBox.items : [];
+                    onAccepted: {
+                        updateCheckbox();
+                        focus = true;
+                    }
+                }
+            }
+
+            Row {
+                id: buttons;
+                focus: true;
+                spacing: hifi.dimensions.contentSpacing.x;
+                layoutDirection: Qt.RightToLeft;
+                onHeightChanged: d.resize();
+                onWidthChanged: {
+                    d.resize();
+                    resizeWarningText();
+                }
+
+                anchors {
+                    bottom: parent.bottom;
+                    left: parent.left;
+                    right: parent.right;
+                    bottomMargin: hifi.dimensions.contentSpacing.y;
+                    leftMargin: 5; rightMargin: 5;
+                }
+
+                function resizeWarningText() {
+                    var rowWidth = buttons.width;
+                    var buttonsWidth = acceptButton.width + cancelButton.width + hifi.dimensions.contentSpacing.x * 2;
+                    var warningIconWidth = warningIcon.width + hifi.dimensions.contentSpacing.x;
+                    warningText.width = rowWidth - buttonsWidth - warningIconWidth;
+                }
+
+                ControlsUIT.Button {
+                    id: cancelButton;
+                    action: cancelAction;
+                }
+
+                ControlsUIT.Button {
+                    id: acceptButton;
+                    action: acceptAction;
+                }
+
+                Text {
+                    id: warningText;
+                    visible: Boolean(root.warning);
+                    text: root.warning;
+                    wrapMode: Text.WordWrap;
+                    font.italic: true;
+                    maximumLineCount: 2;
+                }
+
+                HiFiGlyphs {
+                    id: warningIcon;
+                    visible: Boolean(root.warning);
+                    text: hifi.glyphs.alert;
+                    size: hifi.dimensions.controlLineHeight;
+                }
+            }
+//        }//column
+        Action {
+            id: cancelAction;
+            text: qsTr("Cancel");
+            shortcut: Qt.Key_Escape;
+            onTriggered: {
+                root.result = null;
+                root.canceled();
+                root.destroy();
+            }
+        }
+
+        Action {
+            id: acceptAction;
+            text: qsTr("Add");
+            shortcut: Qt.Key_Return;
+            onTriggered: {
+                var result = {};
+                if (textInput) {
+                    result.textInput = textField.text;
+                }
+                if (comboBox) {
+                    result.comboBox = comboBoxField.currentIndex;
+                    result.comboBoxText = comboBoxField.currentText;
+                }
+                if (checkBox) {
+                    result.checkBox = checkBoxField.enabled ? checkBoxField.checked : null;
+                }
+                root.result = JSON.stringify(result);
+                root.selected(root.result);
+                root.destroy();
+            }
+        }
+    }
+
+    Keys.onPressed: {
+        if (!visible) {
+            return;
+        }
+
+        switch (event.key) {
+        case Qt.Key_Escape:
+        case Qt.Key_Back:
+            cancelAction.trigger();
+            event.accepted = true;
+            break;
+
+        case Qt.Key_Return:
+        case Qt.Key_Enter:
+            acceptAction.trigger();
+            event.accepted = true;
+            break;
+        }
+    }
+
+    Component.onCompleted: {
+        keyboardEnabled = HMD.active;
+        updateIcon();
+        updateCheckbox();
+        d.resize();
+        textField.forceActiveFocus();
+    }
+}
diff --git a/interface/resources/qml/hifi/dialogs/TabletAssetServer.qml b/interface/resources/qml/hifi/dialogs/TabletAssetServer.qml
new file mode 100644
index 0000000000..93e18c7aba
--- /dev/null
+++ b/interface/resources/qml/hifi/dialogs/TabletAssetServer.qml
@@ -0,0 +1,614 @@
+//
+//  TabletAssetServer.qml
+//
+//  Created by Vlad Stelmahovsky on  3/3/17
+//  Copyright 2017 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
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import QtQuick.Dialogs 1.2 as OriginalDialogs
+import Qt.labs.settings 1.0
+
+import "../../styles-uit"
+import "../../controls-uit" as HifiControls
+import "../../windows"
+
+Rectangle {
+    id: root
+    objectName: "AssetServer"
+
+    property var eventBridge;
+    signal sendToScript(var message);
+    property bool isHMD: false
+
+    color: hifi.colors.baseGray
+
+    property int colorScheme: hifi.colorSchemes.dark
+
+    HifiConstants { id: hifi }
+
+    property var scripts: ScriptDiscoveryService;
+    property var assetProxyModel: Assets.proxyModel;
+    property var assetMappingsModel: Assets.mappingModel;
+    property var currentDirectory;
+
+    Settings {
+        category: "Overlay.AssetServer"
+        property alias directory: root.currentDirectory
+    }
+
+    Component.onCompleted: {
+        isHMD = HMD.active;
+        ApplicationInterface.uploadRequest.connect(uploadClicked);
+        assetMappingsModel.errorGettingMappings.connect(handleGetMappingsError);
+        reload();
+    }
+
+    function doDeleteFile(path) {
+        console.log("Deleting " + path);
+
+        Assets.deleteMappings(path, function(err) {
+            if (err) {
+                console.log("Asset browser - error deleting path: ", path, err);
+
+                box = errorMessageBox("There was an error deleting:\n" + path + "\n" + err);
+                box.selected.connect(reload);
+            } else {
+                console.log("Asset browser - finished deleting path: ", path);
+                reload();
+            }
+        });
+
+    }
+
+    function doRenameFile(oldPath, newPath) {
+
+        if (newPath[0] !== "/") {
+            newPath = "/" + newPath;
+        }
+
+        if (oldPath[oldPath.length - 1] === '/' && newPath[newPath.length - 1] != '/') {
+            // this is a folder rename but the user neglected to add a trailing slash when providing a new path
+            newPath = newPath + "/";
+        }
+
+        if (Assets.isKnownFolder(newPath)) {
+            box = errorMessageBox("Cannot overwrite existing directory.");
+            box.selected.connect(reload);
+        }
+
+        console.log("Asset browser - renaming " + oldPath + " to " + newPath);
+
+        Assets.renameMapping(oldPath, newPath, function(err) {
+            if (err) {
+                console.log("Asset browser - error renaming: ", oldPath, "=>", newPath, " - error ", err);
+                box = errorMessageBox("There was an error renaming:\n" + oldPath + " to " + newPath + "\n" + err);
+                box.selected.connect(reload);
+            } else {
+                console.log("Asset browser - finished rename: ", oldPath, "=>", newPath);
+            }
+
+            reload();
+        });
+    }
+
+    function fileExists(path) {
+        return Assets.isKnownMapping(path);
+    }
+
+    function askForOverwrite(path, callback) {
+        var object = tabletRoot.messageBox({
+                                            icon: hifi.icons.question,
+                                            buttons: OriginalDialogs.StandardButton.Yes | OriginalDialogs.StandardButton.No,
+                                            defaultButton: OriginalDialogs.StandardButton.No,
+                                            title: "Overwrite File",
+                                            text: path + "\n" + "This file already exists. Do you want to overwrite it?"
+                                        });
+        object.selected.connect(function(button) {
+            if (button === OriginalDialogs.StandardButton.Yes) {
+                callback();
+            }
+        });
+    }
+
+    function canAddToWorld(path) {
+        var supportedExtensions = [/\.fbx\b/i, /\.obj\b/i];
+
+        return supportedExtensions.reduce(function(total, current) {
+            return total | new RegExp(current).test(path);
+        }, false);
+    }
+
+    function clear() {
+        Assets.mappingModel.clear();
+    }
+
+    function reload() {
+        Assets.mappingModel.refresh();
+        treeView.selection.clear();
+    }
+
+    function handleGetMappingsError(errorString) {
+        errorMessageBox(
+                    "There was a problem retreiving the list of assets from your Asset Server.\n"
+                    + errorString
+                    );
+    }
+
+    function addToWorld() {
+        var defaultURL = assetProxyModel.data(treeView.selection.currentIndex, 0x103);
+
+        if (!defaultURL || !canAddToWorld(defaultURL)) {
+            return;
+        }
+
+        var SHAPE_TYPE_NONE = 0;
+        var SHAPE_TYPE_SIMPLE_HULL = 1;
+        var SHAPE_TYPE_SIMPLE_COMPOUND = 2;
+        var SHAPE_TYPE_STATIC_MESH = 3;
+
+        var SHAPE_TYPES = [];
+        SHAPE_TYPES[SHAPE_TYPE_NONE] = "No Collision";
+        SHAPE_TYPES[SHAPE_TYPE_SIMPLE_HULL] = "Basic - Whole model";
+        SHAPE_TYPES[SHAPE_TYPE_SIMPLE_COMPOUND] = "Good - Sub-meshes";
+        SHAPE_TYPES[SHAPE_TYPE_STATIC_MESH] = "Exact - All polygons";
+
+        var SHAPE_TYPE_DEFAULT = SHAPE_TYPE_STATIC_MESH;
+        var DYNAMIC_DEFAULT = false;
+        var prompt = tabletRoot.customInputDialog({
+                                                   textInput: {
+                                                       label: "Model URL",
+                                                       text: defaultURL
+                                                   },
+                                                   comboBox: {
+                                                       label: "Automatic Collisions",
+                                                       index: SHAPE_TYPE_DEFAULT,
+                                                       items: SHAPE_TYPES
+                                                   },
+                                                   checkBox: {
+                                                       label: "Dynamic",
+                                                       checked: DYNAMIC_DEFAULT,
+                                                       disableForItems: [
+                                                           SHAPE_TYPE_STATIC_MESH
+                                                       ],
+                                                       checkStateOnDisable: false,
+                                                       warningOnDisable: "Models with automatic collisions set to 'Exact' cannot be dynamic"
+                                                   }
+                                               });
+
+        prompt.selected.connect(function (jsonResult) {
+            if (jsonResult) {
+                var result = JSON.parse(jsonResult);
+                var url = result.textInput.trim();
+                var shapeType;
+                switch (result.comboBox) {
+                case SHAPE_TYPE_SIMPLE_HULL:
+                    shapeType = "simple-hull";
+                    break;
+                case SHAPE_TYPE_SIMPLE_COMPOUND:
+                    shapeType = "simple-compound";
+                    break;
+                case SHAPE_TYPE_STATIC_MESH:
+                    shapeType = "static-mesh";
+                    break;
+                default:
+                    shapeType = "none";
+                }
+
+                var dynamic = result.checkBox !== null ? result.checkBox : DYNAMIC_DEFAULT;
+                if (shapeType === "static-mesh" && dynamic) {
+                    // The prompt should prevent this case
+                    print("Error: model cannot be both static mesh and dynamic.  This should never happen.");
+                } else if (url) {
+                    var name = assetProxyModel.data(treeView.selection.currentIndex);
+                    var addPosition = Vec3.sum(MyAvatar.position, Vec3.multiply(2, Quat.getFront(MyAvatar.orientation)));
+                    var gravity;
+                    if (dynamic) {
+                        // Create a vector <0, -10, 0>.  { x: 0, y: -10, z: 0 } won't work because Qt is dumb and this is a
+                        // different scripting engine from QTScript.
+                        gravity = Vec3.multiply(Vec3.fromPolar(Math.PI / 2, 0), 10);
+                    } else {
+                        gravity = Vec3.multiply(Vec3.fromPolar(Math.PI / 2, 0), 0);
+                    }
+
+                    print("Asset browser - adding asset " + url + " (" + name + ") to world.");
+
+                    // Entities.addEntity doesn't work from QML, so we use this.
+                    Entities.addModelEntity(name, url, shapeType, dynamic, addPosition, gravity);
+                }
+            }
+        });
+    }
+
+    function copyURLToClipboard(index) {
+        if (!index) {
+            index = treeView.selection.currentIndex;
+        }
+
+        var url = assetProxyModel.data(treeView.selection.currentIndex, 0x103);
+        if (!url) {
+            return;
+        }
+        Window.copyToClipboard(url);
+    }
+
+    function renameEl(index, data) {
+        if (!index) {
+            return false;
+        }
+
+        var path = assetProxyModel.data(index, 0x100);
+        if (!path) {
+            return false;
+        }
+
+        var destinationPath = path.split('/');
+        destinationPath[destinationPath.length - (path[path.length - 1] === '/' ? 2 : 1)] = data;
+        destinationPath = destinationPath.join('/').trim();
+
+        if (path === destinationPath) {
+            return;
+        }
+        if (!fileExists(destinationPath)) {
+            doRenameFile(path, destinationPath);
+        }
+    }
+    function renameFile(index) {
+        if (!index) {
+            index = treeView.selection.currentIndex;
+        }
+
+        var path = assetProxyModel.data(index, 0x100);
+        if (!path) {
+            return;
+        }
+
+        var object = tabletRoot.inputDialog({
+                                             label: "Enter new path:",
+                                             current: path,
+                                             placeholderText: "Enter path here"
+                                         });
+        object.selected.connect(function(destinationPath) {
+            destinationPath = destinationPath.trim();
+
+            if (path === destinationPath) {
+                return;
+            }
+            if (fileExists(destinationPath)) {
+                askForOverwrite(destinationPath, function() {
+                    doRenameFile(path, destinationPath);
+                });
+            } else {
+                doRenameFile(path, destinationPath);
+            }
+        });
+    }
+    function deleteFile(index) {
+        if (!index) {
+            index = treeView.selection.currentIndex;
+        }
+        var path = assetProxyModel.data(index, 0x100);
+        if (!path) {
+            return;
+        }
+
+        var isFolder = assetProxyModel.data(treeView.selection.currentIndex, 0x101);
+        var typeString = isFolder ? 'folder' : 'file';
+
+        var object = tabletRoot.messageBox({
+                                            icon: hifi.icons.question,
+                                            buttons: OriginalDialogs.StandardButton.Yes + OriginalDialogs.StandardButton.No,
+                                            defaultButton: OriginalDialogs.StandardButton.Yes,
+                                            title: "Delete",
+                                            text: "You are about to delete the following " + typeString + ":\n" + path + "\nDo you want to continue?"
+                                        });
+        object.selected.connect(function(button) {
+            if (button === OriginalDialogs.StandardButton.Yes) {
+                doDeleteFile(path);
+            }
+        });
+    }
+
+    Timer {
+        id: doUploadTimer
+        property var url
+        property bool isConnected: false
+        interval: 5
+        repeat: false
+        running: false
+    }
+
+    property bool uploadOpen: false;
+    Timer {
+        id: timer
+    }
+    function uploadClicked(fileUrl) {
+        if (uploadOpen) {
+            return;
+        }
+        uploadOpen = true;
+
+        function doUpload(url, dropping) {
+            var fileUrl = fileDialogHelper.urlToPath(url);
+
+            var path = assetProxyModel.data(treeView.selection.currentIndex, 0x100);
+            var directory = path ? path.slice(0, path.lastIndexOf('/') + 1) : "/";
+            var filename = fileUrl.slice(fileUrl.lastIndexOf('/') + 1);
+
+            Assets.uploadFile(fileUrl, directory + filename,
+                              function() {
+                                  // Upload started
+                                  uploadSpinner.visible = true;
+                                  uploadButton.enabled = false;
+                                  uploadProgressLabel.text = "In progress...";
+                              },
+                              function(err, path) {
+                                  print(err, path);
+                                  if (err === "") {
+                                      uploadProgressLabel.text = "Upload Complete";
+                                      timer.interval = 1000;
+                                      timer.repeat = false;
+                                      timer.triggered.connect(function() {
+                                          uploadSpinner.visible = false;
+                                          uploadButton.enabled = true;
+                                          uploadOpen = false;
+                                      });
+                                      timer.start();
+                                      console.log("Asset Browser - finished uploading: ", fileUrl);
+                                      reload();
+                                  } else {
+                                      uploadSpinner.visible = false;
+                                      uploadButton.enabled = true;
+                                      uploadOpen = false;
+
+                                      if (err !== -1) {
+                                          console.log("Asset Browser - error uploading: ", fileUrl, " - error ", err);
+                                          var box = errorMessageBox("There was an error uploading:\n" + fileUrl + "\n" + err);
+                                          box.selected.connect(reload);
+                                      }
+                                  }
+                              }, dropping);
+        }
+
+        function initiateUpload(url) {
+            doUpload(doUploadTimer.url, false);
+        }
+
+        if (fileUrl) {
+            doUpload(fileUrl, true);
+        } else {
+            var browser = tabletRoot.fileDialog({
+                                                 selectDirectory: false,
+                                                 dir: currentDirectory
+                                             });
+
+            browser.canceled.connect(function() {
+                uploadOpen = false;
+            });
+
+            browser.selectedFile.connect(function(url) {
+                currentDirectory = browser.dir;
+
+                // Initiate upload from a timer so that file browser dialog can close beforehand.
+                doUploadTimer.url = url;
+                if (!doUploadTimer.isConnected) {
+                    doUploadTimer.triggered.connect(function() { initiateUpload(); });
+                    doUploadTimer.isConnected = true;
+                }
+                doUploadTimer.start();
+            });
+        }
+    }
+
+    function errorMessageBox(message) {
+        return tabletRoot.messageBox({
+                                      icon: hifi.icons.warning,
+                                      defaultButton: OriginalDialogs.StandardButton.Ok,
+                                      title: "Error",
+                                      text: message
+                                  });
+    }
+
+    Column {
+        width: parent.width
+        y: hifi.dimensions.tabletMenuHeader //-bgNavBar
+        spacing: 10
+
+        HifiControls.TabletContentSection {
+            id: assetDirectory
+            name: "Asset Directory"
+            isFirst: true
+
+            HifiControls.VerticalSpacer {}
+
+            Row {
+                id: buttonRow
+                width: parent.width
+                height: 30
+                spacing: hifi.dimensions.contentSpacing.x
+
+                HifiControls.GlyphButton {
+                    glyph: hifi.glyphs.reload
+                    color: hifi.buttons.black
+                    colorScheme: root.colorScheme
+                    width: hifi.dimensions.controlLineHeight
+
+                    onClicked: root.reload()
+                }
+
+                HifiControls.Button {
+                    text: "Add To World"
+                    color: hifi.buttons.black
+                    colorScheme: root.colorScheme
+                    width: 120
+
+                    enabled: canAddToWorld(assetProxyModel.data(treeView.selection.currentIndex, 0x100))
+
+                    onClicked: root.addToWorld()
+                }
+
+                HifiControls.Button {
+                    text: "Rename"
+                    color: hifi.buttons.black
+                    colorScheme: root.colorScheme
+                    width: 80
+
+                    onClicked: root.renameFile()
+                    enabled: treeView.selection.hasSelection
+                }
+
+                HifiControls.Button {
+                    id: deleteButton
+
+                    text: "Delete"
+                    color: hifi.buttons.red
+                    colorScheme: root.colorScheme
+                    width: 80
+
+                    onClicked: root.deleteFile()
+                    enabled: treeView.selection.hasSelection
+                }
+            }
+
+            Menu {
+                id: contextMenu
+                title: "Edit"
+                property var url: ""
+                property var currentIndex: null
+
+                MenuItem {
+                    text: "Copy URL"
+                    onTriggered: {
+                        copyURLToClipboard(contextMenu.currentIndex);
+                    }
+                }
+
+                MenuItem {
+                    text: "Rename"
+                    onTriggered: {
+                        renameFile(contextMenu.currentIndex);
+                    }
+                }
+
+                MenuItem {
+                    text: "Delete"
+                    onTriggered: {
+                        deleteFile(contextMenu.currentIndex);
+                    }
+                }
+            }
+
+        }
+        HifiControls.Tree {
+            id: treeView
+            height: 430
+            anchors.leftMargin: hifi.dimensions.contentMargin.x + 2  // Extra for border
+            anchors.rightMargin: hifi.dimensions.contentMargin.x + 2  // Extra for border
+            anchors.left: parent.left
+            anchors.right: parent.right
+
+            treeModel: assetProxyModel
+            canEdit: true
+            colorScheme: root.colorScheme
+
+            modifyEl: renameEl
+
+            MouseArea {
+                propagateComposedEvents: true
+                anchors.fill: parent
+                acceptedButtons: Qt.RightButton
+                onClicked: {
+                    if (!HMD.active) {  // Popup only displays properly on desktop
+                        var index = treeView.indexAt(mouse.x, mouse.y);
+                        treeView.selection.setCurrentIndex(index, 0x0002);
+                        contextMenu.currentIndex = index;
+                        contextMenu.popup();
+                    }
+                }
+            }
+        }
+
+
+        HifiControls.TabletContentSection {
+            id: uploadSection
+            name: "Upload A File"
+            spacing: hifi.dimensions.contentSpacing.y
+            //anchors.bottom: parent.bottom
+            height: 65
+            anchors.left: parent.left
+            anchors.right: parent.right
+
+            Item {
+                height: parent.height
+                width: parent.width
+                HifiControls.Button {
+                    id: uploadButton
+                    anchors.right: parent.right
+
+                    text: "Choose File"
+                    color: hifi.buttons.blue
+                    colorScheme: root.colorScheme
+                    height: 30
+                    width: 155
+
+                    onClicked: uploadClickedTimer.running = true
+
+                    // For some reason trigginer an API that enters
+                    // an internal event loop directly from the button clicked
+                    // trigger below causes the appliction to behave oddly.
+                    // Most likely because the button onClicked handling is never
+                    // completed until the function returns.
+                    // FIXME find a better way of handling the input dialogs that
+                    // doesn't trigger this.
+                    Timer {
+                        id: uploadClickedTimer
+                        interval: 5
+                        repeat: false
+                        running: false
+                        onTriggered: uploadClicked();
+                    }
+                }
+
+                Item {
+                    id: uploadSpinner
+                    visible: false
+                    anchors.top: parent.top
+                    anchors.left: parent.left
+                    width: 40
+                    height: 32
+
+                    Image {
+                        id: image
+                        width: 24
+                        height: 24
+                        source: "../../../images/Loading-Outer-Ring.png"
+                        RotationAnimation on rotation {
+                            loops: Animation.Infinite
+                            from: 0
+                            to: 360
+                            duration: 2000
+                        }
+                    }
+                    Image {
+                        width: 24
+                        height: 24
+                        source: "../../../images/Loading-Inner-H.png"
+                    }
+                    HifiControls.Label {
+                        id: uploadProgressLabel
+                        anchors.left: image.right
+                        anchors.leftMargin: 10
+                        anchors.verticalCenter: image.verticalCenter
+                        text: "In progress..."
+                        colorScheme: root.colorScheme
+                    }
+                }
+            }
+        }
+    }
+}
+
diff --git a/interface/resources/qml/hifi/tablet/TabletRoot.qml b/interface/resources/qml/hifi/tablet/TabletRoot.qml
index 8eaddfb601..99c9351993 100644
--- a/interface/resources/qml/hifi/tablet/TabletRoot.qml
+++ b/interface/resources/qml/hifi/tablet/TabletRoot.qml
@@ -2,6 +2,7 @@ import QtQuick 2.0
 import Hifi 1.0
 import QtQuick.Controls 1.4
 import "../../dialogs"
+
 Item {
     id: tabletRoot
     objectName: "tabletRoot"
@@ -29,7 +30,9 @@ Item {
         return openMessage;
     }
 
+    Component { id: customInputDialogBuilder; TabletCustomQueryDialog { } }
     function customInputDialog(properties) {
+        return customInputDialogBuilder.createObject(tabletRoot, properties);
     }
 
     Component { id: fileDialogBuilder; TabletFileDialog { } }
diff --git a/interface/resources/qml/styles-uit/HifiConstants.qml b/interface/resources/qml/styles-uit/HifiConstants.qml
index 031e80283e..38534d4243 100644
--- a/interface/resources/qml/styles-uit/HifiConstants.qml
+++ b/interface/resources/qml/styles-uit/HifiConstants.qml
@@ -159,6 +159,7 @@ Item {
         readonly property vector2d menuPadding: Qt.vector2d(14, 102)
         readonly property real scrollbarBackgroundWidth: 18
         readonly property real scrollbarHandleWidth: scrollbarBackgroundWidth - 2
+        readonly property real tabletMenuHeader: 90
     }
 
     Item {
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index be385a0cac..af5a93a905 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -499,6 +499,7 @@ bool setupEssentials(int& argc, char** argv) {
     DependencyManager::set<TabletScriptingInterface>();
     DependencyManager::set<ToolbarScriptingInterface>();
     DependencyManager::set<UserActivityLoggerScriptingInterface>();
+    DependencyManager::set<AssetMappingsScriptingInterface>();
 
 #if defined(Q_OS_MAC) || defined(Q_OS_WIN)
     DependencyManager::set<SpeechRecognizer>();
@@ -1972,7 +1973,7 @@ void Application::initializeUi() {
     rootContext->setContextProperty("Quat", new Quat());
     rootContext->setContextProperty("Vec3", new Vec3());
     rootContext->setContextProperty("Uuid", new ScriptUUID());
-    rootContext->setContextProperty("Assets", new AssetMappingsScriptingInterface());
+    rootContext->setContextProperty("Assets", DependencyManager::get<AssetMappingsScriptingInterface>().data());
 
     rootContext->setContextProperty("AvatarList", DependencyManager::get<AvatarManager>().data());
     rootContext->setContextProperty("Users", DependencyManager::get<UsersScriptingInterface>().data());
@@ -5838,7 +5839,21 @@ void Application::showAssetServerWidget(QString filePath) {
             emit uploadRequest(filePath);
         }
     };
-    DependencyManager::get<OffscreenUi>()->show(url, "AssetServer", startUpload);
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+
+    if (tablet->getToolbarMode()) {
+        DependencyManager::get<OffscreenUi>()->show(url, "AssetServer", startUpload);
+    } else {
+        QQuickItem* tabletRoot = tablet->getTabletRoot();
+        if (!tabletRoot && !isHMDMode()) {
+            DependencyManager::get<OffscreenUi>()->show(url, "AssetServer", startUpload);
+        } else {
+            static const QUrl url("../../hifi/dialogs/TabletAssetServer.qml");
+            tablet->pushOntoStack(url);
+        }
+    }
+
     startUpload(nullptr, nullptr);
 }
 
diff --git a/interface/src/main.cpp b/interface/src/main.cpp
index 39b37e3d19..b64541a9f4 100644
--- a/interface/src/main.cpp
+++ b/interface/src/main.cpp
@@ -29,6 +29,7 @@
 #include "UserActivityLogger.h"
 #include "MainWindow.h"
 #include <QtCore/QProcess>
+#include <QNetworkProxyFactory>
 
 #ifdef HAS_BUGSPLAT
 #include <BugSplat.h>
@@ -194,6 +195,7 @@ int main(int argc, const char* argv[]) {
     {
         Application app(argc, const_cast<char**>(argv), startupTime, runServer, serverContentPathOptionValue);
 
+        QNetworkProxyFactory::setUseSystemConfiguration(true);
         // If we failed the OpenGLVersion check, log it.
         if (override) {
             auto accountManager = DependencyManager::get<AccountManager>();
diff --git a/interface/src/scripting/AssetMappingsScriptingInterface.h b/interface/src/scripting/AssetMappingsScriptingInterface.h
index 459f01b512..b7fcea2491 100644
--- a/interface/src/scripting/AssetMappingsScriptingInterface.h
+++ b/interface/src/scripting/AssetMappingsScriptingInterface.h
@@ -20,6 +20,8 @@
 #include <AssetClient.h>
 #include <QSortFilterProxyModel>
 
+#include "DependencyManager.h"
+
 
 class AssetMappingModel : public QStandardItemModel {
     Q_OBJECT
@@ -39,10 +41,12 @@ private:
     QHash<QString, QStandardItem*> _pathToItemMap;
 };
 
-Q_DECLARE_METATYPE(AssetMappingModel*);
+Q_DECLARE_METATYPE(AssetMappingModel*)
 
-class AssetMappingsScriptingInterface : public QObject {
+class AssetMappingsScriptingInterface : public QObject, public Dependency {
     Q_OBJECT
+    SINGLETON_DEPENDENCY
+
     Q_PROPERTY(AssetMappingModel* mappingModel READ getAssetMappingModel CONSTANT)
     Q_PROPERTY(QAbstractProxyModel* proxyModel READ getProxyModel CONSTANT)
 public:
diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp
index b817960f0d..996615d234 100644
--- a/interface/src/ui/overlays/Web3DOverlay.cpp
+++ b/interface/src/ui/overlays/Web3DOverlay.cpp
@@ -37,9 +37,11 @@
 #include <AddressManager.h>
 #include "scripting/AccountScriptingInterface.h"
 #include "scripting/HMDScriptingInterface.h"
+#include "scripting/AssetMappingsScriptingInterface.h"
 #include <Preferences.h>
 #include <ScriptEngines.h>
 #include "FileDialogHelper.h"
+#include "avatar/AvatarManager.h"
 
 
 static const float DPI = 30.47f;
@@ -163,6 +165,10 @@ void Web3DOverlay::loadSourceURL() {
         _webSurface->getRootContext()->setContextProperty("HMD", DependencyManager::get<HMDScriptingInterface>().data());
         _webSurface->getRootContext()->setContextProperty("UserActivityLogger", DependencyManager::get<UserActivityLoggerScriptingInterface>().data());
         _webSurface->getRootContext()->setContextProperty("Preferences", DependencyManager::get<Preferences>().data());
+        _webSurface->getRootContext()->setContextProperty("Vec3", new Vec3());
+        _webSurface->getRootContext()->setContextProperty("Quat", new Quat());
+        _webSurface->getRootContext()->setContextProperty("MyAvatar", DependencyManager::get<AvatarManager>()->getMyAvatar().get());
+        _webSurface->getRootContext()->setContextProperty("Entities", DependencyManager::get<EntityScriptingInterface>().data());
 
         if (_webSurface->getRootItem() && _webSurface->getRootItem()->objectName() == "tabletRoot") {
             auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
@@ -173,6 +179,7 @@ void Web3DOverlay::loadSourceURL() {
             _webSurface->getRootContext()->setContextProperty("HMD", DependencyManager::get<HMDScriptingInterface>().data());
             _webSurface->getRootContext()->setContextProperty("fileDialogHelper", new FileDialogHelper());
             _webSurface->getRootContext()->setContextProperty("ScriptDiscoveryService", DependencyManager::get<ScriptEngines>().data());
+            _webSurface->getRootContext()->setContextProperty("Assets", DependencyManager::get<AssetMappingsScriptingInterface>().data());
             _webSurface->getRootContext()->setContextProperty("pathToFonts", "../../../");
             tabletScriptingInterface->setQmlTabletRoot("com.highfidelity.interface.tablet.system", _webSurface->getRootItem(), _webSurface.data());
 

From af4bdd5943a63689ffc4c1d046c7c7611c22b149 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Tue, 7 Mar 2017 09:57:02 +1300
Subject: [PATCH 071/247] Port Developer > Audio > Buffers to tablet

---
 .../hifi/tablet/TabletAudioPreferences.qml    | 42 +++++++++++++++++++
 interface/src/Menu.cpp                        |  3 +-
 2 files changed, 44 insertions(+), 1 deletion(-)
 create mode 100644 interface/resources/qml/hifi/tablet/TabletAudioPreferences.qml

diff --git a/interface/resources/qml/hifi/tablet/TabletAudioPreferences.qml b/interface/resources/qml/hifi/tablet/TabletAudioPreferences.qml
new file mode 100644
index 0000000000..efb7b5d50d
--- /dev/null
+++ b/interface/resources/qml/hifi/tablet/TabletAudioPreferences.qml
@@ -0,0 +1,42 @@
+//
+//  TabletAudioPreferences.qml
+//
+//  Created by Davd Rowe on 7 Mar 2017.
+//  Copyright 2017 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
+//
+
+import QtQuick 2.5
+import "tabletWindows"
+import "../../dialogs"
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import QtGraphicalEffects 1.0
+
+StackView {
+    id: profileRoot
+    initialItem: root
+    objectName: "stack"
+
+    property var eventBridge;
+    signal sendToScript(var message);
+
+    function pushSource(path) {
+        editRoot.push(Qt.reslovedUrl(path));
+    }
+
+    function popSource() {
+
+    }
+
+    TabletPreferencesDialog {
+        id: root
+        property string title: "Audio Settings"
+        objectName: "TabletAudioPreferences"
+        width: parent.width
+        height: parent.height
+        showCategories: ["Audio"]
+    }
+}
diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp
index 92da1b0d83..3dd87dc0f8 100644
--- a/interface/src/Menu.cpp
+++ b/interface/src/Menu.cpp
@@ -616,7 +616,8 @@ Menu::Menu() {
 
     action = addActionToQMenuAndActionHash(audioDebugMenu, "Buffers...");
     connect(action, &QAction::triggered, [] {
-        DependencyManager::get<OffscreenUi>()->toggle(QString("hifi/dialogs/AudioPreferencesDialog.qml"), "AudioPreferencesDialog");
+        qApp->showDialog(QString("hifi/dialogs/AudioPreferencesDialog.qml"),
+            QString("../../hifi/tablet/TabletAudioPreferences.qml"), "AudioPreferencesDialog");
     });
 
     addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioNoiseReduction, 0, true,

From 0a36ebc5a0a3e3c36e069a57904dd78a8ef4f6b4 Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Mon, 6 Mar 2017 22:11:46 +0100
Subject: [PATCH 072/247] Remove non relevant changes

---
 CMakeLists.txt           | 11 -----------
 interface/CMakeLists.txt | 11 -----------
 interface/src/main.cpp   |  2 --
 3 files changed, 24 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index d7ea297637..1ab7e55343 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -201,17 +201,6 @@ set(HF_CMAKE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
 set(MACRO_DIR "${HF_CMAKE_DIR}/macros")
 set(EXTERNAL_PROJECT_DIR "${HF_CMAKE_DIR}/externals")
 
-file(GLOB_RECURSE JS_SRC scripts/*.js)
-add_custom_target(js SOURCES ${JS_SRC})
-
-if (UNIX)
-   install(
-   DIRECTORY "${CMAKE_SOURCE_DIR}/scripts"
-   DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/interface
-   COMPONENT ${CLIENT_COMPONENT}
-   )
-endif()
-
 file(GLOB HIFI_CUSTOM_MACROS "cmake/macros/*.cmake")
 foreach(CUSTOM_MACRO ${HIFI_CUSTOM_MACROS})
   include(${CUSTOM_MACRO})
diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt
index 0ae7539448..868a2cf933 100644
--- a/interface/CMakeLists.txt
+++ b/interface/CMakeLists.txt
@@ -54,17 +54,6 @@ find_package(
   WebChannel WebSockets
 )
 
-file(GLOB_RECURSE QML_SRC resources/qml/*.qml resources/qml/*.js)
-add_custom_target(qml SOURCES ${QML_SRC})
-
-if (UNIX)
-  install(
-  DIRECTORY "${CMAKE_SOURCE_DIR}/interface/resources/qml"
-  DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/resources
-  COMPONENT ${CLIENT_COMPONENT}
-  )
-endif()
-
 # grab the ui files in resources/ui
 file (GLOB_RECURSE QT_UI_FILES ui/*.ui)
 source_group("UI Files" FILES ${QT_UI_FILES})
diff --git a/interface/src/main.cpp b/interface/src/main.cpp
index b64541a9f4..39b37e3d19 100644
--- a/interface/src/main.cpp
+++ b/interface/src/main.cpp
@@ -29,7 +29,6 @@
 #include "UserActivityLogger.h"
 #include "MainWindow.h"
 #include <QtCore/QProcess>
-#include <QNetworkProxyFactory>
 
 #ifdef HAS_BUGSPLAT
 #include <BugSplat.h>
@@ -195,7 +194,6 @@ int main(int argc, const char* argv[]) {
     {
         Application app(argc, const_cast<char**>(argv), startupTime, runServer, serverContentPathOptionValue);
 
-        QNetworkProxyFactory::setUseSystemConfiguration(true);
         // If we failed the OpenGLVersion check, log it.
         if (override) {
             auto accountManager = DependencyManager::get<AccountManager>();

From 5156564f044813f1251e8c6dc6e212afc0f9c465 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Tue, 7 Mar 2017 00:53:36 +0000
Subject: [PATCH 073/247] cant call gotohomescreen when tablet is closed

---
 libraries/script-engine/src/TabletScriptingInterface.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libraries/script-engine/src/TabletScriptingInterface.cpp b/libraries/script-engine/src/TabletScriptingInterface.cpp
index 32bd7f422e..b90b971193 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.cpp
+++ b/libraries/script-engine/src/TabletScriptingInterface.cpp
@@ -335,7 +335,7 @@ void TabletProxy::loadQMLSource(const QVariant& path) {
 }
 
 void TabletProxy::gotoHomeScreen() {
-    if (_state != State::Home) {
+    if (_state != State::Home || _state != State::Uninitialized) {
         if (!_toolbarMode && _qmlTabletRoot) {
             auto loader = _qmlTabletRoot->findChild<QQuickItem*>("loader");
             QObject::connect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToHomeScreen()), Qt::DirectConnection);

From fb1ff5be8941833ad47dcb2028db31c1820ced30 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Tue, 7 Mar 2017 17:02:29 +1300
Subject: [PATCH 074/247] Port Developer > Network > Networking to tablet

---
 .../tablet/TabletNetworkingPreferences.qml    | 42 +++++++++++++++++++
 interface/src/Menu.cpp                        |  4 +-
 2 files changed, 44 insertions(+), 2 deletions(-)
 create mode 100644 interface/resources/qml/hifi/tablet/TabletNetworkingPreferences.qml

diff --git a/interface/resources/qml/hifi/tablet/TabletNetworkingPreferences.qml b/interface/resources/qml/hifi/tablet/TabletNetworkingPreferences.qml
new file mode 100644
index 0000000000..9b12d3c69e
--- /dev/null
+++ b/interface/resources/qml/hifi/tablet/TabletNetworkingPreferences.qml
@@ -0,0 +1,42 @@
+//
+//  TabletNetworkingPreferences.qml
+//
+//  Created by Davd Rowe on 7 Mar 2017.
+//  Copyright 2017 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
+//
+
+import QtQuick 2.5
+import "tabletWindows"
+import "../../dialogs"
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import QtGraphicalEffects 1.0
+
+StackView {
+    id: profileRoot
+    initialItem: root
+    objectName: "stack"
+
+    property var eventBridge;
+    signal sendToScript(var message);
+
+    function pushSource(path) {
+        editRoot.push(Qt.reslovedUrl(path));
+    }
+
+    function popSource() {
+
+    }
+
+    TabletPreferencesDialog {
+        id: root
+        property string title: "Networking Settings"
+        objectName: "NetworkingPreferences"
+        width: parent.width
+        height: parent.height
+        showCategories: ["Networking"]
+    }
+}
diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp
index 3dd87dc0f8..3ceb7bcbba 100644
--- a/interface/src/Menu.cpp
+++ b/interface/src/Menu.cpp
@@ -552,8 +552,8 @@ Menu::Menu() {
     MenuWrapper* networkMenu = developerMenu->addMenu("Network");
     action = addActionToQMenuAndActionHash(networkMenu, MenuOption::Networking);
     connect(action, &QAction::triggered, [] {
-        DependencyManager::get<OffscreenUi>()->toggle(QUrl("hifi/dialogs/NetworkingPreferencesDialog.qml"),
-                                                      "NetworkingPreferencesDialog");
+        qApp->showDialog(QString("hifi/dialogs/NetworkingPreferencesDialog.qml"),
+            QString("../../hifi/tablet/TabletNetworkingPreferences.qml"), "NetworkingPreferencesDialog");
     });
     addActionToQMenuAndActionHash(networkMenu, MenuOption::ReloadContent, 0, qApp, SLOT(reloadResourceCaches()));
     addCheckableActionToQMenuAndActionHash(networkMenu,

From b0ad9a8110b8206115700e30ddd48d26959218a7 Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidelity.io>
Date: Tue, 7 Mar 2017 10:03:38 -0800
Subject: [PATCH 075/247] Bug fix for potential crash when getting
 DebugDraw::instance

---
 interface/src/Application.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index ba63f4f064..12ee2d09b3 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -608,6 +608,8 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
         }
     }
 
+    // make sure the debug draw singleton is initialized on the main thread.
+    DebugDraw::getInstance().removeMarker("");
 
     _runningMarker.startRunningMarker();
 

From 1b8a624edb81e8f62e2cb257b74e588653daaab2 Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidelity.io>
Date: Tue, 7 Mar 2017 16:07:30 -0800
Subject: [PATCH 076/247] Fix for potential crash due to DebugDraw data race.

---
 libraries/render-utils/src/AnimDebugDraw.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/libraries/render-utils/src/AnimDebugDraw.cpp b/libraries/render-utils/src/AnimDebugDraw.cpp
index c8746d5c60..6066385847 100644
--- a/libraries/render-utils/src/AnimDebugDraw.cpp
+++ b/libraries/render-utils/src/AnimDebugDraw.cpp
@@ -346,7 +346,9 @@ void AnimDebugDraw::update() {
         numVerts += (int)markerMap.size() * VERTICES_PER_BONE;
         auto myAvatarMarkerMap = DebugDraw::getInstance().getMyAvatarMarkerMap();
         numVerts += (int)myAvatarMarkerMap.size() * VERTICES_PER_BONE;
-        numVerts += (int)DebugDraw::getInstance().getRays().size() * VERTICES_PER_RAY;
+        auto rays = DebugDraw::getInstance().getRays();
+        DebugDraw::getInstance().clearRays();
+        numVerts += (int)rays.size() * VERTICES_PER_RAY;
 
         // allocate verts!
         std::vector<AnimDebugDrawData::Vertex> vertices;
@@ -398,10 +400,9 @@ void AnimDebugDraw::update() {
         }
 
         // draw rays from shared DebugDraw singleton
-        for (auto& iter : DebugDraw::getInstance().getRays()) {
+        for (auto& iter : rays) {
             addLine(std::get<0>(iter), std::get<1>(iter), std::get<2>(iter), v);
         }
-        DebugDraw::getInstance().clearRays();
 
         data._vertexBuffer->resize(sizeof(AnimDebugDrawData::Vertex) * numVerts);
         data._vertexBuffer->setSubData<AnimDebugDrawData::Vertex>(0, vertices);

From c7cd0fdc3821ac932ad4e86e02c2797c5800182c Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidelity.io>
Date: Tue, 7 Mar 2017 18:13:42 -0800
Subject: [PATCH 077/247] Add DebugDraw to .eslintrc config file

---
 .eslintrc.js | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.eslintrc.js b/.eslintrc.js
index c708decc51..9635142d1a 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -17,6 +17,7 @@ module.exports = {
         "Clipboard": false,
         "Controller": false,
         "DialogsManager": false,
+        "DebugDraw": false,
         "Entities": false,
         "FaceTracker": false,
         "GlobalServices": false,

From 836c701cb3113572193fcbe735d2c21ed58f7921 Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidelity.io>
Date: Tue, 7 Mar 2017 18:19:32 -0800
Subject: [PATCH 078/247] More accurate and responsive stylus and finger
 touching.

The algorithm used to detect when and where the stylus or finger is touching the tablet has been improved.

* hovering the finger/stylus over the surface of the tablet should cause buttons to highlight.
* flicking or using the stylus like a drum stick, should more accurately click buttons on the tablet.
* stabbing the tablet quickly, should also more accurately trigger button presses.
* moving the hand/stylus from behind the tablet should be less likely to cause press events.
---
 .../system/controllers/handControllerGrab.js  | 861 ++++++++++--------
 scripts/system/libraries/WebTablet.js         |   3 +-
 2 files changed, 491 insertions(+), 373 deletions(-)

diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index aa0a3d9abd..d966279e51 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -71,12 +71,6 @@ var EQUIP_SPHERE_SCALE_FACTOR = 0.65;
 var WEB_DISPLAY_STYLUS_DISTANCE = 0.5;
 var WEB_STYLUS_LENGTH = 0.2;
 var WEB_TOUCH_Y_OFFSET = 0.05; // how far forward (or back with a negative number) to slide stylus in hand
-var WEB_TOUCH_TOO_CLOSE = 0.03; // if the stylus is pushed far though the web surface, don't consider it touching
-var WEB_TOUCH_Y_TOUCH_DEADZONE_SIZE = 0.01;
-
-var FINGER_TOUCH_Y_OFFSET = -0.02;
-var FINGER_TOUCH_MIN = -0.01 - FINGER_TOUCH_Y_OFFSET;
-var FINGER_TOUCH_MAX = 0.01 - FINGER_TOUCH_Y_OFFSET;
 
 //
 // distant manipulation
@@ -137,7 +131,6 @@ var GRAB_POINT_SPHERE_ALPHA = 0.85;
 //
 // other constants
 //
-
 var RIGHT_HAND = 1;
 var LEFT_HAND = 0;
 
@@ -214,10 +207,9 @@ var STATE_NEAR_GRABBING = 4;
 var STATE_NEAR_TRIGGER = 5;
 var STATE_FAR_TRIGGER = 6;
 var STATE_HOLD = 7;
-var STATE_ENTITY_STYLUS_TOUCHING = 8;
-var STATE_ENTITY_LASER_TOUCHING = 9;
-var STATE_OVERLAY_STYLUS_TOUCHING = 10;
-var STATE_OVERLAY_LASER_TOUCHING = 11;
+var STATE_ENTITY_LASER_TOUCHING = 8;
+var STATE_OVERLAY_LASER_TOUCHING = 9;
+var STATE_STYLUS_TOUCHING = 10;
 
 var CONTROLLER_STATE_MACHINE = {};
 
@@ -261,29 +253,23 @@ CONTROLLER_STATE_MACHINE[STATE_FAR_TRIGGER] = {
     enterMethod: "farTriggerEnter",
     updateMethod: "farTrigger"
 };
-CONTROLLER_STATE_MACHINE[STATE_ENTITY_STYLUS_TOUCHING] = {
-    name: "entityStylusTouching",
-    enterMethod: "entityTouchingEnter",
-    exitMethod: "entityTouchingExit",
-    updateMethod: "entityTouching"
-};
 CONTROLLER_STATE_MACHINE[STATE_ENTITY_LASER_TOUCHING] = {
     name: "entityLaserTouching",
-    enterMethod: "entityTouchingEnter",
-    exitMethod: "entityTouchingExit",
-    updateMethod: "entityTouching"
-};
-CONTROLLER_STATE_MACHINE[STATE_OVERLAY_STYLUS_TOUCHING] = {
-    name: "overlayStylusTouching",
-    enterMethod: "overlayTouchingEnter",
-    exitMethod: "overlayTouchingExit",
-    updateMethod: "overlayTouching"
+    enterMethod: "entityLaserTouchingEnter",
+    exitMethod: "entityLaserTouchingExit",
+    updateMethod: "entityLaserTouching"
 };
 CONTROLLER_STATE_MACHINE[STATE_OVERLAY_LASER_TOUCHING] = {
     name: "overlayLaserTouching",
-    enterMethod: "overlayTouchingEnter",
-    exitMethod: "overlayTouchingExit",
-    updateMethod: "overlayTouching"
+    enterMethod: "overlayLaserTouchingEnter",
+    exitMethod: "overlayLaserTouchingExit",
+    updateMethod: "overlayLaserTouching"
+};
+CONTROLLER_STATE_MACHINE[STATE_STYLUS_TOUCHING] = {
+    name: "stylusTouching",
+    enterMethod: "stylusTouchingEnter",
+    exitMethod: "stylusTouchingExit",
+    updateMethod: "stylusTouching"
 };
 
 function getFingerWorldLocation(hand) {
@@ -295,13 +281,8 @@ function getFingerWorldLocation(hand) {
     var worldFingerRotation = Quat.multiply(MyAvatar.orientation, fingerRotation);
     var worldFingerPosition = Vec3.sum(MyAvatar.position, Vec3.multiplyQbyV(MyAvatar.orientation, fingerPosition));
 
-    // local y offset.
-    var localYOffset = Vec3.multiplyQbyV(worldFingerRotation, {x: 0, y: FINGER_TOUCH_Y_OFFSET, z: 0});
-
-    var offsetWorldFingerPosition = Vec3.sum(worldFingerPosition, localYOffset);
-
     return {
-        position: offsetWorldFingerPosition,
+        position: worldFingerPosition,
         orientation: worldFingerRotation,
         rotation: worldFingerRotation,
         valid: true
@@ -567,6 +548,122 @@ function restore2DMode() {
     }
 }
 
+function stylusTargetHasKeyboardFocus(stylusTarget) {
+    if (stylusTarget.entityID && stylusTarget.entityID !== NULL_UUID) {
+        return Entities.keyboardFocusEntity === stylusTarget.entityID;
+    } else if (stylusTarget.overlayID && stylusTarget.overlayID !== NULL_UUID) {
+        return Overlays.keyboardFocusOverlay === stylusTarget.overlayID;
+    }
+}
+
+function setKeyboardFocusOnStylusTarget(stylusTarget) {
+    if (stylusTarget.entityID && stylusTarget.entityID !== NULL_UUID && Entities.wantsHandControllerPointerEvents(stylusTarget.entityID)) {
+        Overlays.keyboardFocusOverlay = NULL_UUID;
+        Entities.keyboardFocusEntity = stylusTarget.entityID;
+    } else if (stylusTarget.overlayID && stylusTarget.overlayID !== NULL_UUID) {
+        Overlays.keyboardFocusOverlay = stylusTarget.overlayID;
+        Entities.keyboardFocusEntity = NULL_UUID;
+    }
+}
+
+function sendHoverEnterEventToStylusTarget(hand, stylusTarget) {
+    var pointerEvent = {
+        type: "Move",
+        id: hand + 1, // 0 is reserved for hardware mouse
+        pos2D: stylusTarget.position2D,
+        pos3D: stylusTarget.position,
+        normal: stylusTarget.normal,
+        direction: Vec3.subtract(ZERO_VEC, stylusTarget.normal),
+        button: "None"
+    };
+
+    if (stylusTarget.entityID && stylusTarget.entityID !== NULL_UUID) {
+        Entities.sendHoverEnterEntity(stylusTarget.entityID, pointerEvent);
+    } else if (stylusTarget.overlayID && stylusTarget.overlayID !== NULL_UUID) {
+        Overlays.sendHoverEnterOverlay(stylusTarget.overlayID, pointerEvent);
+    }
+}
+
+function sendHoverOverEventToStylusTarget(hand, stylusTarget) {
+    var pointerEvent = {
+        type: "Move",
+        id: hand + 1, // 0 is reserved for hardware mouse
+        pos2D: stylusTarget.position2D,
+        pos3D: stylusTarget.position,
+        normal: stylusTarget.normal,
+        direction: Vec3.subtract(ZERO_VEC, stylusTarget.normal),
+        button: "None"
+    };
+
+    if (stylusTarget.entityID && stylusTarget.entityID !== NULL_UUID) {
+        Entities.sendMouseMoveOnEntity(stylusTarget.entityID, pointerEvent);
+        Entities.sendHoverOverEntity(stylusTarget.entityID, pointerEvent);
+    } else if (stylusTarget.overlayID && stylusTarget.overlayID !== NULL_UUID) {
+        Overlays.sendMouseMoveOnOverlay(stylusTarget.overlayID, pointerEvent);
+        Overlays.sendHoverOverOverlay(stylusTarget.overlayID, pointerEvent);
+    }
+}
+
+function sendTouchStartEventToStylusTarget(hand, stylusTarget) {
+    var pointerEvent = {
+        type: "Press",
+        id: hand + 1, // 0 is reserved for hardware mouse
+        pos2D: stylusTarget.position2D,
+        pos3D: stylusTarget.position,
+        normal: stylusTarget.normal,
+        direction: Vec3.subtract(ZERO_VEC, stylusTarget.normal),
+        button: "Primary",
+        isPrimaryHeld: true
+    };
+
+    if (stylusTarget.entityID && stylusTarget.entityID !== NULL_UUID) {
+        Entities.sendMousePressOnEntity(stylusTarget.entityID, pointerEvent);
+        Entities.sendClickDownOnEntity(stylusTarget.entityID, pointerEvent);
+    } else if (stylusTarget.overlayID && stylusTarget.overlayID !== NULL_UUID) {
+        Overlays.sendMousePressOnOverlay(stylusTarget.overlayID, pointerEvent);
+    }
+}
+
+function sendTouchEndEventToStylusTarget(hand, stylusTarget) {
+    var pointerEvent = {
+        type: "Release",
+        id: hand + 1, // 0 is reserved for hardware mouse
+        pos2D: stylusTarget.position2D,
+        pos3D: stylusTarget.position,
+        normal: stylusTarget.normal,
+        direction: Vec3.subtract(ZERO_VEC, stylusTarget.normal),
+        button: "Primary"
+    };
+
+    if (stylusTarget.entityID && stylusTarget.entityID !== NULL_UUID) {
+        Entities.sendMouseReleaseOnEntity(stylusTarget.entityID, pointerEvent);
+        Entities.sendClickReleaseOnEntity(stylusTarget.entityID, pointerEvent);
+        Entities.sendHoverLeaveEntity(stylusTarget.entityID, pointerEvent);
+    } else if (stylusTarget.overlayID && stylusTarget.overlayID !== NULL_UUID) {
+        Overlays.sendMouseReleaseOnOverlay(stylusTarget.overlayID, pointerEvent);
+    }
+}
+
+function sendTouchMoveEventToStylusTarget(hand, stylusTarget) {
+    var pointerEvent = {
+        type: "Move",
+        id: hand + 1, // 0 is reserved for hardware mouse
+        pos2D: stylusTarget.position2D,
+        pos3D: stylusTarget.position,
+        normal: stylusTarget.normal,
+        direction: Vec3.subtract(ZERO_VEC, stylusTarget.normal),
+        button: "Primary",
+        isPrimaryHeld: true
+    };
+
+    if (stylusTarget.entityID && stylusTarget.entityID !== NULL_UUID) {
+        Entities.sendMouseMoveOnEntity(stylusTarget.entityID, pointerEvent);
+        Entities.sendHoldingClickOnEntity(stylusTarget.entityID, pointerEvent);
+    } else if (stylusTarget.overlayID && stylusTarget.overlayID !== NULL_UUID) {
+        Overlays.sendMouseMoveOnOverlay(stylusTarget.overlayID, pointerEvent);
+    }
+}
+
 // EntityPropertiesCache is a helper class that contains a cache of entity properties.
 // the hope is to prevent excess calls to Entity.getEntityProperties()
 //
@@ -888,6 +985,16 @@ function MyController(hand) {
 
     this.useFingerInsteadOfStylus = false;
 
+    // initialize stylus tip
+    var DEFAULT_STYLUS_TIP = {
+        position: {x: 0, y: 0, z: 0},
+        orientation: {x: 0, y: 0, z: 0, w: 0},
+        rotation: {x: 0, y: 0, z: 0, w: 0},
+        velocity: {x: 0, y: 0, z: 0},
+        valid: false
+    };
+    this.stylusTip = DEFAULT_STYLUS_TIP;
+
     var _this = this;
 
     var suppressedIn2D = [STATE_OFF, STATE_SEARCHING];
@@ -897,10 +1004,36 @@ function MyController(hand) {
         return (-1 !== suppressedIn2D.indexOf(this.state)) && isIn2DMode();
     };
 
+    this.updateStylusTip = function() {
+        if (this.useFingerInsteadOfStylus) {
+            this.stylusTip = getFingerWorldLocation(this.hand);
+        } else {
+            this.stylusTip = getControllerWorldLocation(this.handToController(), true);
+
+            // translate tip forward according to constant.
+            var TIP_OFFSET = {x: 0, y: WEB_STYLUS_LENGTH - WEB_TOUCH_Y_OFFSET, z: 0};
+            this.stylusTip.position = Vec3.sum(this.stylusTip.position, Vec3.multiplyQbyV(this.stylusTip.orientation, TIP_OFFSET));
+        }
+
+        // compute tip velocity from hand controller motion, it is more accurate then computing it from previous positions.
+        var pose = Controller.getPoseValue(this.handToController());
+        if (pose.valid) {
+            var worldControllerPos = Vec3.sum(MyAvatar.position, Vec3.multiplyQbyV(MyAvatar.orientation, pose.translation));
+            var worldControllerLinearVel = Vec3.multiplyQbyV(MyAvatar.orientation, pose.velocity);
+            var worldControllerAngularVel = Vec3.multiplyQbyV(MyAvatar.orientation, pose.angularVelocity);
+            var tipVelocity = Vec3.sum(worldControllerLinearVel, Vec3.cross(worldControllerAngularVel, Vec3.subtract(this.stylusTip.position, worldControllerPos)));
+            this.stylusTip.velocity = tipVelocity;
+        } else {
+            this.stylusTip.velocity = {x: 0, y: 0, z: 0};
+        }
+    };
+
     this.update = function(deltaTime, timestamp) {
         this.updateSmoothedTrigger();
         this.maybeScaleMyAvatar();
 
+        this.updateStylusTip();
+
         var DEFAULT_USE_FINGER_AS_STYLUS = false;
         var USE_FINGER_AS_STYLUS = Settings.getValue("preferAvatarFingerOverStylus");
         if (USE_FINGER_AS_STYLUS === "") {
@@ -916,10 +1049,7 @@ function MyController(hand) {
 
             // Most hand input is disabled, because we are interacting with the 2d hud.
             // However, we still should check for collisions of the stylus with the web overlay.
-
-            var controllerLocation = getControllerWorldLocation(this.handToController(), true);
-            this.processStylus(controllerLocation.position);
-
+            this.processStylus();
             this.turnOffVisualizations();
             return;
         }
@@ -949,7 +1079,7 @@ function MyController(hand) {
         if ((isInEditMode() && this.grabbedThingID !== HMD.tabletID) &&
             (newState !== STATE_OFF &&
              newState !== STATE_SEARCHING &&
-             newState !== STATE_OVERLAY_STYLUS_TOUCHING &&
+             newState !== STATE_STYLUS_TOUCHING &&
              newState !== STATE_OVERLAY_LASER_TOUCHING)) {
             return;
         }
@@ -1084,10 +1214,6 @@ function MyController(hand) {
         }
         Overlays.deleteOverlay(this.stylus);
         this.stylus = null;
-        if (this.stylusTip) {
-            Overlays.deleteOverlay(this.stylusTip);
-            this.stylusTip = null;
-        }
     };
 
     this.overlayLineOn = function(closePoint, farPoint, color, farParentID) {
@@ -1291,66 +1417,250 @@ function MyController(hand) {
         return _this.rawThumbValue < THUMB_ON_VALUE;
     };
 
-    this.processStylus = function(worldHandPosition) {
+    // returns object with the following fields
+    // * entityID - if non null, this entityID is the closest to the stylusTip.
+    // * overlayID - if non null, this overlayID is the closest to the stylusTip.
+    // * distance - distance in meters from the stylus to the surface of the stylusTarget.
+    // * position - position on the surface of the stylusTarget that is nearest to the stylusTip. (world space)
+    // * position2D - postion on surface of the stylusTarget ready for use for pointerEvent.pos2D
+    // * normal - normal vector of the surface. (world space)
+    // * valid - if false, all other fields are invalid.
+    this.calculateNearestStylusTargetFromCandidates = function (candidates, cullSide) {
 
-        var performRayTest = false;
-        if (this.useFingerInsteadOfStylus) {
-            this.hideStylus();
-            performRayTest = true;
-        } else {
-            var i;
+        // now attempt to find the nearest stylusTarget.
 
-            // see if the hand is near a tablet or web-entity
-            var candidateEntities = Entities.findEntities(worldHandPosition, WEB_DISPLAY_STYLUS_DISTANCE);
-            entityPropertiesCache.addEntities(candidateEntities);
-            for (i = 0; i < candidateEntities.length; i++) {
-                var props = entityPropertiesCache.getProps(candidateEntities[i]);
-                if (props && (props.type == "Web" || this.isTablet(candidateEntities[i]))) {
-                    performRayTest = true;
-                    break;
+        var nearestStylusTarget = {
+            entityID: null,
+            overlayID: null,
+            distance: WEB_DISPLAY_STYLUS_DISTANCE,
+            position: {x: 0, y: 0, z: 0},
+            normalizedPosition: {x: 0, y: 0, z: 0},
+            normal: {x: 0, y: 0, z: 1},
+            valid: false
+        };
+
+        if (candidates.entities.length > 0 || candidates.overlays.length > 0) {
+            var i, props, entityID, normal, distance, position, invRot, localPos, invDimensions, normalizedPos, position2D;
+            for (i = 0; i < candidates.entities.length; i++) {
+                entityID = candidates.entities[i];
+                props = entityPropertiesCache.getProps(entityID);
+
+                // entity could have been deleted.
+                if (props === undefined) {
+                    continue;
                 }
-            }
 
-            if (!performRayTest) {
-                var candidateOverlays = Overlays.findOverlays(worldHandPosition, WEB_DISPLAY_STYLUS_DISTANCE);
-                for (i = 0; i < candidateOverlays.length; i++) {
-                    if (this.isTablet(candidateOverlays[i])) {
-                        performRayTest = true;
-                        break;
+                normal = Vec3.multiplyQbyV(props.rotation, {x: 0, y: 0, z: 1});
+                Vec3.multiplyQbyV(props.rotation, {x: 0, y: 1, z: 0});
+                distance = Vec3.dot(Vec3.subtract(this.stylusTip.position, props.position), normal);
+                position = Vec3.subtract(this.stylusTip.position, Vec3.multiply(normal, distance));
+
+                if (distance < nearestStylusTarget.distance) {
+
+                    invRot = Quat.inverse(props.rotation);
+                    localPos = Vec3.multiplyQbyV(invRot, Vec3.subtract(position, props.position));
+                    invDimensions = { x: 1 / props.dimensions.x, y: 1 / props.dimensions.y, z: 1 / props.dimensions.z };
+                    normalizedPos = Vec3.sum(Vec3.multiplyVbyV(localPos, invDimensions), props.registrationPoint);
+
+                    if (normalizedPos.x >= 0 && normalizedPos.y >= 0 && normalizedPos.x <= 1 && normalizedPos.y <= 1) {
+                        position2D = { x: normalizedPos.x * props.dimensions.x, y: (1 - normalizedPos.y) * props.dimensions.y }; // flip y-axis
+                        nearestStylusTarget = {
+                            entityID: entityID,
+                            overlayID: null,
+                            distance: distance,
+                            position: position,
+                            position2D: position2D,
+                            normal: normal,
+                            valid: true
+                        };
                     }
                 }
             }
 
-            if (performRayTest) {
-                this.showStylus();
-            } else {
-                this.hideStylus();
+            for (i = 0; i < candidates.overlays.length; i++) {
+                var overlayID = candidates.overlays[i];
+                var overlayPosition = Overlays.getProperty(overlayID, "position");
+
+                // overlay could have been deleted.
+                if (overlayPosition === undefined) {
+                    continue;
+                }
+
+                var overlayRotation = Overlays.getProperty(overlayID, "rotation");
+                normal = Vec3.multiplyQbyV(overlayRotation, {x: 0, y: 0, z: 1});
+                distance = Vec3.dot(Vec3.subtract(this.stylusTip.position, overlayPosition), normal);
+                position = Vec3.subtract(this.stylusTip.position, Vec3.multiply(normal, distance));
+
+                if (distance < nearestStylusTarget.distance) {
+
+                    invRot = Quat.inverse(overlayRotation);
+                    localPos = Vec3.multiplyQbyV(invRot, Vec3.subtract(position, overlayPosition));
+
+                    var dpi = Overlays.getProperty(overlayID, "dpi");
+                    var dimensions;
+                    if (dpi) {
+                        // Calculate physical dimensions for web3d overlay from resolution and dpi; "dimensions" property is used as a scale.
+                        var resolution = Overlays.getProperty(overlayID, "resolution");
+                        resolution.z = 1;  // Circumvent divide-by-zero.
+                        var scale = Overlays.getProperty(overlayID, "dimensions");
+                        scale.z = 0.01;    // overlay dimensions are 2D, not 3D.
+                        dimensions = Vec3.multiplyVbyV(Vec3.multiply(resolution, INCHES_TO_METERS / dpi), scale);
+                    } else {
+                        dimensions = Overlays.getProperty(overlayID, "dimensions");
+                        if (!dimensions.z) {
+                            dimensions.z = 0.01;    // sometimes overlay dimensions are 2D, not 3D.
+                        }
+                    }
+
+                    invDimensions = { x: 1 / dimensions.x, y: 1 / dimensions.y, z: 1 / dimensions.z };
+                    normalizedPos = Vec3.sum(Vec3.multiplyVbyV(localPos, invDimensions), DEFAULT_REGISTRATION_POINT);
+
+                    if (!cullSide || (normalizedPos.x >= 0 && normalizedPos.y >= 0 && normalizedPos.x <= 1 && normalizedPos.y <= 1)) {
+                        position2D = { x: normalizedPos.x * dimensions.x, y: (1 - normalizedPos.y) * dimensions.y }; // flip y-axis
+                        nearestStylusTarget = {
+                            entityID: null,
+                            overlayID: overlayID,
+                            distance: distance,
+                            position: position,
+                            position2D: position2D,
+                            normal: normal,
+                            valid: true
+                        };
+                    }
+                }
             }
         }
 
-        if (performRayTest) {
-            var rayPickInfo = this.calcRayPickInfo(this.hand, this.useFingerInsteadOfStylus);
-            var max, min;
-            if (this.useFingerInsteadOfStylus) {
-                max = FINGER_TOUCH_MAX;
-                min = FINGER_TOUCH_MIN;
-            } else {
-                max = WEB_STYLUS_LENGTH / 2.0 + WEB_TOUCH_Y_OFFSET;
-                min = WEB_STYLUS_LENGTH / 2.0 + WEB_TOUCH_TOO_CLOSE;
-            }
+        return nearestStylusTarget;
+    };
 
-            if (rayPickInfo.distance < max && rayPickInfo.distance > min) {
-                this.handleStylusOnHomeButton(rayPickInfo);
-                if (this.handleStylusOnWebEntity(rayPickInfo)) {
-                    return;
-                }
-                if (this.handleStylusOnWebOverlay(rayPickInfo)) {
-                    return;
-                }
-            } else {
-                this.homeButtonTouched = false;
+    this.stealTouchFocus = function(stylusTarget) {
+        // send hover events to target
+        // record the entity or overlay we are hovering over.
+        if ((stylusTarget.entityID === this.getOtherHandController().hoverEntity) ||
+            (stylusTarget.overlayID === this.getOtherHandController().hoverOverlay)) {
+            this.getOtherHandController().relinquishTouchFocus();
+        }
+        this.requestTouchFocus(stylusTarget);
+    };
+
+    this.requestTouchFocus = function(stylusTarget) {
+
+        // send hover events to target if we can.
+        // record the entity or overlay we are hovering over.
+        if (stylusTarget.entityID && stylusTarget.entityID !== this.hoverEntity && stylusTarget.entityID !== this.getOtherHandController().hoverEntity) {
+            this.hoverEntity = stylusTarget.entityID;
+            sendHoverEnterEventToStylusTarget(this.hand, stylusTarget);
+        } else if (stylusTarget.overlayID && stylusTarget.overlayID !== this.hoverOverlay && stylusTarget.overlayID !== this.getOtherHandController().hoverOverlay) {
+            this.hoverOverlay = stylusTarget.overlayID;
+            sendHoverEnterEventToStylusTarget(this.hand, stylusTarget);
+        }
+    };
+
+    this.hasTouchFocus = function(stylusTarget) {
+        return ((stylusTarget.entityID && stylusTarget.entityID === this.hoverEntity) ||
+                (stylusTarget.overlayID && stylusTarget.overlayID === this.hoverOverlay));
+    };
+
+    this.relinquishTouchFocus = function() {
+
+        // send hover leave event.
+        var pointerEvent = { type: "Move", id: this.hand + 1 };
+        if (this.hoverEntity) {
+            Entities.sendHoverLeaveEntity(this.hoverEntity, pointerEvent);
+            this.hoverEntity = null;
+        } else if (this.hoverOverlay) {
+            Overlays.sendMouseMoveOnOverlay(this.hoverOverlay, pointerEvent);
+            Overlays.sendHoverOverOverlay(this.hoverOverlay, pointerEvent);
+            Overlays.sendHoverLeaveOverlay(this.hoverOverlay, pointerEvent);
+            this.hoverOverlay = null;
+        }
+    };
+
+    this.processStylus = function() {
+        if (!this.stylusTip.valid) {
+            this.hideStylus();
+            return;
+        }
+
+        if (this.useFingerInsteadOfStylus) {
+            this.hideStylus();
+        }
+
+        var tipPosition = this.stylusTip.position;
+
+        var candidates = {
+            entities: [],
+            overlays: []
+        };
+
+        // find web-entites near the stylusTip.
+        var candidateEntities = Entities.findEntities(tipPosition, WEB_DISPLAY_STYLUS_DISTANCE);
+        entityPropertiesCache.addEntities(candidateEntities);
+        var i, props;
+        for (i = 0; i < candidateEntities.length; i++) {
+            props = entityPropertiesCache.getProps(candidateEntities[i]);
+            if (props && (props.type === "Web" || this.isTablet(candidateEntities[i]))) {
+                candidates.entities.push(candidateEntities[i]);
             }
         }
+
+        // add the tabletScreen, if it is valid
+        if (HMD.tabletScreenID && HMD.tabletScreenID !== NULL_UUID) {
+            candidates.overlays.push(HMD.tabletScreenID);
+        }
+
+        // add the tablet home button.
+        if (HMD.homeButtonID && HMD.homeButtonID !== NULL_UUID) {
+            candidates.overlays.push(HMD.homeButtonID);
+        }
+
+        var nearestStylusTarget = this.calculateNearestStylusTargetFromCandidates(candidates, true);
+
+        if (!this.useFingerInsteadOfStylus && nearestStylusTarget.valid) {
+            this.showStylus();
+        } else {
+            this.hideStylus();
+        }
+
+        var TABLET_MIN_HOVER_DISTANCE = 0.01;
+        var TABLET_MAX_HOVER_DISTANCE = 0.1;
+        var TABLET_MIN_TOUCH_DISTANCE = -0.05;
+        var TABLET_MAX_TOUCH_DISTANCE = TABLET_MIN_HOVER_DISTANCE;
+
+        if (nearestStylusTarget.valid && nearestStylusTarget.distance > TABLET_MIN_TOUCH_DISTANCE &&
+            nearestStylusTarget.distance < TABLET_MAX_HOVER_DISTANCE) {
+
+            this.requestTouchFocus(nearestStylusTarget);
+
+            if (!stylusTargetHasKeyboardFocus(nearestStylusTarget)) {
+                setKeyboardFocusOnStylusTarget(nearestStylusTarget);
+            }
+
+            if (this.hasTouchFocus(nearestStylusTarget)) {
+                sendHoverOverEventToStylusTarget(this.hand, nearestStylusTarget);
+            }
+
+            // filter out presses when tip is moving away from tablet.
+            if (nearestStylusTarget.valid && nearestStylusTarget.distance > TABLET_MIN_TOUCH_DISTANCE &&
+                nearestStylusTarget.distance < TABLET_MAX_TOUCH_DISTANCE && Vec3.dot(this.stylusTip.velocity, nearestStylusTarget.normal) < 0) {
+
+                var name;
+                if (nearestStylusTarget.entityID) {
+                    name = entityPropertiesCache.getProps(nearestStylusTarget.entityID).name;
+                    this.stylusTarget = nearestStylusTarget;
+                    this.setState(STATE_STYLUS_TOUCHING, "begin touching entity '" + name + "'");
+                } else if (nearestStylusTarget.overlayID) {
+                    name = Overlays.getProperty(nearestStylusTarget.overlayID, "name");
+                    this.stylusTarget = nearestStylusTarget;
+                    this.setState(STATE_STYLUS_TOUCHING, "begin touching overlay '" + name + "'");
+                }
+            }
+        } else {
+            this.relinquishTouchFocus();
+        }
+
+        this.homeButtonTouched = false;
     };
 
     this.off = function(deltaTime, timestamp) {
@@ -1406,25 +1716,7 @@ function MyController(hand) {
             this.grabPointSphereOff();
         }
 
-        this.processStylus(worldHandPosition);
-    };
-
-   this.handleStylusOnHomeButton = function(rayPickInfo) {
-        if (rayPickInfo.overlayID) {
-            var homeButton = rayPickInfo.overlayID;
-            var hmdHomeButton = HMD.homeButtonID;
-            if (homeButton === hmdHomeButton) {
-                if (this.homeButtonTouched === false) {
-                    this.homeButtonTouched = true;
-                    Controller.triggerHapticPulse(HAPTIC_STYLUS_STRENGTH, HAPTIC_STYLUS_DURATION, this.hand);
-                    Messages.sendLocalMessage("home", homeButton);
-                }
-            } else {
-                this.homeButtonTouched = false;
-            }
-        } else {
-            this.homeButtonTouched = false;
-        }
+        this.processStylus();
     };
 
     this.handleLaserOnHomeButton = function(rayPickInfo) {
@@ -1464,27 +1756,27 @@ function MyController(hand) {
 
     // Performs ray pick test from the hand controller into the world
     // @param {number} which hand to use, RIGHT_HAND or LEFT_HAND
-    // @param {bool} if true use the world position/orientation of the index finger to cast the ray from.
+    // @param {object} if set, use this as as the pick ray, expects origin, direction, and length fields.
     // @returns {object} returns object with two keys entityID and distance
     //
-    this.calcRayPickInfo = function(hand, useFingerInsteadOfController) {
+    this.calcRayPickInfo = function(hand, pickRayOverride) {
 
-        var controllerLocation;
-        if (useFingerInsteadOfController) {
-            controllerLocation = getFingerWorldLocation(hand);
+        var pickRay;
+        if (pickRayOverride) {
+            pickRay = pickRayOverride;
         } else {
-            controllerLocation = getControllerWorldLocation(this.handToController(), true);
-        }
-        var worldHandPosition = controllerLocation.position;
-        var worldHandRotation = controllerLocation.orientation;
+            var controllerLocation = getControllerWorldLocation(this.handToController(), true);
+            var worldHandPosition = controllerLocation.position;
+            var worldHandRotation = controllerLocation.orientation;
 
-        var pickRay = {
-            origin: PICK_WITH_HAND_RAY ? worldHandPosition : Camera.position,
-            direction: PICK_WITH_HAND_RAY ? Quat.getUp(worldHandRotation) : Vec3.mix(Quat.getUp(worldHandRotation),
-                Quat.getFront(Camera.orientation),
-                HAND_HEAD_MIX_RATIO),
-            length: PICK_MAX_DISTANCE
-        };
+            pickRay = {
+                origin: PICK_WITH_HAND_RAY ? worldHandPosition : Camera.position,
+                direction: PICK_WITH_HAND_RAY ? Quat.getUp(worldHandRotation) : Vec3.mix(Quat.getUp(worldHandRotation),
+                                                                                         Quat.getFront(Camera.orientation),
+                                                                                         HAND_HEAD_MIX_RATIO),
+                length: PICK_MAX_DISTANCE
+            };
+        }
 
         var result = {
             entityID: null,
@@ -1943,134 +2235,6 @@ function MyController(hand) {
         return false;
     };
 
-    this.handleStylusOnWebEntity = function (rayPickInfo) {
-        var pointerEvent;
-
-        if (rayPickInfo.entityID && Entities.wantsHandControllerPointerEvents(rayPickInfo.entityID)) {
-            var entity = rayPickInfo.entityID;
-            var name = entityPropertiesCache.getProps(entity).name;
-
-            if (Entities.keyboardFocusEntity != entity) {
-                Overlays.keyboardFocusOverlay = 0;
-                Entities.keyboardFocusEntity = entity;
-
-                pointerEvent = {
-                    type: "Move",
-                    id: this.hand + 1, // 0 is reserved for hardware mouse
-                    pos2D: projectOntoEntityXYPlane(entity, rayPickInfo.intersection),
-                    pos3D: rayPickInfo.intersection,
-                     normal: rayPickInfo.normal,
-                    direction: rayPickInfo.searchRay.direction,
-                    button: "None"
-                };
-
-                this.hoverEntity = entity;
-                Entities.sendHoverEnterEntity(entity, pointerEvent);
-            }
-
-            // send mouse events for button highlights and tooltips.
-            if (this.hand == mostRecentSearchingHand ||
-                (this.hand !== mostRecentSearchingHand &&
-                 this.getOtherHandController().state !== STATE_SEARCHING &&
-                 this.getOtherHandController().state !== STATE_ENTITY_STYLUS_TOUCHING &&
-                 this.getOtherHandController().state !== STATE_ENTITY_LASER_TOUCHING &&
-                 this.getOtherHandController().state !== STATE_OVERLAY_STYLUS_TOUCHING &&
-                 this.getOtherHandController().state !== STATE_OVERLAY_LASER_TOUCHING)) {
-
-                // most recently searching hand has priority over other hand, for the purposes of button highlighting.
-                pointerEvent = {
-                    type: "Move",
-                    id: this.hand + 1, // 0 is reserved for hardware mouse
-                    pos2D: projectOntoEntityXYPlane(entity, rayPickInfo.intersection),
-                    pos3D: rayPickInfo.intersection,
-                    normal: rayPickInfo.normal,
-                    direction: rayPickInfo.searchRay.direction,
-                    button: "None"
-                };
-
-                Entities.sendMouseMoveOnEntity(entity, pointerEvent);
-                Entities.sendHoverOverEntity(entity, pointerEvent);
-            }
-
-            this.grabbedThingID = entity;
-            this.grabbedIsOverlay = false;
-            this.setState(STATE_ENTITY_STYLUS_TOUCHING, "begin touching entity '" + name + "'");
-            return true;
-
-        } else if (this.hoverEntity) {
-            pointerEvent = {
-                type: "Move",
-                id: this.hand + 1
-            };
-            Entities.sendHoverLeaveEntity(this.hoverEntity, pointerEvent);
-            this.hoverEntity = null;
-        }
-
-        return false;
-    };
-
-    this.handleStylusOnWebOverlay = function (rayPickInfo) {
-        var pointerEvent;
-        if (rayPickInfo.overlayID) {
-            var overlay = rayPickInfo.overlayID;
-            if (Overlays.keyboardFocusOverlay != overlay) {
-                Entities.keyboardFocusEntity = null;
-                Overlays.keyboardFocusOverlay = overlay;
-
-                pointerEvent = {
-                    type: "Move",
-                    id: HARDWARE_MOUSE_ID,
-                    pos2D: projectOntoOverlayXYPlane(overlay, rayPickInfo.intersection),
-                    pos3D: rayPickInfo.intersection,
-                    normal: rayPickInfo.normal,
-                    direction: rayPickInfo.searchRay.direction,
-                    button: "None"
-                };
-
-                this.hoverOverlay = overlay;
-                Overlays.sendHoverEnterOverlay(overlay, pointerEvent);
-            }
-
-            // Send mouse events for button highlights and tooltips.
-            if (this.hand == mostRecentSearchingHand ||
-                (this.hand !== mostRecentSearchingHand &&
-                 this.getOtherHandController().state !== STATE_SEARCHING &&
-                 this.getOtherHandController().state !== STATE_ENTITY_STYLUS_TOUCHING &&
-                 this.getOtherHandController().state !== STATE_ENTITY_LASER_TOUCHING &&
-                 this.getOtherHandController().state !== STATE_OVERLAY_STYLUS_TOUCHING &&
-                 this.getOtherHandController().state !== STATE_OVERLAY_LASER_TOUCHING)) {
-
-                // most recently searching hand has priority over other hand, for the purposes of button highlighting.
-                pointerEvent = {
-                    type: "Move",
-                    id: HARDWARE_MOUSE_ID,
-                    pos2D: projectOntoOverlayXYPlane(overlay, rayPickInfo.intersection),
-                    pos3D: rayPickInfo.intersection,
-                    normal: rayPickInfo.normal,
-                    direction: rayPickInfo.searchRay.direction,
-                    button: "None"
-                };
-
-                Overlays.sendMouseMoveOnOverlay(overlay, pointerEvent);
-                Overlays.sendHoverOverOverlay(overlay, pointerEvent);
-            }
-
-            this.grabbedOverlay = overlay;
-            this.setState(STATE_OVERLAY_STYLUS_TOUCHING, "begin touching overlay '" + overlay + "'");
-            return true;
-
-        } else if (this.hoverOverlay) {
-            pointerEvent = {
-                type: "Move",
-                id: HARDWARE_MOUSE_ID
-            };
-            Overlays.sendHoverLeaveOverlay(this.hoverOverlay, pointerEvent);
-            this.hoverOverlay = null;
-        }
-
-        return false;
-    };
-
     this.handleLaserOnWebEntity = function(rayPickInfo) {
         var pointerEvent;
         if (rayPickInfo.entityID && Entities.wantsHandControllerPointerEvents(rayPickInfo.entityID)) {
@@ -2100,9 +2264,8 @@ function MyController(hand) {
             if (this.hand == mostRecentSearchingHand ||
                 (this.hand !== mostRecentSearchingHand &&
                  this.getOtherHandController().state !== STATE_SEARCHING &&
-                 this.getOtherHandController().state !== STATE_ENTITY_STYLUS_TOUCHING &&
+                 this.getOtherHandController().state !== STATE_STYLUS_TOUCHING &&
                  this.getOtherHandController().state !== STATE_ENTITY_LASER_TOUCHING &&
-                 this.getOtherHandController().state !== STATE_OVERLAY_STYLUS_TOUCHING &&
                  this.getOtherHandController().state !== STATE_OVERLAY_LASER_TOUCHING)) {
 
                 // most recently searching hand has priority over other hand, for the purposes of button highlighting.
@@ -2167,9 +2330,8 @@ function MyController(hand) {
             if (this.hand == mostRecentSearchingHand ||
                 (this.hand !== mostRecentSearchingHand &&
                  this.getOtherHandController().state !== STATE_SEARCHING &&
-                 this.getOtherHandController().state !== STATE_ENTITY_STYLUS_TOUCHING &&
+                 this.getOtherHandController().state !== STATE_STYLUS_TOUCHING &&
                  this.getOtherHandController().state !== STATE_ENTITY_LASER_TOUCHING &&
-                 this.getOtherHandController().state !== STATE_OVERLAY_STYLUS_TOUCHING &&
                  this.getOtherHandController().state !== STATE_OVERLAY_LASER_TOUCHING)) {
 
                 // most recently searching hand has priority over other hand, for the purposes of button highlighting.
@@ -2699,10 +2861,6 @@ function MyController(hand) {
                             isClone = true;
 
                             if (count > limit) {
-                                delete cloneableProps;
-                                delete lifetime;
-                                delete cUserData;
-                                delete cProperties;
                                 return;
                             }
 
@@ -3096,14 +3254,9 @@ function MyController(hand) {
         this.release();
     };
 
-    this.entityTouchingEnter = function() {
+    this.entityLaserTouchingEnter = function() {
         // test for intersection between controller laser and web entity plane.
-        var controllerLocation;
-        if (this.useFingerInsteadOfStylus && this.state === STATE_ENTITY_STYLUS_TOUCHING) {
-            controllerLocation = getFingerWorldLocation(this.hand);
-        } else {
-            controllerLocation = getControllerWorldLocation(this.handToController(), true);
-        }
+        var controllerLocation = getControllerWorldLocation(this.handToController(), true);
         var intersectInfo = handLaserIntersectEntity(this.grabbedThingID, controllerLocation);
         if (intersectInfo) {
             var pointerEvent = {
@@ -3126,26 +3279,15 @@ function MyController(hand) {
             this.deadspotExpired = false;
 
             var LASER_PRESS_TO_MOVE_DEADSPOT_ANGLE = 0.026; // radians ~ 1.2 degrees
-            var STYLUS_PRESS_TO_MOVE_DEADSPOT_ANGLE = 0.314; // radians ~ 18 degrees
-            var theta = this.state === STATE_ENTITY_STYLUS_TOUCHING ? STYLUS_PRESS_TO_MOVE_DEADSPOT_ANGLE : LASER_PRESS_TO_MOVE_DEADSPOT_ANGLE;
-            this.deadspotRadius = Math.tan(theta) * intersectInfo.distance;  // dead spot radius in meters
+            this.deadspotRadius = Math.tan(LASER_PRESS_TO_MOVE_DEADSPOT_ANGLE) * intersectInfo.distance;  // dead spot radius in meters
         }
 
-        if (this.state == STATE_ENTITY_STYLUS_TOUCHING) {
-            Controller.triggerHapticPulse(HAPTIC_STYLUS_STRENGTH, HAPTIC_STYLUS_DURATION, this.hand);
-        } else if (this.state == STATE_ENTITY_LASER_TOUCHING) {
-            Controller.triggerHapticPulse(HAPTIC_LASER_UI_STRENGTH, HAPTIC_LASER_UI_DURATION, this.hand);
-        }
+        Controller.triggerHapticPulse(HAPTIC_LASER_UI_STRENGTH, HAPTIC_LASER_UI_DURATION, this.hand);
     };
 
-    this.entityTouchingExit = function() {
+    this.entityLaserTouchingExit = function() {
         // test for intersection between controller laser and web entity plane.
-        var controllerLocation;
-        if (this.useFingerInsteadOfStylus && this.state === STATE_ENTITY_STYLUS_TOUCHING) {
-            controllerLocation = getFingerWorldLocation(this.hand);
-        } else {
-            controllerLocation = getControllerWorldLocation(this.handToController(), true);
-        }
+        var controllerLocation = getControllerWorldLocation(this.handToController(), true);
         var intersectInfo = handLaserIntersectEntity(this.grabbedThingID, controllerLocation);
         if (intersectInfo) {
             var pointerEvent;
@@ -3174,7 +3316,7 @@ function MyController(hand) {
         this.grabbedOverlay = null;
     };
 
-    this.entityTouching = function(dt) {
+    this.entityLaserTouching = function(dt) {
 
         this.touchingEnterTimer += dt;
 
@@ -3186,28 +3328,10 @@ function MyController(hand) {
         }
 
         // test for intersection between controller laser and web entity plane.
-        var controllerLocation;
-        if (this.useFingerInsteadOfStylus && this.state === STATE_ENTITY_STYLUS_TOUCHING) {
-            controllerLocation = getFingerWorldLocation(this.hand);
-        } else {
-            controllerLocation = getControllerWorldLocation(this.handToController(), true);
-        }
+        var controllerLocation = getControllerWorldLocation(this.handToController(), true);
         var intersectInfo = handLaserIntersectEntity(this.grabbedThingID, controllerLocation);
         if (intersectInfo) {
 
-            var max;
-            if (this.useFingerInsteadOfStylus && this.state === STATE_ENTITY_STYLUS_TOUCHING) {
-                max = FINGER_TOUCH_MAX;
-            } else {
-                max = WEB_STYLUS_LENGTH / 2.0 + WEB_TOUCH_Y_OFFSET;
-            }
-
-            if (this.state == STATE_ENTITY_STYLUS_TOUCHING &&
-                intersectInfo.distance > max) {
-                this.setState(STATE_OFF, "pulled away from web entity");
-                return;
-            }
-
             if (Entities.keyboardFocusEntity != this.grabbedThingID) {
                 Overlays.keyboardFocusOverlay = 0;
                 Entities.keyboardFocusEntity = this.grabbedThingID;
@@ -3244,14 +3368,9 @@ function MyController(hand) {
         }
     };
 
-    this.overlayTouchingEnter = function () {
+    this.overlayLaserTouchingEnter = function () {
         // Test for intersection between controller laser and Web overlay plane.
-        var controllerLocation;
-        if (this.useFingerInsteadOfStylus && this.state === STATE_OVERLAY_STYLUS_TOUCHING) {
-            controllerLocation = getFingerWorldLocation(this.hand);
-        } else {
-            controllerLocation = getControllerWorldLocation(this.handToController(), true);
-        }
+        var controllerLocation = getControllerWorldLocation(this.handToController(), true);
         var intersectInfo = handLaserIntersectOverlay(this.grabbedOverlay, controllerLocation);
         if (intersectInfo) {
             var pointerEvent = {
@@ -3273,26 +3392,15 @@ function MyController(hand) {
             this.deadspotExpired = false;
 
             var LASER_PRESS_TO_MOVE_DEADSPOT_ANGLE = 0.026; // radians ~ 1.2 degrees
-            var STYLUS_PRESS_TO_MOVE_DEADSPOT_ANGLE = 0.314; // radians ~ 18 degrees
-            var theta = this.state === STATE_OVERLAY_STYLUS_TOUCHING ? STYLUS_PRESS_TO_MOVE_DEADSPOT_ANGLE : LASER_PRESS_TO_MOVE_DEADSPOT_ANGLE;
-            this.deadspotRadius = Math.tan(theta) * intersectInfo.distance;  // dead spot radius in meters
+            this.deadspotRadius = Math.tan(LASER_PRESS_TO_MOVE_DEADSPOT_ANGLE) * intersectInfo.distance;  // dead spot radius in meters
         }
 
-        if (this.state == STATE_OVERLAY_STYLUS_TOUCHING) {
-            Controller.triggerHapticPulse(HAPTIC_STYLUS_STRENGTH, HAPTIC_STYLUS_DURATION, this.hand);
-        } else if (this.state == STATE_OVERLAY_LASER_TOUCHING) {
-            Controller.triggerHapticPulse(HAPTIC_LASER_UI_STRENGTH, HAPTIC_LASER_UI_DURATION, this.hand);
-        }
+        Controller.triggerHapticPulse(HAPTIC_LASER_UI_STRENGTH, HAPTIC_LASER_UI_DURATION, this.hand);
     };
 
-    this.overlayTouchingExit = function () {
+    this.overlayLaserTouchingExit = function () {
         // Test for intersection between controller laser and Web overlay plane.
-        var controllerLocation;
-        if (this.useFingerInsteadOfStylus && this.state === STATE_OVERLAY_STYLUS_TOUCHING) {
-            controllerLocation = getFingerWorldLocation(this.hand);
-        } else {
-            controllerLocation = getControllerWorldLocation(this.handToController(), true);
-        }
+        var controllerLocation = getControllerWorldLocation(this.handToController(), true);
         var intersectInfo = handLaserIntersectOverlay(this.grabbedOverlay, controllerLocation);
         if (intersectInfo) {
             var pointerEvent;
@@ -3337,66 +3445,22 @@ function MyController(hand) {
         this.grabbedOverlay = null;
     };
 
-    this.overlayTouching = function (dt) {
+    this.overlayLaserTouching = function (dt) {
         this.touchingEnterTimer += dt;
 
-        if (this.state == STATE_OVERLAY_STYLUS_TOUCHING && this.triggerSmoothedSqueezed()) {
-            return;
-        }
-
         if (this.state == STATE_OVERLAY_LASER_TOUCHING && !this.triggerSmoothedGrab()) {
             this.setState(STATE_OFF, "released trigger");
             return;
         }
 
         // Test for intersection between controller laser and Web overlay plane.
-        var controllerLocation;
-        if (this.useFingerInsteadOfStylus && this.state === STATE_OVERLAY_STYLUS_TOUCHING) {
-            controllerLocation = getFingerWorldLocation(this.hand);
-        } else {
-            controllerLocation = getControllerWorldLocation(this.handToController(), true);
-        }
+        var controllerLocation = getControllerWorldLocation(this.handToController(), true);
         var intersectInfo = handLaserIntersectOverlay(this.grabbedOverlay, controllerLocation);
         if (intersectInfo) {
 
-            var max, min;
-            if (this.useFingerInsteadOfStylus && this.state === STATE_OVERLAY_STYLUS_TOUCHING) {
-                max = FINGER_TOUCH_MAX;
-                min = FINGER_TOUCH_MIN;
-            } else {
-                max = WEB_STYLUS_LENGTH / 2.0 + WEB_TOUCH_Y_OFFSET + WEB_TOUCH_Y_TOUCH_DEADZONE_SIZE;
-                min = WEB_STYLUS_LENGTH / 2.0 + WEB_TOUCH_TOO_CLOSE;
-            }
-
-            if (this.state == STATE_OVERLAY_STYLUS_TOUCHING && intersectInfo.distance > max) {
-                this.grabbedThingID = null;
-                this.setState(STATE_OFF, "pulled away from overlay");
-                return;
-            }
-
             var pos2D = projectOntoOverlayXYPlane(this.grabbedOverlay, intersectInfo.point);
             var pos3D = intersectInfo.point;
 
-            if (this.state == STATE_OVERLAY_STYLUS_TOUCHING &&
-                !this.tabletStabbed &&
-                intersectInfo.distance < min) {
-                // they've stabbed the tablet, don't send events until they pull back
-                this.tabletStabbed = true;
-                this.tabletStabbedPos2D = pos2D;
-                this.tabletStabbedPos3D = pos3D;
-                return;
-            }
-
-            if (this.tabletStabbed) {
-                var origin = {x: this.tabletStabbedPos2D.x, y: this.tabletStabbedPos2D.y, z: 0};
-                var point = {x: pos2D.x, y: pos2D.y, z: 0};
-                var offset = Vec3.distance(origin, point);
-                var radius = 0.05;
-                if (offset < radius) {
-                    return;
-                }
-            }
-
             if (Overlays.keyboardFocusOverlay != this.grabbedOverlay) {
                 Entities.keyboardFocusEntity = null;
                 Overlays.keyboardFocusOverlay = this.grabbedOverlay;
@@ -3432,6 +3496,61 @@ function MyController(hand) {
         }
     };
 
+    this.stylusTouchingEnter = function () {
+        this.stealTouchFocus(this.stylusTarget);
+        sendTouchStartEventToStylusTarget(this.hand, this.stylusTarget);
+        Controller.triggerHapticPulse(HAPTIC_STYLUS_STRENGTH, HAPTIC_STYLUS_DURATION, this.hand);
+
+        this.touchingEnterTimer = 0;
+        this.touchingEnterStylusTarget = this.stylusTarget;
+        this.deadspotExpired = false;
+
+        var TOUCH_PRESS_TO_MOVE_DEADSPOT = 0.025;
+        this.deadspotRadius = TOUCH_PRESS_TO_MOVE_DEADSPOT; // meters
+    };
+
+    this.stylusTouchingExit = function () {
+
+        // special case to handle home button.
+        if (this.stylusTarget.overlayID === HMD.homeButtonID) {
+            Messages.sendLocalMessage("home", this.stylusTarget.overlayID);
+        }
+
+        // send press event
+        if (this.deadspotExpired) {
+            sendTouchEndEventToStylusTarget(this.hand, this.stylusTarget);
+        } else {
+            sendTouchEndEventToStylusTarget(this.hand, this.touchingEnterStylusTarget);
+        }
+    };
+
+    this.stylusTouching = function (dt) {
+
+        this.touchingEnterTimer += dt;
+
+        var candidates = { entities: [], overlays: [] };
+        if (this.stylusTarget.entityID && this.stylusTarget.entityID !== NULL_UUID) {
+            candidates.entities.push(this.stylusTarget.entityID);
+        } else if (this.stylusTarget.overlayID && this.stylusTarget.overlayID !== NULL_UUID) {
+            candidates.overlays.push(this.stylusTarget.overlayID);
+        }
+        this.stylusTarget = this.calculateNearestStylusTargetFromCandidates(candidates, false);
+
+        var TABLET_MIN_TOUCH_DISTANCE = -0.1;
+        var TABLET_MAX_TOUCH_DISTANCE = 0.01;
+
+        if (this.stylusTarget.valid && this.stylusTarget.distance > TABLET_MIN_TOUCH_DISTANCE && this.stylusTarget.distance < TABLET_MAX_TOUCH_DISTANCE) {
+
+            var POINTER_PRESS_TO_MOVE_DELAY = 0.25; // seconds
+            if (this.deadspotExpired || this.touchingEnterTimer > POINTER_PRESS_TO_MOVE_DELAY ||
+                Vec3.distance(this.stylusTarget.position, this.touchingEnterPointerEvent.pos3D) > this.deadspotRadius) {
+                sendTouchMoveEventToStylusTarget(this.hand, this.stylusTarget);
+            }
+        } else {
+            this.setState(STATE_OFF, "hand moved away from tablet");
+        }
+    };
+
     this.release = function() {
         this.turnOffVisualizations();
 
diff --git a/scripts/system/libraries/WebTablet.js b/scripts/system/libraries/WebTablet.js
index dd2aaf346b..8859b13624 100644
--- a/scripts/system/libraries/WebTablet.js
+++ b/scripts/system/libraries/WebTablet.js
@@ -167,11 +167,10 @@ WebTablet = function (url, width, dpi, hand, clientOnly) {
         isAA: HMD.active
     });
 
-    var HOME_BUTTON_Y_OFFSET = (this.height / 2) - 0.009;
+    var HOME_BUTTON_Y_OFFSET = (this.height / 2) - (this.height / 20);
     this.homeButtonID = Overlays.addOverlay("sphere", {
         name: "homeButton",
         localPosition: {x: -0.001, y: -HOME_BUTTON_Y_OFFSET, z: 0.0},
-        localRotation: Quat.angleAxis(0, Y_AXIS),
         dimensions: { x: 4 * tabletScaleFactor, y: 4 * tabletScaleFactor, z: 4 * tabletScaleFactor},
         alpha: 0.0,
         visible: true,

From 6acf2340a26fb18417dfcca251b2bf49653c066a Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Wed, 8 Mar 2017 17:42:24 +0000
Subject: [PATCH 079/247] better way to determine if we can go to the
 homescreen

---
 .../script-engine/src/TabletScriptingInterface.cpp     | 10 +++++++---
 libraries/script-engine/src/TabletScriptingInterface.h |  1 +
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/libraries/script-engine/src/TabletScriptingInterface.cpp b/libraries/script-engine/src/TabletScriptingInterface.cpp
index b90b971193..59027da102 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.cpp
+++ b/libraries/script-engine/src/TabletScriptingInterface.cpp
@@ -275,7 +275,8 @@ void TabletProxy::setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscr
             QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, QVariant(TABLET_SOURCE_URL)));
         }
 
-        gotoHomeScreen();
+        // force to the tablet to go to the homescreen
+        gotoHomeScreen(true);
 
         QMetaObject::invokeMethod(_qmlTabletRoot, "setUsername", Q_ARG(const QVariant&, QVariant(getUsername())));
 
@@ -293,6 +294,9 @@ void TabletProxy::setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscr
     }
 }
 
+void TabletProxy::gotoHomeScreen() {
+    gotoHomeScreen(false);
+}
 void TabletProxy::gotoMenuScreen(const QString& submenu) {
 
     QObject* root = nullptr;
@@ -334,8 +338,8 @@ void TabletProxy::loadQMLSource(const QVariant& path) {
     }
 }
 
-void TabletProxy::gotoHomeScreen() {
-    if (_state != State::Home || _state != State::Uninitialized) {
+void TabletProxy::gotoHomeScreen(bool forceOntoHomeScreen) {
+    if (_state != State::Home && ( _state != State::Uninitialized || forceOntoHomeScreen)) {
         if (!_toolbarMode && _qmlTabletRoot) {
             auto loader = _qmlTabletRoot->findChild<QQuickItem*>("loader");
             QObject::connect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToHomeScreen()), Qt::DirectConnection);
diff --git a/libraries/script-engine/src/TabletScriptingInterface.h b/libraries/script-engine/src/TabletScriptingInterface.h
index e450923758..42f32ff219 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.h
+++ b/libraries/script-engine/src/TabletScriptingInterface.h
@@ -188,6 +188,7 @@ protected slots:
     void desktopWindowClosed();
 protected:
     void removeButtonsFromHomeScreen();
+    void gotoHomeScreen(bool forceOntoHomeScreen);
     void addButtonsToToolbar();
     void removeButtonsFromToolbar();
 

From e9086460e3bd7f2ef3603ca1273096b51d74790c Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Wed, 8 Mar 2017 18:14:32 +0000
Subject: [PATCH 080/247] changed function names

---
 libraries/script-engine/src/TabletScriptingInterface.cpp | 6 +++---
 libraries/script-engine/src/TabletScriptingInterface.h   | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/libraries/script-engine/src/TabletScriptingInterface.cpp b/libraries/script-engine/src/TabletScriptingInterface.cpp
index 59027da102..6cfd26b230 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.cpp
+++ b/libraries/script-engine/src/TabletScriptingInterface.cpp
@@ -276,7 +276,7 @@ void TabletProxy::setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscr
         }
 
         // force to the tablet to go to the homescreen
-        gotoHomeScreen(true);
+        loadHomeScreen(true);
 
         QMetaObject::invokeMethod(_qmlTabletRoot, "setUsername", Q_ARG(const QVariant&, QVariant(getUsername())));
 
@@ -295,7 +295,7 @@ void TabletProxy::setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscr
 }
 
 void TabletProxy::gotoHomeScreen() {
-    gotoHomeScreen(false);
+    loadHomeScreen(false);
 }
 void TabletProxy::gotoMenuScreen(const QString& submenu) {
 
@@ -338,7 +338,7 @@ void TabletProxy::loadQMLSource(const QVariant& path) {
     }
 }
 
-void TabletProxy::gotoHomeScreen(bool forceOntoHomeScreen) {
+void TabletProxy::loadHomeScreen(bool forceOntoHomeScreen) {
     if (_state != State::Home && ( _state != State::Uninitialized || forceOntoHomeScreen)) {
         if (!_toolbarMode && _qmlTabletRoot) {
             auto loader = _qmlTabletRoot->findChild<QQuickItem*>("loader");
diff --git a/libraries/script-engine/src/TabletScriptingInterface.h b/libraries/script-engine/src/TabletScriptingInterface.h
index 42f32ff219..12cb2f4d2d 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.h
+++ b/libraries/script-engine/src/TabletScriptingInterface.h
@@ -188,7 +188,7 @@ protected slots:
     void desktopWindowClosed();
 protected:
     void removeButtonsFromHomeScreen();
-    void gotoHomeScreen(bool forceOntoHomeScreen);
+    void loadHomeScreen(bool forceOntoHomeScreen);
     void addButtonsToToolbar();
     void removeButtonsFromToolbar();
 

From 371c20ee250a7ceab3f13559547a3ea506c6d4d4 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Wed, 8 Mar 2017 10:33:59 -0800
Subject: [PATCH 081/247] hide tablet by making it not visible rather than
 destroying it

---
 scripts/system/libraries/WebTablet.js |  19 ++++-
 scripts/system/tablet-ui/tabletUI.js  | 101 ++++++++++++++++++++++----
 2 files changed, 101 insertions(+), 19 deletions(-)

diff --git a/scripts/system/libraries/WebTablet.js b/scripts/system/libraries/WebTablet.js
index 8a0831a3cd..1acc12b3f1 100644
--- a/scripts/system/libraries/WebTablet.js
+++ b/scripts/system/libraries/WebTablet.js
@@ -45,6 +45,10 @@ function calcSpawnInfo(hand, height) {
     var headPos = (HMD.active && Camera.mode === "first person") ? HMD.position : Camera.position;
     var headRot = (HMD.active && Camera.mode === "first person") ? HMD.orientation : Camera.orientation;
 
+    if (!hand) {
+        hand = NO_HANDS;
+    }
+
     if (HMD.active && hand !== NO_HANDS) {
         var handController = getControllerWorldLocation(hand, true);
         var controllerPosition = handController.position;
@@ -96,7 +100,7 @@ function calcSpawnInfo(hand, height) {
  * @param hand [number] -1 indicates no hand, Controller.Standard.RightHand or Controller.Standard.LeftHand
  * @param clientOnly [bool] true indicates tablet model is only visible to client.
  */
-WebTablet = function (url, width, dpi, hand, clientOnly) {
+WebTablet = function (url, width, dpi, hand, clientOnly, location, invisisble) {
 
     var _this = this;
 
@@ -129,11 +133,16 @@ WebTablet = function (url, width, dpi, hand, clientOnly) {
             "grabbableKey": {"grabbable": true}
         }),
         dimensions: {x: this.width, y: this.height, z: this.depth},
-        parentID: AVATAR_SELF_ID
+        parentID: AVATAR_SELF_ID,
+        visible: !invisisble
     };
 
     // compute position, rotation & parentJointIndex of the tablet
     this.calculateTabletAttachmentProperties(hand, true, tabletProperties);
+    if (location) {
+        tabletProperties.localPosition = location.localPosition;
+        tabletProperties.localRotation = location.localRotation;
+    }
 
     this.cleanUpOldTablets();
 
@@ -164,7 +173,8 @@ WebTablet = function (url, width, dpi, hand, clientOnly) {
         parentID: this.tabletEntityID,
         parentJointIndex: -1,
         showKeyboardFocusHighlight: false,
-        isAA: HMD.active
+        isAA: HMD.active,
+        visible: !invisisble
     });
 
     var HOME_BUTTON_Y_OFFSET = (this.height / 2) - 0.009;
@@ -177,7 +187,8 @@ WebTablet = function (url, width, dpi, hand, clientOnly) {
         visible: true,
         drawInFront: false,
         parentID: this.tabletEntityID,
-        parentJointIndex: -1
+        parentJointIndex: -1,
+        visible: !invisisble
     });
 
     this.receive = function (channel, senderID, senderUUID, localOnly) {
diff --git a/scripts/system/tablet-ui/tabletUI.js b/scripts/system/tablet-ui/tabletUI.js
index d5065cb826..14eb7e7ecc 100644
--- a/scripts/system/tablet-ui/tabletUI.js
+++ b/scripts/system/tablet-ui/tabletUI.js
@@ -12,21 +12,22 @@
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
 //
 
-/* global Script, HMD, WebTablet, UIWebTablet, UserActivityLogger, Settings, Entities, Messages, Tablet, Overlays, MyAvatar */
+/* global Script, HMD, WebTablet, UIWebTablet, UserActivityLogger, Settings, Entities, Messages, Tablet, Overlays,
+   MyAvatar, Menu, Vec3 */
 
 (function() { // BEGIN LOCAL_SCOPE
     var tabletShown = false;
+    var tabletRezzed = false;
     var tabletLocation = null;
     var activeHand = null;
+    var DEFAULT_WIDTH = 0.4375;
+    var DEFAULT_TABLET_SCALE = 100;
+    UIWebTablet = null;
 
     Script.include("../libraries/WebTablet.js");
 
-    function showTabletUI() {
-        tabletShown = true;
-        print("show tablet-ui");
-
-        var DEFAULT_WIDTH = 0.4375;
-        var DEFAULT_TABLET_SCALE = 100;
+    function rezTablet(invisible) {
+        print("XXX show tablet-ui, not rezzed.  position is " +  JSON.stringify(tabletLocation));
         var toolbarMode = Tablet.getTablet("com.highfidelity.interface.tablet.system").toolbarMode;
         var TABLET_SCALE = DEFAULT_TABLET_SCALE;
         if (toolbarMode) {
@@ -34,37 +35,88 @@
         } else {
             TABLET_SCALE = Settings.getValue("hmdTabletScale") || DEFAULT_TABLET_SCALE;
         }
-        UIWebTablet = new WebTablet("qml/hifi/tablet/TabletRoot.qml", DEFAULT_WIDTH * (TABLET_SCALE / 100), null, activeHand, true);
+
+        UIWebTablet = new WebTablet("qml/hifi/tablet/TabletRoot.qml",
+                                    DEFAULT_WIDTH * (TABLET_SCALE / 100),
+                                    null, activeHand, true, tabletLocation, invisible);
         UIWebTablet.register();
         HMD.tabletID = UIWebTablet.tabletEntityID;
         HMD.homeButtonID = UIWebTablet.homeButtonID;
         HMD.tabletScreenID = UIWebTablet.webOverlayID;
+        tabletRezzed = true;
+    }
+
+    function showTabletUI() {
+        tabletShown = true;
+
+        if (!tabletRezzed) {
+            rezTablet(false);
+        }
+
+        if (UIWebTablet && tabletRezzed) {
+            if (tabletLocation) {
+                print("XXX show tablet-ui, already rezzed, already position: " + JSON.stringify(tabletLocation));
+                Overlays.editOverlay(HMD.tabletID, {
+                    localPosition: tabletLocation.localPosition,
+                    localRotation: tabletLocation.localRotation,
+                    visible: true
+                });
+            } else {
+                print("XXX show tablet-ui, already rezzed, no position");
+                var tabletProperties = {};
+                UIWebTablet.calculateTabletAttachmentProperties(activeHand, true, tabletProperties);
+                tabletProperties.visible = true;
+                Overlays.editOverlay(HMD.tabletID, tabletProperties);
+            }
+            Overlays.editOverlay(HMD.homeButtonID, { visible: true });
+            Overlays.editOverlay(HMD.tabletScreenID, { visible: true });
+        }
     }
 
     function hideTabletUI() {
         tabletShown = false;
-        print("hide tablet-ui");
+        if (UIWebTablet) {
+            tabletLocation = UIWebTablet.getLocation();
+            print("XXX hide tablet-ui, position was " +  JSON.stringify(tabletLocation));
+            // Overlays.editOverlay(HMD.tabletID, { localPosition: { x: -1000, y: 0, z:0 } });
+            Overlays.editOverlay(HMD.tabletID, { visible: false });
+            Overlays.editOverlay(HMD.homeButtonID, { visible: false });
+            Overlays.editOverlay(HMD.tabletScreenID, { visible: false });
+        } else {
+            print("XXX hide tablet-ui, UIWebTablet is null");
+        }
+    }
+
+    function closeTabletUI() {
+        tabletShown = false;
         if (UIWebTablet) {
             if (UIWebTablet.onClose) {
                 UIWebTablet.onClose();
             }
 
             tabletLocation = UIWebTablet.getLocation();
+            print("XXX close tablet-ui, position was " +  JSON.stringify(tabletLocation));
             UIWebTablet.unregister();
             UIWebTablet.destroy();
             UIWebTablet = null;
             HMD.tabletID = null;
             HMD.homeButtonID = null;
             HMD.tabletScreenID = null;
+        } else {
+            print("XXX close tablet-ui, UIWebTablet is null");
         }
+        tabletRezzed = false;
     }
 
+
     function updateShowTablet() {
 
         // close the WebTablet if it we go into toolbar mode.
         var toolbarMode = Tablet.getTablet("com.highfidelity.interface.tablet.system").toolbarMode;
+        var visibleToOthers = Settings.getValue("tabletVisibleToOthers");
+
         if (tabletShown && toolbarMode) {
-            hideTabletUI();
+            closeTabletUI();
             HMD.closeTablet();
             return;
         }
@@ -78,18 +130,37 @@
             tablet.updateAudioBar(currentMicLevel);
         }
 
-        if (tabletShown && UIWebTablet && Overlays.getOverlayType(UIWebTablet.webOverlayID) != "web3d") {
+        // XXX don't do this check every time?
+        if (tabletRezzed && UIWebTablet && Overlays.getOverlayType(UIWebTablet.webOverlayID) != "web3d") {
             // when we switch domains, the tablet entity gets destroyed and recreated.  this causes
             // the overlay to be deleted, but not recreated.  If the overlay is deleted for this or any
             // other reason, close the tablet.
-            hideTabletUI();
+            closeTabletUI();
             HMD.closeTablet();
-        } else if (HMD.showTablet && !tabletShown && !toolbarMode) {
-            UserActivityLogger.openedTablet(Settings.getValue("tabletVisibleToOthers"));
+            print("XXX autodestroying tablet");
+        }
+
+
+        if (HMD.showTablet && !tabletShown && !toolbarMode) {
+            UserActivityLogger.openedTablet(visibleToOthers);
             showTabletUI();
         } else if (!HMD.showTablet && tabletShown) {
             UserActivityLogger.closedTablet();
-            hideTabletUI();
+            if (visibleToOthers) {
+                closeTabletUI();
+            } else {
+                hideTabletUI();
+            }
+        } else if (!toolbarMode && !visibleToOthers && !tabletRezzed) {
+            // pre-make the tablet so it will appear quickly
+            tabletLocation = {
+                localPosition: Vec3.sum(MyAvatar.position, { x: -1000, y: 0, z: 0 }),
+                localRotation: { x: 0, y: 0, z: 0, w: 1 }
+            };
+            print("XXX pre-creating tablet at " + JSON.stringify(tabletLocation));
+            rezTablet(true);
+            tabletLocation = null;
+            tabletShown = false;
         }
     }
 

From 1e3c717fd4e3f65d30792eba0c18bd128250fb03 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 9 Mar 2017 09:55:47 +1300
Subject: [PATCH 082/247] Method to show appropriate desktop or tablet dialog

---
 interface/src/Application.cpp | 10 ++++++++++
 interface/src/Application.h   |  2 ++
 2 files changed, 12 insertions(+)

diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index d659ec0a94..a32acc474b 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -5862,6 +5862,16 @@ void Application::addAssetToWorldFromURL(QString url) {
     request->send();
 }
 
+void Application::showDialog(const QString& desktopURL, const QString& tabletURL, const QString& name) const {
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+    if (tablet->getToolbarMode() || (!tablet->getTabletRoot() && !isHMDMode())) {
+        DependencyManager::get<OffscreenUi>()->show(desktopURL, name);
+    } else {
+        tablet->loadQMLSource(tabletURL);
+    }
+}
+
 void Application::addAssetToWorldFromURLRequestFinished() {
     auto request = qobject_cast<ResourceRequest*>(sender());
     auto url = request->getUrl().toString();
diff --git a/interface/src/Application.h b/interface/src/Application.h
index c4ba760153..9fab4aef81 100644
--- a/interface/src/Application.h
+++ b/interface/src/Application.h
@@ -333,6 +333,8 @@ public slots:
     void toggleRunningScriptsWidget() const;
     Q_INVOKABLE void showAssetServerWidget(QString filePath = "");
 
+    void showDialog(const QString& desktopURL, const QString& tabletURL, const QString& name) const;
+
     // FIXME: Move addAssetToWorld* methods to own class?
     void addAssetToWorldFromURL(QString url);
     void addAssetToWorldFromURLRequestFinished();

From 22e52290369fc20358a192d2cb0baf879d2e8005 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 9 Mar 2017 09:57:45 +1300
Subject: [PATCH 083/247] Use existing attachments dialog as base dialog
 content

---
 .../{AttachmentsDialog.qml => content/AttachmentsContent.qml}     | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename interface/resources/qml/hifi/dialogs/{AttachmentsDialog.qml => content/AttachmentsContent.qml} (100%)

diff --git a/interface/resources/qml/hifi/dialogs/AttachmentsDialog.qml b/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
similarity index 100%
rename from interface/resources/qml/hifi/dialogs/AttachmentsDialog.qml
rename to interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml

From ae48dae96f08722388c830acbf19d5dc77b50568 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Wed, 8 Mar 2017 15:29:46 -0800
Subject: [PATCH 084/247] get rid of toggleTabletUI lockout period

---
 interface/src/Application.cpp | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index d659ec0a94..60d6adc5d1 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -1620,14 +1620,7 @@ QString Application::getUserAgent() {
     return userAgent;
 }
 
-uint64_t lastTabletUIToggle { 0 };
-const uint64_t toggleTabletUILockout { 500000 };
 void Application::toggleTabletUI() const {
-    uint64_t now = usecTimestampNow();
-    if (now - lastTabletUIToggle < toggleTabletUILockout) {
-        return;
-    }
-    lastTabletUIToggle = now;
     auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
     TabletProxy* tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
     bool messageOpen = tablet->isMessageDialogOpen();

From 28ade45f97f12bf9d9d50dab5a8f85422c3fcd77 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Wed, 8 Mar 2017 15:30:15 -0800
Subject: [PATCH 085/247] make maxFPS a property

---
 interface/src/ui/overlays/Web3DOverlay.cpp | 26 ++++++++++++++++++++--
 interface/src/ui/overlays/Web3DOverlay.h   |  4 ++++
 2 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp
index d8bead0a07..dd161a9994 100644
--- a/interface/src/ui/overlays/Web3DOverlay.cpp
+++ b/interface/src/ui/overlays/Web3DOverlay.cpp
@@ -179,12 +179,20 @@ void Web3DOverlay::loadSourceURL() {
             tabletScriptingInterface->setQmlTabletRoot("com.highfidelity.interface.tablet.system", _webSurface->getRootItem(), _webSurface.data());
 
             // Override min fps for tablet UI, for silky smooth scrolling
-            _webSurface->setMaxFps(90);
+            setMaxFPS(90);
         }
     }
     _webSurface->getRootContext()->setContextProperty("globalPosition", vec3toVariant(getPosition()));
 }
 
+void Web3DOverlay::setMaxFPS(uint8_t maxFPS) {
+    _desiredMaxFPS = maxFPS;
+    if (_webSurface) {
+        _webSurface->setMaxFps(_desiredMaxFPS);
+        _currentMaxFPS = _desiredMaxFPS;
+    }
+}
+
 void Web3DOverlay::render(RenderArgs* args) {
     if (!_visible || !getParentVisible()) {
         return;
@@ -194,9 +202,11 @@ void Web3DOverlay::render(RenderArgs* args) {
     QSurface * currentSurface = currentContext->surface();
     if (!_webSurface) {
         _webSurface = DependencyManager::get<OffscreenQmlSurfaceCache>()->acquire(pickURL());
-        _webSurface->setMaxFps(10);
         // FIXME, the max FPS could be better managed by being dynamic (based on the number of current surfaces
         // and the current rendering load)
+        if (_currentMaxFPS != _desiredMaxFPS) {
+            setMaxFPS(_desiredMaxFPS);
+        }
         loadSourceURL();
         _webSurface->resume();
         _webSurface->resize(QSize(_resolution.x, _resolution.y));
@@ -246,6 +256,10 @@ void Web3DOverlay::render(RenderArgs* args) {
 
         _emitScriptEventConnection = connect(this, &Web3DOverlay::scriptEventReceived, _webSurface.data(), &OffscreenQmlSurface::emitScriptEvent);
         _webEventReceivedConnection = connect(_webSurface.data(), &OffscreenQmlSurface::webEventReceived, this, &Web3DOverlay::webEventReceived);
+    } else {
+        if (_currentMaxFPS != _desiredMaxFPS) {
+            setMaxFPS(_desiredMaxFPS);
+        }
     }
 
     vec2 halfSize = getSize() / 2.0f;
@@ -401,6 +415,11 @@ void Web3DOverlay::setProperties(const QVariantMap& properties) {
         _dpi = dpi.toFloat();
     }
 
+    auto maxFPS = properties["maxFPS"];
+    if (maxFPS.isValid()) {
+        _desiredMaxFPS = maxFPS.toInt();
+    }
+
     auto showKeyboardFocusHighlight = properties["showKeyboardFocusHighlight"];
     if (showKeyboardFocusHighlight.isValid()) {
         _showKeyboardFocusHighlight = showKeyboardFocusHighlight.toBool();
@@ -420,6 +439,9 @@ QVariant Web3DOverlay::getProperty(const QString& property) {
     if (property == "dpi") {
         return _dpi;
     }
+    if (property == "maxFPS") {
+        return _desiredMaxFPS;
+    }
     if (property == "showKeyboardFocusHighlight") {
         return _showKeyboardFocusHighlight;
     }
diff --git a/interface/src/ui/overlays/Web3DOverlay.h b/interface/src/ui/overlays/Web3DOverlay.h
index 2b9686919d..e71cac2452 100644
--- a/interface/src/ui/overlays/Web3DOverlay.h
+++ b/interface/src/ui/overlays/Web3DOverlay.h
@@ -31,6 +31,7 @@ public:
 
     QString pickURL();
     void loadSourceURL();
+    void setMaxFPS(uint8_t maxFPS);
     virtual void render(RenderArgs* args) override;
     virtual const render::ShapeKey getShapeKey() override;
 
@@ -75,6 +76,9 @@ private:
     bool _pressed{ false };
     QTouchDevice _touchDevice;
 
+    uint8_t _desiredMaxFPS { 10 };
+    uint8_t _currentMaxFPS { 0 };
+
     QMetaObject::Connection _mousePressConnection;
     QMetaObject::Connection _mouseReleaseConnection;
     QMetaObject::Connection _mouseMoveConnection;

From de2dd7383db495782efcc3e30d9fd2f4140640bf Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Wed, 8 Mar 2017 15:30:49 -0800
Subject: [PATCH 086/247] didn't need invis flag, after all

---
 scripts/system/libraries/WebTablet.js | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/scripts/system/libraries/WebTablet.js b/scripts/system/libraries/WebTablet.js
index 1acc12b3f1..ed0b0e75f7 100644
--- a/scripts/system/libraries/WebTablet.js
+++ b/scripts/system/libraries/WebTablet.js
@@ -100,7 +100,7 @@ function calcSpawnInfo(hand, height) {
  * @param hand [number] -1 indicates no hand, Controller.Standard.RightHand or Controller.Standard.LeftHand
  * @param clientOnly [bool] true indicates tablet model is only visible to client.
  */
-WebTablet = function (url, width, dpi, hand, clientOnly, location, invisisble) {
+WebTablet = function (url, width, dpi, hand, clientOnly, location) {
 
     var _this = this;
 
@@ -133,8 +133,7 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, invisisble) {
             "grabbableKey": {"grabbable": true}
         }),
         dimensions: {x: this.width, y: this.height, z: this.depth},
-        parentID: AVATAR_SELF_ID,
-        visible: !invisisble
+        parentID: AVATAR_SELF_ID
     };
 
     // compute position, rotation & parentJointIndex of the tablet
@@ -173,8 +172,7 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, invisisble) {
         parentID: this.tabletEntityID,
         parentJointIndex: -1,
         showKeyboardFocusHighlight: false,
-        isAA: HMD.active,
-        visible: !invisisble
+        isAA: HMD.active
     });
 
     var HOME_BUTTON_Y_OFFSET = (this.height / 2) - 0.009;
@@ -187,8 +185,7 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, invisisble) {
         visible: true,
         drawInFront: false,
         parentID: this.tabletEntityID,
-        parentJointIndex: -1,
-        visible: !invisisble
+        parentJointIndex: -1
     });
 
     this.receive = function (channel, senderID, senderUUID, localOnly) {

From 6aac2eb338be3e7c66f6b378a6dd1f1124c33370 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Wed, 8 Mar 2017 15:31:24 -0800
Subject: [PATCH 087/247] for overlay tablets, precreate them so that they show
 up quickly when summoned

---
 scripts/system/tablet-ui/tabletUI.js | 139 ++++++++++++++++++---------
 1 file changed, 92 insertions(+), 47 deletions(-)

diff --git a/scripts/system/tablet-ui/tabletUI.js b/scripts/system/tablet-ui/tabletUI.js
index 14eb7e7ecc..53989201d2 100644
--- a/scripts/system/tablet-ui/tabletUI.js
+++ b/scripts/system/tablet-ui/tabletUI.js
@@ -13,21 +13,46 @@
 //
 
 /* global Script, HMD, WebTablet, UIWebTablet, UserActivityLogger, Settings, Entities, Messages, Tablet, Overlays,
-   MyAvatar, Menu, Vec3 */
+   MyAvatar, Menu */
 
 (function() { // BEGIN LOCAL_SCOPE
     var tabletShown = false;
     var tabletRezzed = false;
-    var tabletLocation = null;
     var activeHand = null;
     var DEFAULT_WIDTH = 0.4375;
     var DEFAULT_TABLET_SCALE = 100;
+    var preMakeTime = Date.now();
+    var validCheckTime = Date.now();
+    var debugTablet = false;
     UIWebTablet = null;
 
     Script.include("../libraries/WebTablet.js");
 
-    function rezTablet(invisible) {
-        print("XXX show tablet-ui, not rezzed.  position is " +  JSON.stringify(tabletLocation));
+    function tabletIsValid() {
+        if (!UIWebTablet) {
+            return false;
+        }
+        if (UIWebTablet.tabletIsOverlay && Overlays.getProperty(HMD.tabletID, "type") != "model") {
+            if (debugTablet) {
+                print("TABLET is invalid due to frame: " + JSON.stringify(Overlays.getProperty(HMD.tabletID, "type")));
+            }
+            return false;
+        }
+        if (Overlays.getProperty(HMD.homeButtonID, "type") != "sphere" ||
+            Overlays.getProperty(HMD.tabletScreenID, "type") != "web3d") {
+            if (debugTablet) {
+                print("TABLET is invalid due to other");
+            }
+            return false;
+        }
+        return true;
+    }
+
+
+    function rezTablet() {
+        if (debugTablet) {
+            print("TABLET rezzing");
+        }
         var toolbarMode = Tablet.getTablet("com.highfidelity.interface.tablet.system").toolbarMode;
         var TABLET_SCALE = DEFAULT_TABLET_SCALE;
         if (toolbarMode) {
@@ -38,11 +63,12 @@
 
         UIWebTablet = new WebTablet("qml/hifi/tablet/TabletRoot.qml",
                                     DEFAULT_WIDTH * (TABLET_SCALE / 100),
-                                    null, activeHand, true, tabletLocation, invisible);
+                                    null, activeHand, true);
         UIWebTablet.register();
         HMD.tabletID = UIWebTablet.tabletEntityID;
         HMD.homeButtonID = UIWebTablet.homeButtonID;
         HMD.tabletScreenID = UIWebTablet.webOverlayID;
+
         tabletRezzed = true;
     }
 
@@ -54,36 +80,42 @@
         }
 
         if (UIWebTablet && tabletRezzed) {
-            if (tabletLocation) {
-                print("XXX show tablet-ui, already rezzed, already position: " + JSON.stringify(tabletLocation));
-                Overlays.editOverlay(HMD.tabletID, {
-                    localPosition: tabletLocation.localPosition,
-                    localRotation: tabletLocation.localRotation,
-                    visible: true
-                });
-            } else {
-                print("XXX show tablet-ui, already rezzed, no position");
-                var tabletProperties = {};
-                UIWebTablet.calculateTabletAttachmentProperties(activeHand, true, tabletProperties);
-                tabletProperties.visible = true;
+            if (debugTablet) {
+                print("TABLET in showTabletUI, already rezzed");
+            }
+            var tabletProperties = {};
+            UIWebTablet.calculateTabletAttachmentProperties(activeHand, true, tabletProperties);
+            tabletProperties.visible = true;
+            if (UIWebTablet.tabletIsOverlay) {
                 Overlays.editOverlay(HMD.tabletID, tabletProperties);
             }
             Overlays.editOverlay(HMD.homeButtonID, { visible: true });
             Overlays.editOverlay(HMD.tabletScreenID, { visible: true });
+            Overlays.editOverlay(HMD.tabletScreenID, { maxFPS: 90 });
         }
     }
 
     function hideTabletUI() {
         tabletShown = false;
-        if (UIWebTablet) {
-            tabletLocation = UIWebTablet.getLocation();
-            print("XXX hide tablet-ui, position was " +  JSON.stringify(tabletLocation));
-            // Overlays.editOverlay(HMD.tabletID, { localPosition: { x: -1000, y: 0, z:0 } });
-            Overlays.editOverlay(HMD.tabletID, { visible: false });
-            Overlays.editOverlay(HMD.homeButtonID, { visible: false });
-            Overlays.editOverlay(HMD.tabletScreenID, { visible: false });
+        if (!UIWebTablet) {
+            return;
+        }
+
+        if (UIWebTablet.tabletIsOverlay) {
+            if (debugTablet) {
+                print("TABLET hide");
+            }
+            if (Settings.getValue("tabletVisibleToOthers")) {
+                closeTabletUI();
+            } else {
+                // Overlays.editOverlay(HMD.tabletID, { localPosition: { x: -1000, y: 0, z:0 } });
+                Overlays.editOverlay(HMD.tabletID, { visible: false });
+                Overlays.editOverlay(HMD.homeButtonID, { visible: false });
+                Overlays.editOverlay(HMD.tabletScreenID, { visible: false });
+                Overlays.editOverlay(HMD.tabletScreenID, { maxFPS: 1 });
+            }
         } else {
-            print("XXX hide tablet-ui, UIWebTablet is null");
+            closeTabletUI();
         }
     }
 
@@ -94,22 +126,25 @@
                 UIWebTablet.onClose();
             }
 
-            tabletLocation = UIWebTablet.getLocation();
-            print("XXX close tablet-ui, position was " +  JSON.stringify(tabletLocation));
+            if (debugTablet) {
+                print("TABLET close");
+            }
             UIWebTablet.unregister();
             UIWebTablet.destroy();
             UIWebTablet = null;
             HMD.tabletID = null;
             HMD.homeButtonID = null;
             HMD.tabletScreenID = null;
-        } else {
-            print("XXX close tablet-ui, UIWebTablet is null");
+        } else if (debugTablet) {
+            print("TABLET closeTabletUI, UIWebTablet is null");
         }
         tabletRezzed = false;
     }
 
 
     function updateShowTablet() {
+        var MSECS_PER_SEC = 1000.0;
+        var now = Date.now();
 
         // close the WebTablet if it we go into toolbar mode.
         var toolbarMode = Tablet.getTablet("com.highfidelity.interface.tablet.system").toolbarMode;
@@ -130,14 +165,18 @@
             tablet.updateAudioBar(currentMicLevel);
         }
 
-        // XXX don't do this check every time?
-        if (tabletRezzed && UIWebTablet && Overlays.getOverlayType(UIWebTablet.webOverlayID) != "web3d") {
-            // when we switch domains, the tablet entity gets destroyed and recreated.  this causes
-            // the overlay to be deleted, but not recreated.  If the overlay is deleted for this or any
-            // other reason, close the tablet.
-            closeTabletUI();
-            HMD.closeTablet();
-            print("XXX autodestroying tablet");
+        if (validCheckTime - now > MSECS_PER_SEC) {
+            validCheckTime = now;
+            if (tabletRezzed && UIWebTablet && !tabletIsValid()) {
+                // when we switch domains, the tablet entity gets destroyed and recreated.  this causes
+                // the overlay to be deleted, but not recreated.  If the overlay is deleted for this or any
+                // other reason, close the tablet.
+                closeTabletUI();
+                HMD.closeTablet();
+                if (debugTablet) {
+                    print("TABLET autodestroying");
+                }
+            }
         }
 
 
@@ -151,17 +190,23 @@
             } else {
                 hideTabletUI();
             }
-        } else if (!toolbarMode && !visibleToOthers && !tabletRezzed) {
-            // pre-make the tablet so it will appear quickly
-            tabletLocation = {
-                localPosition: Vec3.sum(MyAvatar.position, { x: -1000, y: 0, z: 0 }),
-                localRotation: { x: 0, y: 0, z: 0, w: 1 }
-            };
-            print("XXX pre-creating tablet at " + JSON.stringify(tabletLocation));
-            rezTablet(true);
-            tabletLocation = null;
-            tabletShown = false;
         }
+
+        // if the tablet is an overlay, attempt to pre-create it and then hide it so that when it's
+        // summoned, it will appear quickly.
+        if (!toolbarMode && !visibleToOthers) {
+            if (now - preMakeTime > MSECS_PER_SEC) {
+                preMakeTime = now;
+                if (!tabletIsValid()) {
+                    closeTabletUI();
+                    rezTablet(false);
+                    tabletShown = false;
+                } else if (!tabletShown) {
+                    hideTabletUI();
+                }
+            }
+        }
+
     }
 
     function toggleHand(channel, hand, senderUUID, localOnly) {

From 1fc6d824560b47943f360f052c378e6bb37addab Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 9 Mar 2017 13:04:57 +1300
Subject: [PATCH 088/247] Tablet and desktop versions of avatar attachments
 dialog

---
 .../qml/hifi/dialogs/AttachmentsDialog.qml    | 45 +++++++++++
 .../dialogs/content/AttachmentsContent.qml    | 43 ++++-------
 .../hifi/tablet/TabletAttachmentsDialog.qml   | 77 +++++++++++++++++++
 interface/src/Menu.cpp                        |  4 +-
 interface/src/ui/overlays/Web3DOverlay.cpp    |  3 +
 5 files changed, 141 insertions(+), 31 deletions(-)
 create mode 100644 interface/resources/qml/hifi/dialogs/AttachmentsDialog.qml
 create mode 100644 interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml

diff --git a/interface/resources/qml/hifi/dialogs/AttachmentsDialog.qml b/interface/resources/qml/hifi/dialogs/AttachmentsDialog.qml
new file mode 100644
index 0000000000..a833c0fe61
--- /dev/null
+++ b/interface/resources/qml/hifi/dialogs/AttachmentsDialog.qml
@@ -0,0 +1,45 @@
+//
+//  AttachmentsDialog.qml
+//
+//  Created by David Rowe on 9 Mar 2017.
+//  Copyright 2017 High Fidelity, Inc.
+//
+//  Distributed under the Apache License, Version 2.0.
+//  See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import Qt.labs.settings 1.0
+
+import "../../styles-uit"
+import "../../windows"
+import "content"
+
+ScrollingWindow {
+    id: root
+    title: "Attachments"
+    objectName: "AttachmentsDialog"
+    width: 600
+    height: 600
+    resizable: true
+    destroyOnHidden: true
+    minSize: Qt.vector2d(400, 500)
+
+    HifiConstants { id: hifi }
+
+    property var settings: Settings {
+        category: "AttachmentsDialog"
+        property alias x: root.x
+        property alias y: root.y
+        property alias width: root.width
+        property alias height: root.height
+    }
+
+    function closeDialog() {
+        root.destroy();
+    }
+
+    AttachmentsContent { }
+
+}
diff --git a/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml b/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
index 27d225b58e..b36b7080bc 100644
--- a/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
+++ b/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
@@ -1,47 +1,29 @@
 import QtQuick 2.5
 import QtQuick.Controls 1.4
 import QtQuick.Dialogs 1.2 as OriginalDialogs
-import Qt.labs.settings 1.0
 import QtQuick.Controls.Styles 1.4
 
-import "../../styles-uit"
-import "../../controls-uit" as HifiControls
-import "../../windows"
-import "attachments"
+import "../../../styles-uit"
+import "../../../controls-uit" as HifiControls
+import "../../../windows"
+import "../attachments"
 
-ScrollingWindow {
-    id: root
-    title: "Attachments"
-    objectName: "AttachmentsDialog"
-    width: 600
-    height: 600
-    resizable: true
-    destroyOnHidden: true
-    minSize: Qt.vector2d(400, 500)
-
-    HifiConstants { id: hifi }
+Item {
+    id: content
 
     readonly property var originalAttachments: MyAvatar.getAttachmentsVariant();
     property var attachments: [];
 
-    property var settings: Settings {
-        category: "AttachmentsDialog"
-        property alias x: root.x
-        property alias y: root.y
-        property alias width: root.width
-        property alias height: root.height
-    }
-
     Component.onCompleted: {
         for (var i = 0; i < originalAttachments.length; ++i) {
             var attachment = originalAttachments[i];
-            root.attachments.push(attachment);
+            content.attachments.push(attachment);
             listView.model.append({});
         }
     }
 
     Column {
-        width: pane.contentWidth
+        width: pane.width
 
         Rectangle {
             width: parent.width
@@ -118,7 +100,7 @@ ScrollingWindow {
                             Attachment {
                                 id: attachmentView
                                 width: scrollView.width
-                                attachment: root.attachments[index]
+                                attachment: content.attachments[index]
                                 onDeleteAttachment: {
                                     attachments.splice(index, 1);
                                     listView.model.remove(index, 1);
@@ -190,7 +172,7 @@ ScrollingWindow {
                 text: "Cancel"
                 onTriggered: {
                     MyAvatar.setAttachmentsVariant(originalAttachments);
-                    root.destroy()
+                    closeDialog();
                 }
             }
 
@@ -203,12 +185,14 @@ ScrollingWindow {
                     }
 
                     MyAvatar.setAttachmentsVariant(attachments);
-                    root.destroy()
+                    closeDialog();
                 }
             }
         }
     }
 
+    // FIXME
+    /*
     onKeyboardRaisedChanged: {
         if (keyboardEnabled && keyboardRaised) {
             // Scroll to item with focus if necessary.
@@ -225,5 +209,6 @@ ScrollingWindow {
             }
         }
     }
+    */
 }
 
diff --git a/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml b/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
new file mode 100644
index 0000000000..5dd7e75eed
--- /dev/null
+++ b/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
@@ -0,0 +1,77 @@
+//
+//  TabletAttachmentsDialog.qml
+//
+//  Created by David Rowe on 9 Mar 2017.
+//  Copyright 2017 High Fidelity, Inc.
+//
+//  Distributed under the Apache License, Version 2.0.
+//  See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+
+import "../../controls-uit" as HifiControls
+import "../../styles-uit"
+import "../dialogs/content"
+
+Item {
+    id: root
+    objectName: "AttachmentsDialog"
+
+    property bool keyboardEnabled: false
+    property bool keyboardRaised: false
+    property bool punctuationMode: false
+
+    anchors.fill: parent
+
+    HifiConstants { id: hifi }
+
+    Rectangle {
+        id: pane  // Surrogate for ScrollingWindow's pane.
+        anchors.fill: parent
+        color: hifi.colors.baseGray  // Match that of dialog so that dialog's rounded corners don't show.
+    }
+
+    function closeDialog() {
+        Tablet.getTablet("com.highfidelity.interface.tablet.system").gotoHomeScreen();
+    }
+
+    AttachmentsContent {
+        id: attachments
+
+        anchors {
+            top: parent.top
+            left: parent.left
+            right: parent.right
+            bottom: keyboard.top
+        }
+
+        MouseArea {
+            // Defocuses any current control so that the keyboard gets hidden.
+            id: mouseArea
+            anchors.fill: parent
+            propagateComposedEvents: true
+            acceptedButtons: Qt.AllButtons
+            onPressed: {
+                parent.forceActiveFocus();
+                mouse.accepted = false;
+            }
+        }
+    }
+
+    HifiControls.Keyboard {
+        id: keyboard
+        raised: parent.keyboardEnabled && parent.keyboardRaised
+        numeric: parent.punctuationMode
+        anchors {
+            left: parent.left
+            right: parent.right
+            bottom: parent.bottom
+        }
+    }
+
+    Component.onCompleted: {
+        keyboardEnabled = HMD.active;
+    }
+}
diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp
index beacbaccab..5fa7c192df 100644
--- a/interface/src/Menu.cpp
+++ b/interface/src/Menu.cpp
@@ -171,10 +171,10 @@ Menu::Menu() {
     // Avatar > Attachments...
     auto action = addActionToQMenuAndActionHash(avatarMenu, MenuOption::Attachments);
     connect(action, &QAction::triggered, [] {
-        DependencyManager::get<OffscreenUi>()->show(QString("hifi/dialogs/AttachmentsDialog.qml"), "AttachmentsDialog");
+        qApp->showDialog(QString("hifi/dialogs/AttachmentsDialog.qml"),
+            QString("../../hifi/tablet/TabletAttachmentsDialog.qml"), "AttachmentsDialog");
     });
 
-
     // Avatar > Size
     MenuWrapper* avatarSizeMenu = avatarMenu->addMenu("Size");
 
diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp
index d8bead0a07..b2d75a0bbf 100644
--- a/interface/src/ui/overlays/Web3DOverlay.cpp
+++ b/interface/src/ui/overlays/Web3DOverlay.cpp
@@ -41,6 +41,7 @@
 #include <ScriptEngines.h>
 #include "FileDialogHelper.h"
 #include "AudioClient.h"
+#include <avatar/AvatarManager.h>
 
 
 static const float DPI = 30.47f;
@@ -174,7 +175,9 @@ void Web3DOverlay::loadSourceURL() {
             _webSurface->getRootContext()->setContextProperty("AudioStats", DependencyManager::get<AudioClient>()->getStats().data());
             _webSurface->getRootContext()->setContextProperty("HMD", DependencyManager::get<HMDScriptingInterface>().data());
             _webSurface->getRootContext()->setContextProperty("fileDialogHelper", new FileDialogHelper());
+            _webSurface->getRootContext()->setContextProperty("MyAvatar", DependencyManager::get<AvatarManager>()->getMyAvatar().get());
             _webSurface->getRootContext()->setContextProperty("ScriptDiscoveryService", DependencyManager::get<ScriptEngines>().data());
+            _webSurface->getRootContext()->setContextProperty("Tablet", DependencyManager::get<TabletScriptingInterface>().data());
             _webSurface->getRootContext()->setContextProperty("pathToFonts", "../../");
             tabletScriptingInterface->setQmlTabletRoot("com.highfidelity.interface.tablet.system", _webSurface->getRootItem(), _webSurface.data());
 

From 1acc5ea760e5fe1d8a4eafad055e3620a8f998f5 Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidelity.io>
Date: Wed, 8 Mar 2017 19:03:56 -0800
Subject: [PATCH 089/247] Finger now points when near tablet + deadspot added
 when touching the tablet

---
 scripts/defaultScripts.js                     |   2 +-
 .../system/controllers/handControllerGrab.js  | 341 +++++++++++-------
 scripts/system/controllers/squeezeHands.js    |  84 ++++-
 scripts/system/fingerPaint.js                 |  14 +-
 scripts/system/libraries/WebTablet.js         |   1 +
 5 files changed, 281 insertions(+), 161 deletions(-)

diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js
index 5d8813e988..27efab134a 100644
--- a/scripts/defaultScripts.js
+++ b/scripts/defaultScripts.js
@@ -27,10 +27,10 @@ var DEFAULT_SCRIPTS = [
     "system/tablet-users.js",
     "system/selectAudioDevice.js",
     "system/notifications.js",
+    "system/controllers/squeezeHands.js",
     "system/controllers/controllerDisplayManager.js",
     "system/controllers/handControllerGrab.js",
     "system/controllers/handControllerPointer.js",
-    "system/controllers/squeezeHands.js",
     "system/controllers/grab.js",
     "system/controllers/teleport.js",
     "system/controllers/toggleAdvancedMovementForHandControllers.js",
diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index d966279e51..abd0484ec4 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -272,6 +272,12 @@ CONTROLLER_STATE_MACHINE[STATE_STYLUS_TOUCHING] = {
     updateMethod: "stylusTouching"
 };
 
+function distance2D(a, b) {
+    var dx = (a.x - b.x);
+    var dy = (a.y - b.y);
+    return Math.sqrt(dx * dx + dy * dy);
+}
+
 function getFingerWorldLocation(hand) {
     var fingerJointName = (hand === RIGHT_HAND) ? "RightHandIndex4" : "LeftHandIndex4";
 
@@ -664,6 +670,125 @@ function sendTouchMoveEventToStylusTarget(hand, stylusTarget) {
     }
 }
 
+function calculateStylusTargetFromEntity(stylusTip, entityID) {
+    var props = entityPropertiesCache.getProps(entityID);
+
+    // entity could have been deleted.
+    if (props === undefined) {
+        return undefined;
+    }
+
+    // project stylus tip onto entity plane.
+    var normal = Vec3.multiplyQbyV(props.rotation, {x: 0, y: 0, z: 1});
+    Vec3.multiplyQbyV(props.rotation, {x: 0, y: 1, z: 0});
+    var distance = Vec3.dot(Vec3.subtract(stylusTip.position, props.position), normal);
+    var position = Vec3.subtract(stylusTip.position, Vec3.multiply(normal, distance));
+
+    // generate normalized coordinates
+    var invRot = Quat.inverse(props.rotation);
+    var localPos = Vec3.multiplyQbyV(invRot, Vec3.subtract(position, props.position));
+    var invDimensions = { x: 1 / props.dimensions.x, y: 1 / props.dimensions.y, z: 1 / props.dimensions.z };
+    var normalizedPosition = Vec3.sum(Vec3.multiplyVbyV(localPos, invDimensions), props.registrationPoint);
+
+    // 2D position on entity plane in meters, relative to the bounding box upper-left hand corner.
+    var position2D = { x: normalizedPosition.x * props.dimensions.x, y: (1 - normalizedPosition.y) * props.dimensions.y }; // flip y-axis
+
+    return {
+        entityID: entityID,
+        overlayID: null,
+        distance: distance,
+        position: position,
+        position2D: position2D,
+        normal: normal,
+        normalizedPosition: normalizedPosition,
+        dimensions: props.dimensions,
+        valid: true
+    };
+}
+
+function calculateStylusTargetFromOverlay(stylusTip, overlayID) {
+    var overlayPosition = Overlays.getProperty(overlayID, "position");
+
+    // overlay could have been deleted.
+    if (overlayPosition === undefined) {
+        return undefined;
+    }
+
+    // project stylusTip onto overlay plane.
+    var overlayRotation = Overlays.getProperty(overlayID, "rotation");
+    var normal = Vec3.multiplyQbyV(overlayRotation, {x: 0, y: 0, z: 1});
+    var distance = Vec3.dot(Vec3.subtract(stylusTip.position, overlayPosition), normal);
+    var position = Vec3.subtract(stylusTip.position, Vec3.multiply(normal, distance));
+
+    // calclulate normalized position
+    var invRot = Quat.inverse(overlayRotation);
+    var localPos = Vec3.multiplyQbyV(invRot, Vec3.subtract(position, overlayPosition));
+    var dpi = Overlays.getProperty(overlayID, "dpi");
+    var dimensions;
+    if (dpi) {
+        // Calculate physical dimensions for web3d overlay from resolution and dpi; "dimensions" property is used as a scale.
+        var resolution = Overlays.getProperty(overlayID, "resolution");
+        resolution.z = 1;  // Circumvent divide-by-zero.
+        var scale = Overlays.getProperty(overlayID, "dimensions");
+        scale.z = 0.01;    // overlay dimensions are 2D, not 3D.
+        dimensions = Vec3.multiplyVbyV(Vec3.multiply(resolution, INCHES_TO_METERS / dpi), scale);
+    } else {
+        dimensions = Overlays.getProperty(overlayID, "dimensions");
+        if (!dimensions.z) {
+            dimensions.z = 0.01;    // sometimes overlay dimensions are 2D, not 3D.
+        }
+    }
+    var invDimensions = { x: 1 / dimensions.x, y: 1 / dimensions.y, z: 1 / dimensions.z };
+    var normalizedPosition = Vec3.sum(Vec3.multiplyVbyV(localPos, invDimensions), DEFAULT_REGISTRATION_POINT);
+
+    // 2D position on overlay plane in meters, relative to the bounding box upper-left hand corner.
+    var position2D = { x: normalizedPosition.x * dimensions.x, y: (1 - normalizedPosition.y) * dimensions.y }; // flip y-axis
+
+    return {
+        entityID: null,
+        overlayID: overlayID,
+        distance: distance,
+        position: position,
+        position2D: position2D,
+        normal: normal,
+        normalizedPosition: normalizedPosition,
+        dimensions: dimensions,
+        valid: true
+    };
+}
+
+function isNearStylusTarget(stylusTargets, edgeBorder, minNormalDistance, maxNormalDistance) {
+    for (var i = 0; i < stylusTargets.length; i++) {
+        var stylusTarget = stylusTargets[i];
+
+        // check to see if the projected stylusTip is within within the 2d border
+        var borderMin = {x: -edgeBorder, y: -edgeBorder};
+        var borderMax = {x: stylusTarget.dimensions.x + edgeBorder, y: stylusTarget.dimensions.y + edgeBorder};
+        if (stylusTarget.distance >= minNormalDistance && stylusTarget.distance <= maxNormalDistance &&
+            stylusTarget.position2D.x >= borderMin.x && stylusTarget.position2D.y >= borderMin.y &&
+            stylusTarget.position2D.x <= borderMax.x && stylusTarget.position2D.y <= borderMax.y) {
+            return true;
+        }
+    }
+    return false;
+}
+
+function calculateNearestStylusTarget(stylusTargets) {
+    var nearestStylusTarget;
+
+    for (var i = 0; i < stylusTargets.length; i++) {
+        var stylusTarget = stylusTargets[i];
+
+        if ((!nearestStylusTarget || stylusTarget.distance < nearestStylusTarget.distance) &&
+            stylusTarget.normalizedPosition.x >= 0 && stylusTarget.normalizedPosition.y >= 0 &&
+            stylusTarget.normalizedPosition.x <= 1 && stylusTarget.normalizedPosition.y <= 1) {
+            nearestStylusTarget = stylusTarget;
+        }
+    }
+
+    return nearestStylusTarget;
+};
+
 // EntityPropertiesCache is a helper class that contains a cache of entity properties.
 // the hope is to prevent excess calls to Entity.getEntityProperties()
 //
@@ -984,6 +1109,7 @@ function MyController(hand) {
     this.tabletStabbedPos3D = null;
 
     this.useFingerInsteadOfStylus = false;
+    this.fingerPointing = false;
 
     // initialize stylus tip
     var DEFAULT_STYLUS_TIP = {
@@ -1417,123 +1543,6 @@ function MyController(hand) {
         return _this.rawThumbValue < THUMB_ON_VALUE;
     };
 
-    // returns object with the following fields
-    // * entityID - if non null, this entityID is the closest to the stylusTip.
-    // * overlayID - if non null, this overlayID is the closest to the stylusTip.
-    // * distance - distance in meters from the stylus to the surface of the stylusTarget.
-    // * position - position on the surface of the stylusTarget that is nearest to the stylusTip. (world space)
-    // * position2D - postion on surface of the stylusTarget ready for use for pointerEvent.pos2D
-    // * normal - normal vector of the surface. (world space)
-    // * valid - if false, all other fields are invalid.
-    this.calculateNearestStylusTargetFromCandidates = function (candidates, cullSide) {
-
-        // now attempt to find the nearest stylusTarget.
-
-        var nearestStylusTarget = {
-            entityID: null,
-            overlayID: null,
-            distance: WEB_DISPLAY_STYLUS_DISTANCE,
-            position: {x: 0, y: 0, z: 0},
-            normalizedPosition: {x: 0, y: 0, z: 0},
-            normal: {x: 0, y: 0, z: 1},
-            valid: false
-        };
-
-        if (candidates.entities.length > 0 || candidates.overlays.length > 0) {
-            var i, props, entityID, normal, distance, position, invRot, localPos, invDimensions, normalizedPos, position2D;
-            for (i = 0; i < candidates.entities.length; i++) {
-                entityID = candidates.entities[i];
-                props = entityPropertiesCache.getProps(entityID);
-
-                // entity could have been deleted.
-                if (props === undefined) {
-                    continue;
-                }
-
-                normal = Vec3.multiplyQbyV(props.rotation, {x: 0, y: 0, z: 1});
-                Vec3.multiplyQbyV(props.rotation, {x: 0, y: 1, z: 0});
-                distance = Vec3.dot(Vec3.subtract(this.stylusTip.position, props.position), normal);
-                position = Vec3.subtract(this.stylusTip.position, Vec3.multiply(normal, distance));
-
-                if (distance < nearestStylusTarget.distance) {
-
-                    invRot = Quat.inverse(props.rotation);
-                    localPos = Vec3.multiplyQbyV(invRot, Vec3.subtract(position, props.position));
-                    invDimensions = { x: 1 / props.dimensions.x, y: 1 / props.dimensions.y, z: 1 / props.dimensions.z };
-                    normalizedPos = Vec3.sum(Vec3.multiplyVbyV(localPos, invDimensions), props.registrationPoint);
-
-                    if (normalizedPos.x >= 0 && normalizedPos.y >= 0 && normalizedPos.x <= 1 && normalizedPos.y <= 1) {
-                        position2D = { x: normalizedPos.x * props.dimensions.x, y: (1 - normalizedPos.y) * props.dimensions.y }; // flip y-axis
-                        nearestStylusTarget = {
-                            entityID: entityID,
-                            overlayID: null,
-                            distance: distance,
-                            position: position,
-                            position2D: position2D,
-                            normal: normal,
-                            valid: true
-                        };
-                    }
-                }
-            }
-
-            for (i = 0; i < candidates.overlays.length; i++) {
-                var overlayID = candidates.overlays[i];
-                var overlayPosition = Overlays.getProperty(overlayID, "position");
-
-                // overlay could have been deleted.
-                if (overlayPosition === undefined) {
-                    continue;
-                }
-
-                var overlayRotation = Overlays.getProperty(overlayID, "rotation");
-                normal = Vec3.multiplyQbyV(overlayRotation, {x: 0, y: 0, z: 1});
-                distance = Vec3.dot(Vec3.subtract(this.stylusTip.position, overlayPosition), normal);
-                position = Vec3.subtract(this.stylusTip.position, Vec3.multiply(normal, distance));
-
-                if (distance < nearestStylusTarget.distance) {
-
-                    invRot = Quat.inverse(overlayRotation);
-                    localPos = Vec3.multiplyQbyV(invRot, Vec3.subtract(position, overlayPosition));
-
-                    var dpi = Overlays.getProperty(overlayID, "dpi");
-                    var dimensions;
-                    if (dpi) {
-                        // Calculate physical dimensions for web3d overlay from resolution and dpi; "dimensions" property is used as a scale.
-                        var resolution = Overlays.getProperty(overlayID, "resolution");
-                        resolution.z = 1;  // Circumvent divide-by-zero.
-                        var scale = Overlays.getProperty(overlayID, "dimensions");
-                        scale.z = 0.01;    // overlay dimensions are 2D, not 3D.
-                        dimensions = Vec3.multiplyVbyV(Vec3.multiply(resolution, INCHES_TO_METERS / dpi), scale);
-                    } else {
-                        dimensions = Overlays.getProperty(overlayID, "dimensions");
-                        if (!dimensions.z) {
-                            dimensions.z = 0.01;    // sometimes overlay dimensions are 2D, not 3D.
-                        }
-                    }
-
-                    invDimensions = { x: 1 / dimensions.x, y: 1 / dimensions.y, z: 1 / dimensions.z };
-                    normalizedPos = Vec3.sum(Vec3.multiplyVbyV(localPos, invDimensions), DEFAULT_REGISTRATION_POINT);
-
-                    if (!cullSide || (normalizedPos.x >= 0 && normalizedPos.y >= 0 && normalizedPos.x <= 1 && normalizedPos.y <= 1)) {
-                        position2D = { x: normalizedPos.x * dimensions.x, y: (1 - normalizedPos.y) * dimensions.y }; // flip y-axis
-                        nearestStylusTarget = {
-                            entityID: null,
-                            overlayID: overlayID,
-                            distance: distance,
-                            position: position,
-                            position2D: position2D,
-                            normal: normal,
-                            valid: true
-                        };
-                    }
-                }
-            }
-        }
-
-        return nearestStylusTarget;
-    };
-
     this.stealTouchFocus = function(stylusTarget) {
         // send hover events to target
         // record the entity or overlay we are hovering over.
@@ -1577,8 +1586,23 @@ function MyController(hand) {
         }
     };
 
+    this.pointFinger = function(value) {
+        var HIFI_POINT_INDEX_MESSAGE_CHANNEL = "Hifi-Point-Index";
+        if (this.fingerPointing !== value) {
+            var message;
+            if (this.hand === RIGHT_HAND) {
+                message = { pointRightIndex: value };
+            } else {
+                message = { pointLeftIndex: value };
+            }
+            Messages.sendMessage(HIFI_POINT_INDEX_MESSAGE_CHANNEL, JSON.stringify(message), true);
+            this.fingerPointing = value;
+        }
+    };
+
     this.processStylus = function() {
         if (!this.stylusTip.valid) {
+            this.pointFinger(false);
             this.hideStylus();
             return;
         }
@@ -1615,20 +1639,53 @@ function MyController(hand) {
             candidates.overlays.push(HMD.homeButtonID);
         }
 
-        var nearestStylusTarget = this.calculateNearestStylusTargetFromCandidates(candidates, true);
+        // build list of stylus targets
+        var stylusTargets = [];
+        if (candidates.entities.length > 0 || candidates.overlays.length > 0) {
+            var stylusTarget;
+            for (i = 0; i < candidates.entities.length; i++) {
+                stylusTarget = calculateStylusTargetFromEntity(this.stylusTip, candidates.entities[i]);
+                if (stylusTarget) {
+                    stylusTargets.push(stylusTarget);
+                }
+            }
 
-        if (!this.useFingerInsteadOfStylus && nearestStylusTarget.valid) {
-            this.showStylus();
-        } else {
-            this.hideStylus();
+            for (i = 0; i < candidates.overlays.length; i++) {
+                stylusTarget = calculateStylusTargetFromOverlay(this.stylusTip, candidates.overlays[i]);
+                if (stylusTarget) {
+                    stylusTargets.push(stylusTarget);
+                }
+            }
         }
 
         var TABLET_MIN_HOVER_DISTANCE = 0.01;
         var TABLET_MAX_HOVER_DISTANCE = 0.1;
         var TABLET_MIN_TOUCH_DISTANCE = -0.05;
         var TABLET_MAX_TOUCH_DISTANCE = TABLET_MIN_HOVER_DISTANCE;
+        var EDGE_BORDER = 0.075;
 
-        if (nearestStylusTarget.valid && nearestStylusTarget.distance > TABLET_MIN_TOUCH_DISTANCE &&
+        var hysteresisOffset = 0.0;
+        if (this.isNearStylusTarget) {
+            hysteresisOffset = 0.05;
+        }
+
+        this.isNearStylusTarget = isNearStylusTarget(stylusTargets, EDGE_BORDER + hysteresisOffset,
+                                                     TABLET_MIN_TOUCH_DISTANCE - hysteresisOffset, WEB_DISPLAY_STYLUS_DISTANCE + hysteresisOffset);
+
+        if (this.isNearStylusTarget) {
+            if (!this.useFingerInsteadOfStylus) {
+                this.showStylus();
+            } else {
+                this.pointFinger(true);
+            }
+        } else {
+            this.hideStylus();
+            this.pointFinger(false);
+        }
+
+        var nearestStylusTarget = calculateNearestStylusTarget(stylusTargets);
+
+        if (nearestStylusTarget && nearestStylusTarget.distance > TABLET_MIN_TOUCH_DISTANCE &&
             nearestStylusTarget.distance < TABLET_MAX_HOVER_DISTANCE) {
 
             this.requestTouchFocus(nearestStylusTarget);
@@ -1642,8 +1699,11 @@ function MyController(hand) {
             }
 
             // filter out presses when tip is moving away from tablet.
+            // ensure that stylus is within bounding box by checking normalizedPosition
             if (nearestStylusTarget.valid && nearestStylusTarget.distance > TABLET_MIN_TOUCH_DISTANCE &&
-                nearestStylusTarget.distance < TABLET_MAX_TOUCH_DISTANCE && Vec3.dot(this.stylusTip.velocity, nearestStylusTarget.normal) < 0) {
+                nearestStylusTarget.distance < TABLET_MAX_TOUCH_DISTANCE && Vec3.dot(this.stylusTip.velocity, nearestStylusTarget.normal) < 0 &&
+                nearestStylusTarget.normalizedPosition.x >= 0 && nearestStylusTarget.normalizedPosition.x <= 1 &&
+                nearestStylusTarget.normalizedPosition.y >= 0 && nearestStylusTarget.normalizedPosition.y <= 1) {
 
                 var name;
                 if (nearestStylusTarget.entityID) {
@@ -3505,8 +3565,8 @@ function MyController(hand) {
         this.touchingEnterStylusTarget = this.stylusTarget;
         this.deadspotExpired = false;
 
-        var TOUCH_PRESS_TO_MOVE_DEADSPOT = 0.025;
-        this.deadspotRadius = TOUCH_PRESS_TO_MOVE_DEADSPOT; // meters
+        var TOUCH_PRESS_TO_MOVE_DEADSPOT = 0.0381;
+        this.deadspotRadius = TOUCH_PRESS_TO_MOVE_DEADSPOT;
     };
 
     this.stylusTouchingExit = function () {
@@ -3528,26 +3588,29 @@ function MyController(hand) {
 
         this.touchingEnterTimer += dt;
 
-        var candidates = { entities: [], overlays: [] };
-        if (this.stylusTarget.entityID && this.stylusTarget.entityID !== NULL_UUID) {
-            candidates.entities.push(this.stylusTarget.entityID);
-        } else if (this.stylusTarget.overlayID && this.stylusTarget.overlayID !== NULL_UUID) {
-            candidates.overlays.push(this.stylusTarget.overlayID);
+        if (this.stylusTarget.entityID) {
+            entityPropertiesCache.addEntity(this.stylusTarget.entityID);
+            this.stylusTarget = calcualteStylusTargetFromEntity(this.stylusTip, this.stylusTarget.entityID);
+        } else if (this.stylusTarget.overlayID) {
+            this.stylusTarget = calculateStylusTargetFromOverlay(this.stylusTip, this.stylusTarget.overlayID);
         }
-        this.stylusTarget = this.calculateNearestStylusTargetFromCandidates(candidates, false);
 
         var TABLET_MIN_TOUCH_DISTANCE = -0.1;
         var TABLET_MAX_TOUCH_DISTANCE = 0.01;
 
-        if (this.stylusTarget.valid && this.stylusTarget.distance > TABLET_MIN_TOUCH_DISTANCE && this.stylusTarget.distance < TABLET_MAX_TOUCH_DISTANCE) {
-
-            var POINTER_PRESS_TO_MOVE_DELAY = 0.25; // seconds
-            if (this.deadspotExpired || this.touchingEnterTimer > POINTER_PRESS_TO_MOVE_DELAY ||
-                Vec3.distance(this.stylusTarget.position, this.touchingEnterPointerEvent.pos3D) > this.deadspotRadius) {
-                sendTouchMoveEventToStylusTarget(this.hand, this.stylusTarget);
+        if (this.stylusTarget) {
+            if (this.stylusTarget.distance > TABLET_MIN_TOUCH_DISTANCE && this.stylusTarget.distance < TABLET_MAX_TOUCH_DISTANCE) {
+                var POINTER_PRESS_TO_MOVE_DELAY = 0.33; // seconds
+                if (this.deadspotExpired || this.touchingEnterTimer > POINTER_PRESS_TO_MOVE_DELAY ||
+                    distance2D(this.stylusTarget.position2D, this.touchingEnterStylusTarget.position2D) > this.deadspotRadius) {
+                    sendTouchMoveEventToStylusTarget(this.hand, this.stylusTarget);
+                    this.deadspotExpired = true;
+                }
+            } else {
+                this.setState(STATE_OFF, "hand moved away from touch surface");
             }
         } else {
-            this.setState(STATE_OFF, "hand moved away from tablet");
+            this.setState(STATE_OFF, "touch surface was destroyed");
         }
     };
 
diff --git a/scripts/system/controllers/squeezeHands.js b/scripts/system/controllers/squeezeHands.js
index 75e6249dd6..c9de473e28 100644
--- a/scripts/system/controllers/squeezeHands.js
+++ b/scripts/system/controllers/squeezeHands.js
@@ -11,6 +11,7 @@
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
 //
+/* eslint indent: ["error", 4, { "outerIIFEBody": 0 }] */
 
 (function() { // BEGIN LOCAL_SCOPE
 
@@ -25,7 +26,11 @@ var OVERLAY_RAMP_RATE = 8.0;
 
 var animStateHandlerID;
 
-var isBothIndexesPointing = false;
+var leftIndexPointingOverride = 0;
+var rightIndexPointingOverride = 0;
+var leftThumbRaisedOverride = 0;
+var rightThumbRaisedOverride = 0;
+
 var HIFI_POINT_INDEX_MESSAGE_CHANNEL = "Hifi-Point-Index";
 
 var isLeftIndexPointing = false;
@@ -53,7 +58,7 @@ function init() {
             "leftHandOverlayAlpha", "leftHandGraspAlpha",
             "rightHandOverlayAlpha", "rightHandGraspAlpha",
             "isLeftHandGrasp", "isLeftIndexPoint", "isLeftThumbRaise", "isLeftIndexPointAndThumbRaise",
-            "isRightHandGrasp", "isRightIndexPoint", "isRightThumbRaise", "isRightIndexPointAndThumbRaise",
+            "isRightHandGrasp", "isRightIndexPoint", "isRightThumbRaise", "isRightIndexPointAndThumbRaise"
         ]
     );
     Messages.subscribe(HIFI_POINT_INDEX_MESSAGE_CHANNEL);
@@ -66,21 +71,23 @@ function animStateHandler(props) {
         leftHandGraspAlpha: lastLeftTrigger,
         rightHandOverlayAlpha: rightHandOverlayAlpha,
         rightHandGraspAlpha: lastRightTrigger,
-        isLeftHandGrasp: !isBothIndexesPointing && !isLeftIndexPointing && !isLeftThumbRaised,
-        isLeftIndexPoint: (isBothIndexesPointing || isLeftIndexPointing) && !isLeftThumbRaised,
-        isLeftThumbRaise: !isBothIndexesPointing && !isLeftIndexPointing && isLeftThumbRaised,
-        isLeftIndexPointAndThumbRaise: (isBothIndexesPointing || isLeftIndexPointing) && isLeftThumbRaised,
-        isRightHandGrasp: !isBothIndexesPointing && !isRightIndexPointing && !isRightThumbRaised,
-        isRightIndexPoint: (isBothIndexesPointing || isRightIndexPointing) && !isRightThumbRaised,
-        isRightThumbRaise: !isBothIndexesPointing && !isRightIndexPointing && isRightThumbRaised,
-        isRightIndexPointAndThumbRaise: (isBothIndexesPointing || isRightIndexPointing) && isRightThumbRaised
+
+        isLeftHandGrasp: !isLeftIndexPointing && !isLeftThumbRaised,
+        isLeftIndexPoint: isLeftIndexPointing && !isLeftThumbRaised,
+        isLeftThumbRaise: !isLeftIndexPointing && isLeftThumbRaised,
+        isLeftIndexPointAndThumbRaise: isLeftIndexPointing && isLeftThumbRaised,
+
+        isRightHandGrasp: !isRightIndexPointing && !isRightThumbRaised,
+        isRightIndexPoint: isRightIndexPointing && !isRightThumbRaised,
+        isRightThumbRaise: !isRightIndexPointing && isRightThumbRaised,
+        isRightIndexPointAndThumbRaise: isRightIndexPointing && isRightThumbRaised
     };
 }
 
 function update(dt) {
     var leftTrigger = clamp(Controller.getValue(Controller.Standard.LT) + Controller.getValue(Controller.Standard.LeftGrip), 0, 1);
     var rightTrigger = clamp(Controller.getValue(Controller.Standard.RT) + Controller.getValue(Controller.Standard.RightGrip), 0, 1);
-        
+
     //  Average last few trigger values together for a bit of smoothing
     var tau = clamp(dt / TRIGGER_SMOOTH_TIMESCALE, 0, 1);
     lastLeftTrigger = lerp(leftTrigger, lastLeftTrigger, tau);
@@ -103,18 +110,61 @@ function update(dt) {
     }
 
     // Pointing index fingers and raising thumbs
-    isLeftIndexPointing = leftHandPose.valid && Controller.getValue(Controller.Standard.LeftIndexPoint) === 1;
-    isRightIndexPointing = rightHandPose.valid && Controller.getValue(Controller.Standard.RightIndexPoint) === 1;
-    isLeftThumbRaised = leftHandPose.valid && Controller.getValue(Controller.Standard.LeftThumbUp) === 1;
-    isRightThumbRaised = rightHandPose.valid && Controller.getValue(Controller.Standard.RightThumbUp) === 1;
+    isLeftIndexPointing = (leftIndexPointingOverride > 0) || (leftHandPose.valid && Controller.getValue(Controller.Standard.LeftIndexPoint) === 1);
+    isRightIndexPointing = (rightIndexPointingOverride > 0) || (rightHandPose.valid && Controller.getValue(Controller.Standard.RightIndexPoint) === 1);
+    isLeftThumbRaised = (leftThumbRaisedOverride > 0) || (leftHandPose.valid && Controller.getValue(Controller.Standard.LeftThumbUp) === 1);
+    isRightThumbRaised = (rightThumbRaisedOverride > 0) || (rightHandPose.valid && Controller.getValue(Controller.Standard.RightThumbUp) === 1);
 }
 
 function handleMessages(channel, message, sender) {
     if (sender === MyAvatar.sessionUUID && channel === HIFI_POINT_INDEX_MESSAGE_CHANNEL) {
         var data = JSON.parse(message);
+
         if (data.pointIndex !== undefined) {
-            print("pointIndex: " + data.pointIndex);
-            isBothIndexesPointing = data.pointIndex;
+            if (data.pointIndex) {
+                leftIndexPointingOverride++;
+                rightIndexPointingOverride++;
+            } else {
+                leftIndexPointingOverride--;
+                rightIndexPointingOverride--;
+            }
+        }
+        if (data.pointLeftIndex !== undefined) {
+            if (data.pointLeftIndex) {
+                leftIndexPointingOverride++;
+            } else {
+                leftIndexPointingOverride--;
+            }
+        }
+        if (data.pointRightIndex !== undefined) {
+            if (data.pointRightIndex) {
+                rightIndexPointingOverride++;
+            } else {
+                rightIndexPointingOverride--;
+            }
+        }
+        if (data.raiseThumbs !== undefined) {
+            if (data.raiseThumbs) {
+                leftThumbRaisedOverride++;
+                rightThumbRaisedOverride++;
+            } else {
+                leftThumbRaisedOverride--;
+                rightThumbRaisedOverride--;
+            }
+        }
+        if (data.raiseLeftThumb !== undefined) {
+            if (data.raiseLeftThumb) {
+                leftThumbRaisedOverride++;
+            } else {
+                leftThumbRaisedOverride--;
+            }
+        }
+        if (data.raiseRightThumb !== undefined) {
+            if (data.raiseRightThumb) {
+                rightThumbRaisedOverride++;
+            } else {
+                rightThumbRaisedOverride--;
+            }
         }
     }
 }
diff --git a/scripts/system/fingerPaint.js b/scripts/system/fingerPaint.js
index 959f594212..27206ef9fa 100644
--- a/scripts/system/fingerPaint.js
+++ b/scripts/system/fingerPaint.js
@@ -13,6 +13,7 @@
         button,
         BUTTON_NAME = "PAINT",
         isFingerPainting = false,
+        shouldPointFingers = false,
         leftHand = null,
         rightHand = null,
         leftBrush = null,
@@ -308,9 +309,14 @@
         Messages.sendMessage(HIFI_POINTER_DISABLE_MESSAGE_CHANNEL, JSON.stringify({
             pointerEnabled: enabled
         }), true);
-        Messages.sendMessage(HIFI_POINT_INDEX_MESSAGE_CHANNEL, JSON.stringify({
-            pointIndex: !enabled
-        }), true);
+
+        var newShouldPointFingers = !enabled;
+        if (newShouldPointFingers !== shouldPointFingers) {
+            Messages.sendMessage(HIFI_POINT_INDEX_MESSAGE_CHANNEL, JSON.stringify({
+                pointIndex: newShouldPointFingers
+            }), true);
+            shouldPointFingers = newShouldPointFingers;
+        }
     }
 
     function enableProcessing() {
@@ -430,4 +436,4 @@
 
     setUp();
     Script.scriptEnding.connect(tearDown);
-}());
\ No newline at end of file
+}());
diff --git a/scripts/system/libraries/WebTablet.js b/scripts/system/libraries/WebTablet.js
index 8859b13624..c7706da28b 100644
--- a/scripts/system/libraries/WebTablet.js
+++ b/scripts/system/libraries/WebTablet.js
@@ -171,6 +171,7 @@ WebTablet = function (url, width, dpi, hand, clientOnly) {
     this.homeButtonID = Overlays.addOverlay("sphere", {
         name: "homeButton",
         localPosition: {x: -0.001, y: -HOME_BUTTON_Y_OFFSET, z: 0.0},
+        localRotation: {x: 0, y: 1, z: 0, w: 0},
         dimensions: { x: 4 * tabletScaleFactor, y: 4 * tabletScaleFactor, z: 4 * tabletScaleFactor},
         alpha: 0.0,
         visible: true,

From 66dded5e2888aabc2921d36e3c8486642b146fd7 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 9 Mar 2017 18:13:26 +1300
Subject: [PATCH 090/247] Scroll attachments if necessary when raise keyboard
 to keep focus

---
 .../qml/hifi/dialogs/AttachmentsDialog.qml    | 10 ++++++++
 .../dialogs/content/AttachmentsContent.qml    | 20 ++--------------
 .../hifi/tablet/TabletAttachmentsDialog.qml   | 23 ++++++++++++++++++-
 3 files changed, 34 insertions(+), 19 deletions(-)

diff --git a/interface/resources/qml/hifi/dialogs/AttachmentsDialog.qml b/interface/resources/qml/hifi/dialogs/AttachmentsDialog.qml
index a833c0fe61..66338666cf 100644
--- a/interface/resources/qml/hifi/dialogs/AttachmentsDialog.qml
+++ b/interface/resources/qml/hifi/dialogs/AttachmentsDialog.qml
@@ -42,4 +42,14 @@ ScrollingWindow {
 
     AttachmentsContent { }
 
+    onKeyboardRaisedChanged: {
+        if (keyboardEnabled && keyboardRaised) {
+            var buttonHeight = 40;  // Allow for New Attachment button.
+            var keyboardRaisedHeight = 200;
+            var delta = activator.mouseY - (root.height - keyboardRaisedHeight - buttonHeight);
+            if (delta > 0) {
+                content.scrollBy(delta);
+            }
+        }
+    }
 }
diff --git a/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml b/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
index b36b7080bc..4793d83e21 100644
--- a/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
+++ b/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
@@ -191,24 +191,8 @@ Item {
         }
     }
 
-    // FIXME
-    /*
-    onKeyboardRaisedChanged: {
-        if (keyboardEnabled && keyboardRaised) {
-            // Scroll to item with focus if necessary.
-            var footerHeight = newAttachmentButton.height + buttonRow.height + 3 * hifi.dimensions.contentSpacing.y;
-            var delta = activator.mouseY
-                    - (activator.height + activator.y - 200 - footerHeight - hifi.dimensions.controlLineHeight);
-
-            if (delta > 0) {
-                scrollView.scrollBy(delta);
-            } else {
-                // HACK: Work around for case where are 100% scrolled; stops window from erroneously scrolling to 100% when show keyboard.
-                scrollView.scrollBy(-1);
-                scrollView.scrollBy(1);
-            }
-        }
+    function scrollBy(delta) {
+        scrollView.scrollBy(delta);
     }
-    */
 }
 
diff --git a/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml b/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
index 5dd7e75eed..0bb43fccd2 100644
--- a/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
@@ -49,7 +49,7 @@ Item {
 
         MouseArea {
             // Defocuses any current control so that the keyboard gets hidden.
-            id: mouseArea
+            id: defocuser
             anchors.fill: parent
             propagateComposedEvents: true
             acceptedButtons: Qt.AllButtons
@@ -71,6 +71,27 @@ Item {
         }
     }
 
+    onKeyboardRaisedChanged: {
+        if (keyboardEnabled && keyboardRaised) {
+            var buttonsHeight = 120;  // Allow for New Attachment plus Cancel & OK buttons.
+            var delta = activator.mouseY - (root.height - keyboard.raisedHeight - buttonsHeight);
+            if (delta > 0) {
+                attachments.scrollBy(delta);
+            }
+        }
+    }
+
+    MouseArea {
+        id: activator
+        anchors.fill: parent
+        propagateComposedEvents: true
+        enabled: true
+        acceptedButtons: Qt.AllButtons
+        onPressed: {
+            mouse.accepted = false;
+        }
+    }
+
     Component.onCompleted: {
         keyboardEnabled = HMD.active;
     }

From 4be106cbae93a57352786a2d55e8cacfc8654de9 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 9 Mar 2017 18:20:26 +1300
Subject: [PATCH 091/247] Remove obsolete rounded border

---
 .../resources/qml/hifi/dialogs/content/AttachmentsContent.qml    | 1 -
 interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml  | 1 -
 2 files changed, 2 deletions(-)

diff --git a/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml b/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
index 4793d83e21..47cd633f76 100644
--- a/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
+++ b/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
@@ -28,7 +28,6 @@ Item {
         Rectangle {
             width: parent.width
             height: root.height - (keyboardEnabled && keyboardRaised ? 200 : 0)
-            radius: 4
             color: hifi.colors.baseGray
 
             Rectangle {
diff --git a/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml b/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
index 0bb43fccd2..743d0305c6 100644
--- a/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
@@ -30,7 +30,6 @@ Item {
     Rectangle {
         id: pane  // Surrogate for ScrollingWindow's pane.
         anchors.fill: parent
-        color: hifi.colors.baseGray  // Match that of dialog so that dialog's rounded corners don't show.
     }
 
     function closeDialog() {

From 53dcf80cc0f332af855466c69261732062e81217 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 9 Mar 2017 22:38:49 +1300
Subject: [PATCH 092/247] Add dialog title

---
 .../hifi/tablet/TabletAttachmentsDialog.qml   | 39 ++++++++++++++++++-
 1 file changed, 38 insertions(+), 1 deletion(-)

diff --git a/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml b/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
index 743d0305c6..46d285ddb5 100644
--- a/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
@@ -19,6 +19,8 @@ Item {
     id: root
     objectName: "AttachmentsDialog"
 
+    property string title: "Avatar Attachments"
+
     property bool keyboardEnabled: false
     property bool keyboardRaised: false
     property bool punctuationMode: false
@@ -36,11 +38,46 @@ Item {
         Tablet.getTablet("com.highfidelity.interface.tablet.system").gotoHomeScreen();
     }
 
+    anchors.topMargin: 90  // Space for header.
+
+    // FIXME: Refactor with other tablet headers.
+    Rectangle {
+        id: header
+        height: 90
+        anchors {
+            left: parent.left
+            right: parent.right
+            bottom: parent.top
+        }
+        z: 100
+
+        gradient: Gradient {
+            GradientStop {
+                position: 0
+                color: "#2b2b2b"
+            }
+
+            GradientStop {
+                position: 1
+                color: "#1e1e1e"
+            }
+        }
+
+        RalewayBold {
+            text: title
+            size: 26
+            color: "#34a2c7"
+            anchors.verticalCenter: parent.verticalCenter
+            anchors.left: parent.left
+            anchors.leftMargin: hifi.dimensions.contentMargin.x
+        }
+    }
+
     AttachmentsContent {
         id: attachments
 
         anchors {
-            top: parent.top
+            top: header.bottom
             left: parent.left
             right: parent.right
             bottom: keyboard.top

From c7d1aa8ff46e1c34d6bfeca3a612c6e13b61813a Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Fri, 10 Mar 2017 08:26:00 +1300
Subject: [PATCH 093/247] Make attachments list flickable

---
 .../dialogs/content/AttachmentsContent.qml    | 86 +++++--------------
 1 file changed, 21 insertions(+), 65 deletions(-)

diff --git a/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml b/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
index 47cd633f76..55a5deeb60 100644
--- a/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
+++ b/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
@@ -40,78 +40,34 @@ Item {
                 color: hifi.colors.baseGrayShadow
                 radius: 4
 
-                ScrollView {
-                    id: scrollView
+                ListView {
+                    id: listView
                     anchors.fill: parent
                     anchors.margins: 4
+                    clip: true
+                    focus: true
 
-                    style: ScrollViewStyle {
-
-                        padding {
-                            top: 0
-                            right: 0
-                            bottom: 0
-                        }
-
-                        decrementControl: Item {
-                            visible: false
-                        }
-                        incrementControl: Item {
-                            visible: false
-                        }
-                        scrollBarBackground: Rectangle{
-                            implicitWidth: 14
-                            color: hifi.colors.baseGray
-                            radius: 4
-                            Rectangle {
-                                // Make top left corner of scrollbar appear square
-                                width: 8
-                                height: 4
-                                color: hifi.colors.baseGray
-                                anchors.top: parent.top
-                                anchors.horizontalCenter: parent.left
+                    model: ListModel {}
+                    delegate: Item {
+                        id: attachmentDelegate
+                        implicitHeight: attachmentView.height + 8;
+                        implicitWidth: attachmentView.width
+                        Attachment {
+                            id: attachmentView
+                            width: listView.width
+                            attachment: content.attachments[index]
+                            onDeleteAttachment: {
+                                attachments.splice(index, 1);
+                                listView.model.remove(index, 1);
                             }
-
-                        }
-                        handle:
-                            Rectangle {
-                            implicitWidth: 8
-                            anchors {
-                                left: parent.left
-                                leftMargin: 3
-                                top: parent.top
-                                topMargin: 3
-                                bottom: parent.bottom
-                                bottomMargin: 4
-                            }
-                            radius: 4
-                            color: hifi.colors.lightGrayText
+                            onUpdateAttachment: MyAvatar.setAttachmentsVariant(attachments);
                         }
                     }
-
-                    ListView {
-                        id: listView
-                        model: ListModel {}
-                        delegate: Item {
-                            id: attachmentDelegate
-                            implicitHeight: attachmentView.height + 8;
-                            implicitWidth: attachmentView.width
-                            Attachment {
-                                id: attachmentView
-                                width: scrollView.width
-                                attachment: content.attachments[index]
-                                onDeleteAttachment: {
-                                    attachments.splice(index, 1);
-                                    listView.model.remove(index, 1);
-                                }
-                                onUpdateAttachment: MyAvatar.setAttachmentsVariant(attachments);
-                            }
-                        }
-                        onCountChanged: MyAvatar.setAttachmentsVariant(attachments);
-                    }
+                    onCountChanged: MyAvatar.setAttachmentsVariant(attachments);
 
                     function scrollBy(delta) {
-                        flickableItem.contentY += delta;
+                        // @@@@@@@
+                        //flickableItem.contentY += delta;
                     }
                 }
             }
@@ -191,7 +147,7 @@ Item {
     }
 
     function scrollBy(delta) {
-        scrollView.scrollBy(delta);
+        listView.scrollBy(delta);
     }
 }
 

From 6f53aaed5c42a704c12aee69e3b60c2915c79ccb Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidleity.io>
Date: Thu, 9 Mar 2017 14:04:13 -0800
Subject: [PATCH 094/247] Small simplification of building stylusTarget list.

---
 .../system/controllers/handControllerGrab.js  | 28 ++++---------------
 1 file changed, 5 insertions(+), 23 deletions(-)

diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index abd0484ec4..284bb3af15 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -1618,44 +1618,26 @@ function MyController(hand) {
             overlays: []
         };
 
-        // find web-entites near the stylusTip.
+        // build list of stylus targets, near the stylusTip
+        var stylusTargets = [];
         var candidateEntities = Entities.findEntities(tipPosition, WEB_DISPLAY_STYLUS_DISTANCE);
         entityPropertiesCache.addEntities(candidateEntities);
         var i, props;
         for (i = 0; i < candidateEntities.length; i++) {
             props = entityPropertiesCache.getProps(candidateEntities[i]);
             if (props && (props.type === "Web" || this.isTablet(candidateEntities[i]))) {
-                candidates.entities.push(candidateEntities[i]);
+                stylusTargets.push(calculateStylusTargetFromEntity(this.stylusTip, candidateEntities[i]));
             }
         }
 
         // add the tabletScreen, if it is valid
         if (HMD.tabletScreenID && HMD.tabletScreenID !== NULL_UUID) {
-            candidates.overlays.push(HMD.tabletScreenID);
+            stylusTargets.push(calculateStylusTargetFromOverlay(this.stylusTip, HMD.tabletScreenID));
         }
 
         // add the tablet home button.
         if (HMD.homeButtonID && HMD.homeButtonID !== NULL_UUID) {
-            candidates.overlays.push(HMD.homeButtonID);
-        }
-
-        // build list of stylus targets
-        var stylusTargets = [];
-        if (candidates.entities.length > 0 || candidates.overlays.length > 0) {
-            var stylusTarget;
-            for (i = 0; i < candidates.entities.length; i++) {
-                stylusTarget = calculateStylusTargetFromEntity(this.stylusTip, candidates.entities[i]);
-                if (stylusTarget) {
-                    stylusTargets.push(stylusTarget);
-                }
-            }
-
-            for (i = 0; i < candidates.overlays.length; i++) {
-                stylusTarget = calculateStylusTargetFromOverlay(this.stylusTip, candidates.overlays[i]);
-                if (stylusTarget) {
-                    stylusTargets.push(stylusTarget);
-                }
-            }
+            stylusTargets.push(calculateStylusTargetFromOverlay(this.stylusTip, HMD.homeButtonID));
         }
 
         var TABLET_MIN_HOVER_DISTANCE = 0.01;

From b539c55c025ea82311c1ce0626093be7ed00d621 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Fri, 10 Mar 2017 14:33:51 +1300
Subject: [PATCH 095/247] Scroll and snap to attachment with focus

---
 .../resources/qml/controls-uit/CheckBox.qml   |  2 ++
 .../hifi/dialogs/attachments/Attachment.qml   | 20 +++++++++++
 .../qml/hifi/dialogs/attachments/Vector3.qml  | 32 ++++++++++++++++-
 .../dialogs/content/AttachmentsContent.qml    | 35 ++++++++++++++-----
 .../hifi/tablet/TabletAttachmentsDialog.qml   | 10 ------
 5 files changed, 79 insertions(+), 20 deletions(-)

diff --git a/interface/resources/qml/controls-uit/CheckBox.qml b/interface/resources/qml/controls-uit/CheckBox.qml
index 09a0e04148..9fc484586a 100644
--- a/interface/resources/qml/controls-uit/CheckBox.qml
+++ b/interface/resources/qml/controls-uit/CheckBox.qml
@@ -25,6 +25,8 @@ Original.CheckBox {
     readonly property int checkSize: Math.max(boxSize - 8, 10)
     readonly property int checkRadius: 2
 
+    activeFocusOnPress: true
+
     style: CheckBoxStyle {
         indicator: Rectangle {
             id: box
diff --git a/interface/resources/qml/hifi/dialogs/attachments/Attachment.qml b/interface/resources/qml/hifi/dialogs/attachments/Attachment.qml
index 6d371741ea..5c11a87d12 100644
--- a/interface/resources/qml/hifi/dialogs/attachments/Attachment.qml
+++ b/interface/resources/qml/hifi/dialogs/attachments/Attachment.qml
@@ -17,10 +17,24 @@ Item {
 
     HifiConstants { id: hifi }
 
+    signal selectAttachment();
     signal deleteAttachment(var attachment);
     signal updateAttachment();
     property bool completed: false;
 
+    function doSelectAttachment(control, focus) {
+        if (focus) {
+            selectAttachment();
+
+            // Refocus control after possibly changing focus to attachment.
+            if (control.setControlFocus !== undefined) {
+                control.setControlFocus();
+            } else {
+                control.focus = true;
+            }
+        }
+    }
+
     Rectangle { color: hifi.colors.baseGray; anchors.fill: parent; radius: 4 }
 
     Component.onCompleted: {
@@ -50,6 +64,7 @@ Item {
                         updateAttachment();
                     }
                 }
+                onFocusChanged: doSelectAttachment(this, focus);
             }
             HifiControls.Button {
                 id: modelChooserButton;
@@ -91,6 +106,7 @@ Item {
                         updateAttachment();
                     }
                 }
+                onFocusChanged: doSelectAttachment(this, focus);
             }
         }
 
@@ -108,6 +124,7 @@ Item {
                         updateAttachment();
                     }
                 }
+                onControlFocusChanged: doSelectAttachment(this, controlFocus);
             }
         }
 
@@ -125,6 +142,7 @@ Item {
                         updateAttachment();
                     }
                 }
+                onControlFocusChanged: doSelectAttachment(this, controlFocus);
             }
         }
 
@@ -153,6 +171,7 @@ Item {
                             updateAttachment();
                         }
                     }
+                    onFocusChanged: doSelectAttachment(this, focus);
                 }
             }
 
@@ -178,6 +197,7 @@ Item {
                             updateAttachment();
                         }
                     }
+                    onFocusChanged: doSelectAttachment(this, focus);
                 }
             }
         }
diff --git a/interface/resources/qml/hifi/dialogs/attachments/Vector3.qml b/interface/resources/qml/hifi/dialogs/attachments/Vector3.qml
index 3d109cc2a5..29f2c0ebf4 100644
--- a/interface/resources/qml/hifi/dialogs/attachments/Vector3.qml
+++ b/interface/resources/qml/hifi/dialogs/attachments/Vector3.qml
@@ -15,9 +15,37 @@ Item {
     property real stepSize: 1
     property real maximumValue: 99
     property real minimumValue: 0
+    property bool controlFocus: false;  // True if one of the ordinate controls has focus.
+    property var controlFocusControl: undefined
 
     signal valueChanged();
 
+    function setControlFocus() {
+        if (controlFocusControl) {
+            controlFocusControl.focus = true;
+            // The controlFocus value is updated via onFocusChanged.
+        }
+    }
+
+    function setFocus(control, focus) {
+        if (focus) {
+            controlFocusControl = control;
+            setControlFocusTrue.start();  // After any subsequent false from previous control.
+        } else {
+            controlFocus = false;
+        }
+    }
+
+    Timer {
+        id: setControlFocusTrue
+        interval: 50
+        repeat: false
+        running: false
+        onTriggered: {
+            controlFocus = true;
+        }
+    }
+
     HifiConstants { id: hifi }
 
     HifiControls.SpinBox {
@@ -38,6 +66,7 @@ Item {
                 root.valueChanged();
             }
         }
+        onFocusChanged: setFocus(this, focus);
     }
 
     HifiControls.SpinBox {
@@ -58,6 +87,7 @@ Item {
                 root.valueChanged();
             }
         }
+        onFocusChanged: setFocus(this, focus);
     }
 
     HifiControls.SpinBox {
@@ -78,6 +108,6 @@ Item {
                 root.valueChanged();
             }
         }
+        onFocusChanged: setFocus(this, focus);
     }
 }
-
diff --git a/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml b/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
index 55a5deeb60..ac271c5793 100644
--- a/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
+++ b/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
@@ -45,17 +45,32 @@ Item {
                     anchors.fill: parent
                     anchors.margins: 4
                     clip: true
-                    focus: true
+                    snapMode: ListView.SnapToItem
 
                     model: ListModel {}
                     delegate: Item {
                         id: attachmentDelegate
                         implicitHeight: attachmentView.height + 8;
                         implicitWidth: attachmentView.width
+
+                        MouseArea {
+                            // User can click on whitespace to select item.
+                            anchors.fill: parent
+                            propagateComposedEvents: true
+                            onClicked: {
+                                listView.currentIndex = index;
+                                attachmentsBackground.forceActiveFocus();  // Unfocus from any control.
+                                mouse.accepted = false;
+                            }
+                        }
+
                         Attachment {
                             id: attachmentView
                             width: listView.width
                             attachment: content.attachments[index]
+                            onSelectAttachment: {
+                                listView.currentIndex = index;
+                            }
                             onDeleteAttachment: {
                                 attachments.splice(index, 1);
                                 listView.model.remove(index, 1);
@@ -63,11 +78,18 @@ Item {
                             onUpdateAttachment: MyAvatar.setAttachmentsVariant(attachments);
                         }
                     }
+
                     onCountChanged: MyAvatar.setAttachmentsVariant(attachments);
 
-                    function scrollBy(delta) {
-                        // @@@@@@@
-                        //flickableItem.contentY += delta;
+                    /* */
+                    // DEBUG
+                    highlight: Rectangle { color: "#40ffff00" }
+                    highlightFollowsCurrentItem: true
+                    /* */
+
+                    onHeightChanged: {
+                        // Keyboard has been raised / lowered.
+                        positionViewAtIndex(currentIndex, ListView.SnapPosition);
                     }
                 }
             }
@@ -145,9 +167,4 @@ Item {
             }
         }
     }
-
-    function scrollBy(delta) {
-        listView.scrollBy(delta);
-    }
 }
-
diff --git a/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml b/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
index 46d285ddb5..dac43c9c3c 100644
--- a/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
@@ -107,16 +107,6 @@ Item {
         }
     }
 
-    onKeyboardRaisedChanged: {
-        if (keyboardEnabled && keyboardRaised) {
-            var buttonsHeight = 120;  // Allow for New Attachment plus Cancel & OK buttons.
-            var delta = activator.mouseY - (root.height - keyboard.raisedHeight - buttonsHeight);
-            if (delta > 0) {
-                attachments.scrollBy(delta);
-            }
-        }
-    }
-
     MouseArea {
         id: activator
         anchors.fill: parent

From 9291d272fe5510a94fad9c7c2e17adac5a61d809 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Fri, 10 Mar 2017 18:25:16 +1300
Subject: [PATCH 096/247] Add scrollbar

---
 .../dialogs/content/AttachmentsContent.qml    | 97 ++++++++++++++++++-
 1 file changed, 92 insertions(+), 5 deletions(-)

diff --git a/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml b/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
index ac271c5793..bd6a2fecf9 100644
--- a/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
+++ b/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
@@ -42,8 +42,13 @@ Item {
 
                 ListView {
                     id: listView
-                    anchors.fill: parent
-                    anchors.margins: 4
+                    anchors {
+                        top: parent.top
+                        left: parent.left
+                        right: scrollBar.left
+                        bottom: parent.bottom
+                        margins: 4
+                    }
                     clip: true
                     snapMode: ListView.SnapToItem
 
@@ -81,15 +86,97 @@ Item {
 
                     onCountChanged: MyAvatar.setAttachmentsVariant(attachments);
 
-                    /* */
+                    /*
                     // DEBUG
                     highlight: Rectangle { color: "#40ffff00" }
                     highlightFollowsCurrentItem: true
-                    /* */
+                    */
 
                     onHeightChanged: {
                         // Keyboard has been raised / lowered.
-                        positionViewAtIndex(currentIndex, ListView.SnapPosition);
+                        positionViewAtIndex(listView.currentIndex, ListView.SnapPosition);
+                    }
+
+                    onCurrentIndexChanged: {
+                        scrollSlider.y = currentIndex * (scrollBar.height - scrollSlider.height) / (listView.count - 1);
+                    }
+
+                    onContentYChanged: {
+                        // User may have dragged content up/down.
+                        yScrollTimer.restart();
+                    }
+
+                    Timer {
+                        id: yScrollTimer
+                        interval: 50
+                        repeat: false
+                        running: false
+                        onTriggered: {
+                            var index = listView.contentY / (scrollBar.height - scrollSlider.height);
+                            index = Math.round(index);
+                            listView.currentIndex = index;
+                        }
+                    }
+                }
+
+                Rectangle {
+                    id: scrollBar
+
+                    property bool scrolling: listView.contentHeight > listView.height
+
+                    anchors {
+                        top: parent.top
+                        right: parent.right
+                        bottom: parent.bottom
+                        topMargin: 4
+                        bottomMargin: 4
+                    }
+                    width: scrolling ? 18 : 0
+                    radius: attachmentsBackground.radius
+                    color: hifi.colors.baseGrayShadow
+
+                    MouseArea {
+                        anchors.fill: parent
+
+                        onClicked: {
+                            var index = listView.currentIndex;
+                            index = index + (mouse.y <= scrollSlider.y ? -1 : 1);
+                            if (index < 0) {
+                                index = 0;
+                            }
+                            if (index > listView.count - 1) {
+                                index = listView.count - 1;
+                            }
+                            listView.currentIndex = index;
+                        }
+                    }
+
+                    Rectangle {
+                        id: scrollSlider
+                        anchors {
+                            right: parent.right
+                            rightMargin: 3
+                        }
+                        width: 16
+                        height: (listView.height / listView.contentHeight) * listView.height
+                        radius: width / 2
+                        color: hifi.colors.lightGray
+
+                        visible: scrollBar.scrolling;
+
+                        onYChanged: {
+                            var index = y * (listView.count - 1) / (scrollBar.height - scrollSlider.height);
+                            index = Math.round(index);
+                            listView.currentIndex = index;
+                        }
+
+                        MouseArea {
+                            anchors.fill: parent
+                            drag.target: scrollSlider
+                            drag.axis: Drag.YAxis
+                            drag.minimumY: 0
+                            drag.maximumY: scrollBar.height - scrollSlider.height
+                        }
                     }
                 }
             }

From 7af9f879dd1f3e3b89ad805ab7e23d01747027bd Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Fri, 10 Mar 2017 21:44:20 +1300
Subject: [PATCH 097/247] Fix scrollbar and keyboard behavior

---
 .../qml/hifi/dialogs/content/AttachmentsContent.qml      | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml b/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
index bd6a2fecf9..4adb485c2b 100644
--- a/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
+++ b/interface/resources/qml/hifi/dialogs/content/AttachmentsContent.qml
@@ -98,7 +98,9 @@ Item {
                     }
 
                     onCurrentIndexChanged: {
-                        scrollSlider.y = currentIndex * (scrollBar.height - scrollSlider.height) / (listView.count - 1);
+                        if (!yScrollTimer.running) {
+                            scrollSlider.y = currentIndex * (scrollBar.height - scrollSlider.height) / (listView.count - 1);
+                        }
                     }
 
                     onContentYChanged: {
@@ -108,13 +110,14 @@ Item {
 
                     Timer {
                         id: yScrollTimer
-                        interval: 50
+                        interval: 200
                         repeat: false
                         running: false
                         onTriggered: {
-                            var index = listView.contentY / (scrollBar.height - scrollSlider.height);
+                            var index = (listView.count - 1) * listView.contentY / (listView.contentHeight - scrollBar.height);
                             index = Math.round(index);
                             listView.currentIndex = index;
+                            scrollSlider.y = index * (scrollBar.height - scrollSlider.height) / (listView.count - 1);
                         }
                     }
                 }

From d792559d9abc2b4adca943f994cde9f038ec9853 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Fri, 10 Mar 2017 09:59:23 -0800
Subject: [PATCH 098/247] have edit.js resend properties of selected entity to
 entityProperties.js once it's ready

---
 scripts/system/edit.js                     | 7 +++++--
 scripts/system/html/js/entityProperties.js | 4 ++++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/scripts/system/edit.js b/scripts/system/edit.js
index 74080dbe09..55bd11b286 100644
--- a/scripts/system/edit.js
+++ b/scripts/system/edit.js
@@ -1548,7 +1548,7 @@ var PropertiesTool = function (opts) {
         });
     }
 
-    selectionManager.addEventListener(function (selectionUpdated) {
+    function updateSelections(selectionUpdated) {
         var data = {
             type: 'update'
         };
@@ -1589,7 +1589,8 @@ var PropertiesTool = function (opts) {
         }
         data.selections = selections;
         webView.emitScriptEvent(JSON.stringify(data));
-    });
+    }
+    selectionManager.addEventListener(updateSelections);
 
     webView.webEventReceived.connect(function (data) {
         try {
@@ -1751,6 +1752,8 @@ var PropertiesTool = function (opts) {
                     }
                 }
             }
+        } else if (data.type === "propertiesPageReady") {
+            updateSelections(true);
         }
     });
 
diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js
index 4f774e5305..2f109597d7 100644
--- a/scripts/system/html/js/entityProperties.js
+++ b/scripts/system/html/js/entityProperties.js
@@ -1704,4 +1704,8 @@ function loaded() {
     document.addEventListener("contextmenu", function(event) {
         event.preventDefault();
     }, false);
+
+    setTimeout(function() {
+        EventBridge.emitWebEvent(JSON.stringify({ type: 'propertiesPageReady' }));
+    }, 1000);
 }

From 9b3810814e17426ca34786db09b34d43f5190581 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Fri, 10 Mar 2017 18:40:18 +0000
Subject: [PATCH 099/247] fiexed putting menu items on the hud when tablet not
 open when on desktop screen

---
 interface/src/Application.cpp | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 66d138103d..b575cb07b1 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -5793,12 +5793,12 @@ void Application::toggleRunningScriptsWidget() const {
     
     auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
     auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+    auto hmd = DependencyManager::get<HMDScriptingInterface>();
     if (tablet->getToolbarMode()) {
         static const QUrl url("hifi/dialogs/RunningScripts.qml");
         DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
     } else {
-        QQuickItem* tabletRoot = tablet->getTabletRoot();
-        if (!tabletRoot && !isHMDMode()) {
+        if (!hmd->getShouldShowTablet() && !isHMDMode()) {
             static const QUrl url("hifi/dialogs/RunningScripts.qml");
             DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
         } else {
@@ -5835,12 +5835,11 @@ void Application::showAssetServerWidget(QString filePath) {
     };
     auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
     auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
-
+    auto hmd = DependencyManager::get<HMDScriptingInterface>();
     if (tablet->getToolbarMode()) {
         DependencyManager::get<OffscreenUi>()->show(url, "AssetServer", startUpload);
     } else {
-        QQuickItem* tabletRoot = tablet->getTabletRoot();
-        if (!tabletRoot && !isHMDMode()) {
+        if (!hmd->getShouldShowTablet() && !isHMDMode()) {
             DependencyManager::get<OffscreenUi>()->show(url, "AssetServer", startUpload);
         } else {
             static const QUrl url("../../hifi/dialogs/TabletAssetServer.qml");
@@ -5873,7 +5872,8 @@ void Application::addAssetToWorldFromURL(QString url) {
 void Application::showDialog(const QString& desktopURL, const QString& tabletURL, const QString& name) const {
     auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
     auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
-    if (tablet->getToolbarMode() || (!tablet->getTabletRoot() && !isHMDMode())) {
+    auto hmd = DependencyManager::get<HMDScriptingInterface>();
+    if (tablet->getToolbarMode() || (!hmd->getShouldShowTablet() && !isHMDMode())) {
         DependencyManager::get<OffscreenUi>()->show(desktopURL, name);
     } else {
         tablet->loadQMLSource(tabletURL);

From e27ccab2f4f960e11cf7b210e5177cfcbc171cda Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Fri, 10 Mar 2017 19:53:12 +0100
Subject: [PATCH 100/247] Eliminate pathToFonts not found errors at startup.
 Change TableFiledialog folder on click

---
 interface/resources/qml/dialogs/TabletFileDialog.qml | 3 +--
 libraries/gl/src/gl/OffscreenQmlSurface.cpp          | 1 +
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/resources/qml/dialogs/TabletFileDialog.qml b/interface/resources/qml/dialogs/TabletFileDialog.qml
index b55eca7493..4fecd4b523 100644
--- a/interface/resources/qml/dialogs/TabletFileDialog.qml
+++ b/interface/resources/qml/dialogs/TabletFileDialog.qml
@@ -66,8 +66,6 @@ TabletModalWindow {
     signal canceled();
 
     Component.onCompleted: {
-        console.log("Helper " + helper + " drives " + drives);
-
         fileDialogItem.keyboardEnabled = HMD.active;
 
         // HACK: The following lines force the model to initialize properly such that the go-up button
@@ -459,6 +457,7 @@ TabletModalWindow {
                 bottomMargin: hifi.dimensions.contentSpacing.y + currentSelection.controlHeight - currentSelection.height
             }
             headerVisible: !selectDirectory
+            onClicked: navigateToRow(row);
             onDoubleClicked: navigateToRow(row);
             focus: true
             Keys.onReturnPressed: navigateToCurrentRow();
diff --git a/libraries/gl/src/gl/OffscreenQmlSurface.cpp b/libraries/gl/src/gl/OffscreenQmlSurface.cpp
index 2d940d6755..de0caf56a9 100644
--- a/libraries/gl/src/gl/OffscreenQmlSurface.cpp
+++ b/libraries/gl/src/gl/OffscreenQmlSurface.cpp
@@ -434,6 +434,7 @@ void OffscreenQmlSurface::create(QOpenGLContext* shareContext) {
     auto rootContext = getRootContext();
     rootContext->setContextProperty("urlHandler", new UrlHandler());
     rootContext->setContextProperty("resourceDirectoryUrl", QUrl::fromLocalFile(PathUtils::resourcesPath()));
+    rootContext->setContextProperty("pathToFonts", "../../");
 }
 
 static uvec2 clampSize(const uvec2& size, uint32_t maxDimension) {

From b63ab05eec6495fbb5986f6082b8c72dc8b0cfa2 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Fri, 10 Mar 2017 19:33:14 +0000
Subject: [PATCH 101/247] improved general settting coloring

---
 .../tabletWindows/TabletPreferencesDialog.qml | 46 ++++---------------
 1 file changed, 9 insertions(+), 37 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml b/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
index 95ce7f5a1d..e3138e8979 100644
--- a/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
+++ b/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
@@ -21,8 +21,8 @@ import "../../../controls-uit" as HifiControls
 
 Item {
     id: dialog
-    width: 480
-    height: 720
+    width: parent.width
+    height: parent.height
 
     HifiConstants { id: hifi }
     property var sections: []
@@ -31,6 +31,7 @@ Item {
     property bool keyboardEnabled: false
     property bool keyboardRaised: false
     property bool punctuationMode: false
+   
 
     property var tablet;
   
@@ -68,22 +69,11 @@ Item {
         }
         z: 100
 
-        gradient: Gradient {
-            GradientStop {
-                position: 0
-                color: "#2b2b2b"
-            }
-
-            GradientStop {
-                position: 1
-                color: "#1e1e1e"
-            }
-        }
-
+        color: hifi.colors.darkGray
         RalewayBold {
             text: title
             size: 26
-            color: "#34a2c7"
+            color: hifi.colors.white
             anchors.verticalCenter: parent.verticalCenter
             anchors.left: parent.left
             anchors.leftMargin: hifi.dimensions.contentMargin.x
@@ -99,17 +89,8 @@ Item {
             right: parent.right
         }
 
-        gradient: Gradient {
-            GradientStop {
-                position: 0
-                color: "#2b2b2b"
-            }
-            
-            GradientStop {
-                position: 1
-                color: "#0f212e"
-            }
-        }
+        color: hifi.colors.baseGray
+        
         Flickable {
             id: scrollView
             width: parent.width
@@ -203,17 +184,8 @@ Item {
             left: parent.left
             right: parent.right
         }
-        gradient: Gradient {
-            GradientStop {
-                position: 0
-                color: "#2b2b2b"
-            }
-            
-            GradientStop {
-                position: 1
-                color: "#0f212e"
-            }
-        }
+
+        color: hifi.colors.baseGray
 
         Row {
             anchors {

From 2cd194104fae0b616d54e57190c21528d5fdde43 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Fri, 10 Mar 2017 20:46:01 +0000
Subject: [PATCH 102/247] force on to home screen

---
 libraries/script-engine/src/TabletScriptingInterface.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libraries/script-engine/src/TabletScriptingInterface.cpp b/libraries/script-engine/src/TabletScriptingInterface.cpp
index 5fd96f0f02..e26b3a3f63 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.cpp
+++ b/libraries/script-engine/src/TabletScriptingInterface.cpp
@@ -393,7 +393,7 @@ void TabletProxy::popFromStack() {
 }
 
 void TabletProxy::loadHomeScreen(bool forceOntoHomeScreen) {
-    if (_state != State::Home && ( _state != State::Uninitialized || forceOntoHomeScreen)) {
+    if ((_state != State::Home && _state != State::Uninitialized) || forceOntoHomeScreen) {
         if (!_toolbarMode && _qmlTabletRoot) {
             auto loader = _qmlTabletRoot->findChild<QQuickItem*>("loader");
             QObject::connect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToHomeScreen()), Qt::DirectConnection);

From 88e74251a160fb8efb6e3b889abba32589bde61b Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Fri, 10 Mar 2017 12:51:34 -0800
Subject: [PATCH 103/247] cleanups

---
 scripts/system/tablet-ui/tabletUI.js | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/scripts/system/tablet-ui/tabletUI.js b/scripts/system/tablet-ui/tabletUI.js
index 263c8822df..3b15eb4edb 100644
--- a/scripts/system/tablet-ui/tabletUI.js
+++ b/scripts/system/tablet-ui/tabletUI.js
@@ -75,8 +75,9 @@
     function showTabletUI() {
         tabletShown = true;
 
-        if (!tabletRezzed) {
-            rezTablet(false);
+        if (!tabletRezzed || !tabletIsValid()) {
+            closeTabletUI()
+            rezTablet();
         }
 
         if (UIWebTablet && tabletRezzed) {
@@ -199,7 +200,7 @@
                 preMakeTime = now;
                 if (!tabletIsValid()) {
                     closeTabletUI();
-                    rezTablet(false);
+                    rezTablet();
                     tabletShown = false;
                 } else if (!tabletShown) {
                     hideTabletUI();

From 2098cd5b5e8266d1f539a4135e3af7845bd33156 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Fri, 10 Mar 2017 13:02:16 -0800
Subject: [PATCH 104/247] remove stylus and search-beams when grab script is
 shut down

---
 scripts/system/controllers/handControllerGrab.js | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index 6f60f36556..ba3f06de23 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -3516,6 +3516,8 @@ function MyController(hand) {
     this.cleanup = function() {
         this.release();
         this.grabPointSphereOff();
+        this.hideStylus();
+        this.overlayLineOff();
     };
 
     this.thisHandIsParent = function(props) {

From 189eee01a6b2e8994db853886fc2f608bd332789 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Sat, 11 Mar 2017 11:02:09 +1300
Subject: [PATCH 105/247] Refactor TabletComboBox.qml into ComboBox.qml

---
 .../resources/qml/controls-uit/ComboBox.qml   |  23 +-
 .../qml/controls-uit/TabletComboBox.qml       | 211 ------------------
 .../qml/dialogs/TabletCustomQueryDialog.qml   |   2 +-
 .../qml/dialogs/TabletFileDialog.qml          |   2 +-
 .../qml/dialogs/TabletQueryDialog.qml         |   2 +-
 .../qml/hifi/tablet/NewModelDialog.qml        |   2 +-
 .../tablet/tabletWindows/TabletFileDialog.qml |   2 +-
 7 files changed, 22 insertions(+), 222 deletions(-)
 delete mode 100644 interface/resources/qml/controls-uit/TabletComboBox.qml

diff --git a/interface/resources/qml/controls-uit/ComboBox.qml b/interface/resources/qml/controls-uit/ComboBox.qml
index 573fed4ef9..582e5f6d83 100644
--- a/interface/resources/qml/controls-uit/ComboBox.qml
+++ b/interface/resources/qml/controls-uit/ComboBox.qml
@@ -14,7 +14,6 @@ import QtQuick.Controls.Styles 1.4
 
 import "../styles-uit"
 import "../controls-uit" as HifiControls
-import "." as VrControls
 
 FocusScope {
     id: root
@@ -32,6 +31,8 @@ FocusScope {
 
     readonly property ComboBox control: comboBox
 
+    property bool isDesktop: true
+
     signal accepted();
 
     implicitHeight: comboBox.height;
@@ -119,11 +120,17 @@ FocusScope {
     }
 
     function showList() {
-        var r = desktop.mapFromItem(root, 0, 0, root.width, root.height);
+        var r;
+        if (isDesktop) {
+            r = desktop.mapFromItem(root, 0, 0, root.width, root.height);
+        } else {
+            r = mapFromItem(root, 0, 0, root.width, root.height);
+        }
         var y = r.y + r.height;
         var bottom = y + scrollView.height;
-        if (bottom > desktop.height) {
-            y -= bottom - desktop.height + 8;
+        var height = isDesktop ? desktop.height : tabletRoot.height;
+        if (bottom > height) {
+            y -= bottom - height + 8;
         }
         scrollView.x = r.x;
         scrollView.y = y;
@@ -141,9 +148,9 @@ FocusScope {
 
     FocusScope {
         id: popup
-        parent: desktop
+        parent: isDesktop ? desktop : parent
         anchors.fill: parent
-        z: desktop.zLevels.menu
+        z: isDesktop ? desktop.zLevels.menu : 12
         visible: false
         focus: true
 
@@ -233,4 +240,8 @@ FocusScope {
         anchors.bottomMargin: 4
         visible: label != ""
     }
+
+    Component.onCompleted: {
+        isDesktop = (typeof desktop !== "undefined");
+    }
 }
diff --git a/interface/resources/qml/controls-uit/TabletComboBox.qml b/interface/resources/qml/controls-uit/TabletComboBox.qml
deleted file mode 100644
index 7361833a45..0000000000
--- a/interface/resources/qml/controls-uit/TabletComboBox.qml
+++ /dev/null
@@ -1,211 +0,0 @@
-//
-//  ComboBox.qml
-//
-//  Created by Dante Ruiz on 13 Feb 2017
-//  Copyright 2016 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
-//
-
-import QtQuick 2.5
-import QtQuick.Controls 1.4
-import QtQuick.Controls.Styles 1.4
-
-import "../styles-uit"
-import "../controls-uit" as HifiControls
-
-FocusScope {
-    id: root
-    HifiConstants { id: hifi }
-
-    property alias model: comboBox.model;
-    property alias comboBox: comboBox
-    readonly property alias currentText: comboBox.currentText;
-    property alias currentIndex: comboBox.currentIndex;
-
-    property int colorScheme: hifi.colorSchemes.light
-    readonly property bool isLightColorScheme: colorScheme == hifi.colorSchemes.light
-    property string label: ""
-    property real controlHeight: height + (comboBoxLabel.visible ? comboBoxLabel.height + comboBoxLabel.anchors.bottomMargin : 0)
-
-    readonly property ComboBox control: comboBox
-
-    signal accepted();
-
-    implicitHeight: comboBox.height;
-    focus: true
-
-    Rectangle {
-        id: background
-        gradient: Gradient {
-            GradientStop {
-                position: 0.2
-                color: popup.visible
-                       ? (isLightColorScheme ? hifi.colors.dropDownPressedLight : hifi.colors.dropDownPressedDark)
-                       : (isLightColorScheme ? hifi.colors.dropDownLightStart : hifi.colors.dropDownDarkStart)
-            }
-            GradientStop {
-                position: 1.0
-                color: popup.visible
-                       ? (isLightColorScheme ? hifi.colors.dropDownPressedLight : hifi.colors.dropDownPressedDark)
-                       : (isLightColorScheme ? hifi.colors.dropDownLightFinish : hifi.colors.dropDownDarkFinish)
-            }
-        }
-        anchors.fill: parent
-    }
-
-    SystemPalette { id: palette }
-
-    ComboBox {
-        id: comboBox
-        anchors.fill: parent
-        visible: false
-        height: hifi.fontSizes.textFieldInput + 13  // Match height of TextField control.
-    }
-
-    FiraSansSemiBold {
-        id: textField
-        anchors {
-            left: parent.left
-            leftMargin: hifi.dimensions.textPadding
-            right: dropIcon.left
-            verticalCenter: parent.verticalCenter
-        }
-        size: hifi.fontSizes.textFieldInput
-        text: comboBox.currentText
-        elide: Text.ElideRight
-        color: controlHover.containsMouse || popup.visible ? hifi.colors.baseGray : (isLightColorScheme ? hifi.colors.lightGray : hifi.colors.lightGrayText )
-    }
-
-    Item {
-        id: dropIcon
-        anchors { right: parent.right; verticalCenter: parent.verticalCenter }
-        height: background.height
-        width: height
-        Rectangle {
-            width: 1
-            height: parent.height
-            anchors.top: parent.top
-            anchors.left: parent.left
-            color: isLightColorScheme ? hifi.colors.faintGray : hifi.colors.baseGray
-        }
-        HiFiGlyphs {
-            anchors {
-                top: parent.top
-                topMargin: -11
-                horizontalCenter: parent.horizontalCenter
-            }
-            size: hifi.dimensions.spinnerSize
-            text: hifi.glyphs.caratDn
-            color: controlHover.containsMouse || popup.visible ? hifi.colors.baseGray : (isLightColorScheme ? hifi.colors.lightGray : hifi.colors.lightGrayText)
-        }
-    }
-
-    MouseArea {
-        id: controlHover
-        hoverEnabled: true
-        anchors.fill: parent
-        onClicked: toggleList();
-    }
-
-    function toggleList() {
-        if (popup.visible) {
-            hideList();
-        } else {
-            showList();
-        }
-    }
-
-    function showList() {
-        var r = mapFromItem(root, 0, 0, root.width, root.height);
-        var y = r.y + r.height;
-        var bottom = y + scrollView.height;
-        if (bottom > 720) {
-           y -= bottom - tabletRoot.height + 8;
-        }
-        scrollView.x = r.x;
-        scrollView.y = y;
-        popup.visible = true;
-        popup.forceActiveFocus();
-        listView.currentIndex = root.currentIndex;
-        scrollView.hoverEnabled = true;
-    }
-
-    function hideList() {
-        popup.visible = false;
-        scrollView.hoverEnabled = false;
-        root.accepted();
-    }
-
-    FocusScope {
-        id: popup
-        z: 12
-        parent: parent
-        anchors.fill: parent
-        visible: false
-        focus: true
-
-        MouseArea {
-            anchors.fill: parent
-            onClicked: hideList();
-        }
-
-        function previousItem() { listView.currentIndex = (listView.currentIndex + listView.count - 1) % listView.count; }
-        function nextItem() { listView.currentIndex = (listView.currentIndex + listView.count + 1) % listView.count; }
-        function selectCurrentItem() { root.currentIndex = listView.currentIndex; hideList(); }
-        function selectSpecificItem(index) { root.currentIndex = index; hideList(); }
-
-        Keys.onUpPressed: previousItem();
-        Keys.onDownPressed: nextItem();
-        Keys.onSpacePressed: selectCurrentItem();
-        Keys.onRightPressed: selectCurrentItem();
-        Keys.onReturnPressed: selectCurrentItem();
-        Keys.onEscapePressed: hideList();
-
-        ScrollView {
-            id: scrollView
-            height: 480
-            width: root.width + 4
-            property bool hoverEnabled: false;
-
-            ListView {
-                id: listView
-                height: textField.height * count * 1.4
-                model: root.model
-                delegate: Rectangle {
-                    width: root.width + 4
-                    height: popupText.implicitHeight * 1.4
-                    color: (listView.currentIndex === index) ? hifi.colors.primaryHighlight :
-                           (isLightColorScheme ? hifi.colors.dropDownPressedLight : hifi.colors.dropDownPressedDark)
-                    FiraSansSemiBold {
-                        anchors.left: parent.left
-                        anchors.leftMargin: hifi.dimensions.textPadding
-                        anchors.verticalCenter: parent.verticalCenter
-                        id: popupText
-                        text: listView.model[index] ? listView.model[index] : ""
-                        size: hifi.fontSizes.textFieldInput
-                        color: hifi.colors.baseGray
-                    }
-                    MouseArea {
-                        id: popupHover
-                        anchors.fill: parent;
-                        hoverEnabled: scrollView.hoverEnabled;
-                        onEntered: listView.currentIndex = index;
-                        onClicked: popup.selectSpecificItem(index);
-                    }
-                }
-            }
-        }
-    }
-
-    HifiControls.Label {
-        id: comboBoxLabel
-        text: root.label
-        colorScheme: root.colorScheme
-        anchors.left: parent.left
-        anchors.bottom: parent.top
-        anchors.bottomMargin: 4
-        visible: label != ""
-    }
-}
diff --git a/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml b/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
index 6e5bc50d32..3f6e07da4f 100644
--- a/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
+++ b/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
@@ -205,7 +205,7 @@ TabletModalWindow {
                     //                }
                 }
 
-                ControlsUIT.TabletComboBox {
+                ControlsUIT.ComboBox {
                     id: comboBoxField;
                     label: root.comboBox.label;
                     focus: Boolean(root.comboBox);
diff --git a/interface/resources/qml/dialogs/TabletFileDialog.qml b/interface/resources/qml/dialogs/TabletFileDialog.qml
index 4fecd4b523..5e33663436 100644
--- a/interface/resources/qml/dialogs/TabletFileDialog.qml
+++ b/interface/resources/qml/dialogs/TabletFileDialog.qml
@@ -149,7 +149,7 @@ TabletModalWindow {
             }
         }
 
-        TabletComboBox {
+        ComboBox {
             id: pathSelector
             z: 10
             anchors {
diff --git a/interface/resources/qml/dialogs/TabletQueryDialog.qml b/interface/resources/qml/dialogs/TabletQueryDialog.qml
index 3ff3347ebc..e21677c12c 100644
--- a/interface/resources/qml/dialogs/TabletQueryDialog.qml
+++ b/interface/resources/qml/dialogs/TabletQueryDialog.qml
@@ -109,7 +109,7 @@ TabletModalWindow {
                 }
             }
 
-            TabletComboBox {
+            ComboBox {
                 id: comboBox
                 label: root.label
                 focus: true
diff --git a/interface/resources/qml/hifi/tablet/NewModelDialog.qml b/interface/resources/qml/hifi/tablet/NewModelDialog.qml
index d57ffdc72f..2fa48cac07 100644
--- a/interface/resources/qml/hifi/tablet/NewModelDialog.qml
+++ b/interface/resources/qml/hifi/tablet/NewModelDialog.qml
@@ -107,7 +107,7 @@ Rectangle {
                     font.pixelSize: 12
                 }
 
-                TabletComboBox {
+                ComboBox {
                     id: collisionType
                     width: 200
                     z: 100
diff --git a/interface/resources/qml/hifi/tablet/tabletWindows/TabletFileDialog.qml b/interface/resources/qml/hifi/tablet/tabletWindows/TabletFileDialog.qml
index a3e94152b8..26e35c4dcf 100644
--- a/interface/resources/qml/hifi/tablet/tabletWindows/TabletFileDialog.qml
+++ b/interface/resources/qml/hifi/tablet/tabletWindows/TabletFileDialog.qml
@@ -145,7 +145,7 @@ Item {
             }
         }
 
-        TabletComboBox {
+        ComboBox {
             id: pathSelector
            anchors {
                 top: parent.top

From 8a973dae3c077b7c5da386c0deb66a55d5ecf570 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Fri, 10 Mar 2017 23:21:29 +0000
Subject: [PATCH 106/247] fixed bring menu dialogs in tablet

---
 .../resources/qml/hifi/dialogs/TabletRunningScripts.qml      | 1 +
 .../resources/qml/hifi/tablet/TabletAudioPreferences.qml     | 2 +-
 .../resources/qml/hifi/tablet/TabletAvatarPreferences.qml    | 2 +-
 .../resources/qml/hifi/tablet/TabletGeneralPreferences.qml   | 5 +++--
 interface/resources/qml/hifi/tablet/TabletMenuStack.qml      | 2 +-
 .../qml/hifi/tablet/TabletNetworkingPreferences.qml          | 2 +-
 interface/src/Application.cpp                                | 2 +-
 7 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/interface/resources/qml/hifi/dialogs/TabletRunningScripts.qml b/interface/resources/qml/hifi/dialogs/TabletRunningScripts.qml
index e217a6e38e..b4a1ab01b6 100644
--- a/interface/resources/qml/hifi/dialogs/TabletRunningScripts.qml
+++ b/interface/resources/qml/hifi/dialogs/TabletRunningScripts.qml
@@ -20,6 +20,7 @@ import "../../windows"
 Rectangle {
     id: root
     objectName: "RunningScripts"
+    property var title: "Running Scripts"
     HifiConstants { id: hifi }
     signal sendToScript(var message);
     property var eventBridge;
diff --git a/interface/resources/qml/hifi/tablet/TabletAudioPreferences.qml b/interface/resources/qml/hifi/tablet/TabletAudioPreferences.qml
index efb7b5d50d..1c18c44a97 100644
--- a/interface/resources/qml/hifi/tablet/TabletAudioPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAudioPreferences.qml
@@ -19,7 +19,7 @@ StackView {
     id: profileRoot
     initialItem: root
     objectName: "stack"
-
+    property var title: "Audio Preferences"
     property var eventBridge;
     signal sendToScript(var message);
 
diff --git a/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml b/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml
index f5c1ddf8f7..b29164a30f 100644
--- a/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml
@@ -19,7 +19,7 @@ StackView {
     id: profileRoot
     initialItem: root
     objectName: "stack"
-
+    property var title: "Avatar Preferences"
     property var eventBridge;
     signal sendToScript(var message);
 
diff --git a/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml b/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml
index 4473a997e6..47e6a05f78 100644
--- a/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml
@@ -19,10 +19,11 @@ StackView {
     id: profileRoot
     initialItem: root
     objectName: "stack"
-
+    property var title: "General Prefernces"
+    
     property var eventBridge;
     signal sendToScript(var message);
-
+    
     function pushSource(path) {
         editRoot.push(Qt.reslovedUrl(path));
     }
diff --git a/interface/resources/qml/hifi/tablet/TabletMenuStack.qml b/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
index a75a9fcd86..64d42acabb 100644
--- a/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
+++ b/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
@@ -51,7 +51,7 @@ Item {
             d.push(Qt.resolvedUrl(path));
             d.currentItem.eventBridge = tabletMenu.eventBridge
             d.currentItem.sendToScript.connect(tabletMenu.sendToScript);
-            breadcrumbText.text = d.currentItem.objectName;
+            breadcrumbText.text = d.currentItem.title;
         }
 
         function popSource() {
diff --git a/interface/resources/qml/hifi/tablet/TabletNetworkingPreferences.qml b/interface/resources/qml/hifi/tablet/TabletNetworkingPreferences.qml
index 9b12d3c69e..f48d270646 100644
--- a/interface/resources/qml/hifi/tablet/TabletNetworkingPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletNetworkingPreferences.qml
@@ -19,7 +19,7 @@ StackView {
     id: profileRoot
     initialItem: root
     objectName: "stack"
-
+    property var title: "Network Preferences"
     property var eventBridge;
     signal sendToScript(var message);
 
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index b575cb07b1..6be36f18ac 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -5876,7 +5876,7 @@ void Application::showDialog(const QString& desktopURL, const QString& tabletURL
     if (tablet->getToolbarMode() || (!hmd->getShouldShowTablet() && !isHMDMode())) {
         DependencyManager::get<OffscreenUi>()->show(desktopURL, name);
     } else {
-        tablet->loadQMLSource(tabletURL);
+        tablet->pushOntoStack(tabletURL);
     }
 }
 

From 713c50f2e860ba7947f7651b589a96a8a437b4cd Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Sat, 11 Mar 2017 12:52:22 +1300
Subject: [PATCH 107/247] Fix attachments dialog joint dropdown in tablet

---
 interface/resources/qml/controls-uit/ComboBox.qml            | 5 +++--
 .../resources/qml/hifi/dialogs/attachments/Attachment.qml    | 2 ++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/interface/resources/qml/controls-uit/ComboBox.qml b/interface/resources/qml/controls-uit/ComboBox.qml
index 582e5f6d83..1cb1446658 100644
--- a/interface/resources/qml/controls-uit/ComboBox.qml
+++ b/interface/resources/qml/controls-uit/ComboBox.qml
@@ -24,6 +24,7 @@ FocusScope {
     readonly property alias currentText: comboBox.currentText;
     property alias currentIndex: comboBox.currentIndex;
 
+    property int dropdownHeight: 480
     property int colorScheme: hifi.colorSchemes.light
     readonly property bool isLightColorScheme: colorScheme == hifi.colorSchemes.light
     property string label: ""
@@ -148,7 +149,7 @@ FocusScope {
 
     FocusScope {
         id: popup
-        parent: isDesktop ? desktop : parent
+        parent: isDesktop ? desktop : root
         anchors.fill: parent
         z: isDesktop ? desktop.zLevels.menu : 12
         visible: false
@@ -173,7 +174,7 @@ FocusScope {
 
         ScrollView {
             id: scrollView
-            height: 480
+            height: root.dropdownHeight
             width: root.width + 4
             property bool hoverEnabled: false;
 
diff --git a/interface/resources/qml/hifi/dialogs/attachments/Attachment.qml b/interface/resources/qml/hifi/dialogs/attachments/Attachment.qml
index 5c11a87d12..d10b8be58f 100644
--- a/interface/resources/qml/hifi/dialogs/attachments/Attachment.qml
+++ b/interface/resources/qml/hifi/dialogs/attachments/Attachment.qml
@@ -87,6 +87,7 @@ Item {
         }
 
         Item {
+            z: 1000
             height: jointChooser.height + jointLabel.height + 4
             anchors { left: parent.left; right: parent.right; }
             HifiControls.Label {
@@ -97,6 +98,7 @@ Item {
             }
             HifiControls.ComboBox {
                 id: jointChooser;
+                dropdownHeight: (typeof desktop !== "undefined") ? 480 : 206
                 anchors { bottom: parent.bottom; left: parent.left; right: parent.right }
                 colorScheme: hifi.colorSchemes.dark
                 currentIndex: attachment ? model.indexOf(attachment.jointName) : -1

From 25364c06286af1e9aa8a29bda836899f88ef2a3f Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Sat, 11 Mar 2017 12:59:15 +1300
Subject: [PATCH 108/247] Make dropdown scrollbar wider

---
 interface/resources/qml/controls-uit/ComboBox.qml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/interface/resources/qml/controls-uit/ComboBox.qml b/interface/resources/qml/controls-uit/ComboBox.qml
index 1cb1446658..2dea535c06 100644
--- a/interface/resources/qml/controls-uit/ComboBox.qml
+++ b/interface/resources/qml/controls-uit/ComboBox.qml
@@ -186,18 +186,18 @@ FocusScope {
                     visible: false
                 }
                 scrollBarBackground: Rectangle{
-                    implicitWidth: 14
+                    implicitWidth: 20
                     color: hifi.colors.baseGray
                 }
 
                 handle:
                     Rectangle {
-                    implicitWidth: 8
+                    implicitWidth: 16
                     anchors.left: parent.left
                     anchors.leftMargin: 3
                     anchors.top: parent.top
                     anchors.bottom: parent.bottom
-                    radius: 3
+                    radius: 6
                     color: hifi.colors.lightGrayText
                 }
             }

From 3abc78e7d365fe298c60c8624d6f3d6c2a99887e Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidleity.io>
Date: Fri, 10 Mar 2017 17:18:13 -0800
Subject: [PATCH 109/247] Fix for finger/sytlus on invisible/hidden tablet.

---
 scripts/system/controllers/handControllerGrab.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index 1ccf443a00..1693a6137a 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -1632,12 +1632,12 @@ function MyController(hand) {
         }
 
         // add the tabletScreen, if it is valid
-        if (HMD.tabletScreenID && HMD.tabletScreenID !== NULL_UUID) {
+        if (HMD.tabletScreenID && HMD.tabletScreenID !== NULL_UUID && Overlays.getProperty(HMD.tabletScreenID, "visible")) {
             stylusTargets.push(calculateStylusTargetFromOverlay(this.stylusTip, HMD.tabletScreenID));
         }
 
         // add the tablet home button.
-        if (HMD.homeButtonID && HMD.homeButtonID !== NULL_UUID) {
+        if (HMD.homeButtonID && HMD.homeButtonID !== NULL_UUID && Overlays.getProperty(HMD.homeButtonID, "visible")) {
             stylusTargets.push(calculateStylusTargetFromOverlay(this.stylusTip, HMD.homeButtonID));
         }
 

From d261e48b9d11068865f5e81ca6dc1159dbf56d66 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Sat, 11 Mar 2017 14:33:03 +1300
Subject: [PATCH 110/247] Use existing model browser dialog as base content

---
 .../{ModelBrowserDialog.qml => content/ModelBrowserContent.qml}   | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename interface/resources/qml/hifi/dialogs/{ModelBrowserDialog.qml => content/ModelBrowserContent.qml} (100%)

diff --git a/interface/resources/qml/hifi/dialogs/ModelBrowserDialog.qml b/interface/resources/qml/hifi/dialogs/content/ModelBrowserContent.qml
similarity index 100%
rename from interface/resources/qml/hifi/dialogs/ModelBrowserDialog.qml
rename to interface/resources/qml/hifi/dialogs/content/ModelBrowserContent.qml

From ffbb04d3bce5ac0a1d3e120a1c23729268702fc1 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Sat, 11 Mar 2017 15:38:21 +1300
Subject: [PATCH 111/247] Tablet and desktop versions of attachment model
 browser dialog

---
 .../qml/hifi/dialogs/ModelBrowserDialog.qml   |  36 +++++
 .../hifi/dialogs/attachments/Attachment.qml   |  21 ++-
 .../dialogs/content/ModelBrowserContent.qml   | 124 +++++++-----------
 .../hifi/tablet/TabletModelBrowserDialog.qml  |  78 +++++++++++
 4 files changed, 179 insertions(+), 80 deletions(-)
 create mode 100644 interface/resources/qml/hifi/dialogs/ModelBrowserDialog.qml
 create mode 100644 interface/resources/qml/hifi/tablet/TabletModelBrowserDialog.qml

diff --git a/interface/resources/qml/hifi/dialogs/ModelBrowserDialog.qml b/interface/resources/qml/hifi/dialogs/ModelBrowserDialog.qml
new file mode 100644
index 0000000000..c427052904
--- /dev/null
+++ b/interface/resources/qml/hifi/dialogs/ModelBrowserDialog.qml
@@ -0,0 +1,36 @@
+//
+//  ModelBrowserDialog.qml
+//
+//  Created by David Rowe on 11 Mar 2017.
+//  Copyright 2017 High Fidelity, Inc.
+//
+//  Distributed under the Apache License, Version 2.0.
+//  See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+
+import "../../windows"
+import "content"
+
+ScrollingWindow {
+    id: root
+    objectName: "ModelBrowserDialog"
+    title: "Attachment Model"
+    resizable: true
+    width: 600
+    height: 480
+    closable: false
+
+    //HifiConstants { id: hifi }
+
+    property var result
+
+    signal selected(var modelUrl)
+    signal canceled()
+
+    ModelBrowserContent {
+        id: modelBrowserContent
+    }
+}
diff --git a/interface/resources/qml/hifi/dialogs/attachments/Attachment.qml b/interface/resources/qml/hifi/dialogs/attachments/Attachment.qml
index d10b8be58f..941d665b18 100644
--- a/interface/resources/qml/hifi/dialogs/attachments/Attachment.qml
+++ b/interface/resources/qml/hifi/dialogs/attachments/Attachment.qml
@@ -6,6 +6,7 @@ import Qt.labs.settings 1.0
 
 import "."
 import ".."
+import "../../tablet"
 import "../../../styles-uit"
 import "../../../controls-uit" as HifiControls
 import "../../../windows"
@@ -76,12 +77,24 @@ Item {
                     id: modelBrowserBuilder;
                     ModelBrowserDialog {}
                 }
+                Component {
+                    id: tabletModelBrowserBuilder;
+                    TabletModelBrowserDialog {}
+                }
 
                 onClicked: {
-                    var browser = modelBrowserBuilder.createObject(desktop);
-                    browser.selected.connect(function(newModelUrl){
-                        modelUrl.text = newModelUrl;
-                    })
+                    var browser;
+                    if (typeof desktop !== "undefined") {
+                        browser = modelBrowserBuilder.createObject(desktop);
+                        browser.selected.connect(function(newModelUrl){
+                            modelUrl.text = newModelUrl;
+                        });
+                    } else {
+                        browser = tabletModelBrowserBuilder.createObject(tabletRoot);
+                        browser.selected.connect(function(newModelUrl){
+                            modelUrl.text = newModelUrl;
+                        });
+                    }
                 }
             }
         }
diff --git a/interface/resources/qml/hifi/dialogs/content/ModelBrowserContent.qml b/interface/resources/qml/hifi/dialogs/content/ModelBrowserContent.qml
index 7a63c0604c..50fca94ff1 100644
--- a/interface/resources/qml/hifi/dialogs/content/ModelBrowserContent.qml
+++ b/interface/resources/qml/hifi/dialogs/content/ModelBrowserContent.qml
@@ -1,92 +1,64 @@
 import QtQuick 2.5
 import QtQuick.Controls 1.4
-import QtQuick.XmlListModel 2.0
-import QtQuick.Controls.Styles 1.4
 
-import "../../windows"
-import "../../js/Utils.js" as Utils
-import "../models"
+import "../../../controls-uit" as HifiControls
 
-import "../../styles-uit"
-import "../../controls-uit" as HifiControls
-import "../../windows"
+Column {
+    width: pane.contentWidth
 
-ScrollingWindow {
-    id: root
-    resizable: true
-    width: 600
-    height: 480
-    closable: false
+    Rectangle {
+        width: parent.width
+        height: root.height  - (keyboardEnabled && keyboardRaised ? 200 : 0)
+        color: hifi.colors.baseGray
 
-    property var result;
+        HifiControls.TextField {
+            id: filterEdit
+            anchors { left: parent.left; right: parent.right; top: parent.top ; margins: 8}
+            placeholderText: "filter"
+            onTextChanged: tableView.model.filter = text
+            colorScheme: hifi.colorSchemes.dark
+        }
 
-    signal selected(var modelUrl);
-    signal canceled();
-
-    HifiConstants {id: hifi}
-
-    Column {
-        width: pane.contentWidth
-
-        Rectangle {
-            width: parent.width
-            height: root.height  - (keyboardEnabled && keyboardRaised ? 200 : 0)
-            radius: 4
-            color: hifi.colors.baseGray
-
-            HifiControls.TextField {
-                id: filterEdit
-                anchors { left: parent.left; right: parent.right; top: parent.top ; margins: 8}
-                placeholderText: "filter"
-                onTextChanged: tableView.model.filter = text
-                colorScheme: hifi.colorSchemes.dark
-            }
-
-            HifiControls.AttachmentsTable {
-                id: tableView
-                anchors { left: parent.left; right: parent.right; top: filterEdit.bottom; bottom: buttonRow.top; margins: 8; }
-                colorScheme: hifi.colorSchemes.dark
-                onCurrentRowChanged: {
-                    if (currentRow == -1) {
-                        root.result = null;
-                        return;
-                    }
-                    result = model.baseUrl + "/" + model.get(tableView.currentRow).key;
+        HifiControls.AttachmentsTable {
+            id: tableView
+            anchors { left: parent.left; right: parent.right; top: filterEdit.bottom; bottom: buttonRow.top; margins: 8; }
+            colorScheme: hifi.colorSchemes.dark
+            onCurrentRowChanged: {
+                if (currentRow == -1) {
+                    root.result = null;
+                    return;
                 }
+                result = model.baseUrl + "/" + model.get(tableView.currentRow).key;
             }
+        }
 
-            Row {
-                id: buttonRow
-                spacing: 8
-                anchors { right: parent.right; rightMargin: 8; bottom: parent.bottom; bottomMargin: 8; }
-                HifiControls.Button { action: acceptAction ;  color: hifi.buttons.black; colorScheme: hifi.colorSchemes.dark }
-                HifiControls.Button { action: cancelAction ;  color: hifi.buttons.black; colorScheme: hifi.colorSchemes.dark }
+        Row {
+            id: buttonRow
+            spacing: 8
+            anchors { right: parent.right; rightMargin: 8; bottom: parent.bottom; bottomMargin: 8; }
+            HifiControls.Button { action: acceptAction ;  color: hifi.buttons.black; colorScheme: hifi.colorSchemes.dark }
+            HifiControls.Button { action: cancelAction ;  color: hifi.buttons.black; colorScheme: hifi.colorSchemes.dark }
+        }
+
+        Action {
+            id: acceptAction
+            text: qsTr("OK")
+            enabled: root.result ? true : false
+            shortcut: Qt.Key_Return
+            onTriggered: {
+                root.selected(root.result);
+                root.destroy();
             }
+        }
 
-            Action {
-                id: acceptAction
-                text: qsTr("OK")
-                enabled: root.result ? true : false
-                shortcut: Qt.Key_Return
-                onTriggered: {
-                    root.selected(root.result);
-                    root.destroy();
-                }
-            }
-
-            Action {
-                id: cancelAction
-                text: qsTr("Cancel")
-                shortcut: Qt.Key_Escape
-                onTriggered: {
-                    root.canceled();
-                    root.destroy();
-                }
+        Action {
+            id: cancelAction
+            text: qsTr("Cancel")
+            shortcut: Qt.Key_Escape
+            onTriggered: {
+                root.canceled();
+                root.destroy();
             }
         }
     }
 }
-
-
-
-
diff --git a/interface/resources/qml/hifi/tablet/TabletModelBrowserDialog.qml b/interface/resources/qml/hifi/tablet/TabletModelBrowserDialog.qml
new file mode 100644
index 0000000000..956e175f1e
--- /dev/null
+++ b/interface/resources/qml/hifi/tablet/TabletModelBrowserDialog.qml
@@ -0,0 +1,78 @@
+//
+//  TabletModelBrowserDialog.qml
+//
+//  Created by David Rowe on 11 Mar 2017.
+//  Copyright 2017 High Fidelity, Inc.
+//
+//  Distributed under the Apache License, Version 2.0.
+//  See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+
+import "../../styles-uit"
+import "../dialogs/content"
+
+Item {
+    id: root
+    objectName: "ModelBrowserDialog"
+
+    property string title: "Attachment Model"
+
+    property var result
+
+    signal selected(var modelUrl)
+    signal canceled()
+
+    anchors.fill: parent
+
+    Rectangle {
+        id: pane  // Surrogate for ScrollingWindow's pane.
+        anchors.fill: parent
+    }
+
+    anchors.topMargin: 90  // Space for header.
+
+    // FIXME: Refactor with other tablet headers.
+    Rectangle {
+        id: header
+        height: 90
+        anchors {
+            left: parent.left
+            right: parent.right
+            bottom: parent.top
+        }
+        z: 100
+
+        gradient: Gradient {
+            GradientStop {
+                position: 0
+                color: "#2b2b2b"
+            }
+
+            GradientStop {
+                position: 1
+                color: "#1e1e1e"
+            }
+        }
+
+        RalewayBold {
+            text: title
+            size: 26
+            color: "#34a2c7"
+            anchors.verticalCenter: parent.verticalCenter
+            anchors.left: parent.left
+            anchors.leftMargin: hifi.dimensions.contentMargin.x
+        }
+    }
+
+    ModelBrowserContent {
+        anchors {
+            top: header.bottom
+            left: parent.left
+            right: parent.right
+            bottom: parent.top
+        }
+    }
+}

From 0a2976deab28aecfde0eef70828abdb727679f3b Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Sat, 11 Mar 2017 15:43:33 +1300
Subject: [PATCH 112/247] Add tablet keyboard

---
 .../hifi/tablet/TabletModelBrowserDialog.qml  | 33 ++++++++++++++++++-
 1 file changed, 32 insertions(+), 1 deletion(-)

diff --git a/interface/resources/qml/hifi/tablet/TabletModelBrowserDialog.qml b/interface/resources/qml/hifi/tablet/TabletModelBrowserDialog.qml
index 956e175f1e..e098c59e4e 100644
--- a/interface/resources/qml/hifi/tablet/TabletModelBrowserDialog.qml
+++ b/interface/resources/qml/hifi/tablet/TabletModelBrowserDialog.qml
@@ -11,6 +11,7 @@
 import QtQuick 2.5
 import QtQuick.Controls 1.4
 
+import "../../controls-uit" as HifiControls
 import "../../styles-uit"
 import "../dialogs/content"
 
@@ -25,6 +26,10 @@ Item {
     signal selected(var modelUrl)
     signal canceled()
 
+    property bool keyboardEnabled: false
+    property bool keyboardRaised: false
+    property bool punctuationMode: false
+
     anchors.fill: parent
 
     Rectangle {
@@ -72,7 +77,33 @@ Item {
             top: header.bottom
             left: parent.left
             right: parent.right
-            bottom: parent.top
+            bottom: keyboard.top
         }
     }
+
+    HifiControls.Keyboard {
+        id: keyboard
+        raised: parent.keyboardEnabled && parent.keyboardRaised
+        numeric: parent.punctuationMode
+        anchors {
+            left: parent.left
+            right: parent.right
+            bottom: parent.bottom
+        }
+    }
+
+    MouseArea {
+        id: activator
+        anchors.fill: parent
+        propagateComposedEvents: true
+        enabled: true
+        acceptedButtons: Qt.AllButtons
+        onPressed: {
+            mouse.accepted = false;
+        }
+    }
+
+    Component.onCompleted: {
+        keyboardEnabled = HMD.active;
+    }
 }

From 327e3c9973ecf8c809231bc51d25cfc676074c45 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Sat, 11 Mar 2017 15:46:43 +1300
Subject: [PATCH 113/247] Don't expand height of higlighted row

---
 interface/resources/qml/controls-uit/AttachmentsTable.qml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/resources/qml/controls-uit/AttachmentsTable.qml b/interface/resources/qml/controls-uit/AttachmentsTable.qml
index 7d0280b72d..8ee9909ab8 100644
--- a/interface/resources/qml/controls-uit/AttachmentsTable.qml
+++ b/interface/resources/qml/controls-uit/AttachmentsTable.qml
@@ -120,7 +120,7 @@ TableView {
     }
 
     rowDelegate: Rectangle {
-        height: (styleData.selected ? 1.2 : 1) * hifi.dimensions.tableRowHeight
+        height: hifi.dimensions.tableRowHeight
         color: styleData.selected
                ? hifi.colors.primaryHighlight
                : tableView.isLightColorScheme

From 6a8d0b1064c94dbfa55e2b771be28f53fa1bcfe1 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Sat, 11 Mar 2017 16:55:22 +1300
Subject: [PATCH 114/247] Refactor some tablet dialog headers

---
 .../qml/controls-uit/TabletHeader.qml         | 45 +++++++++++++++++++
 .../hifi/tablet/TabletAttachmentsDialog.qml   | 30 ++-----------
 .../hifi/tablet/TabletModelBrowserDialog.qml  | 30 ++-----------
 .../tabletWindows/TabletPreferencesDialog.qml | 27 ++---------
 4 files changed, 56 insertions(+), 76 deletions(-)
 create mode 100644 interface/resources/qml/controls-uit/TabletHeader.qml

diff --git a/interface/resources/qml/controls-uit/TabletHeader.qml b/interface/resources/qml/controls-uit/TabletHeader.qml
new file mode 100644
index 0000000000..f9482f995f
--- /dev/null
+++ b/interface/resources/qml/controls-uit/TabletHeader.qml
@@ -0,0 +1,45 @@
+//
+//  TabletHeader.qml
+//
+//  Created by David Rowe on 11 Mar 2017.
+//  Copyright 2017 High Fidelity, Inc.
+//
+//  Distributed under the Apache License, Version 2.0.
+//  See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+
+import "../styles-uit"
+
+Rectangle {
+
+    property string title: ""
+
+    HifiConstants { id: hifi }
+
+    height: hifi.dimensions.tabletMenuHeader
+    z: 100
+
+    gradient: Gradient {
+        GradientStop {
+            position: 0
+            color: "#2b2b2b"
+        }
+
+        GradientStop {
+            position: 1
+            color: "#1e1e1e"
+        }
+    }
+
+    RalewayBold {
+        text: title
+        size: 26
+        color: "#34a2c7"
+        anchors.verticalCenter: parent.verticalCenter
+        anchors.left: parent.left
+        anchors.leftMargin: hifi.dimensions.contentMargin.x
+    }
+}
diff --git a/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml b/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
index dac43c9c3c..868b35398b 100644
--- a/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
@@ -38,39 +38,17 @@ Item {
         Tablet.getTablet("com.highfidelity.interface.tablet.system").gotoHomeScreen();
     }
 
-    anchors.topMargin: 90  // Space for header.
+    anchors.topMargin: hifi.dimensions.tabletMenuHeader  // Space for header.
 
-    // FIXME: Refactor with other tablet headers.
-    Rectangle {
+    HifiControls.TabletHeader {
         id: header
-        height: 90
+        title: root.title
+
         anchors {
             left: parent.left
             right: parent.right
             bottom: parent.top
         }
-        z: 100
-
-        gradient: Gradient {
-            GradientStop {
-                position: 0
-                color: "#2b2b2b"
-            }
-
-            GradientStop {
-                position: 1
-                color: "#1e1e1e"
-            }
-        }
-
-        RalewayBold {
-            text: title
-            size: 26
-            color: "#34a2c7"
-            anchors.verticalCenter: parent.verticalCenter
-            anchors.left: parent.left
-            anchors.leftMargin: hifi.dimensions.contentMargin.x
-        }
     }
 
     AttachmentsContent {
diff --git a/interface/resources/qml/hifi/tablet/TabletModelBrowserDialog.qml b/interface/resources/qml/hifi/tablet/TabletModelBrowserDialog.qml
index e098c59e4e..60bd7a88e0 100644
--- a/interface/resources/qml/hifi/tablet/TabletModelBrowserDialog.qml
+++ b/interface/resources/qml/hifi/tablet/TabletModelBrowserDialog.qml
@@ -37,39 +37,17 @@ Item {
         anchors.fill: parent
     }
 
-    anchors.topMargin: 90  // Space for header.
+    anchors.topMargin: hifi.dimensions.tabletMenuHeader  // Space for header.
 
-    // FIXME: Refactor with other tablet headers.
-    Rectangle {
+    HifiControls.TabletHeader {
         id: header
-        height: 90
+        title: parent.title
+
         anchors {
             left: parent.left
             right: parent.right
             bottom: parent.top
         }
-        z: 100
-
-        gradient: Gradient {
-            GradientStop {
-                position: 0
-                color: "#2b2b2b"
-            }
-
-            GradientStop {
-                position: 1
-                color: "#1e1e1e"
-            }
-        }
-
-        RalewayBold {
-            text: title
-            size: 26
-            color: "#34a2c7"
-            anchors.verticalCenter: parent.verticalCenter
-            anchors.left: parent.left
-            anchors.leftMargin: hifi.dimensions.contentMargin.x
-        }
     }
 
     ModelBrowserContent {
diff --git a/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml b/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
index 95ce7f5a1d..c76735cb3c 100644
--- a/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
+++ b/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
@@ -58,36 +58,15 @@ Item {
         Tablet.getTablet("com.highfidelity.interface.tablet.system").gotoHomeScreen();
     }
 
-    Rectangle {
+    HifiControls.TabletHeader {
         id: header
-        height: 90
+        title: parent.title
+
         anchors {
             top: parent.top
             left: parent.left
             right: parent.right
         }
-        z: 100
-
-        gradient: Gradient {
-            GradientStop {
-                position: 0
-                color: "#2b2b2b"
-            }
-
-            GradientStop {
-                position: 1
-                color: "#1e1e1e"
-            }
-        }
-
-        RalewayBold {
-            text: title
-            size: 26
-            color: "#34a2c7"
-            anchors.verticalCenter: parent.verticalCenter
-            anchors.left: parent.left
-            anchors.leftMargin: hifi.dimensions.contentMargin.x
-        }
     }
 
     Rectangle {

From 0fc45799ed1c8e768124110e8bb1fcd2f0ae4aa6 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Sat, 11 Mar 2017 17:04:55 +1300
Subject: [PATCH 115/247] Remove redundant keyboard handling code

---
 .../resources/qml/hifi/dialogs/AttachmentsDialog.qml  | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/interface/resources/qml/hifi/dialogs/AttachmentsDialog.qml b/interface/resources/qml/hifi/dialogs/AttachmentsDialog.qml
index 66338666cf..12e8de3bfc 100644
--- a/interface/resources/qml/hifi/dialogs/AttachmentsDialog.qml
+++ b/interface/resources/qml/hifi/dialogs/AttachmentsDialog.qml
@@ -41,15 +41,4 @@ ScrollingWindow {
     }
 
     AttachmentsContent { }
-
-    onKeyboardRaisedChanged: {
-        if (keyboardEnabled && keyboardRaised) {
-            var buttonHeight = 40;  // Allow for New Attachment button.
-            var keyboardRaisedHeight = 200;
-            var delta = activator.mouseY - (root.height - keyboardRaisedHeight - buttonHeight);
-            if (delta > 0) {
-                content.scrollBy(delta);
-            }
-        }
-    }
 }

From 9f7c5a16033d4341ef13e67e4e8a4f25ae3818cf Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Sat, 11 Mar 2017 11:54:44 +0100
Subject: [PATCH 116/247] Add LOD settings to Tablet UI

---
 .../qml/hifi/tablet/TabletLodPreferences.qml  | 34 +++++++++++++++++++
 interface/src/Menu.cpp                        |  3 +-
 2 files changed, 36 insertions(+), 1 deletion(-)
 create mode 100644 interface/resources/qml/hifi/tablet/TabletLodPreferences.qml

diff --git a/interface/resources/qml/hifi/tablet/TabletLodPreferences.qml b/interface/resources/qml/hifi/tablet/TabletLodPreferences.qml
new file mode 100644
index 0000000000..8f03bdb0c5
--- /dev/null
+++ b/interface/resources/qml/hifi/tablet/TabletLodPreferences.qml
@@ -0,0 +1,34 @@
+import QtQuick 2.5
+import Qt.labs.settings 1.0
+
+import "tabletWindows"
+import "../../dialogs"
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import QtGraphicalEffects 1.0
+
+StackView {
+    id: profileRoot
+    initialItem: root
+    objectName: "stack"
+
+    property var eventBridge;
+    signal sendToScript(var message);
+
+    function pushSource(path) {
+        editRoot.push(Qt.reslovedUrl(path));
+    }
+
+    function popSource() {
+
+    }
+
+    TabletPreferencesDialog {
+        id: root
+        property string title: "LOD Settings"
+        objectName: "TabletLodPreferences"
+        width: parent.width
+        height: parent.height
+        showCategories: ["Level of Detail Tuning"]
+    }
+}
diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp
index 241f908190..7eb5f4ea60 100644
--- a/interface/src/Menu.cpp
+++ b/interface/src/Menu.cpp
@@ -308,7 +308,8 @@ Menu::Menu() {
     // Settings > LOD...
     action = addActionToQMenuAndActionHash(settingsMenu, "LOD...");
     connect(action, &QAction::triggered, [] {
-        DependencyManager::get<OffscreenUi>()->toggle(QString("hifi/dialogs/LodPreferencesDialog.qml"), "LodPreferencesDialog");
+        qApp->showDialog(QString("hifi/dialogs/LodPreferencesDialog.qml"),
+            QString("../../hifi/tablet/TabletLodPreferences.qml"), "LodPreferencesDialog");
     });
 
     // Settings > Control with Speech [advanced]

From d70943dd6c37ebc36760c1bc1caeaf8a86302b02 Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Sat, 11 Mar 2017 12:23:31 +0100
Subject: [PATCH 117/247] Add Graphics preferences to Tablet. Use
 TabletComboBox instead of desktop ComboBox for Tablet preferences

---
 .../hifi/tablet/TabletGraphicsPreferences.qml | 34 ++++++++++
 .../tabletWindows/preferences/Section.qml     |  2 +-
 .../preferences/TabletComboBoxPreference.qml  | 65 +++++++++++++++++++
 interface/src/Menu.cpp                        |  3 +-
 4 files changed, 102 insertions(+), 2 deletions(-)
 create mode 100644 interface/resources/qml/hifi/tablet/TabletGraphicsPreferences.qml
 create mode 100644 interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletComboBoxPreference.qml

diff --git a/interface/resources/qml/hifi/tablet/TabletGraphicsPreferences.qml b/interface/resources/qml/hifi/tablet/TabletGraphicsPreferences.qml
new file mode 100644
index 0000000000..2ca9634ee6
--- /dev/null
+++ b/interface/resources/qml/hifi/tablet/TabletGraphicsPreferences.qml
@@ -0,0 +1,34 @@
+import QtQuick 2.5
+import Qt.labs.settings 1.0
+
+import "tabletWindows"
+import "../../dialogs"
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import QtGraphicalEffects 1.0
+
+StackView {
+    id: profileRoot
+    initialItem: root
+    objectName: "stack"
+
+    property var eventBridge;
+    signal sendToScript(var message);
+
+    function pushSource(path) {
+        editRoot.push(Qt.reslovedUrl(path));
+    }
+
+    function popSource() {
+
+    }
+
+    TabletPreferencesDialog {
+        id: root
+        property string title: "Graphics Settings"
+        objectName: "TabletGraphicsPreferences"
+        width: parent.width
+        height: parent.height
+        showCategories: ["Graphics"]
+    }
+}
diff --git a/interface/resources/qml/hifi/tablet/tabletWindows/preferences/Section.qml b/interface/resources/qml/hifi/tablet/tabletWindows/preferences/Section.qml
index 3d6dfa10ce..54f616e0f4 100644
--- a/interface/resources/qml/hifi/tablet/tabletWindows/preferences/Section.qml
+++ b/interface/resources/qml/hifi/tablet/tabletWindows/preferences/Section.qml
@@ -80,7 +80,7 @@ Preference {
         property var sliderBuilder: Component { SliderPreference { } }
         property var avatarBuilder: Component { AvatarPreference { } }
         property var buttonBuilder: Component { ButtonPreference { } }
-        property var comboBoxBuilder: Component { ComboBoxPreference { } }
+        property var comboBoxBuilder: Component { TabletComboBoxPreference { } }
         property var preferences: []
         property int checkBoxCount: 0
 
diff --git a/interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletComboBoxPreference.qml b/interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletComboBoxPreference.qml
new file mode 100644
index 0000000000..0ff000f3e1
--- /dev/null
+++ b/interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletComboBoxPreference.qml
@@ -0,0 +1,65 @@
+//
+//  ComboBoxPreference.qml
+//
+//  Created by Bradley Austin Davis on 18 Jan 2016
+//  Copyright 2016 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
+//
+
+import QtQuick 2.5
+
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import "../../../../controls-uit" as HiFiControls
+import "../../../../styles-uit"
+
+Preference {
+    id: root
+    height: control.height + hifi.dimensions.controlInterlineHeight
+
+    Component.onCompleted: {
+        dataComboBox.currentIndex = dataComboBox.comboBox.find(preference.value);
+    }
+
+    function save() {
+        preference.value = dataComboBox.currentText;
+        preference.save();
+    }
+
+    Item {
+        id: control
+        anchors {
+            left: parent.left
+            right: parent.right
+            bottom: parent.bottom
+        }
+        height: Math.max(labelText.height, dataComboBox.controlHeight)
+
+        HiFiControls.Label {
+            id: labelText
+            text: root.label + ":"
+            colorScheme: hifi.colorSchemes.dark
+            anchors {
+                left: parent.left
+                right: dataComboBox.left
+                rightMargin: hifi.dimensions.labelPadding
+                verticalCenter: parent.verticalCenter
+            }
+            horizontalAlignment: Text.AlignRight
+            wrapMode: Text.Wrap
+        }
+
+        HiFiControls.TabletComboBox {
+            id: dataComboBox
+            model: preference.items
+            width: 150
+            anchors {
+                right: parent.right
+                verticalCenter: parent.verticalCenter
+            }
+            colorScheme: hifi.colorSchemes.dark
+        }
+    }
+}
diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp
index 241f908190..d53f6b6c7a 100644
--- a/interface/src/Menu.cpp
+++ b/interface/src/Menu.cpp
@@ -329,7 +329,8 @@ Menu::Menu() {
     // Developer > Graphics...
     action = addActionToQMenuAndActionHash(developerMenu, "Graphics...");
     connect(action, &QAction::triggered, [] {
-        DependencyManager::get<OffscreenUi>()->toggle(QString("hifi/dialogs/GraphicsPreferencesDialog.qml"), "GraphicsPreferencesDialog");
+        qApp->showDialog(QString("hifi/dialogs/GraphicsPreferencesDialog.qml"),
+            QString("../../hifi/tablet/TabletGraphicsPreferences.qml"), "GraphicsPreferencesDialog");
     });
 
     // Developer > Render >>>

From 81bc56f124fb0e507e5852c5d9a7b1584bb6b296 Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Sat, 11 Mar 2017 14:44:33 +0100
Subject: [PATCH 118/247] Fixed slider groove size calculation. Added LOD Tools
 to Tablet UI

---
 .../resources/qml/controls-uit/Slider.qml     |   2 +-
 .../qml/hifi/dialogs/TabletLODTools.qml       | 119 ++++++++++++++++++
 interface/src/Application.cpp                 |  12 ++
 interface/src/Application.h                   |   1 +
 interface/src/Menu.cpp                        |   3 +-
 interface/src/ui/overlays/Web3DOverlay.cpp    |   2 +
 6 files changed, 137 insertions(+), 2 deletions(-)
 create mode 100644 interface/resources/qml/hifi/dialogs/TabletLODTools.qml

diff --git a/interface/resources/qml/controls-uit/Slider.qml b/interface/resources/qml/controls-uit/Slider.qml
index cf59e1d989..39831546e1 100644
--- a/interface/resources/qml/controls-uit/Slider.qml
+++ b/interface/resources/qml/controls-uit/Slider.qml
@@ -36,7 +36,7 @@ Slider {
 
             Rectangle {
                 width: parent.height - 2
-                height: slider.value * slider.width - 1
+                height: slider.value * (slider.width/(slider.maximumValue - slider.minimumValue)) - 1
                 radius: height / 2
                 anchors {
                     top: parent.top
diff --git a/interface/resources/qml/hifi/dialogs/TabletLODTools.qml b/interface/resources/qml/hifi/dialogs/TabletLODTools.qml
new file mode 100644
index 0000000000..26e9759e0d
--- /dev/null
+++ b/interface/resources/qml/hifi/dialogs/TabletLODTools.qml
@@ -0,0 +1,119 @@
+//
+//  TabletLODTools.qml
+//
+//  Created by Vlad Stelmahovsky on  3/11/17
+//  Copyright 2017 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
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import Qt.labs.settings 1.0
+
+import "../../styles-uit"
+import "../../controls-uit" as HifiControls
+import "../../windows"
+
+Rectangle {
+    id: root
+    objectName: "LODTools"
+
+    property var eventBridge;
+    signal sendToScript(var message);
+    property bool isHMD: false
+
+    color: hifi.colors.baseGray
+
+    property int colorScheme: hifi.colorSchemes.dark
+
+    HifiConstants { id: hifi }
+
+    readonly property real treeScale: 32768; // ~20 miles.. This is the number of meters of the 0.0 to 1.0 voxel universe
+    readonly property real halfTreeScale: treeScale / 2;
+
+    // This controls the LOD. Larger number will make smaller voxels visible at greater distance.
+    readonly property real defaultOctreeSizeScale: treeScale * 400.0
+
+    Column {
+        anchors.margins: 10
+        anchors.left: parent.left
+        anchors.right: parent.right
+        y: hifi.dimensions.tabletMenuHeader //-bgNavBar
+        spacing: 20
+
+        HifiControls.Label {
+            size: 20
+            anchors.left: parent.left
+            anchors.right: parent.right
+            text: qsTr("You can see...")
+            colorScheme: root.colorScheme
+        }
+        HifiControls.Label {
+            id: whatYouCanSeeLabel
+            color: "red"
+            size: 20
+            anchors.left: parent.left
+            anchors.right: parent.right
+            colorScheme: root.colorScheme
+        }
+        Row {
+            anchors.left: parent.left
+            anchors.right: parent.right
+            spacing: 10
+
+            HifiControls.Label {
+                size: 20
+                text: qsTr("Manually Adjust Level of Detail:")
+                anchors.verticalCenter: parent.verticalCenter
+                colorScheme: root.colorScheme
+            }
+
+            HifiControls.CheckBox {
+                id: adjustCheckbox
+                boxSize: 20
+                anchors.verticalCenter: parent.verticalCenter
+                onCheckedChanged: LODManager.setAutomaticLODAdjust(!checked);
+            }
+        }
+
+        HifiControls.Label {
+            size: 20
+            anchors.left: parent.left
+            anchors.right: parent.right
+            text: qsTr("Level of Detail:")
+            colorScheme: root.colorScheme
+        }
+        HifiControls.Slider {
+            id: slider
+            enabled: adjustCheckbox.checked
+            anchors.left: parent.left
+            anchors.right: parent.right
+            minimumValue: 5
+            maximumValue: 2000
+            value: LODManager.getOctreeSizeScale() / treeScale
+            tickmarksEnabled: false
+            onValueChanged: {
+                LODManager.setOctreeSizeScale(value * treeScale);
+                whatYouCanSeeLabel.text = LODManager.getLODFeedbackText()
+            }
+        }
+
+        HifiControls.Button {
+            id: uploadButton
+            anchors.left: parent.left
+            anchors.right: parent.right
+            text: qsTr("Reset")
+            color: hifi.buttons.blue
+            colorScheme: root.colorScheme
+            height: 30
+            onClicked: {
+                slider.value = defaultOctreeSizeScale/treeScale
+                adjustCheckbox.checked = false
+                LODManager.setAutomaticLODAdjust(adjustCheckbox.checked);
+            }
+        }
+    }
+}
+
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 27dd65ab8d..94a71e01b0 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -6363,6 +6363,18 @@ void Application::loadScriptURLDialog() const {
     }
 }
 
+void Application::loadLODToolsDialog() {
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+    if (tablet->getToolbarMode() || (!tablet->getTabletRoot() && !isHMDMode())) {
+        auto dialogsManager = DependencyManager::get<DialogsManager>();
+        dialogsManager->lodTools();
+    } else {
+        tablet->pushOntoStack("../../hifi/dialogs/TabletLODTools.qml");
+    }
+
+}
+
 void Application::toggleLogDialog() {
     if (! _logDialog) {
         _logDialog = new LogDialog(nullptr, getLogger());
diff --git a/interface/src/Application.h b/interface/src/Application.h
index 9fab4aef81..5c72f0fa90 100644
--- a/interface/src/Application.h
+++ b/interface/src/Application.h
@@ -403,6 +403,7 @@ public slots:
     void addAssetToWorldMessageClose();
 
     Q_INVOKABLE void toggleMuteAudio();
+    void loadLODToolsDialog();
 
 private slots:
     void showDesktop();
diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp
index 241f908190..dcbcfed6a0 100644
--- a/interface/src/Menu.cpp
+++ b/interface/src/Menu.cpp
@@ -408,7 +408,8 @@ Menu::Menu() {
 
 
     // Developer > Render > LOD Tools
-    addActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::LodTools, 0, dialogsManager.data(), SLOT(lodTools()));
+    addActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::LodTools, 0,
+                                  qApp, SLOT(loadLODToolsDialog()));
 
     // HACK enable texture decimation
     {
diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp
index 32fe26a697..de0218843a 100644
--- a/interface/src/ui/overlays/Web3DOverlay.cpp
+++ b/interface/src/ui/overlays/Web3DOverlay.cpp
@@ -43,6 +43,7 @@
 #include "FileDialogHelper.h"
 #include "avatar/AvatarManager.h"
 #include "AudioClient.h"
+#include "LODManager.h"
 
 static const float DPI = 30.47f;
 static const float INCHES_TO_METERS = 1.0f / 39.3701f;
@@ -182,6 +183,7 @@ void Web3DOverlay::loadSourceURL() {
             _webSurface->getRootContext()->setContextProperty("ScriptDiscoveryService", DependencyManager::get<ScriptEngines>().data());
             _webSurface->getRootContext()->setContextProperty("Tablet", DependencyManager::get<TabletScriptingInterface>().data());
             _webSurface->getRootContext()->setContextProperty("Assets", DependencyManager::get<AssetMappingsScriptingInterface>().data());
+            _webSurface->getRootContext()->setContextProperty("LODManager", DependencyManager::get<LODManager>().data());
             _webSurface->getRootContext()->setContextProperty("pathToFonts", "../../");
             tabletScriptingInterface->setQmlTabletRoot("com.highfidelity.interface.tablet.system", _webSurface->getRootItem(), _webSurface.data());
 

From 05e4c2a1bb32831a4340304e402a06c11e28e718 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Sun, 12 Mar 2017 09:59:52 +1300
Subject: [PATCH 119/247] MyAvatar is available in tablet now

---
 .../resources/qml/dialogs/preferences/AvatarPreference.qml   | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/interface/resources/qml/dialogs/preferences/AvatarPreference.qml b/interface/resources/qml/dialogs/preferences/AvatarPreference.qml
index 53d36b6c79..0c5c5bf630 100644
--- a/interface/resources/qml/dialogs/preferences/AvatarPreference.qml
+++ b/interface/resources/qml/dialogs/preferences/AvatarPreference.qml
@@ -23,10 +23,7 @@ Preference {
 
     Component.onCompleted: {
         dataTextField.text = preference.value;
-        // FIXME: MyAvatar object isn't available in HMD mode for some reason.
-        if (typeof MyAvatar !== "undefined") {
-            console.log("MyAvatar modelName " + MyAvatar.getFullAvatarModelName())
-        }
+        console.log("MyAvatar modelName " + MyAvatar.getFullAvatarModelName())
         console.log("Application : " + ApplicationInterface)
         ApplicationInterface.fullAvatarURLChanged.connect(processNewAvatar);
     }

From 49055cfa5cab406d864e090b6f8fe81160f7aedb Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Mon, 13 Mar 2017 16:31:29 +0100
Subject: [PATCH 120/247] Some statistics showed

---
 .../hifi/dialogs/TabletEntityStatistics.qml   | 312 ++++++++++
 interface/src/Application.cpp                 |  15 +
 interface/src/Application.h                   |   1 +
 interface/src/Menu.cpp                        |   4 +-
 interface/src/ui/OctreeStatsProvider.cpp      | 561 ++++++++++++++++++
 interface/src/ui/OctreeStatsProvider.h        | 128 ++++
 interface/src/ui/overlays/Web3DOverlay.cpp    |   2 +
 7 files changed, 1022 insertions(+), 1 deletion(-)
 create mode 100644 interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml
 create mode 100644 interface/src/ui/OctreeStatsProvider.cpp
 create mode 100644 interface/src/ui/OctreeStatsProvider.h

diff --git a/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml b/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml
new file mode 100644
index 0000000000..21f63dd070
--- /dev/null
+++ b/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml
@@ -0,0 +1,312 @@
+//
+//  TabletEntityStatistics.qml
+//
+//  Created by Vlad Stelmahovsky on  3/11/17
+//  Copyright 2017 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
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import Qt.labs.settings 1.0
+
+import "../../styles-uit"
+import "../../controls-uit" as HifiControls
+import "../../windows"
+
+Rectangle {
+    id: root
+    objectName: "EntityStatistics"
+
+    property var eventBridge;
+    signal sendToScript(var message);
+    property bool isHMD: false
+
+    color: hifi.colors.baseGray
+
+    property int colorScheme: hifi.colorSchemes.dark
+
+    HifiConstants { id: hifi }
+
+    Component.onCompleted: {
+        OctreeStats.startUpdates()
+    }
+
+    Component.onDestruction: {
+        OctreeStats.stopUpdates()
+    }
+
+    Flickable {
+        id: scrollView
+        width: parent.width
+        anchors.top: parent.top
+        anchors.bottom: parent.bottom
+        anchors.bottomMargin: hifi.dimensions.tabletMenuHeader
+        contentWidth: column.implicitWidth
+        contentHeight: column.implicitHeight
+
+        Column {
+            id: column
+            anchors.margins: 10
+            anchors.left: parent.left
+            anchors.right: parent.right
+            y: hifi.dimensions.tabletMenuHeader //-bgNavBar
+            spacing: 20
+
+            HifiControls.Label {
+                size: 20
+                anchors.left: parent.left
+                anchors.right: parent.right
+                text: qsTr("Elements on Servers:")
+                colorScheme: root.colorScheme
+            }
+            HifiControls.Label {
+                id: elementsOnServerLabel
+                size: 20
+                text: OctreeStats.serverElements
+                anchors.left: parent.left
+                anchors.right: parent.right
+                colorScheme: root.colorScheme
+            }
+
+            HifiControls.Label {
+                size: 20
+                anchors.left: parent.left
+                anchors.right: parent.right
+                text: qsTr("Local Elements:")
+                colorScheme: root.colorScheme
+            }
+            HifiControls.Label {
+                id: localElementsLabel
+                size: 20
+                text: OctreeStats.localElements
+                anchors.left: parent.left
+                anchors.right: parent.right
+                colorScheme: root.colorScheme
+            }
+
+            HifiControls.Label {
+                size: 20
+                anchors.left: parent.left
+                anchors.right: parent.right
+                text: qsTr("Elements Memory:")
+                colorScheme: root.colorScheme
+            }
+            HifiControls.Label {
+                id: elementsMemoryLabel
+                size: 20
+                text: OctreeStats.localElementsMemory
+                anchors.left: parent.left
+                anchors.right: parent.right
+                colorScheme: root.colorScheme
+            }
+
+            HifiControls.Label {
+                size: 20
+                anchors.left: parent.left
+                anchors.right: parent.right
+                text: qsTr("Sending Mode:")
+                colorScheme: root.colorScheme
+            }
+            HifiControls.Label {
+                id: sendingModeLabel
+                size: 20
+                text: OctreeStats.sendingMode
+                anchors.left: parent.left
+                anchors.right: parent.right
+                colorScheme: root.colorScheme
+            }
+
+            HifiControls.Label {
+                size: 20
+                anchors.left: parent.left
+                anchors.right: parent.right
+                text: qsTr("Incoming Entity Packets:")
+                colorScheme: root.colorScheme
+            }
+            HifiControls.Label {
+                id: incomingEntityPacketsLabel
+                size: 20
+                text: OctreeStats.processedPackets
+                anchors.left: parent.left
+                anchors.right: parent.right
+                colorScheme: root.colorScheme
+            }
+
+            HifiControls.Label {
+                size: 20
+                anchors.left: parent.left
+                anchors.right: parent.right
+                text: qsTr("Processed Packets Elements:")
+                colorScheme: root.colorScheme
+            }
+            HifiControls.Label {
+                id: processedPacketsElementsLabel
+                size: 20
+                anchors.left: parent.left
+                anchors.right: parent.right
+                colorScheme: root.colorScheme
+            }
+
+            HifiControls.Label {
+                size: 20
+                anchors.left: parent.left
+                anchors.right: parent.right
+                text: qsTr("Processed Packets Entities:")
+                colorScheme: root.colorScheme
+            }
+            HifiControls.Label {
+                id: processedPacketsEntitiesLabel
+                size: 20
+                anchors.left: parent.left
+                anchors.right: parent.right
+                colorScheme: root.colorScheme
+            }
+
+            HifiControls.Label {
+                size: 20
+                anchors.left: parent.left
+                anchors.right: parent.right
+                text: qsTr("Processed Packets Timing:")
+                colorScheme: root.colorScheme
+            }
+            HifiControls.Label {
+                id: processedPacketsTimingLabel
+                size: 20
+                anchors.left: parent.left
+                anchors.right: parent.right
+                colorScheme: root.colorScheme
+            }
+
+            HifiControls.Label {
+                size: 20
+                anchors.left: parent.left
+                anchors.right: parent.right
+                text: qsTr("Outbound Entity Packets:")
+                colorScheme: root.colorScheme
+            }
+            HifiControls.Label {
+                id: outboundEntityPacketsLabel
+                size: 20
+                anchors.left: parent.left
+                anchors.right: parent.right
+                colorScheme: root.colorScheme
+            }
+
+            HifiControls.Label {
+                size: 20
+                anchors.left: parent.left
+                anchors.right: parent.right
+                text: qsTr("Entity Update Time:")
+                colorScheme: root.colorScheme
+            }
+            HifiControls.Label {
+                id: entityUpdateTimeLabel
+                size: 20
+                anchors.left: parent.left
+                anchors.right: parent.right
+                colorScheme: root.colorScheme
+            }
+
+            HifiControls.Label {
+                size: 20
+                anchors.left: parent.left
+                anchors.right: parent.right
+                text: qsTr("Entity Updates:")
+                colorScheme: root.colorScheme
+            }
+            HifiControls.Label {
+                id: entityUpdatesLabel
+                size: 20
+                anchors.left: parent.left
+                anchors.right: parent.right
+                colorScheme: root.colorScheme
+            }
+
+            Repeater {
+                model: OctreeStats.serversNum
+
+                delegate: Column {
+                    id: serverColumn
+                    width: scrollView.width - 10
+                    x: 5
+                    spacing: 5
+
+                    state: "less"
+
+                    HifiControls.Label {
+                        size: 20
+                        width: parent.width
+                        text: qsTr("Entity Server ") + (index+1) + ":"
+                        colorScheme: root.colorScheme
+                    }
+                    HifiControls.Label {
+                        id: entityServer1Label
+                        size: 20
+                        width: parent.width
+                        colorScheme: root.colorScheme
+                    }
+                    Row {
+                        id: buttonsRow
+                        width: parent.width
+                        height: 30
+                        spacing: 10
+
+                        HifiControls.Button {
+                            id: moreButton
+                            color: hifi.buttons.blue
+                            colorScheme: root.colorScheme
+                            width: parent.width / 2 - 10
+                            height: 30
+                            onClicked: {
+                                if (serverColumn.state === "less") {
+                                    serverColumn.state = "more"
+                                } else if (serverColumn.state === "more") {
+                                    serverColumn.state = "most"
+                                } else {
+                                    serverColumn.state = "less"
+                                }
+                            }
+                        }
+                        HifiControls.Button {
+                            id: mostButton
+                            color: hifi.buttons.blue
+                            colorScheme: root.colorScheme
+                            height: 30
+                            width: parent.width / 2 - 10
+                            onClicked: {
+                                if (serverColumn.state === "less") {
+                                    serverColumn.state = "most"
+                                } else if (serverColumn.state === "more") {
+                                    serverColumn.state = "less"
+                                } else {
+                                    serverColumn.state = "more"
+                                }
+                            }
+
+                        }
+                    }
+                    states: [
+                        State {
+                            name: "less"
+                            PropertyChanges { target: moreButton; text: qsTr("more..."); }
+                            PropertyChanges { target: mostButton; text: qsTr("most..."); }
+                        },
+                        State {
+                            name: "more"
+                            PropertyChanges { target: moreButton; text: qsTr("most..."); }
+                            PropertyChanges { target: mostButton; text: qsTr("less..."); }
+                        },
+                        State {
+                            name: "most"
+                            PropertyChanges { target: moreButton; text: qsTr("less..."); }
+                            PropertyChanges { target: mostButton; text: qsTr("least..."); }
+                        }
+                    ]
+                } //servers column
+            } //repeater
+        } //column
+    } //flickable
+}
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index dcd47979f1..5faf2b8ff0 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -173,6 +173,7 @@
 #include "ui/overlays/Overlays.h"
 #include "Util.h"
 #include "InterfaceParentFinder.h"
+#include "ui/OctreeStatsProvider.h"
 
 #include "FrameTimingsScriptingInterface.h"
 #include <GPUIdent.h>
@@ -523,6 +524,7 @@ bool setupEssentials(int& argc, char** argv) {
     DependencyManager::set<OffscreenQmlSurfaceCache>();
     DependencyManager::set<EntityScriptClient>();
     DependencyManager::set<EntityScriptServerLogClient>();
+    DependencyManager::set<OctreeStatsProvider>(nullptr, qApp->getOcteeSceneStats());
     return previousSessionCrashed;
 }
 
@@ -1803,6 +1805,7 @@ Application::~Application() {
     DependencyManager::destroy<GeometryCache>();
     DependencyManager::destroy<ScriptCache>();
     DependencyManager::destroy<SoundCache>();
+    DependencyManager::destroy<OctreeStatsProvider>();
 
     ResourceManager::cleanup();
 
@@ -6363,6 +6366,18 @@ void Application::loadScriptURLDialog() const {
     }
 }
 
+
+void Application::loadEntityStatisticsDialog() {
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+    if (tablet->getToolbarMode() || (!tablet->getTabletRoot() && !isHMDMode())) {
+        auto dialogsManager = DependencyManager::get<DialogsManager>();
+        dialogsManager->octreeStatsDetails();
+    } else {
+        tablet->pushOntoStack("../../hifi/dialogs/TabletEntityStatistics.qml");
+    }
+
+}
 void Application::toggleLogDialog() {
     if (! _logDialog) {
         _logDialog = new LogDialog(nullptr, getLogger());
diff --git a/interface/src/Application.h b/interface/src/Application.h
index 9fab4aef81..e4715ac41f 100644
--- a/interface/src/Application.h
+++ b/interface/src/Application.h
@@ -403,6 +403,7 @@ public slots:
     void addAssetToWorldMessageClose();
 
     Q_INVOKABLE void toggleMuteAudio();
+    void loadEntityStatisticsDialog();
 
 private slots:
     void showDesktop();
diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp
index 241f908190..15fc46d6cb 100644
--- a/interface/src/Menu.cpp
+++ b/interface/src/Menu.cpp
@@ -544,8 +544,10 @@ Menu::Menu() {
 
     // Developer > Entities >>>
     MenuWrapper* entitiesOptionsMenu = developerMenu->addMenu("Entities");
+
     addActionToQMenuAndActionHash(entitiesOptionsMenu, MenuOption::OctreeStats, 0,
-        dialogsManager.data(), SLOT(octreeStatsDetails()));
+        qApp, SLOT(loadEntityStatisticsDialog()));
+
     addCheckableActionToQMenuAndActionHash(entitiesOptionsMenu, MenuOption::ShowRealtimeEntityStats);
 
     // Developer > Network >>>
diff --git a/interface/src/ui/OctreeStatsProvider.cpp b/interface/src/ui/OctreeStatsProvider.cpp
new file mode 100644
index 0000000000..9c6fdcea8f
--- /dev/null
+++ b/interface/src/ui/OctreeStatsProvider.cpp
@@ -0,0 +1,561 @@
+//
+//  OctreeStatsProvider.cpp
+//  interface/src/ui
+//
+//  Created by Vlad Stelmahovsky on 3/12/17.
+//  Copyright 2013 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
+//
+
+#include <sstream>
+
+#include <QPalette>
+#include <QColor>
+
+#include "Application.h"
+
+#include "../octree/OctreePacketProcessor.h"
+#include "ui/OctreeStatsProvider.h"
+
+OctreeStatsProvider::OctreeStatsProvider(QObject* parent, NodeToOctreeSceneStats* model) :
+    QObject(parent),
+    _model(model)
+  //, _averageUpdatesPerSecond(SAMPLES_PER_SECOND)
+{
+    
+    _statCount = 0;
+//    _octreeServerLabelsCount = 0;
+
+//    for (int i = 0; i < MAX_VOXEL_SERVERS; i++) {
+//        _octreeServerLables[i] = 0;
+//    }
+
+    // Setup stat items
+//    _serverElements = AddStatItem("Elements on Servers");
+    _localElements = AddStatItem("Local Elements");
+    _localElementsMemory = AddStatItem("Elements Memory");
+    _sendingMode = AddStatItem("Sending Mode");
+
+    _processedPackets = AddStatItem("Incoming Entity Packets");
+    _processedPacketsElements = AddStatItem("Processed Packets Elements");
+    _processedPacketsEntities = AddStatItem("Processed Packets Entities");
+    _processedPacketsTiming = AddStatItem("Processed Packets Timing");
+
+    _outboundEditPackets = AddStatItem("Outbound Entity Packets");
+
+    _entityUpdateTime = AddStatItem("Entity Update Time");
+    _entityUpdates = AddStatItem("Entity Updates");
+    
+    //schedule updates
+    connect(&_updateTimer, &QTimer::timeout, this, &OctreeStatsProvider::updateOctreeStatsData);
+    _updateTimer.setInterval(100);
+    //timer will be rescheduled on each new timeout
+    _updateTimer.setSingleShot(true);
+
+}
+
+void OctreeStatsProvider::moreless(const QString& link) {
+    QStringList linkDetails = link.split("-");
+    const int COMMAND_ITEM = 0;
+    const int SERVER_NUMBER_ITEM = 1;
+    QString serverNumberString = linkDetails[SERVER_NUMBER_ITEM];
+    QString command = linkDetails[COMMAND_ITEM];
+    int serverNumber = serverNumberString.toInt();
+    
+//    if (command == "more") {
+//        _extraServerDetails[serverNumber-1] = MORE;
+//    } else if (command == "most") {
+//        _extraServerDetails[serverNumber-1] = MOST;
+//    } else {
+//        _extraServerDetails[serverNumber-1] = LESS;
+//    }
+}
+
+/*
+ * Start updates statistics
+*/
+void OctreeStatsProvider::startUpdates() {
+    _updateTimer.start();
+}
+
+/*
+ * Stop updates statistics
+*/
+void OctreeStatsProvider::stopUpdates() {
+    _updateTimer.stop();
+}
+
+
+int OctreeStatsProvider::AddStatItem(const char* caption, unsigned colorRGBA) {
+    const int STATS_LABEL_WIDTH = 600;
+    
+    _statCount++; // increment our current stat count
+    
+    if (colorRGBA == 0) {
+        static unsigned rotatingColors[] = { GREENISH, YELLOWISH, GREYISH };
+        colorRGBA = rotatingColors[_statCount % (sizeof(rotatingColors)/sizeof(rotatingColors[0]))];
+    }
+    //QLabel* label = _labels[_statCount] = new QLabel();
+
+    // Set foreground color to 62.5% brightness of the meter (otherwise will be hard to read on the bright background)
+    //QPalette palette = label->palette();
+    
+    // This goofiness came from the bandwidth meter code, it basically stores a color in an unsigned and extracts it
+    unsigned rgb = colorRGBA >> 8;
+    const unsigned colorpart1 = 0xfefefeu;
+    const unsigned colorpart2 = 0xf8f8f8;
+    rgb = ((rgb & colorpart1) >> 1) + ((rgb & colorpart2) >> 3);
+//    palette.setColor(QPalette::WindowText, QColor::fromRgb(rgb));
+//    label->setPalette(palette);
+//    _form->addRow(QString(" %1:").arg(caption), label);
+//    label->setFixedWidth(STATS_LABEL_WIDTH);
+    
+    return _statCount;
+}
+
+OctreeStatsProvider::~OctreeStatsProvider() {
+    _updateTimer.stop();
+}
+
+int OctreeStatsProvider::serversNum() const {
+    return m_serversNum;
+}
+
+void OctreeStatsProvider::updateOctreeStatsData() {
+
+    // Processed Entities Related stats
+    auto entities = qApp->getEntities();
+    auto entitiesTree = entities->getTree();
+
+    // Do this ever paint event... even if we don't update
+    auto totalTrackedEdits = entitiesTree->getTotalTrackedEdits();
+    
+
+    // Only refresh our stats every once in a while, unless asked for realtime
+    //if no realtime, then update once per second. Otherwise consider 60FPS update, ie 16ms interval
+    int updateinterval = Menu::getInstance()->isOptionChecked(MenuOption::ShowRealtimeEntityStats) ? 16 : 1000;
+    _updateTimer.start(updateinterval);
+
+    const int FLOATING_POINT_PRECISION = 3;
+
+    // Update labels
+
+    //QLabel* label;
+    QLocale locale(QLocale::English);
+    std::stringstream statsValue;
+//    statsValue.precision(4);
+
+    // Octree Elements Memory Usage
+    //label = _labels[_localElementsMemory];
+//    statsValue.str("");
+//    statsValue << "Elements RAM: " << OctreeElement::getTotalMemoryUsage() / 1000000.0f << "MB ";
+    //label->setText(statsValue.str().c_str());
+    m_localElementsMemory = QString("Elements RAM: %1MB").arg(OctreeElement::getTotalMemoryUsage() / 1000000.0f, 5, 'f', 4);
+    emit localElementsMemoryChanged(m_localElementsMemory);
+    // Local Elements
+    //label = _labels[_localElements];
+//    unsigned long localTotal = OctreeElement::getNodeCount();
+//    unsigned long localInternal = OctreeElement::getInternalNodeCount();
+//    unsigned long localLeaves = OctreeElement::getLeafNodeCount();
+//    QString localTotalString = locale.toString((uint)localTotal); // consider adding: .rightJustified(10, ' ');
+//    QString localInternalString = locale.toString((uint)localInternal);
+//    QString localLeavesString = locale.toString((uint)localLeaves);
+
+//    statsValue.str("");
+//    statsValue <<
+//        "Total: " << qPrintable(localTotalString) << " / " <<
+//        "Internal: " << qPrintable(localInternalString) << " / " <<
+//        "Leaves: " << qPrintable(localLeavesString) << "";
+
+    m_localElements = QString("Total: %1 / Internal: %2 / Leaves: %3").
+            arg(OctreeElement::getNodeCount()).
+            arg(OctreeElement::getInternalNodeCount()).
+            arg(OctreeElement::getLeafNodeCount());
+    emit localElementsChanged(m_localElements);
+
+    //label->setText(statsValue.str().c_str());
+
+    // iterate all the current octree stats, and list their sending modes, total their octree elements, etc...
+    std::stringstream sendingMode("");
+
+    int serverCount = 0;
+    int movingServerCount = 0;
+    unsigned long totalNodes = 0;
+    unsigned long totalInternal = 0;
+    unsigned long totalLeaves = 0;
+
+    NodeToOctreeSceneStats* sceneStats = qApp->getOcteeSceneStats();
+    sceneStats->withReadLock([&] {
+        for (NodeToOctreeSceneStatsIterator i = sceneStats->begin(); i != sceneStats->end(); i++) {
+            //const QUuid& uuid = i->first;
+            OctreeSceneStats& stats = i->second;
+            serverCount++;
+
+            // calculate server node totals
+            totalNodes += stats.getTotalElements();
+            totalInternal += stats.getTotalInternal();
+            totalLeaves += stats.getTotalLeaves();
+
+            // Sending mode
+            if (serverCount > 1) {
+                sendingMode << ",";
+            }
+            if (stats.isMoving()) {
+                sendingMode << "M";
+                movingServerCount++;
+            } else {
+                sendingMode << "S";
+            }
+            if (stats.isFullScene()) {
+                sendingMode << "F";
+            } else {
+                sendingMode << "p";
+            }
+        }
+    });
+    sendingMode << " - " << serverCount << " servers";
+    if (movingServerCount > 0) {
+        sendingMode << " <SCENE NOT STABLE>";
+    } else {
+        sendingMode << " <SCENE STABLE>";
+    }
+
+//    label = _labels[_sendingMode];
+//    label->setText(sendingMode.str().c_str());
+    
+    // Server Elements
+    m_serverElements = QString("Total: %1/ Internal: %2/ Leaves: %3").
+            arg(totalNodes).arg(totalInternal).arg(totalLeaves);
+    emit serverElementsChanged(m_serverElements);
+//    QString serversTotalString = locale.toString((uint)totalNodes); // consider adding: .rightJustified(10, ' ');
+//    QString serversInternalString = locale.toString((uint)totalInternal);
+//    QString serversLeavesString = locale.toString((uint)totalLeaves);
+////    label = _labels[_serverElements];
+//    statsValue.str("");
+//    statsValue <<
+//        "Total: " << qPrintable(serversTotalString) << " / " <<
+//        "Internal: " << qPrintable(serversInternalString) << " / " <<
+//        "Leaves: " << qPrintable(serversLeavesString) << "";
+////    label->setText(statsValue.str().c_str());
+
+    // Processed Packets Elements
+    auto averageElementsPerPacket = entities->getAverageElementsPerPacket();
+    auto averageEntitiesPerPacket = entities->getAverageEntitiesPerPacket();
+
+    auto averageElementsPerSecond = entities->getAverageElementsPerSecond();
+    auto averageEntitiesPerSecond = entities->getAverageEntitiesPerSecond();
+
+    auto averageWaitLockPerPacket = entities->getAverageWaitLockPerPacket();
+    auto averageUncompressPerPacket = entities->getAverageUncompressPerPacket();
+    auto averageReadBitstreamPerPacket = entities->getAverageReadBitstreamPerPacket();
+
+    QString averageElementsPerPacketString = locale.toString(averageElementsPerPacket, 'f', FLOATING_POINT_PRECISION);
+    QString averageEntitiesPerPacketString = locale.toString(averageEntitiesPerPacket, 'f', FLOATING_POINT_PRECISION);
+
+    QString averageElementsPerSecondString = locale.toString(averageElementsPerSecond, 'f', FLOATING_POINT_PRECISION);
+    QString averageEntitiesPerSecondString = locale.toString(averageEntitiesPerSecond, 'f', FLOATING_POINT_PRECISION);
+
+    QString averageWaitLockPerPacketString = locale.toString(averageWaitLockPerPacket);
+    QString averageUncompressPerPacketString = locale.toString(averageUncompressPerPacket);
+    QString averageReadBitstreamPerPacketString = locale.toString(averageReadBitstreamPerPacket);
+
+//    label = _labels[_processedPackets];
+    const OctreePacketProcessor& entitiesPacketProcessor =  qApp->getOctreePacketProcessor();
+
+    auto incomingPacketsDepth = entitiesPacketProcessor.packetsToProcessCount();
+    auto incomingPPS = entitiesPacketProcessor.getIncomingPPS();
+    auto processedPPS = entitiesPacketProcessor.getProcessedPPS();
+    auto treeProcessedPPS = entities->getAveragePacketsPerSecond();
+
+    QString incomingPPSString = locale.toString(incomingPPS, 'f', FLOATING_POINT_PRECISION);
+    QString processedPPSString = locale.toString(processedPPS, 'f', FLOATING_POINT_PRECISION);
+    QString treeProcessedPPSString = locale.toString(treeProcessedPPS, 'f', FLOATING_POINT_PRECISION);
+
+    statsValue.str("");
+    statsValue << 
+        "Queue Size: " << incomingPacketsDepth << " Packets / " <<
+        "Network IN: " << qPrintable(incomingPPSString) << " PPS / " <<
+        "Queue OUT: " << qPrintable(processedPPSString) << " PPS / " <<
+        "Tree IN: " << qPrintable(treeProcessedPPSString) << " PPS";
+        
+//    label->setText(statsValue.str().c_str());
+
+//    label = _labels[_processedPacketsElements];
+    statsValue.str("");
+    statsValue << 
+        "" << qPrintable(averageElementsPerPacketString) << " per packet / " <<
+        "" << qPrintable(averageElementsPerSecondString) << " per second";
+        
+//    label->setText(statsValue.str().c_str());
+
+//    label = _labels[_processedPacketsEntities];
+    statsValue.str("");
+    statsValue << 
+        "" << qPrintable(averageEntitiesPerPacketString) << " per packet / " <<
+        "" << qPrintable(averageEntitiesPerSecondString) << " per second";
+        
+//    label->setText(statsValue.str().c_str());
+
+//    label = _labels[_processedPacketsTiming];
+    statsValue.str("");
+    statsValue << 
+        "Lock Wait: " << qPrintable(averageWaitLockPerPacketString) << " (usecs) / " <<
+        "Uncompress: " << qPrintable(averageUncompressPerPacketString) << " (usecs) / " <<
+        "Process: " << qPrintable(averageReadBitstreamPerPacketString) << " (usecs)";
+        
+    //label->setText(statsValue.str().c_str());
+
+    auto entitiesEditPacketSender = qApp->getEntityEditPacketSender();
+
+    auto outboundPacketsDepth = entitiesEditPacketSender->packetsToSendCount();
+    auto outboundQueuedPPS = entitiesEditPacketSender->getLifetimePPSQueued();
+    auto outboundSentPPS = entitiesEditPacketSender->getLifetimePPS();
+
+    QString outboundQueuedPPSString = locale.toString(outboundQueuedPPS, 'f', FLOATING_POINT_PRECISION);
+    QString outboundSentPPSString = locale.toString(outboundSentPPS, 'f', FLOATING_POINT_PRECISION);
+
+    //label = _labels[_outboundEditPackets];
+    statsValue.str("");
+    statsValue <<
+        "Queue Size: " << outboundPacketsDepth << " packets / " <<
+        "Queued IN: " << qPrintable(outboundQueuedPPSString) << " PPS / " <<
+        "Sent OUT: " << qPrintable(outboundSentPPSString) << " PPS";
+
+    //label->setText(statsValue.str().c_str());
+
+    
+    // Entity Edits update time
+    //label = _labels[_entityUpdateTime];
+    auto averageEditDelta = entitiesTree->getAverageEditDeltas();
+    auto maxEditDelta = entitiesTree->getMaxEditDelta();
+
+    QString averageEditDeltaString = locale.toString((uint)averageEditDelta);
+    QString maxEditDeltaString = locale.toString((uint)maxEditDelta);
+
+    statsValue.str("");
+    statsValue << 
+        "Average: " << qPrintable(averageEditDeltaString) << " (usecs) / " <<
+        "Max: " << qPrintable(maxEditDeltaString) << " (usecs)";
+        
+    //label->setText(statsValue.str().c_str());
+
+    // Entity Edits
+    //label = _labels[_entityUpdates];
+    auto bytesPerEdit = entitiesTree->getAverageEditBytes();
+    
+    auto updatesPerSecond = _averageUpdatesPerSecond.getAverage();
+    if (updatesPerSecond < 1) {
+        updatesPerSecond = 0; // we don't really care about small updates per second so suppress those
+    }
+
+    QString totalTrackedEditsString = locale.toString((uint)totalTrackedEdits);
+    QString updatesPerSecondString = locale.toString(updatesPerSecond, 'f', FLOATING_POINT_PRECISION);
+    QString bytesPerEditString = locale.toString(bytesPerEdit);
+
+    statsValue.str("");
+    statsValue << 
+        "" << qPrintable(updatesPerSecondString) << " updates per second / " <<
+        "" << qPrintable(totalTrackedEditsString) << " total updates / " <<
+        "Average Size: " << qPrintable(bytesPerEditString) << " bytes ";
+        
+    //label->setText(statsValue.str().c_str());
+
+    updateOctreeServers();
+}
+
+void OctreeStatsProvider::updateOctreeServers() {
+    int serverCount = 0;
+
+    showOctreeServersOfType(serverCount, NodeType::EntityServer, "Entity",
+            qApp->getEntityServerJurisdictions());
+    //qDebug() << "vladest: octree servers:" << serverCount;
+    if (m_serversNum != serverCount) {
+        m_serversNum = serverCount;
+        emit serversNumChanged(m_serversNum);
+    }
+}
+
+void OctreeStatsProvider::showOctreeServersOfType(int& serverCount, NodeType_t serverType, const char* serverTypeName,
+                                                NodeToJurisdictionMap& serverJurisdictions) {
+                                                
+    QLocale locale(QLocale::English);
+    
+    auto nodeList = DependencyManager::get<NodeList>();
+    nodeList->eachNode([&](const SharedNodePointer& node){
+        
+        // only send to the NodeTypes that are NodeType_t_VOXEL_SERVER
+        if (node->getType() == serverType) {
+            serverCount++;
+            
+//            if (serverCount > _octreeServerLabelsCount) {
+//                QString label = QString("%1 Server %2").arg(serverTypeName).arg(serverCount);
+//                //int thisServerRow = _octreeServerLables[serverCount-1] = AddStatItem(label.toUtf8().constData());
+////                _labels[thisServerRow]->setTextFormat(Qt::RichText);
+////                _labels[thisServerRow]->setTextInteractionFlags(Qt::TextBrowserInteraction);
+////                connect(_labels[thisServerRow], SIGNAL(linkActivated(const QString&)), this, SLOT(moreless(const QString&)));
+//                _octreeServerLabelsCount++;
+//            }
+            
+            std::stringstream serverDetails("");
+            std::stringstream extraDetails("");
+            std::stringstream linkDetails("");
+            
+            if (node->getActiveSocket()) {
+                serverDetails << "active ";
+            } else {
+                serverDetails << "inactive ";
+            }
+            
+            QUuid nodeUUID = node->getUUID();
+            
+            // lookup our nodeUUID in the jurisdiction map, if it's missing then we're
+            // missing at least one jurisdiction
+            serverJurisdictions.withReadLock([&] {
+                if (serverJurisdictions.find(nodeUUID) == serverJurisdictions.end()) {
+                    serverDetails << " unknown jurisdiction ";
+                    return;
+                } 
+                const JurisdictionMap& map = serverJurisdictions[nodeUUID];
+
+                auto rootCode = map.getRootOctalCode();
+
+                if (rootCode) {
+                    QString rootCodeHex = octalCodeToHexString(rootCode.get());
+
+                    VoxelPositionSize rootDetails;
+                    voxelDetailsForCode(rootCode.get(), rootDetails);
+                    AACube serverBounds(glm::vec3(rootDetails.x, rootDetails.y, rootDetails.z), rootDetails.s);
+                    serverDetails << " jurisdiction: "
+                        << qPrintable(rootCodeHex)
+                        << " ["
+                        << rootDetails.x << ", "
+                        << rootDetails.y << ", "
+                        << rootDetails.z << ": "
+                        << rootDetails.s << "] ";
+                } else {
+                    serverDetails << " jurisdiction has no rootCode";
+                } // root code
+            });
+            
+            // now lookup stats details for this server...
+            if (/*_extraServerDetails[serverCount-1] != LESS*/true) {
+                NodeToOctreeSceneStats* sceneStats = qApp->getOcteeSceneStats();
+                sceneStats->withReadLock([&] {
+                    if (sceneStats->find(nodeUUID) != sceneStats->end()) {
+                        OctreeSceneStats& stats = sceneStats->at(nodeUUID);
+/*
+                        switch (_extraServerDetails[serverCount - 1]) {
+                        case MOST: {
+                            extraDetails << "<br/>";
+
+                            float lastFullEncode = stats.getLastFullTotalEncodeTime() / USECS_PER_MSEC;
+                            float lastFullSend = stats.getLastFullElapsedTime() / USECS_PER_MSEC;
+                            float lastFullSendInSeconds = stats.getLastFullElapsedTime() / USECS_PER_SECOND;
+                            float lastFullPackets = stats.getLastFullTotalPackets();
+                            float lastFullPPS = lastFullPackets;
+                            if (lastFullSendInSeconds > 0) {
+                                lastFullPPS = lastFullPackets / lastFullSendInSeconds;
+                            }
+
+                            QString lastFullEncodeString = locale.toString(lastFullEncode);
+                            QString lastFullSendString = locale.toString(lastFullSend);
+                            QString lastFullPacketsString = locale.toString(lastFullPackets);
+                            QString lastFullBytesString = locale.toString((uint)stats.getLastFullTotalBytes());
+                            QString lastFullPPSString = locale.toString(lastFullPPS);
+
+                            extraDetails << "<br/>" << "Last Full Scene... " <<
+                                "Encode: " << qPrintable(lastFullEncodeString) << " ms " <<
+                                "Send: " << qPrintable(lastFullSendString) << " ms " <<
+                                "Packets: " << qPrintable(lastFullPacketsString) << " " <<
+                                "Bytes: " << qPrintable(lastFullBytesString) << " " <<
+                                "Rate: " << qPrintable(lastFullPPSString) << " PPS";
+
+                            for (int i = 0; i < OctreeSceneStats::ITEM_COUNT; i++) {
+                                OctreeSceneStats::Item item = (OctreeSceneStats::Item)(i);
+                                OctreeSceneStats::ItemInfo& itemInfo = stats.getItemInfo(item);
+                                extraDetails << "<br/>" << itemInfo.caption << " " << stats.getItemValue(item);
+                            }
+                        } // fall through... since MOST has all of MORE
+                        case MORE: {
+                            QString totalString = locale.toString((uint)stats.getTotalElements());
+                            QString internalString = locale.toString((uint)stats.getTotalInternal());
+                            QString leavesString = locale.toString((uint)stats.getTotalLeaves());
+
+                            serverDetails << "<br/>" << "Node UUID: " << qPrintable(nodeUUID.toString()) << " ";
+
+                            serverDetails << "<br/>" << "Elements: " <<
+                                qPrintable(totalString) << " total " <<
+                                qPrintable(internalString) << " internal " <<
+                                qPrintable(leavesString) << " leaves ";
+
+                            QString incomingPacketsString = locale.toString((uint)stats.getIncomingPackets());
+                            QString incomingBytesString = locale.toString((uint)stats.getIncomingBytes());
+                            QString incomingWastedBytesString = locale.toString((uint)stats.getIncomingWastedBytes());
+                            const SequenceNumberStats& seqStats = stats.getIncomingOctreeSequenceNumberStats();
+                            QString incomingOutOfOrderString = locale.toString((uint)seqStats.getOutOfOrder());
+                            QString incomingLateString = locale.toString((uint)seqStats.getLate());
+                            QString incomingUnreasonableString = locale.toString((uint)seqStats.getUnreasonable());
+                            QString incomingEarlyString = locale.toString((uint)seqStats.getEarly());
+                            QString incomingLikelyLostString = locale.toString((uint)seqStats.getLost());
+                            QString incomingRecovered = locale.toString((uint)seqStats.getRecovered());
+
+                            qint64 clockSkewInUsecs = node->getClockSkewUsec();
+                            QString formattedClockSkewString = formatUsecTime(clockSkewInUsecs);
+                            qint64 clockSkewInMS = clockSkewInUsecs / (qint64)USECS_PER_MSEC;
+                            QString incomingFlightTimeString = locale.toString((int)stats.getIncomingFlightTimeAverage());
+                            QString incomingPingTimeString = locale.toString(node->getPingMs());
+                            QString incomingClockSkewString = locale.toString(clockSkewInMS);
+
+                            serverDetails << "<br/>" << "Incoming Packets: " << qPrintable(incomingPacketsString) <<
+                                "/ Lost: " << qPrintable(incomingLikelyLostString) <<
+                                "/ Recovered: " << qPrintable(incomingRecovered);
+
+                            serverDetails << "<br/>" << " Out of Order: " << qPrintable(incomingOutOfOrderString) <<
+                                "/ Early: " << qPrintable(incomingEarlyString) <<
+                                "/ Late: " << qPrintable(incomingLateString) <<
+                                "/ Unreasonable: " << qPrintable(incomingUnreasonableString);
+
+                            serverDetails << "<br/>" <<
+                                " Average Flight Time: " << qPrintable(incomingFlightTimeString) << " msecs";
+
+                            serverDetails << "<br/>" <<
+                                " Average Ping Time: " << qPrintable(incomingPingTimeString) << " msecs";
+
+                            serverDetails << "<br/>" <<
+                                " Average Clock Skew: " << qPrintable(incomingClockSkewString) << " msecs" << 
+                                " [" << qPrintable(formattedClockSkewString) << "]";
+
+
+                            serverDetails << "<br/>" << "Incoming" <<
+                                " Bytes: " << qPrintable(incomingBytesString) <<
+                                " Wasted Bytes: " << qPrintable(incomingWastedBytesString);
+
+                            serverDetails << extraDetails.str();
+                            if (_extraServerDetails[serverCount - 1] == MORE) {
+                                linkDetails << "   " << " [<a href='most-" << serverCount << "'>most...</a>]";
+                                linkDetails << "   " << " [<a href='less-" << serverCount << "'>less...</a>]";
+                            } else {
+                                linkDetails << "   " << " [<a href='more-" << serverCount << "'>less...</a>]";
+                                linkDetails << "   " << " [<a href='less-" << serverCount << "'>least...</a>]";
+                            }
+
+                        } break;
+                        case LESS: {
+                            // nothing
+                        } break;
+                        }*/
+                    }
+                });
+            } else {
+                linkDetails << "   " << " [<a href='more-" << serverCount << "'>more...</a>]";
+                linkDetails << "   " << " [<a href='most-" << serverCount << "'>most...</a>]";
+            }
+            serverDetails << linkDetails.str();
+            //_labels[_octreeServerLables[serverCount - 1]]->setText(serverDetails.str().c_str());
+        } // is VOXEL_SERVER
+    });
+}
+
+
diff --git a/interface/src/ui/OctreeStatsProvider.h b/interface/src/ui/OctreeStatsProvider.h
new file mode 100644
index 0000000000..c2fc46218d
--- /dev/null
+++ b/interface/src/ui/OctreeStatsProvider.h
@@ -0,0 +1,128 @@
+//
+//  OctreeStatsProvider.h
+//  interface/src/ui
+//
+//  Created by Vlad Stelmahovsky on 3/12/17.
+//  Copyright 2017 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
+//
+
+#ifndef hifi_OctreeStatsProvider_h
+#define hifi_OctreeStatsProvider_h
+
+#include <OctreeSceneStats.h>
+#include <QTimer>
+
+#include "DependencyManager.h"
+
+#define MAX_STATS 100
+#define MAX_VOXEL_SERVERS 50
+#define DEFAULT_COLOR 0
+
+class OctreeStatsProvider : public QObject, public Dependency {
+    Q_OBJECT
+    SINGLETON_DEPENDENCY
+
+    Q_PROPERTY(int serversNum READ serversNum NOTIFY serversNumChanged)
+    Q_PROPERTY(QString serverElements READ serverElements NOTIFY serverElementsChanged)
+    Q_PROPERTY(QString localElements READ localElements NOTIFY localElementsChanged)
+    Q_PROPERTY(QString localElementsMemory READ localElementsMemory NOTIFY localElementsMemoryChanged)
+    Q_PROPERTY(QString sendingMode READ sendingMode NOTIFY sendingModeChanged)
+    //Incoming Entity Packets
+    Q_PROPERTY(QString processedPackets READ processedPackets NOTIFY processedPacketsChanged)
+
+//    int _entityUpdateTime;
+//    int _entityUpdates;
+//    int _processedPacketsElements;
+//    int _processedPacketsEntities;
+//    int _processedPacketsTiming;
+//    int _outboundEditPackets;
+
+public:
+    // Sets up the UI
+    OctreeStatsProvider(QObject* parent, NodeToOctreeSceneStats* model);
+    ~OctreeStatsProvider();
+
+    int serversNum() const;
+
+    QString serverElements() const {
+        return m_serverElements;
+    }
+
+    QString localElements() const {
+        return m_localElements;
+    }
+
+    QString localElementsMemory() const {
+        return m_localElementsMemory;
+    }
+
+    QString sendingMode() const {
+        return m_sendingMode;
+    }
+
+    QString processedPackets() const {
+        return m_processedPackets;
+    }
+
+signals:
+
+    void serversNumChanged(int serversNum);
+    void serverElementsChanged(QString serverElements);
+    void localElementsChanged(QString localElements);
+    void sendingModeChanged(QString sendingMode);
+    void processedPacketsChanged(QString processedPackets);
+    void localElementsMemoryChanged(QString localElementsMemory);
+
+public slots:
+    void moreless(const QString& link);
+    void startUpdates();
+    void stopUpdates();
+
+private slots:
+    void updateOctreeStatsData();
+protected:
+
+    int AddStatItem(const char* caption, unsigned colorRGBA = DEFAULT_COLOR);
+    void updateOctreeServers();
+    void showOctreeServersOfType(int& serverNumber, NodeType_t serverType, 
+                    const char* serverTypeName, NodeToJurisdictionMap& serverJurisdictions);
+
+private:
+    NodeToOctreeSceneStats* _model;
+    int _statCount;
+    
+    int _sendingMode;
+    int _serverElements;
+    int _localElements;
+    int _localElementsMemory;
+
+    int _entityUpdateTime;
+    int _entityUpdates;
+    int _processedPackets;
+    int _processedPacketsElements;
+    int _processedPacketsEntities;
+    int _processedPacketsTiming;
+    int _outboundEditPackets;
+    
+    const int SAMPLES_PER_SECOND = 10;
+    SimpleMovingAverage _averageUpdatesPerSecond;
+    quint64 _lastWindowAt = usecTimestampNow();
+    quint64 _lastKnownTrackedEdits = 0;
+
+    quint64 _lastRefresh = 0;
+
+//    int _octreeServerLables[MAX_VOXEL_SERVERS];
+//    int _octreeServerLabelsCount;
+    QTimer _updateTimer;
+    int m_serversNum {0};
+    QString m_serverElements;
+    QString m_localElements;
+    QString m_localElementsMemory;
+    QString m_sendingMode;
+    QString m_processedPackets;
+};
+
+#endif // hifi_OctreeStatsProvider_h
diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp
index 32fe26a697..2aa6725aa2 100644
--- a/interface/src/ui/overlays/Web3DOverlay.cpp
+++ b/interface/src/ui/overlays/Web3DOverlay.cpp
@@ -43,6 +43,7 @@
 #include "FileDialogHelper.h"
 #include "avatar/AvatarManager.h"
 #include "AudioClient.h"
+#include "ui/OctreeStatsProvider.h"
 
 static const float DPI = 30.47f;
 static const float INCHES_TO_METERS = 1.0f / 39.3701f;
@@ -182,6 +183,7 @@ void Web3DOverlay::loadSourceURL() {
             _webSurface->getRootContext()->setContextProperty("ScriptDiscoveryService", DependencyManager::get<ScriptEngines>().data());
             _webSurface->getRootContext()->setContextProperty("Tablet", DependencyManager::get<TabletScriptingInterface>().data());
             _webSurface->getRootContext()->setContextProperty("Assets", DependencyManager::get<AssetMappingsScriptingInterface>().data());
+            _webSurface->getRootContext()->setContextProperty("OctreeStats", DependencyManager::get<OctreeStatsProvider>().data());
             _webSurface->getRootContext()->setContextProperty("pathToFonts", "../../");
             tabletScriptingInterface->setQmlTabletRoot("com.highfidelity.interface.tablet.system", _webSurface->getRootItem(), _webSurface.data());
 

From 48db6201e5f3aa7f261ae98d2ba401fe77e9a1f8 Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Mon, 13 Mar 2017 19:48:50 +0100
Subject: [PATCH 121/247] Basic statistics showed. TODO: servers statistics,
 coloring, wrapping

---
 .../hifi/dialogs/TabletEntityStatistics.qml   |  28 +-
 interface/src/ui/OctreeStatsProvider.cpp      | 260 ++++++------------
 interface/src/ui/OctreeStatsProvider.h        |  78 +++---
 3 files changed, 148 insertions(+), 218 deletions(-)

diff --git a/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml b/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml
index 21f63dd070..bd7796927e 100644
--- a/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml
+++ b/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml
@@ -64,7 +64,7 @@ Rectangle {
             }
             HifiControls.Label {
                 id: elementsOnServerLabel
-                size: 20
+                size: 16
                 text: OctreeStats.serverElements
                 anchors.left: parent.left
                 anchors.right: parent.right
@@ -80,7 +80,7 @@ Rectangle {
             }
             HifiControls.Label {
                 id: localElementsLabel
-                size: 20
+                size: 16
                 text: OctreeStats.localElements
                 anchors.left: parent.left
                 anchors.right: parent.right
@@ -96,7 +96,7 @@ Rectangle {
             }
             HifiControls.Label {
                 id: elementsMemoryLabel
-                size: 20
+                size: 16
                 text: OctreeStats.localElementsMemory
                 anchors.left: parent.left
                 anchors.right: parent.right
@@ -112,7 +112,7 @@ Rectangle {
             }
             HifiControls.Label {
                 id: sendingModeLabel
-                size: 20
+                size: 16
                 text: OctreeStats.sendingMode
                 anchors.left: parent.left
                 anchors.right: parent.right
@@ -128,7 +128,7 @@ Rectangle {
             }
             HifiControls.Label {
                 id: incomingEntityPacketsLabel
-                size: 20
+                size: 16
                 text: OctreeStats.processedPackets
                 anchors.left: parent.left
                 anchors.right: parent.right
@@ -144,7 +144,8 @@ Rectangle {
             }
             HifiControls.Label {
                 id: processedPacketsElementsLabel
-                size: 20
+                size: 16
+                text: OctreeStats.processedPacketsElements
                 anchors.left: parent.left
                 anchors.right: parent.right
                 colorScheme: root.colorScheme
@@ -159,7 +160,8 @@ Rectangle {
             }
             HifiControls.Label {
                 id: processedPacketsEntitiesLabel
-                size: 20
+                size: 16
+                text: OctreeStats.processedPacketsEntities
                 anchors.left: parent.left
                 anchors.right: parent.right
                 colorScheme: root.colorScheme
@@ -174,7 +176,8 @@ Rectangle {
             }
             HifiControls.Label {
                 id: processedPacketsTimingLabel
-                size: 20
+                size: 16
+                text: OctreeStats.processedPacketsTiming
                 anchors.left: parent.left
                 anchors.right: parent.right
                 colorScheme: root.colorScheme
@@ -189,7 +192,8 @@ Rectangle {
             }
             HifiControls.Label {
                 id: outboundEntityPacketsLabel
-                size: 20
+                size: 16
+                text: OctreeStats.outboundEditPackets
                 anchors.left: parent.left
                 anchors.right: parent.right
                 colorScheme: root.colorScheme
@@ -204,7 +208,8 @@ Rectangle {
             }
             HifiControls.Label {
                 id: entityUpdateTimeLabel
-                size: 20
+                size: 16
+                text: OctreeStats.entityUpdateTime
                 anchors.left: parent.left
                 anchors.right: parent.right
                 colorScheme: root.colorScheme
@@ -219,7 +224,8 @@ Rectangle {
             }
             HifiControls.Label {
                 id: entityUpdatesLabel
-                size: 20
+                size: 16
+                text: OctreeStats.entityUpdates
                 anchors.left: parent.left
                 anchors.right: parent.right
                 colorScheme: root.colorScheme
diff --git a/interface/src/ui/OctreeStatsProvider.cpp b/interface/src/ui/OctreeStatsProvider.cpp
index 9c6fdcea8f..057056d8ce 100644
--- a/interface/src/ui/OctreeStatsProvider.cpp
+++ b/interface/src/ui/OctreeStatsProvider.cpp
@@ -22,38 +22,14 @@
 OctreeStatsProvider::OctreeStatsProvider(QObject* parent, NodeToOctreeSceneStats* model) :
     QObject(parent),
     _model(model)
-  //, _averageUpdatesPerSecond(SAMPLES_PER_SECOND)
+  , _averageUpdatesPerSecond(SAMPLES_PER_SECOND)
+  , _statCount(0)
 {
-    
-    _statCount = 0;
-//    _octreeServerLabelsCount = 0;
-
-//    for (int i = 0; i < MAX_VOXEL_SERVERS; i++) {
-//        _octreeServerLables[i] = 0;
-//    }
-
-    // Setup stat items
-//    _serverElements = AddStatItem("Elements on Servers");
-    _localElements = AddStatItem("Local Elements");
-    _localElementsMemory = AddStatItem("Elements Memory");
-    _sendingMode = AddStatItem("Sending Mode");
-
-    _processedPackets = AddStatItem("Incoming Entity Packets");
-    _processedPacketsElements = AddStatItem("Processed Packets Elements");
-    _processedPacketsEntities = AddStatItem("Processed Packets Entities");
-    _processedPacketsTiming = AddStatItem("Processed Packets Timing");
-
-    _outboundEditPackets = AddStatItem("Outbound Entity Packets");
-
-    _entityUpdateTime = AddStatItem("Entity Update Time");
-    _entityUpdates = AddStatItem("Entity Updates");
-    
     //schedule updates
     connect(&_updateTimer, &QTimer::timeout, this, &OctreeStatsProvider::updateOctreeStatsData);
     _updateTimer.setInterval(100);
     //timer will be rescheduled on each new timeout
     _updateTimer.setSingleShot(true);
-
 }
 
 void OctreeStatsProvider::moreless(const QString& link) {
@@ -88,32 +64,32 @@ void OctreeStatsProvider::stopUpdates() {
 }
 
 
-int OctreeStatsProvider::AddStatItem(const char* caption, unsigned colorRGBA) {
-    const int STATS_LABEL_WIDTH = 600;
+//int OctreeStatsProvider::AddStatItem(const char* caption, unsigned colorRGBA) {
+//    const int STATS_LABEL_WIDTH = 600;
     
-    _statCount++; // increment our current stat count
+//    _statCount++; // increment our current stat count
     
-    if (colorRGBA == 0) {
-        static unsigned rotatingColors[] = { GREENISH, YELLOWISH, GREYISH };
-        colorRGBA = rotatingColors[_statCount % (sizeof(rotatingColors)/sizeof(rotatingColors[0]))];
-    }
-    //QLabel* label = _labels[_statCount] = new QLabel();
+//    if (colorRGBA == 0) {
+//        static unsigned rotatingColors[] = { GREENISH, YELLOWISH, GREYISH };
+//        colorRGBA = rotatingColors[_statCount % (sizeof(rotatingColors)/sizeof(rotatingColors[0]))];
+//    }
+//    //QLabel* label = _labels[_statCount] = new QLabel();
 
-    // Set foreground color to 62.5% brightness of the meter (otherwise will be hard to read on the bright background)
-    //QPalette palette = label->palette();
+//    // Set foreground color to 62.5% brightness of the meter (otherwise will be hard to read on the bright background)
+//    //QPalette palette = label->palette();
     
-    // This goofiness came from the bandwidth meter code, it basically stores a color in an unsigned and extracts it
-    unsigned rgb = colorRGBA >> 8;
-    const unsigned colorpart1 = 0xfefefeu;
-    const unsigned colorpart2 = 0xf8f8f8;
-    rgb = ((rgb & colorpart1) >> 1) + ((rgb & colorpart2) >> 3);
+//    // This goofiness came from the bandwidth meter code, it basically stores a color in an unsigned and extracts it
+//    unsigned rgb = colorRGBA >> 8;
+//    const unsigned colorpart1 = 0xfefefeu;
+//    const unsigned colorpart2 = 0xf8f8f8;
+//    rgb = ((rgb & colorpart1) >> 1) + ((rgb & colorpart2) >> 3);
 //    palette.setColor(QPalette::WindowText, QColor::fromRgb(rgb));
 //    label->setPalette(palette);
 //    _form->addRow(QString(" %1:").arg(caption), label);
 //    label->setFixedWidth(STATS_LABEL_WIDTH);
     
-    return _statCount;
-}
+//    return _statCount;
+//}
 
 OctreeStatsProvider::~OctreeStatsProvider() {
     _updateTimer.stop();
@@ -132,54 +108,43 @@ void OctreeStatsProvider::updateOctreeStatsData() {
     // Do this ever paint event... even if we don't update
     auto totalTrackedEdits = entitiesTree->getTotalTrackedEdits();
     
+    const quint64 SAMPLING_WINDOW = USECS_PER_SECOND / SAMPLES_PER_SECOND;
+    quint64 now = usecTimestampNow();
+    quint64 sinceLastWindow = now - _lastWindowAt;
+    auto editsInLastWindow = totalTrackedEdits - _lastKnownTrackedEdits;
+    float sinceLastWindowInSeconds = (float)sinceLastWindow / (float)USECS_PER_SECOND;
+    float recentUpdatesPerSecond = (float)editsInLastWindow / sinceLastWindowInSeconds;
+    if (sinceLastWindow > SAMPLING_WINDOW) {
+        _averageUpdatesPerSecond.updateAverage(recentUpdatesPerSecond);
+        _lastWindowAt = now;
+        _lastKnownTrackedEdits = totalTrackedEdits;
+    }
 
+    // Only refresh our stats every once in a while, unless asked for realtime
+    quint64 REFRESH_AFTER = Menu::getInstance()->isOptionChecked(MenuOption::ShowRealtimeEntityStats) ? 0 : USECS_PER_SECOND;
+    quint64 sinceLastRefresh = now - _lastRefresh;
+    if (sinceLastRefresh < REFRESH_AFTER) {
+        _updateTimer.start((REFRESH_AFTER - sinceLastRefresh)/1000);
+        return;
+    }
     // Only refresh our stats every once in a while, unless asked for realtime
     //if no realtime, then update once per second. Otherwise consider 60FPS update, ie 16ms interval
-    int updateinterval = Menu::getInstance()->isOptionChecked(MenuOption::ShowRealtimeEntityStats) ? 16 : 1000;
-    _updateTimer.start(updateinterval);
+    //int updateinterval = Menu::getInstance()->isOptionChecked(MenuOption::ShowRealtimeEntityStats) ? 16 : 1000;
+    _updateTimer.start(SAMPLING_WINDOW/1000);
 
     const int FLOATING_POINT_PRECISION = 3;
 
-    // Update labels
-
-    //QLabel* label;
-    QLocale locale(QLocale::English);
-    std::stringstream statsValue;
-//    statsValue.precision(4);
-
-    // Octree Elements Memory Usage
-    //label = _labels[_localElementsMemory];
-//    statsValue.str("");
-//    statsValue << "Elements RAM: " << OctreeElement::getTotalMemoryUsage() / 1000000.0f << "MB ";
-    //label->setText(statsValue.str().c_str());
     m_localElementsMemory = QString("Elements RAM: %1MB").arg(OctreeElement::getTotalMemoryUsage() / 1000000.0f, 5, 'f', 4);
     emit localElementsMemoryChanged(m_localElementsMemory);
+
     // Local Elements
-    //label = _labels[_localElements];
-//    unsigned long localTotal = OctreeElement::getNodeCount();
-//    unsigned long localInternal = OctreeElement::getInternalNodeCount();
-//    unsigned long localLeaves = OctreeElement::getLeafNodeCount();
-//    QString localTotalString = locale.toString((uint)localTotal); // consider adding: .rightJustified(10, ' ');
-//    QString localInternalString = locale.toString((uint)localInternal);
-//    QString localLeavesString = locale.toString((uint)localLeaves);
-
-//    statsValue.str("");
-//    statsValue <<
-//        "Total: " << qPrintable(localTotalString) << " / " <<
-//        "Internal: " << qPrintable(localInternalString) << " / " <<
-//        "Leaves: " << qPrintable(localLeavesString) << "";
-
     m_localElements = QString("Total: %1 / Internal: %2 / Leaves: %3").
             arg(OctreeElement::getNodeCount()).
             arg(OctreeElement::getInternalNodeCount()).
             arg(OctreeElement::getLeafNodeCount());
     emit localElementsChanged(m_localElements);
 
-    //label->setText(statsValue.str().c_str());
-
     // iterate all the current octree stats, and list their sending modes, total their octree elements, etc...
-    std::stringstream sendingMode("");
-
     int serverCount = 0;
     int movingServerCount = 0;
     unsigned long totalNodes = 0;
@@ -200,45 +165,35 @@ void OctreeStatsProvider::updateOctreeStatsData() {
 
             // Sending mode
             if (serverCount > 1) {
-                sendingMode << ",";
+                m_sendingMode += ",";
             }
             if (stats.isMoving()) {
-                sendingMode << "M";
+                m_sendingMode += "M";
                 movingServerCount++;
             } else {
-                sendingMode << "S";
+                m_sendingMode += "S";
             }
             if (stats.isFullScene()) {
-                sendingMode << "F";
+                m_sendingMode += "F";
             } else {
-                sendingMode << "p";
+                m_sendingMode += "p";
             }
         }
     });
-    sendingMode << " - " << serverCount << " servers";
+    m_sendingMode += QString(" - %1 servers").arg(serverCount);
     if (movingServerCount > 0) {
-        sendingMode << " <SCENE NOT STABLE>";
+        m_sendingMode += " <SCENE NOT STABLE> ";
     } else {
-        sendingMode << " <SCENE STABLE>";
+        m_sendingMode += " <SCENE STABLE> ";
     }
 
-//    label = _labels[_sendingMode];
-//    label->setText(sendingMode.str().c_str());
+    emit sendingModeChanged(m_sendingMode);
     
     // Server Elements
-    m_serverElements = QString("Total: %1/ Internal: %2/ Leaves: %3").
+    m_serverElements = QString("Total: %1 / Internal: %2 / Leaves: %3").
             arg(totalNodes).arg(totalInternal).arg(totalLeaves);
     emit serverElementsChanged(m_serverElements);
-//    QString serversTotalString = locale.toString((uint)totalNodes); // consider adding: .rightJustified(10, ' ');
-//    QString serversInternalString = locale.toString((uint)totalInternal);
-//    QString serversLeavesString = locale.toString((uint)totalLeaves);
-////    label = _labels[_serverElements];
-//    statsValue.str("");
-//    statsValue <<
-//        "Total: " << qPrintable(serversTotalString) << " / " <<
-//        "Internal: " << qPrintable(serversInternalString) << " / " <<
-//        "Leaves: " << qPrintable(serversLeavesString) << "";
-////    label->setText(statsValue.str().c_str());
+
 
     // Processed Packets Elements
     auto averageElementsPerPacket = entities->getAverageElementsPerPacket();
@@ -251,17 +206,6 @@ void OctreeStatsProvider::updateOctreeStatsData() {
     auto averageUncompressPerPacket = entities->getAverageUncompressPerPacket();
     auto averageReadBitstreamPerPacket = entities->getAverageReadBitstreamPerPacket();
 
-    QString averageElementsPerPacketString = locale.toString(averageElementsPerPacket, 'f', FLOATING_POINT_PRECISION);
-    QString averageEntitiesPerPacketString = locale.toString(averageEntitiesPerPacket, 'f', FLOATING_POINT_PRECISION);
-
-    QString averageElementsPerSecondString = locale.toString(averageElementsPerSecond, 'f', FLOATING_POINT_PRECISION);
-    QString averageEntitiesPerSecondString = locale.toString(averageEntitiesPerSecond, 'f', FLOATING_POINT_PRECISION);
-
-    QString averageWaitLockPerPacketString = locale.toString(averageWaitLockPerPacket);
-    QString averageUncompressPerPacketString = locale.toString(averageUncompressPerPacket);
-    QString averageReadBitstreamPerPacketString = locale.toString(averageReadBitstreamPerPacket);
-
-//    label = _labels[_processedPackets];
     const OctreePacketProcessor& entitiesPacketProcessor =  qApp->getOctreePacketProcessor();
 
     auto incomingPacketsDepth = entitiesPacketProcessor.packetsToProcessCount();
@@ -269,80 +213,50 @@ void OctreeStatsProvider::updateOctreeStatsData() {
     auto processedPPS = entitiesPacketProcessor.getProcessedPPS();
     auto treeProcessedPPS = entities->getAveragePacketsPerSecond();
 
-    QString incomingPPSString = locale.toString(incomingPPS, 'f', FLOATING_POINT_PRECISION);
-    QString processedPPSString = locale.toString(processedPPS, 'f', FLOATING_POINT_PRECISION);
-    QString treeProcessedPPSString = locale.toString(treeProcessedPPS, 'f', FLOATING_POINT_PRECISION);
+    m_processedPackets = QString("Queue Size: %1 Packets / Network IN: %2 PPS / Queue OUT: %3 PPS / Tree IN: %4 PPS")
+            .arg(incomingPacketsDepth)
+            .arg(incomingPPS, 5, 'f', FLOATING_POINT_PRECISION)
+            .arg(processedPPS, 5, 'f', FLOATING_POINT_PRECISION)
+            .arg(treeProcessedPPS, 5, 'f', FLOATING_POINT_PRECISION);
+    emit processedPacketsChanged(m_processedPackets);
 
-    statsValue.str("");
-    statsValue << 
-        "Queue Size: " << incomingPacketsDepth << " Packets / " <<
-        "Network IN: " << qPrintable(incomingPPSString) << " PPS / " <<
-        "Queue OUT: " << qPrintable(processedPPSString) << " PPS / " <<
-        "Tree IN: " << qPrintable(treeProcessedPPSString) << " PPS";
-        
-//    label->setText(statsValue.str().c_str());
+    m_processedPacketsElements = QString("%1 per packet / %2 per second")
+            .arg(averageElementsPerPacket, 5, 'f', FLOATING_POINT_PRECISION)
+            .arg(averageElementsPerSecond, 5, 'f', FLOATING_POINT_PRECISION);
+    emit processedPacketsElementsChanged(m_processedPacketsElements);
 
-//    label = _labels[_processedPacketsElements];
-    statsValue.str("");
-    statsValue << 
-        "" << qPrintable(averageElementsPerPacketString) << " per packet / " <<
-        "" << qPrintable(averageElementsPerSecondString) << " per second";
-        
-//    label->setText(statsValue.str().c_str());
+    m_processedPacketsEntities = QString("%1 per packet / %2 per second")
+            .arg(averageEntitiesPerPacket, 5, 'f', FLOATING_POINT_PRECISION)
+            .arg(averageEntitiesPerSecond, 5, 'f', FLOATING_POINT_PRECISION);
+    emit processedPacketsEntitiesChanged(m_processedPacketsEntities);
 
-//    label = _labels[_processedPacketsEntities];
-    statsValue.str("");
-    statsValue << 
-        "" << qPrintable(averageEntitiesPerPacketString) << " per packet / " <<
-        "" << qPrintable(averageEntitiesPerSecondString) << " per second";
-        
-//    label->setText(statsValue.str().c_str());
-
-//    label = _labels[_processedPacketsTiming];
-    statsValue.str("");
-    statsValue << 
-        "Lock Wait: " << qPrintable(averageWaitLockPerPacketString) << " (usecs) / " <<
-        "Uncompress: " << qPrintable(averageUncompressPerPacketString) << " (usecs) / " <<
-        "Process: " << qPrintable(averageReadBitstreamPerPacketString) << " (usecs)";
-        
-    //label->setText(statsValue.str().c_str());
+    m_processedPacketsTiming = QString("Lock Wait: %1 (usecs) / Uncompress: %2 (usecs) / Process: %3 (usecs)")
+            .arg(averageWaitLockPerPacket)
+            .arg(averageUncompressPerPacket)
+            .arg(averageReadBitstreamPerPacket);
+    emit processedPacketsTimingChanged(m_processedPacketsTiming);
 
     auto entitiesEditPacketSender = qApp->getEntityEditPacketSender();
-
     auto outboundPacketsDepth = entitiesEditPacketSender->packetsToSendCount();
     auto outboundQueuedPPS = entitiesEditPacketSender->getLifetimePPSQueued();
     auto outboundSentPPS = entitiesEditPacketSender->getLifetimePPS();
 
-    QString outboundQueuedPPSString = locale.toString(outboundQueuedPPS, 'f', FLOATING_POINT_PRECISION);
-    QString outboundSentPPSString = locale.toString(outboundSentPPS, 'f', FLOATING_POINT_PRECISION);
-
-    //label = _labels[_outboundEditPackets];
-    statsValue.str("");
-    statsValue <<
-        "Queue Size: " << outboundPacketsDepth << " packets / " <<
-        "Queued IN: " << qPrintable(outboundQueuedPPSString) << " PPS / " <<
-        "Sent OUT: " << qPrintable(outboundSentPPSString) << " PPS";
-
-    //label->setText(statsValue.str().c_str());
-
+    m_outboundEditPackets = QString("Queue Size: %1 packets / Queued IN: %2 PPS / Sent OUT: %3 PPS")
+            .arg(outboundPacketsDepth)
+            .arg(outboundQueuedPPS, 5, 'f', FLOATING_POINT_PRECISION)
+            .arg(outboundSentPPS, 5, 'f', FLOATING_POINT_PRECISION);
+    emit outboundEditPacketsChanged(m_outboundEditPackets);
     
     // Entity Edits update time
-    //label = _labels[_entityUpdateTime];
     auto averageEditDelta = entitiesTree->getAverageEditDeltas();
     auto maxEditDelta = entitiesTree->getMaxEditDelta();
 
-    QString averageEditDeltaString = locale.toString((uint)averageEditDelta);
-    QString maxEditDeltaString = locale.toString((uint)maxEditDelta);
-
-    statsValue.str("");
-    statsValue << 
-        "Average: " << qPrintable(averageEditDeltaString) << " (usecs) / " <<
-        "Max: " << qPrintable(maxEditDeltaString) << " (usecs)";
-        
-    //label->setText(statsValue.str().c_str());
+    m_entityUpdateTime = QString("Average: %1 (usecs) / Max: %2 (usecs)")
+            .arg(averageEditDelta)
+            .arg(maxEditDelta);
+    emit entityUpdateTimeChanged(m_entityUpdateTime);
 
     // Entity Edits
-    //label = _labels[_entityUpdates];
     auto bytesPerEdit = entitiesTree->getAverageEditBytes();
     
     auto updatesPerSecond = _averageUpdatesPerSecond.getAverage();
@@ -350,17 +264,11 @@ void OctreeStatsProvider::updateOctreeStatsData() {
         updatesPerSecond = 0; // we don't really care about small updates per second so suppress those
     }
 
-    QString totalTrackedEditsString = locale.toString((uint)totalTrackedEdits);
-    QString updatesPerSecondString = locale.toString(updatesPerSecond, 'f', FLOATING_POINT_PRECISION);
-    QString bytesPerEditString = locale.toString(bytesPerEdit);
-
-    statsValue.str("");
-    statsValue << 
-        "" << qPrintable(updatesPerSecondString) << " updates per second / " <<
-        "" << qPrintable(totalTrackedEditsString) << " total updates / " <<
-        "Average Size: " << qPrintable(bytesPerEditString) << " bytes ";
-        
-    //label->setText(statsValue.str().c_str());
+    m_entityUpdates = QString("%1 updates per second / %2 total updates / Average Size: %3 bytes")
+            .arg(updatesPerSecond, 5, 'f', FLOATING_POINT_PRECISION)
+            .arg(totalTrackedEdits)
+            .arg(bytesPerEdit);
+    emit entityUpdatesChanged(m_entityUpdates);
 
     updateOctreeServers();
 }
diff --git a/interface/src/ui/OctreeStatsProvider.h b/interface/src/ui/OctreeStatsProvider.h
index c2fc46218d..6fc3e091f4 100644
--- a/interface/src/ui/OctreeStatsProvider.h
+++ b/interface/src/ui/OctreeStatsProvider.h
@@ -30,18 +30,15 @@ class OctreeStatsProvider : public QObject, public Dependency {
     Q_PROPERTY(QString localElements READ localElements NOTIFY localElementsChanged)
     Q_PROPERTY(QString localElementsMemory READ localElementsMemory NOTIFY localElementsMemoryChanged)
     Q_PROPERTY(QString sendingMode READ sendingMode NOTIFY sendingModeChanged)
-    //Incoming Entity Packets
     Q_PROPERTY(QString processedPackets READ processedPackets NOTIFY processedPacketsChanged)
-
-//    int _entityUpdateTime;
-//    int _entityUpdates;
-//    int _processedPacketsElements;
-//    int _processedPacketsEntities;
-//    int _processedPacketsTiming;
-//    int _outboundEditPackets;
+    Q_PROPERTY(QString processedPacketsElements READ processedPacketsElements NOTIFY processedPacketsElementsChanged)
+    Q_PROPERTY(QString processedPacketsEntities READ processedPacketsEntities NOTIFY processedPacketsEntitiesChanged)
+    Q_PROPERTY(QString processedPacketsTiming READ processedPacketsTiming NOTIFY processedPacketsTimingChanged)
+    Q_PROPERTY(QString outboundEditPackets READ outboundEditPackets NOTIFY outboundEditPacketsChanged)
+    Q_PROPERTY(QString entityUpdateTime READ entityUpdateTime NOTIFY entityUpdateTimeChanged)
+    Q_PROPERTY(QString entityUpdates READ entityUpdates NOTIFY entityUpdatesChanged)
 
 public:
-    // Sets up the UI
     OctreeStatsProvider(QObject* parent, NodeToOctreeSceneStats* model);
     ~OctreeStatsProvider();
 
@@ -67,14 +64,44 @@ public:
         return m_processedPackets;
     }
 
+    QString processedPacketsElements() const {
+        return m_processedPacketsElements;
+    }
+
+    QString processedPacketsEntities() const {
+        return m_processedPacketsEntities;
+    }
+
+    QString processedPacketsTiming() const {
+        return m_processedPacketsTiming;
+    }
+
+    QString outboundEditPackets() const {
+        return m_outboundEditPackets;
+    }
+
+    QString entityUpdateTime() const {
+        return m_entityUpdateTime;
+    }
+
+    QString entityUpdates() const {
+        return m_entityUpdates;
+    }
+
 signals:
 
     void serversNumChanged(int serversNum);
-    void serverElementsChanged(QString serverElements);
-    void localElementsChanged(QString localElements);
-    void sendingModeChanged(QString sendingMode);
-    void processedPacketsChanged(QString processedPackets);
-    void localElementsMemoryChanged(QString localElementsMemory);
+    void serverElementsChanged(const QString &serverElements);
+    void localElementsChanged(const QString &localElements);
+    void sendingModeChanged(const QString &sendingMode);
+    void processedPacketsChanged(const QString &processedPackets);
+    void localElementsMemoryChanged(const QString &localElementsMemory);
+    void processedPacketsElementsChanged(const QString &processedPacketsElements);
+    void processedPacketsEntitiesChanged(const QString &processedPacketsEntities);
+    void processedPacketsTimingChanged(const QString &processedPacketsTiming);
+    void outboundEditPacketsChanged(const QString &outboundEditPackets);
+    void entityUpdateTimeChanged(const QString &entityUpdateTime);
+    void entityUpdatesChanged(const QString &entityUpdates);
 
 public slots:
     void moreless(const QString& link);
@@ -84,8 +111,6 @@ public slots:
 private slots:
     void updateOctreeStatsData();
 protected:
-
-    int AddStatItem(const char* caption, unsigned colorRGBA = DEFAULT_COLOR);
     void updateOctreeServers();
     void showOctreeServersOfType(int& serverNumber, NodeType_t serverType, 
                     const char* serverTypeName, NodeToJurisdictionMap& serverJurisdictions);
@@ -94,19 +119,6 @@ private:
     NodeToOctreeSceneStats* _model;
     int _statCount;
     
-    int _sendingMode;
-    int _serverElements;
-    int _localElements;
-    int _localElementsMemory;
-
-    int _entityUpdateTime;
-    int _entityUpdates;
-    int _processedPackets;
-    int _processedPacketsElements;
-    int _processedPacketsEntities;
-    int _processedPacketsTiming;
-    int _outboundEditPackets;
-    
     const int SAMPLES_PER_SECOND = 10;
     SimpleMovingAverage _averageUpdatesPerSecond;
     quint64 _lastWindowAt = usecTimestampNow();
@@ -114,8 +126,6 @@ private:
 
     quint64 _lastRefresh = 0;
 
-//    int _octreeServerLables[MAX_VOXEL_SERVERS];
-//    int _octreeServerLabelsCount;
     QTimer _updateTimer;
     int m_serversNum {0};
     QString m_serverElements;
@@ -123,6 +133,12 @@ private:
     QString m_localElementsMemory;
     QString m_sendingMode;
     QString m_processedPackets;
+    QString m_processedPacketsElements;
+    QString m_processedPacketsEntities;
+    QString m_processedPacketsTiming;
+    QString m_outboundEditPackets;
+    QString m_entityUpdateTime;
+    QString m_entityUpdates;
 };
 
 #endif // hifi_OctreeStatsProvider_h

From 40b7e34c0be04b4a0c905a2b8734e631a2719775 Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidelity.io>
Date: Mon, 13 Mar 2017 14:23:13 -0700
Subject: [PATCH 122/247] Fix for visible empty toolbar when switching from
 desktop to HMD mode.

---
 interface/resources/qml/hifi/toolbars/Toolbar.qml | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/interface/resources/qml/hifi/toolbars/Toolbar.qml b/interface/resources/qml/hifi/toolbars/Toolbar.qml
index c0d984e822..f80e0f8c14 100644
--- a/interface/resources/qml/hifi/toolbars/Toolbar.qml
+++ b/interface/resources/qml/hifi/toolbars/Toolbar.qml
@@ -120,8 +120,6 @@ Window {
     function addButton(properties) {
         properties = properties || {}
 
-        unpinnedAlpha = 1;
-
         // If a name is specified, then check if there's an existing button with that name
         // and return it if so.  This will allow multiple clients to listen to a single button,
         // and allow scripts to be idempotent so they don't duplicate buttons if they're reloaded
@@ -156,7 +154,7 @@ Window {
         updatePinned();
 
         if (buttons.length === 0) {
-            unpinnedAlpha = 0;
+            fadeOut(function () {});
         }
     }
 

From 01c313ad60e253d42920912845ff25e079d81053 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Tue, 14 Mar 2017 13:33:20 +1300
Subject: [PATCH 123/247] Fix QML errors

---
 .../resources/qml/hifi/tablet/TabletAttachmentsDialog.qml      | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml b/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
index 868b35398b..634c9d41ec 100644
--- a/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAttachmentsDialog.qml
@@ -25,6 +25,9 @@ Item {
     property bool keyboardRaised: false
     property bool punctuationMode: false
 
+    property var eventBridge;
+    signal sendToScript(var message);
+
     anchors.fill: parent
 
     HifiConstants { id: hifi }

From 7504c124e40f3d86953951651bd0a7b3a8dfc7d8 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Tue, 14 Mar 2017 13:34:06 +1300
Subject: [PATCH 124/247] Make attachment model browser dialog modal

---
 .../resources/qml/hifi/dialogs/attachments/Attachment.qml  | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/interface/resources/qml/hifi/dialogs/attachments/Attachment.qml b/interface/resources/qml/hifi/dialogs/attachments/Attachment.qml
index 941d665b18..0e98f79216 100644
--- a/interface/resources/qml/hifi/dialogs/attachments/Attachment.qml
+++ b/interface/resources/qml/hifi/dialogs/attachments/Attachment.qml
@@ -93,7 +93,14 @@ Item {
                         browser = tabletModelBrowserBuilder.createObject(tabletRoot);
                         browser.selected.connect(function(newModelUrl){
                             modelUrl.text = newModelUrl;
+                            tabletRoot.openModal = null;
                         });
+                        browser.canceled.connect(function() {
+                            tabletRoot.openModal = null;
+                        });
+
+                        // Make dialog modal.
+                        tabletRoot.openModal = browser;
                     }
                 }
             }

From f3a99a2437c45cf752c7203fc89d3e1f56fa844d Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Tue, 14 Mar 2017 15:36:51 +1300
Subject: [PATCH 125/247] Implement avatar browser for tablet avatar settings

---
 .../dialogs/preferences/AvatarPreference.qml  | 26 ++++--
 .../preferences/TabletAvatarBrowser.qml       | 79 +++++++++++++++++++
 2 files changed, 99 insertions(+), 6 deletions(-)
 create mode 100644 interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletAvatarBrowser.qml

diff --git a/interface/resources/qml/dialogs/preferences/AvatarPreference.qml b/interface/resources/qml/dialogs/preferences/AvatarPreference.qml
index 0c5c5bf630..848dd3c6e9 100644
--- a/interface/resources/qml/dialogs/preferences/AvatarPreference.qml
+++ b/interface/resources/qml/dialogs/preferences/AvatarPreference.qml
@@ -10,8 +10,8 @@
 
 import QtQuick 2.5
 
-import "../../dialogs"
 import "../../controls-uit"
+import "../../hifi/tablet/tabletWindows/preferences"
 
 Preference {
     id: root
@@ -82,12 +82,26 @@ Preference {
                 verticalCenter: dataTextField.verticalCenter
             }
             onClicked: {
-                // Load dialog via OffscreenUi so that JavaScript EventBridge is available.
-                root.browser = OffscreenUi.load("dialogs/preferences/AvatarBrowser.qml");
-                root.browser.windowDestroyed.connect(function(){
-                    root.browser = null;
-                });
+                if (typeof desktop !== "undefined") {
+                    // Load dialog via OffscreenUi so that JavaScript EventBridge is available.
+                    root.browser = OffscreenUi.load("dialogs/preferences/AvatarBrowser.qml");
+                    root.browser.windowDestroyed.connect(function(){
+                        root.browser = null;
+                    });
+                } else {
+                    root.browser = tabletAvatarBrowserBuilder.createObject(tabletRoot, {
+                        createGlobalEventBridgeSource: eventBridgeJavaScriptToInject
+                    });
+
+                    // Make dialog modal.
+                    tabletRoot.openModal = root.browser;
+                }
             }
         }
+
+        Component {
+            id: tabletAvatarBrowserBuilder;
+            TabletAvatarBrowser { }
+        }
     }
 }
diff --git a/interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletAvatarBrowser.qml b/interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletAvatarBrowser.qml
new file mode 100644
index 0000000000..57ef7b5933
--- /dev/null
+++ b/interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletAvatarBrowser.qml
@@ -0,0 +1,79 @@
+//
+//  TabletAvatarBrowser.qml
+//
+//  Created by David Rowe on 14 Mar 2017
+//  Copyright 2017 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
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import QtWebChannel 1.0
+import QtWebEngine 1.2
+
+import "../../../../windows"
+import "../../../../controls-uit"
+import "../../../../styles-uit"
+
+Item {
+    id: root
+    objectName: "ModelBrowserDialog"
+
+    property string title: "Attachment Model"
+
+    property var result
+
+    signal selected(var modelUrl)
+    signal canceled()
+
+    anchors.fill: parent
+
+    /*
+    Rectangle {
+        id: pane  // Surrogate for ScrollingWindow's pane.
+        anchors.fill: parent
+    }
+    */
+
+    BaseWebView {
+        id: webview
+        url: "https://metaverse.highfidelity.com/marketplace?category=avatars"
+        focus: true
+
+        anchors {
+            top: parent.top
+            left: parent.left
+            right: parent.right
+            bottom: footer.top
+        }
+    }
+
+    Rectangle {
+        id: footer
+        height: 40
+
+        anchors {
+            left: parent.left
+            right: parent.right
+            bottom: parent.bottom
+        }
+
+        color: hifi.colors.baseGray
+
+        Row {
+            anchors {
+                verticalCenter: parent.verticalCenter
+                right: parent.right
+                rightMargin: hifi.dimensions.contentMargin.x
+            }
+
+            Button {
+                text: "Cancel"
+                color: hifi.buttons.white
+                onClicked: root.destroy();
+            }
+        }
+    }
+}

From d141d5b683badfa9492f191333c49e510049a73d Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Tue, 14 Mar 2017 21:36:57 +1300
Subject: [PATCH 126/247] Add keyboard

---
 .../dialogs/preferences/AvatarPreference.qml  |  8 +--
 .../preferences/TabletAvatarBrowser.qml       | 58 ++++++++++++++++---
 2 files changed, 54 insertions(+), 12 deletions(-)

diff --git a/interface/resources/qml/dialogs/preferences/AvatarPreference.qml b/interface/resources/qml/dialogs/preferences/AvatarPreference.qml
index 848dd3c6e9..7ae4fe6761 100644
--- a/interface/resources/qml/dialogs/preferences/AvatarPreference.qml
+++ b/interface/resources/qml/dialogs/preferences/AvatarPreference.qml
@@ -89,9 +89,7 @@ Preference {
                         root.browser = null;
                     });
                 } else {
-                    root.browser = tabletAvatarBrowserBuilder.createObject(tabletRoot, {
-                        createGlobalEventBridgeSource: eventBridgeJavaScriptToInject
-                    });
+                    root.browser = tabletAvatarBrowserBuilder.createObject(tabletRoot);
 
                     // Make dialog modal.
                     tabletRoot.openModal = root.browser;
@@ -101,7 +99,9 @@ Preference {
 
         Component {
             id: tabletAvatarBrowserBuilder;
-            TabletAvatarBrowser { }
+            TabletAvatarBrowser {
+                eventBridge: tabletRoot.eventBridge
+            }
         }
     }
 }
diff --git a/interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletAvatarBrowser.qml b/interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletAvatarBrowser.qml
index 57ef7b5933..8c415f5ebb 100644
--- a/interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletAvatarBrowser.qml
+++ b/interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletAvatarBrowser.qml
@@ -25,17 +25,16 @@ Item {
 
     property var result
 
+    property bool keyboardEnabled: false
+    property bool keyboardRaised: false
+    property bool punctuationMode: false
+
     signal selected(var modelUrl)
     signal canceled()
 
-    anchors.fill: parent
+    property alias eventBridge: eventBridgeWrapper.eventBridge
 
-    /*
-    Rectangle {
-        id: pane  // Surrogate for ScrollingWindow's pane.
-        anchors.fill: parent
-    }
-    */
+    anchors.fill: parent
 
     BaseWebView {
         id: webview
@@ -48,6 +47,32 @@ Item {
             right: parent.right
             bottom: footer.top
         }
+
+        QtObject {
+            id: eventBridgeWrapper
+            WebChannel.id: "eventBridgeWrapper"
+            property var eventBridge;
+        }
+
+        webChannel.registeredObjects: [eventBridgeWrapper]
+
+        // Create a global EventBridge object for raiseAndLowerKeyboard.
+        WebEngineScript {
+            id: createGlobalEventBridge
+            sourceCode: eventBridgeJavaScriptToInject
+            injectionPoint: WebEngineScript.DocumentCreation
+            worldId: WebEngineScript.MainWorld
+        }
+
+        // Detect when may want to raise and lower keyboard.
+        WebEngineScript {
+            id: raiseAndLowerKeyboard
+            injectionPoint: WebEngineScript.Deferred
+            sourceUrl: resourceDirectoryUrl + "html/raiseAndLowerKeyboard.js"
+            worldId: WebEngineScript.MainWorld
+        }
+
+        userScripts: [ createGlobalEventBridge, raiseAndLowerKeyboard ]
     }
 
     Rectangle {
@@ -57,7 +82,7 @@ Item {
         anchors {
             left: parent.left
             right: parent.right
-            bottom: parent.bottom
+            bottom: keyboard.top
         }
 
         color: hifi.colors.baseGray
@@ -76,4 +101,21 @@ Item {
             }
         }
     }
+
+    Keyboard {
+        id: keyboard
+
+        raised: parent.keyboardEnabled && parent.keyboardRaised
+        numeric: parent.punctuationMode
+
+        anchors {
+            left: parent.left
+            right: parent.right
+            bottom: parent.bottom
+        }
+    }
+
+    Component.onCompleted: {
+        keyboardEnabled = HMD.active;
+    }
 }

From 43687d4773f4a423ba1c2b3fdca10d8db6ac3557 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Tue, 14 Mar 2017 21:41:04 +1300
Subject: [PATCH 127/247] Tidying

---
 .../tablet/tabletWindows/preferences/TabletAvatarBrowser.qml | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletAvatarBrowser.qml b/interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletAvatarBrowser.qml
index 8c415f5ebb..029cf7d46b 100644
--- a/interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletAvatarBrowser.qml
+++ b/interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletAvatarBrowser.qml
@@ -23,15 +23,10 @@ Item {
 
     property string title: "Attachment Model"
 
-    property var result
-
     property bool keyboardEnabled: false
     property bool keyboardRaised: false
     property bool punctuationMode: false
 
-    signal selected(var modelUrl)
-    signal canceled()
-
     property alias eventBridge: eventBridgeWrapper.eventBridge
 
     anchors.fill: parent

From 0accce5337f7ed1a172f731d4364cea84b958a9e Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Tue, 14 Mar 2017 15:53:41 +0100
Subject: [PATCH 128/247] TabletComboBoxPreference.qml not needed anymore

---
 .../tabletWindows/preferences/Section.qml     |  2 +-
 .../preferences/TabletComboBoxPreference.qml  | 65 -------------------
 2 files changed, 1 insertion(+), 66 deletions(-)
 delete mode 100644 interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletComboBoxPreference.qml

diff --git a/interface/resources/qml/hifi/tablet/tabletWindows/preferences/Section.qml b/interface/resources/qml/hifi/tablet/tabletWindows/preferences/Section.qml
index 54f616e0f4..3d6dfa10ce 100644
--- a/interface/resources/qml/hifi/tablet/tabletWindows/preferences/Section.qml
+++ b/interface/resources/qml/hifi/tablet/tabletWindows/preferences/Section.qml
@@ -80,7 +80,7 @@ Preference {
         property var sliderBuilder: Component { SliderPreference { } }
         property var avatarBuilder: Component { AvatarPreference { } }
         property var buttonBuilder: Component { ButtonPreference { } }
-        property var comboBoxBuilder: Component { TabletComboBoxPreference { } }
+        property var comboBoxBuilder: Component { ComboBoxPreference { } }
         property var preferences: []
         property int checkBoxCount: 0
 
diff --git a/interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletComboBoxPreference.qml b/interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletComboBoxPreference.qml
deleted file mode 100644
index 0ff000f3e1..0000000000
--- a/interface/resources/qml/hifi/tablet/tabletWindows/preferences/TabletComboBoxPreference.qml
+++ /dev/null
@@ -1,65 +0,0 @@
-//
-//  ComboBoxPreference.qml
-//
-//  Created by Bradley Austin Davis on 18 Jan 2016
-//  Copyright 2016 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
-//
-
-import QtQuick 2.5
-
-import QtQuick.Controls 1.4
-import QtQuick.Controls.Styles 1.4
-import "../../../../controls-uit" as HiFiControls
-import "../../../../styles-uit"
-
-Preference {
-    id: root
-    height: control.height + hifi.dimensions.controlInterlineHeight
-
-    Component.onCompleted: {
-        dataComboBox.currentIndex = dataComboBox.comboBox.find(preference.value);
-    }
-
-    function save() {
-        preference.value = dataComboBox.currentText;
-        preference.save();
-    }
-
-    Item {
-        id: control
-        anchors {
-            left: parent.left
-            right: parent.right
-            bottom: parent.bottom
-        }
-        height: Math.max(labelText.height, dataComboBox.controlHeight)
-
-        HiFiControls.Label {
-            id: labelText
-            text: root.label + ":"
-            colorScheme: hifi.colorSchemes.dark
-            anchors {
-                left: parent.left
-                right: dataComboBox.left
-                rightMargin: hifi.dimensions.labelPadding
-                verticalCenter: parent.verticalCenter
-            }
-            horizontalAlignment: Text.AlignRight
-            wrapMode: Text.Wrap
-        }
-
-        HiFiControls.TabletComboBox {
-            id: dataComboBox
-            model: preference.items
-            width: 150
-            anchors {
-                right: parent.right
-                verticalCenter: parent.verticalCenter
-            }
-            colorScheme: hifi.colorSchemes.dark
-        }
-    }
-}

From d9ca8a826d4ea438db10693f07d7a580e0035b3c Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Tue, 14 Mar 2017 17:02:09 +0100
Subject: [PATCH 129/247] TabletEntityStatistics.qml refactored. Text now
 wrapped. TODO: coloring, server stats

---
 .../hifi/dialogs/TabletEntityStatistics.qml   | 144 +++---------------
 .../dialogs/TabletEntityStatisticsItem.qml    |  48 ++++++
 interface/src/ui/OctreeStatsProvider.cpp      |   1 +
 3 files changed, 74 insertions(+), 119 deletions(-)
 create mode 100644 interface/resources/qml/hifi/dialogs/TabletEntityStatisticsItem.qml

diff --git a/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml b/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml
index bd7796927e..f6fdf90474 100644
--- a/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml
+++ b/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml
@@ -55,179 +55,91 @@ Rectangle {
             y: hifi.dimensions.tabletMenuHeader //-bgNavBar
             spacing: 20
 
-            HifiControls.Label {
-                size: 20
+            TabletEntityStatisticsItem {
                 anchors.left: parent.left
                 anchors.right: parent.right
-                text: qsTr("Elements on Servers:")
-                colorScheme: root.colorScheme
-            }
-            HifiControls.Label {
-                id: elementsOnServerLabel
-                size: 16
+                titleText: qsTr("Elements on Servers:")
                 text: OctreeStats.serverElements
-                anchors.left: parent.left
-                anchors.right: parent.right
                 colorScheme: root.colorScheme
             }
 
-            HifiControls.Label {
-                size: 20
+            TabletEntityStatisticsItem {
                 anchors.left: parent.left
                 anchors.right: parent.right
-                text: qsTr("Local Elements:")
-                colorScheme: root.colorScheme
-            }
-            HifiControls.Label {
-                id: localElementsLabel
-                size: 16
+                titleText: qsTr("Local Elements:")
                 text: OctreeStats.localElements
-                anchors.left: parent.left
-                anchors.right: parent.right
                 colorScheme: root.colorScheme
             }
 
-            HifiControls.Label {
-                size: 20
+            TabletEntityStatisticsItem {
                 anchors.left: parent.left
                 anchors.right: parent.right
-                text: qsTr("Elements Memory:")
-                colorScheme: root.colorScheme
-            }
-            HifiControls.Label {
-                id: elementsMemoryLabel
-                size: 16
+                titleText: qsTr("Elements Memory:")
                 text: OctreeStats.localElementsMemory
-                anchors.left: parent.left
-                anchors.right: parent.right
                 colorScheme: root.colorScheme
             }
 
-            HifiControls.Label {
-                size: 20
+            TabletEntityStatisticsItem {
                 anchors.left: parent.left
                 anchors.right: parent.right
-                text: qsTr("Sending Mode:")
-                colorScheme: root.colorScheme
-            }
-            HifiControls.Label {
-                id: sendingModeLabel
-                size: 16
+                titleText: qsTr("Sending Mode:")
                 text: OctreeStats.sendingMode
-                anchors.left: parent.left
-                anchors.right: parent.right
                 colorScheme: root.colorScheme
             }
 
-            HifiControls.Label {
-                size: 20
+            TabletEntityStatisticsItem {
                 anchors.left: parent.left
                 anchors.right: parent.right
-                text: qsTr("Incoming Entity Packets:")
-                colorScheme: root.colorScheme
-            }
-            HifiControls.Label {
-                id: incomingEntityPacketsLabel
-                size: 16
+                titleText: qsTr("Incoming Entity Packets:")
                 text: OctreeStats.processedPackets
-                anchors.left: parent.left
-                anchors.right: parent.right
                 colorScheme: root.colorScheme
             }
 
-            HifiControls.Label {
-                size: 20
+            TabletEntityStatisticsItem {
                 anchors.left: parent.left
                 anchors.right: parent.right
-                text: qsTr("Processed Packets Elements:")
-                colorScheme: root.colorScheme
-            }
-            HifiControls.Label {
-                id: processedPacketsElementsLabel
-                size: 16
+                titleText: qsTr("Processed Packets Elements:")
                 text: OctreeStats.processedPacketsElements
-                anchors.left: parent.left
-                anchors.right: parent.right
                 colorScheme: root.colorScheme
             }
 
-            HifiControls.Label {
-                size: 20
+            TabletEntityStatisticsItem {
                 anchors.left: parent.left
                 anchors.right: parent.right
-                text: qsTr("Processed Packets Entities:")
-                colorScheme: root.colorScheme
-            }
-            HifiControls.Label {
-                id: processedPacketsEntitiesLabel
-                size: 16
+                titleText: qsTr("Processed Packets Entities:")
                 text: OctreeStats.processedPacketsEntities
-                anchors.left: parent.left
-                anchors.right: parent.right
                 colorScheme: root.colorScheme
             }
 
-            HifiControls.Label {
-                size: 20
+            TabletEntityStatisticsItem {
                 anchors.left: parent.left
                 anchors.right: parent.right
-                text: qsTr("Processed Packets Timing:")
-                colorScheme: root.colorScheme
-            }
-            HifiControls.Label {
-                id: processedPacketsTimingLabel
-                size: 16
+                titleText: qsTr("Processed Packets Timing:")
                 text: OctreeStats.processedPacketsTiming
-                anchors.left: parent.left
-                anchors.right: parent.right
                 colorScheme: root.colorScheme
             }
 
-            HifiControls.Label {
-                size: 20
+            TabletEntityStatisticsItem {
                 anchors.left: parent.left
                 anchors.right: parent.right
-                text: qsTr("Outbound Entity Packets:")
-                colorScheme: root.colorScheme
-            }
-            HifiControls.Label {
-                id: outboundEntityPacketsLabel
-                size: 16
+                titleText: qsTr("Outbound Entity Packets:")
                 text: OctreeStats.outboundEditPackets
-                anchors.left: parent.left
-                anchors.right: parent.right
                 colorScheme: root.colorScheme
             }
 
-            HifiControls.Label {
-                size: 20
+            TabletEntityStatisticsItem {
                 anchors.left: parent.left
                 anchors.right: parent.right
-                text: qsTr("Entity Update Time:")
-                colorScheme: root.colorScheme
-            }
-            HifiControls.Label {
-                id: entityUpdateTimeLabel
-                size: 16
+                titleText: qsTr("Entity Update Time:")
                 text: OctreeStats.entityUpdateTime
-                anchors.left: parent.left
-                anchors.right: parent.right
                 colorScheme: root.colorScheme
             }
 
-            HifiControls.Label {
-                size: 20
+            TabletEntityStatisticsItem {
                 anchors.left: parent.left
                 anchors.right: parent.right
-                text: qsTr("Entity Updates:")
-                colorScheme: root.colorScheme
-            }
-            HifiControls.Label {
-                id: entityUpdatesLabel
-                size: 16
+                titleText: qsTr("Entity Updates:")
                 text: OctreeStats.entityUpdates
-                anchors.left: parent.left
-                anchors.right: parent.right
                 colorScheme: root.colorScheme
             }
 
@@ -242,18 +154,12 @@ Rectangle {
 
                     state: "less"
 
-                    HifiControls.Label {
-                        size: 20
-                        width: parent.width
-                        text: qsTr("Entity Server ") + (index+1) + ":"
-                        colorScheme: root.colorScheme
-                    }
-                    HifiControls.Label {
-                        id: entityServer1Label
-                        size: 20
+                    TabletEntityStatisticsItem {
                         width: parent.width
+                        titleText: qsTr("Entity Server ") + (index+1) + ":"
                         colorScheme: root.colorScheme
                     }
+
                     Row {
                         id: buttonsRow
                         width: parent.width
diff --git a/interface/resources/qml/hifi/dialogs/TabletEntityStatisticsItem.qml b/interface/resources/qml/hifi/dialogs/TabletEntityStatisticsItem.qml
new file mode 100644
index 0000000000..c4509d5a76
--- /dev/null
+++ b/interface/resources/qml/hifi/dialogs/TabletEntityStatisticsItem.qml
@@ -0,0 +1,48 @@
+//
+//  TabletEntityStatistics.qml
+//
+//  Created by Vlad Stelmahovsky on  3/11/17
+//  Copyright 2017 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
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import Qt.labs.settings 1.0
+
+import "../../styles-uit"
+import "../../controls-uit" as HifiControls
+
+Column {
+    id: root
+    property int colorScheme: hifi.colorSchemes.dark
+
+    property alias titleText: titleLabel.text
+    property alias text: valueLabel.text
+
+    HifiConstants { id: hifi }
+
+    anchors.left: parent.left
+    anchors.right: parent.right
+    spacing: 10
+
+    HifiControls.Label {
+        id: titleLabel
+        size: 20
+        anchors.left: parent.left
+        anchors.right: parent.right
+        colorScheme: root.colorScheme
+    }
+
+    RalewaySemiBold {
+        id: valueLabel
+        anchors.left: parent.left
+        anchors.right: parent.right
+        wrapMode: Text.WordWrap
+        size: 16
+        color: enabled ? (root.colorScheme == hifi.colorSchemes.light ? hifi.colors.lightGray : hifi.colors.lightGrayText)
+                       : (root.colorScheme == hifi.colorSchemes.light ? hifi.colors.lightGrayText : hifi.colors.baseGrayHighlight);
+    }
+}
diff --git a/interface/src/ui/OctreeStatsProvider.cpp b/interface/src/ui/OctreeStatsProvider.cpp
index 057056d8ce..e8d863e2b8 100644
--- a/interface/src/ui/OctreeStatsProvider.cpp
+++ b/interface/src/ui/OctreeStatsProvider.cpp
@@ -151,6 +151,7 @@ void OctreeStatsProvider::updateOctreeStatsData() {
     unsigned long totalInternal = 0;
     unsigned long totalLeaves = 0;
 
+    m_sendingMode.clear();
     NodeToOctreeSceneStats* sceneStats = qApp->getOcteeSceneStats();
     sceneStats->withReadLock([&] {
         for (NodeToOctreeSceneStatsIterator i = sceneStats->begin(); i != sceneStats->end(); i++) {

From 56d4bfe07742b44bde6cb6e5998b1c3025c476fe Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Tue, 14 Mar 2017 18:38:49 +0100
Subject: [PATCH 130/247] Servers stats added. TODO: coloring

---
 .../hifi/dialogs/TabletEntityStatistics.qml   |  12 +-
 interface/src/ui/OctreeStatsProvider.cpp      | 261 ++++++------------
 interface/src/ui/OctreeStatsProvider.h        |  11 +-
 3 files changed, 112 insertions(+), 172 deletions(-)

diff --git a/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml b/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml
index f6fdf90474..9d3829e743 100644
--- a/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml
+++ b/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml
@@ -46,6 +46,7 @@ Rectangle {
         anchors.bottomMargin: hifi.dimensions.tabletMenuHeader
         contentWidth: column.implicitWidth
         contentHeight: column.implicitHeight
+        boundsBehavior: Flickable.StopAtBounds
 
         Column {
             id: column
@@ -155,6 +156,7 @@ Rectangle {
                     state: "less"
 
                     TabletEntityStatisticsItem {
+                        id: serverStats
                         width: parent.width
                         titleText: qsTr("Entity Server ") + (index+1) + ":"
                         colorScheme: root.colorScheme
@@ -178,7 +180,7 @@ Rectangle {
                                 } else if (serverColumn.state === "more") {
                                     serverColumn.state = "most"
                                 } else {
-                                    serverColumn.state = "less"
+                                    serverColumn.state = "more"
                                 }
                             }
                         }
@@ -194,7 +196,7 @@ Rectangle {
                                 } else if (serverColumn.state === "more") {
                                     serverColumn.state = "less"
                                 } else {
-                                    serverColumn.state = "more"
+                                    serverColumn.state = "less"
                                 }
                             }
 
@@ -205,16 +207,22 @@ Rectangle {
                             name: "less"
                             PropertyChanges { target: moreButton; text: qsTr("more..."); }
                             PropertyChanges { target: mostButton; text: qsTr("most..."); }
+                            PropertyChanges { target: serverStats; text: OctreeStats.servers[index*3]; }
                         },
                         State {
                             name: "more"
                             PropertyChanges { target: moreButton; text: qsTr("most..."); }
                             PropertyChanges { target: mostButton; text: qsTr("less..."); }
+                            PropertyChanges { target: serverStats; text: OctreeStats.servers[index*3] +
+                                                                         OctreeStats.servers[index*3 + 1]; }
                         },
                         State {
                             name: "most"
                             PropertyChanges { target: moreButton; text: qsTr("less..."); }
                             PropertyChanges { target: mostButton; text: qsTr("least..."); }
+                            PropertyChanges { target: serverStats; text: OctreeStats.servers[index*3] +
+                                                                         OctreeStats.servers[index*3 + 1] +
+                                                                         OctreeStats.servers[index*3 + 2]; }
                         }
                     ]
                 } //servers column
diff --git a/interface/src/ui/OctreeStatsProvider.cpp b/interface/src/ui/OctreeStatsProvider.cpp
index e8d863e2b8..e51172ff55 100644
--- a/interface/src/ui/OctreeStatsProvider.cpp
+++ b/interface/src/ui/OctreeStatsProvider.cpp
@@ -9,11 +9,6 @@
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
 //
 
-#include <sstream>
-
-#include <QPalette>
-#include <QColor>
-
 #include "Application.h"
 
 #include "../octree/OctreePacketProcessor.h"
@@ -32,23 +27,6 @@ OctreeStatsProvider::OctreeStatsProvider(QObject* parent, NodeToOctreeSceneStats
     _updateTimer.setSingleShot(true);
 }
 
-void OctreeStatsProvider::moreless(const QString& link) {
-    QStringList linkDetails = link.split("-");
-    const int COMMAND_ITEM = 0;
-    const int SERVER_NUMBER_ITEM = 1;
-    QString serverNumberString = linkDetails[SERVER_NUMBER_ITEM];
-    QString command = linkDetails[COMMAND_ITEM];
-    int serverNumber = serverNumberString.toInt();
-    
-//    if (command == "more") {
-//        _extraServerDetails[serverNumber-1] = MORE;
-//    } else if (command == "most") {
-//        _extraServerDetails[serverNumber-1] = MOST;
-//    } else {
-//        _extraServerDetails[serverNumber-1] = LESS;
-//    }
-}
-
 /*
  * Start updates statistics
 */
@@ -66,9 +44,9 @@ void OctreeStatsProvider::stopUpdates() {
 
 //int OctreeStatsProvider::AddStatItem(const char* caption, unsigned colorRGBA) {
 //    const int STATS_LABEL_WIDTH = 600;
-    
+
 //    _statCount++; // increment our current stat count
-    
+
 //    if (colorRGBA == 0) {
 //        static unsigned rotatingColors[] = { GREENISH, YELLOWISH, GREYISH };
 //        colorRGBA = rotatingColors[_statCount % (sizeof(rotatingColors)/sizeof(rotatingColors[0]))];
@@ -77,7 +55,7 @@ void OctreeStatsProvider::stopUpdates() {
 
 //    // Set foreground color to 62.5% brightness of the meter (otherwise will be hard to read on the bright background)
 //    //QPalette palette = label->palette();
-    
+
 //    // This goofiness came from the bandwidth meter code, it basically stores a color in an unsigned and extracts it
 //    unsigned rgb = colorRGBA >> 8;
 //    const unsigned colorpart1 = 0xfefefeu;
@@ -87,7 +65,7 @@ void OctreeStatsProvider::stopUpdates() {
 //    label->setPalette(palette);
 //    _form->addRow(QString(" %1:").arg(caption), label);
 //    label->setFixedWidth(STATS_LABEL_WIDTH);
-    
+
 //    return _statCount;
 //}
 
@@ -278,8 +256,7 @@ void OctreeStatsProvider::updateOctreeServers() {
     int serverCount = 0;
 
     showOctreeServersOfType(serverCount, NodeType::EntityServer, "Entity",
-            qApp->getEntityServerJurisdictions());
-    //qDebug() << "vladest: octree servers:" << serverCount;
+                            qApp->getEntityServerJurisdictions());
     if (m_serversNum != serverCount) {
         m_serversNum = serverCount;
         emit serversNumChanged(m_serversNum);
@@ -287,34 +264,25 @@ void OctreeStatsProvider::updateOctreeServers() {
 }
 
 void OctreeStatsProvider::showOctreeServersOfType(int& serverCount, NodeType_t serverType, const char* serverTypeName,
-                                                NodeToJurisdictionMap& serverJurisdictions) {
-                                                
-    QLocale locale(QLocale::English);
-    
+                                                  NodeToJurisdictionMap& serverJurisdictions) {
+
+    m_servers.clear();
+
     auto nodeList = DependencyManager::get<NodeList>();
-    nodeList->eachNode([&](const SharedNodePointer& node){
+    nodeList->eachNode([&](const SharedNodePointer& node) {
         
         // only send to the NodeTypes that are NodeType_t_VOXEL_SERVER
         if (node->getType() == serverType) {
             serverCount++;
             
-//            if (serverCount > _octreeServerLabelsCount) {
-//                QString label = QString("%1 Server %2").arg(serverTypeName).arg(serverCount);
-//                //int thisServerRow = _octreeServerLables[serverCount-1] = AddStatItem(label.toUtf8().constData());
-////                _labels[thisServerRow]->setTextFormat(Qt::RichText);
-////                _labels[thisServerRow]->setTextInteractionFlags(Qt::TextBrowserInteraction);
-////                connect(_labels[thisServerRow], SIGNAL(linkActivated(const QString&)), this, SLOT(moreless(const QString&)));
-//                _octreeServerLabelsCount++;
-//            }
-            
-            std::stringstream serverDetails("");
-            std::stringstream extraDetails("");
-            std::stringstream linkDetails("");
+            QString lesserDetails;
+            QString moreDetails;
+            QString mostDetails;
             
             if (node->getActiveSocket()) {
-                serverDetails << "active ";
+                lesserDetails += "active ";
             } else {
-                serverDetails << "inactive ";
+                lesserDetails += "inactive ";
             }
             
             QUuid nodeUUID = node->getUUID();
@@ -323,9 +291,9 @@ void OctreeStatsProvider::showOctreeServersOfType(int& serverCount, NodeType_t s
             // missing at least one jurisdiction
             serverJurisdictions.withReadLock([&] {
                 if (serverJurisdictions.find(nodeUUID) == serverJurisdictions.end()) {
-                    serverDetails << " unknown jurisdiction ";
+                    lesserDetails += " unknown jurisdiction ";
                     return;
-                } 
+                }
                 const JurisdictionMap& map = serverJurisdictions[nodeUUID];
 
                 auto rootCode = map.getRootOctalCode();
@@ -336,135 +304,90 @@ void OctreeStatsProvider::showOctreeServersOfType(int& serverCount, NodeType_t s
                     VoxelPositionSize rootDetails;
                     voxelDetailsForCode(rootCode.get(), rootDetails);
                     AACube serverBounds(glm::vec3(rootDetails.x, rootDetails.y, rootDetails.z), rootDetails.s);
-                    serverDetails << " jurisdiction: "
-                        << qPrintable(rootCodeHex)
-                        << " ["
-                        << rootDetails.x << ", "
-                        << rootDetails.y << ", "
-                        << rootDetails.z << ": "
-                        << rootDetails.s << "] ";
+                    lesserDetails += QString(" jurisdiction: %1 [%2, %3, %4: %5]")
+                            .arg(rootCodeHex)
+                            .arg(rootDetails.x)
+                            .arg(rootDetails.y)
+                            .arg(rootDetails.z)
+                            .arg(rootDetails.s);
                 } else {
-                    serverDetails << " jurisdiction has no rootCode";
+                    lesserDetails += " jurisdiction has no rootCode";
                 } // root code
             });
             
             // now lookup stats details for this server...
-            if (/*_extraServerDetails[serverCount-1] != LESS*/true) {
-                NodeToOctreeSceneStats* sceneStats = qApp->getOcteeSceneStats();
-                sceneStats->withReadLock([&] {
-                    if (sceneStats->find(nodeUUID) != sceneStats->end()) {
-                        OctreeSceneStats& stats = sceneStats->at(nodeUUID);
-/*
-                        switch (_extraServerDetails[serverCount - 1]) {
-                        case MOST: {
-                            extraDetails << "<br/>";
+            NodeToOctreeSceneStats* sceneStats = qApp->getOcteeSceneStats();
+            sceneStats->withReadLock([&] {
+                if (sceneStats->find(nodeUUID) != sceneStats->end()) {
+                    OctreeSceneStats& stats = sceneStats->at(nodeUUID);
 
-                            float lastFullEncode = stats.getLastFullTotalEncodeTime() / USECS_PER_MSEC;
-                            float lastFullSend = stats.getLastFullElapsedTime() / USECS_PER_MSEC;
-                            float lastFullSendInSeconds = stats.getLastFullElapsedTime() / USECS_PER_SECOND;
-                            float lastFullPackets = stats.getLastFullTotalPackets();
-                            float lastFullPPS = lastFullPackets;
-                            if (lastFullSendInSeconds > 0) {
-                                lastFullPPS = lastFullPackets / lastFullSendInSeconds;
-                            }
-
-                            QString lastFullEncodeString = locale.toString(lastFullEncode);
-                            QString lastFullSendString = locale.toString(lastFullSend);
-                            QString lastFullPacketsString = locale.toString(lastFullPackets);
-                            QString lastFullBytesString = locale.toString((uint)stats.getLastFullTotalBytes());
-                            QString lastFullPPSString = locale.toString(lastFullPPS);
-
-                            extraDetails << "<br/>" << "Last Full Scene... " <<
-                                "Encode: " << qPrintable(lastFullEncodeString) << " ms " <<
-                                "Send: " << qPrintable(lastFullSendString) << " ms " <<
-                                "Packets: " << qPrintable(lastFullPacketsString) << " " <<
-                                "Bytes: " << qPrintable(lastFullBytesString) << " " <<
-                                "Rate: " << qPrintable(lastFullPPSString) << " PPS";
-
-                            for (int i = 0; i < OctreeSceneStats::ITEM_COUNT; i++) {
-                                OctreeSceneStats::Item item = (OctreeSceneStats::Item)(i);
-                                OctreeSceneStats::ItemInfo& itemInfo = stats.getItemInfo(item);
-                                extraDetails << "<br/>" << itemInfo.caption << " " << stats.getItemValue(item);
-                            }
-                        } // fall through... since MOST has all of MORE
-                        case MORE: {
-                            QString totalString = locale.toString((uint)stats.getTotalElements());
-                            QString internalString = locale.toString((uint)stats.getTotalInternal());
-                            QString leavesString = locale.toString((uint)stats.getTotalLeaves());
-
-                            serverDetails << "<br/>" << "Node UUID: " << qPrintable(nodeUUID.toString()) << " ";
-
-                            serverDetails << "<br/>" << "Elements: " <<
-                                qPrintable(totalString) << " total " <<
-                                qPrintable(internalString) << " internal " <<
-                                qPrintable(leavesString) << " leaves ";
-
-                            QString incomingPacketsString = locale.toString((uint)stats.getIncomingPackets());
-                            QString incomingBytesString = locale.toString((uint)stats.getIncomingBytes());
-                            QString incomingWastedBytesString = locale.toString((uint)stats.getIncomingWastedBytes());
-                            const SequenceNumberStats& seqStats = stats.getIncomingOctreeSequenceNumberStats();
-                            QString incomingOutOfOrderString = locale.toString((uint)seqStats.getOutOfOrder());
-                            QString incomingLateString = locale.toString((uint)seqStats.getLate());
-                            QString incomingUnreasonableString = locale.toString((uint)seqStats.getUnreasonable());
-                            QString incomingEarlyString = locale.toString((uint)seqStats.getEarly());
-                            QString incomingLikelyLostString = locale.toString((uint)seqStats.getLost());
-                            QString incomingRecovered = locale.toString((uint)seqStats.getRecovered());
-
-                            qint64 clockSkewInUsecs = node->getClockSkewUsec();
-                            QString formattedClockSkewString = formatUsecTime(clockSkewInUsecs);
-                            qint64 clockSkewInMS = clockSkewInUsecs / (qint64)USECS_PER_MSEC;
-                            QString incomingFlightTimeString = locale.toString((int)stats.getIncomingFlightTimeAverage());
-                            QString incomingPingTimeString = locale.toString(node->getPingMs());
-                            QString incomingClockSkewString = locale.toString(clockSkewInMS);
-
-                            serverDetails << "<br/>" << "Incoming Packets: " << qPrintable(incomingPacketsString) <<
-                                "/ Lost: " << qPrintable(incomingLikelyLostString) <<
-                                "/ Recovered: " << qPrintable(incomingRecovered);
-
-                            serverDetails << "<br/>" << " Out of Order: " << qPrintable(incomingOutOfOrderString) <<
-                                "/ Early: " << qPrintable(incomingEarlyString) <<
-                                "/ Late: " << qPrintable(incomingLateString) <<
-                                "/ Unreasonable: " << qPrintable(incomingUnreasonableString);
-
-                            serverDetails << "<br/>" <<
-                                " Average Flight Time: " << qPrintable(incomingFlightTimeString) << " msecs";
-
-                            serverDetails << "<br/>" <<
-                                " Average Ping Time: " << qPrintable(incomingPingTimeString) << " msecs";
-
-                            serverDetails << "<br/>" <<
-                                " Average Clock Skew: " << qPrintable(incomingClockSkewString) << " msecs" << 
-                                " [" << qPrintable(formattedClockSkewString) << "]";
-
-
-                            serverDetails << "<br/>" << "Incoming" <<
-                                " Bytes: " << qPrintable(incomingBytesString) <<
-                                " Wasted Bytes: " << qPrintable(incomingWastedBytesString);
-
-                            serverDetails << extraDetails.str();
-                            if (_extraServerDetails[serverCount - 1] == MORE) {
-                                linkDetails << "   " << " [<a href='most-" << serverCount << "'>most...</a>]";
-                                linkDetails << "   " << " [<a href='less-" << serverCount << "'>less...</a>]";
-                            } else {
-                                linkDetails << "   " << " [<a href='more-" << serverCount << "'>less...</a>]";
-                                linkDetails << "   " << " [<a href='less-" << serverCount << "'>least...</a>]";
-                            }
-
-                        } break;
-                        case LESS: {
-                            // nothing
-                        } break;
-                        }*/
+                    float lastFullEncode = stats.getLastFullTotalEncodeTime() / USECS_PER_MSEC;
+                    float lastFullSend = stats.getLastFullElapsedTime() / USECS_PER_MSEC;
+                    float lastFullSendInSeconds = stats.getLastFullElapsedTime() / USECS_PER_SECOND;
+                    float lastFullPackets = stats.getLastFullTotalPackets();
+                    float lastFullPPS = lastFullPackets;
+                    if (lastFullSendInSeconds > 0) {
+                        lastFullPPS = lastFullPackets / lastFullSendInSeconds;
                     }
-                });
-            } else {
-                linkDetails << "   " << " [<a href='more-" << serverCount << "'>more...</a>]";
-                linkDetails << "   " << " [<a href='most-" << serverCount << "'>most...</a>]";
-            }
-            serverDetails << linkDetails.str();
-            //_labels[_octreeServerLables[serverCount - 1]]->setText(serverDetails.str().c_str());
+
+                    mostDetails += QString("<br/><br/>Last Full Scene... Encode: %1 ms Send: %2 ms Packets: %3 Bytes: %4 Rate: %5 PPS")
+                            .arg(lastFullEncode)
+                            .arg(lastFullSend)
+                            .arg(lastFullPackets)
+                            .arg(stats.getLastFullTotalBytes())
+                            .arg(lastFullPPS);
+
+                    for (int i = 0; i < OctreeSceneStats::ITEM_COUNT; i++) {
+                        OctreeSceneStats::Item item = (OctreeSceneStats::Item)(i);
+                        OctreeSceneStats::ItemInfo& itemInfo = stats.getItemInfo(item);
+                        mostDetails += QString("<br/> %1 %2")
+                                .arg(itemInfo.caption).arg(stats.getItemValue(item));
+                    }
+
+                    moreDetails += "<br/>Node UUID: " +nodeUUID.toString() + " ";
+
+                    moreDetails += QString("<br/>Elements: %1 total %2 internal %3 leaves ")
+                            .arg(stats.getTotalElements())
+                            .arg(stats.getTotalInternal())
+                            .arg(stats.getTotalLeaves());
+
+                    const SequenceNumberStats& seqStats = stats.getIncomingOctreeSequenceNumberStats();
+                    qint64 clockSkewInUsecs = node->getClockSkewUsec();
+                    qint64 clockSkewInMS = clockSkewInUsecs / (qint64)USECS_PER_MSEC;
+
+                    moreDetails += QString("<br/>Incoming Packets: %1/ Lost: %2/ Recovered: %3")
+                            .arg(stats.getIncomingPackets())
+                            .arg(seqStats.getLost())
+                            .arg(seqStats.getRecovered());
+
+                    moreDetails += QString("<br/> Out of Order: %1/ Early: %2/ Late: %3/ Unreasonable: %4")
+                            .arg(seqStats.getOutOfOrder())
+                            .arg(seqStats.getEarly())
+                            .arg(seqStats.getLate())
+                            .arg(seqStats.getUnreasonable());
+
+                    moreDetails += QString("<br/> Average Flight Time: %1 msecs")
+                            .arg(stats.getIncomingFlightTimeAverage());
+
+                    moreDetails += QString("<br/> Average Ping Time: %1 msecs")
+                            .arg(node->getPingMs());
+
+                    moreDetails += QString("<br/> Average Clock Skew: %1 msecs [%2]")
+                            .arg(clockSkewInMS)
+                            .arg(formatUsecTime(clockSkewInUsecs));
+
+
+                    moreDetails += QString("<br/>Incoming Bytes: %1 Wasted Bytes: %2")
+                            .arg(stats.getIncomingBytes())
+                            .arg(stats.getIncomingWastedBytes());
+                }
+            });
+            m_servers.append(lesserDetails);
+            m_servers.append(moreDetails);
+            m_servers.append(mostDetails);
         } // is VOXEL_SERVER
     });
+    emit serversChanged(m_servers);
 }
 
 
diff --git a/interface/src/ui/OctreeStatsProvider.h b/interface/src/ui/OctreeStatsProvider.h
index 6fc3e091f4..6c4f27149d 100644
--- a/interface/src/ui/OctreeStatsProvider.h
+++ b/interface/src/ui/OctreeStatsProvider.h
@@ -14,6 +14,7 @@
 
 #include <OctreeSceneStats.h>
 #include <QTimer>
+#include <QQmlListProperty>
 
 #include "DependencyManager.h"
 
@@ -38,6 +39,8 @@ class OctreeStatsProvider : public QObject, public Dependency {
     Q_PROPERTY(QString entityUpdateTime READ entityUpdateTime NOTIFY entityUpdateTimeChanged)
     Q_PROPERTY(QString entityUpdates READ entityUpdates NOTIFY entityUpdatesChanged)
 
+    Q_PROPERTY(QStringList servers READ servers NOTIFY serversChanged)
+
 public:
     OctreeStatsProvider(QObject* parent, NodeToOctreeSceneStats* model);
     ~OctreeStatsProvider();
@@ -88,6 +91,10 @@ public:
         return m_entityUpdates;
     }
 
+    QStringList servers() const {
+        return m_servers;
+    }
+
 signals:
 
     void serversNumChanged(int serversNum);
@@ -103,8 +110,9 @@ signals:
     void entityUpdateTimeChanged(const QString &entityUpdateTime);
     void entityUpdatesChanged(const QString &entityUpdates);
 
+    void serversChanged(const QStringList &servers);
+
 public slots:
-    void moreless(const QString& link);
     void startUpdates();
     void stopUpdates();
 
@@ -139,6 +147,7 @@ private:
     QString m_outboundEditPackets;
     QString m_entityUpdateTime;
     QString m_entityUpdates;
+    QStringList m_servers;
 };
 
 #endif // hifi_OctreeStatsProvider_h

From e2a4011b05edff03847e80fe4930466db6e31958 Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Tue, 14 Mar 2017 19:10:41 +0100
Subject: [PATCH 131/247] Coloring implemented

---
 .../hifi/dialogs/TabletEntityStatistics.qml   | 12 ++++++
 .../dialogs/TabletEntityStatisticsItem.qml    |  1 +
 interface/src/ui/OctreeStatsProvider.cpp      | 40 ++++++-------------
 interface/src/ui/OctreeStatsProvider.h        |  3 +-
 4 files changed, 27 insertions(+), 29 deletions(-)

diff --git a/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml b/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml
index 9d3829e743..35ee58be0c 100644
--- a/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml
+++ b/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml
@@ -62,6 +62,7 @@ Rectangle {
                 titleText: qsTr("Elements on Servers:")
                 text: OctreeStats.serverElements
                 colorScheme: root.colorScheme
+                color: OctreeStats.getColor()
             }
 
             TabletEntityStatisticsItem {
@@ -70,6 +71,7 @@ Rectangle {
                 titleText: qsTr("Local Elements:")
                 text: OctreeStats.localElements
                 colorScheme: root.colorScheme
+                color: OctreeStats.getColor()
             }
 
             TabletEntityStatisticsItem {
@@ -78,6 +80,7 @@ Rectangle {
                 titleText: qsTr("Elements Memory:")
                 text: OctreeStats.localElementsMemory
                 colorScheme: root.colorScheme
+                color: OctreeStats.getColor()
             }
 
             TabletEntityStatisticsItem {
@@ -86,6 +89,7 @@ Rectangle {
                 titleText: qsTr("Sending Mode:")
                 text: OctreeStats.sendingMode
                 colorScheme: root.colorScheme
+                color: OctreeStats.getColor()
             }
 
             TabletEntityStatisticsItem {
@@ -94,6 +98,7 @@ Rectangle {
                 titleText: qsTr("Incoming Entity Packets:")
                 text: OctreeStats.processedPackets
                 colorScheme: root.colorScheme
+                color: OctreeStats.getColor()
             }
 
             TabletEntityStatisticsItem {
@@ -102,6 +107,7 @@ Rectangle {
                 titleText: qsTr("Processed Packets Elements:")
                 text: OctreeStats.processedPacketsElements
                 colorScheme: root.colorScheme
+                color: OctreeStats.getColor()
             }
 
             TabletEntityStatisticsItem {
@@ -110,6 +116,7 @@ Rectangle {
                 titleText: qsTr("Processed Packets Entities:")
                 text: OctreeStats.processedPacketsEntities
                 colorScheme: root.colorScheme
+                color: OctreeStats.getColor()
             }
 
             TabletEntityStatisticsItem {
@@ -118,6 +125,7 @@ Rectangle {
                 titleText: qsTr("Processed Packets Timing:")
                 text: OctreeStats.processedPacketsTiming
                 colorScheme: root.colorScheme
+                color: OctreeStats.getColor()
             }
 
             TabletEntityStatisticsItem {
@@ -126,6 +134,7 @@ Rectangle {
                 titleText: qsTr("Outbound Entity Packets:")
                 text: OctreeStats.outboundEditPackets
                 colorScheme: root.colorScheme
+                color: OctreeStats.getColor()
             }
 
             TabletEntityStatisticsItem {
@@ -134,6 +143,7 @@ Rectangle {
                 titleText: qsTr("Entity Update Time:")
                 text: OctreeStats.entityUpdateTime
                 colorScheme: root.colorScheme
+                color: OctreeStats.getColor()
             }
 
             TabletEntityStatisticsItem {
@@ -142,6 +152,7 @@ Rectangle {
                 titleText: qsTr("Entity Updates:")
                 text: OctreeStats.entityUpdates
                 colorScheme: root.colorScheme
+                color: OctreeStats.getColor()
             }
 
             Repeater {
@@ -160,6 +171,7 @@ Rectangle {
                         width: parent.width
                         titleText: qsTr("Entity Server ") + (index+1) + ":"
                         colorScheme: root.colorScheme
+                        color: OctreeStats.getColor()
                     }
 
                     Row {
diff --git a/interface/resources/qml/hifi/dialogs/TabletEntityStatisticsItem.qml b/interface/resources/qml/hifi/dialogs/TabletEntityStatisticsItem.qml
index c4509d5a76..894a4c1813 100644
--- a/interface/resources/qml/hifi/dialogs/TabletEntityStatisticsItem.qml
+++ b/interface/resources/qml/hifi/dialogs/TabletEntityStatisticsItem.qml
@@ -21,6 +21,7 @@ Column {
 
     property alias titleText: titleLabel.text
     property alias text: valueLabel.text
+    property alias color: valueLabel.color
 
     HifiConstants { id: hifi }
 
diff --git a/interface/src/ui/OctreeStatsProvider.cpp b/interface/src/ui/OctreeStatsProvider.cpp
index e51172ff55..95092d4253 100644
--- a/interface/src/ui/OctreeStatsProvider.cpp
+++ b/interface/src/ui/OctreeStatsProvider.cpp
@@ -41,33 +41,17 @@ void OctreeStatsProvider::stopUpdates() {
     _updateTimer.stop();
 }
 
-
-//int OctreeStatsProvider::AddStatItem(const char* caption, unsigned colorRGBA) {
-//    const int STATS_LABEL_WIDTH = 600;
-
-//    _statCount++; // increment our current stat count
-
-//    if (colorRGBA == 0) {
-//        static unsigned rotatingColors[] = { GREENISH, YELLOWISH, GREYISH };
-//        colorRGBA = rotatingColors[_statCount % (sizeof(rotatingColors)/sizeof(rotatingColors[0]))];
-//    }
-//    //QLabel* label = _labels[_statCount] = new QLabel();
-
-//    // Set foreground color to 62.5% brightness of the meter (otherwise will be hard to read on the bright background)
-//    //QPalette palette = label->palette();
-
-//    // This goofiness came from the bandwidth meter code, it basically stores a color in an unsigned and extracts it
-//    unsigned rgb = colorRGBA >> 8;
-//    const unsigned colorpart1 = 0xfefefeu;
-//    const unsigned colorpart2 = 0xf8f8f8;
-//    rgb = ((rgb & colorpart1) >> 1) + ((rgb & colorpart2) >> 3);
-//    palette.setColor(QPalette::WindowText, QColor::fromRgb(rgb));
-//    label->setPalette(palette);
-//    _form->addRow(QString(" %1:").arg(caption), label);
-//    label->setFixedWidth(STATS_LABEL_WIDTH);
-
-//    return _statCount;
-//}
+QColor OctreeStatsProvider::getColor() const {
+    static int statIndex = 1;
+    static quint32 rotatingColors[] = { GREENISH, YELLOWISH, GREYISH };
+    quint32 colorRGBA = rotatingColors[statIndex % (sizeof(rotatingColors)/sizeof(rotatingColors[0]))];
+    quint32 rgb = colorRGBA >> 8;
+    const quint32 colorpart1 = 0xfefefeu;
+    const quint32 colorpart2 = 0xf8f8f8;
+    rgb = ((rgb & colorpart1) >> 1) + ((rgb & colorpart2) >> 3);
+    statIndex++;
+    return QColor::fromRgb(rgb);
+}
 
 OctreeStatsProvider::~OctreeStatsProvider() {
     _updateTimer.stop();
@@ -108,7 +92,7 @@ void OctreeStatsProvider::updateOctreeStatsData() {
     // Only refresh our stats every once in a while, unless asked for realtime
     //if no realtime, then update once per second. Otherwise consider 60FPS update, ie 16ms interval
     //int updateinterval = Menu::getInstance()->isOptionChecked(MenuOption::ShowRealtimeEntityStats) ? 16 : 1000;
-    _updateTimer.start(SAMPLING_WINDOW/1000);
+    _updateTimer.start(REFRESH_AFTER/1000);
 
     const int FLOATING_POINT_PRECISION = 3;
 
diff --git a/interface/src/ui/OctreeStatsProvider.h b/interface/src/ui/OctreeStatsProvider.h
index 6c4f27149d..c919ca102f 100644
--- a/interface/src/ui/OctreeStatsProvider.h
+++ b/interface/src/ui/OctreeStatsProvider.h
@@ -14,7 +14,7 @@
 
 #include <OctreeSceneStats.h>
 #include <QTimer>
-#include <QQmlListProperty>
+#include <QColor>
 
 #include "DependencyManager.h"
 
@@ -115,6 +115,7 @@ signals:
 public slots:
     void startUpdates();
     void stopUpdates();
+    QColor getColor() const;
 
 private slots:
     void updateOctreeStatsData();

From 4c686eaa67e96953269f27934b4f0e494164c064 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Tue, 14 Mar 2017 21:20:41 +0100
Subject: [PATCH 132/247] fix tablet menu stack focus issue

---
 interface/resources/qml/hifi/tablet/TabletMenuStack.qml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/interface/resources/qml/hifi/tablet/TabletMenuStack.qml b/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
index 64d42acabb..f77ad0d4b8 100644
--- a/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
+++ b/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
@@ -51,6 +51,8 @@ Item {
             d.push(Qt.resolvedUrl(path));
             d.currentItem.eventBridge = tabletMenu.eventBridge
             d.currentItem.sendToScript.connect(tabletMenu.sendToScript);
+            d.currentItem.focus = true;
+            d.currentItem.forceActiveFocus();
             breadcrumbText.text = d.currentItem.title;
         }
 

From 3a788d31ded783d12a55f810c626511bb640fee8 Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidelity.io>
Date: Tue, 14 Mar 2017 15:34:41 -0700
Subject: [PATCH 133/247] Tablet Running Scripts dialog fixes

* The "Currrently Running" section is now visible by default, this includes the "Reload All" and "Remove All" buttons
* The entire dialog is flickable/scrollable.  We need to do this because the entire dialog is too tall to fit on the tablet.
* The keyboard now appears when the filter edit text has focus.
  The content is scrolled in such away that the focus edit field, and the tree view are above the keyboard.
---
 .../qml/hifi/dialogs/TabletRunningScripts.qml | 505 ++++++++++--------
 .../qml/hifi/tablet/TabletMenuStack.qml       |   6 +-
 2 files changed, 273 insertions(+), 238 deletions(-)

diff --git a/interface/resources/qml/hifi/dialogs/TabletRunningScripts.qml b/interface/resources/qml/hifi/dialogs/TabletRunningScripts.qml
index b4a1ab01b6..dee0d0e21f 100644
--- a/interface/resources/qml/hifi/dialogs/TabletRunningScripts.qml
+++ b/interface/resources/qml/hifi/dialogs/TabletRunningScripts.qml
@@ -79,266 +79,297 @@ Rectangle {
         scripts.stopAllScripts();
     }
 
-    Column {
+    Flickable {
+        id: flickable
         width: parent.width
-        HifiControls.TabletContentSection {
-            name: "Currently Running"
-            isFirst: true
+        height: parent.height - (keyboard.raised ? keyboard.raisedHeight : 0)
+        contentWidth: parent.width
+        contentHeight: column.childrenRect.height
+        clip: true
 
-            HifiControls.VerticalSpacer {}
+        Column {
+            id: column
+            width: parent.width
+            HifiControls.TabletContentSection {
+                id: firstSection
+                name: "Currently Running"
+                isFirst: true
 
-            Row {
-                spacing: hifi.dimensions.contentSpacing.x
+                HifiControls.VerticalSpacer {}
 
-                HifiControls.Button {
-                    text: "Reload All"
-                    color: hifi.buttons.black
-                    onClicked: reloadAll()
-                }
+                Row {
+                    spacing: hifi.dimensions.contentSpacing.x
 
-                HifiControls.Button {
-                    text: "Remove All"
-                    color: hifi.buttons.red
-                    onClicked: stopAll()
-                }
-            }
-
-            HifiControls.VerticalSpacer {
-                height: hifi.dimensions.controlInterlineHeight + 2  // Add space for border
-            }
-
-            HifiControls.Table {
-                model: runningScriptsModel
-                id: table
-                height: 185
-                colorScheme: hifi.colorSchemes.dark
-                anchors.left: parent.left
-                anchors.right: parent.right
-                expandSelectedRow: true
-
-                itemDelegate: Item {
-                    anchors {
-                        left: parent ? parent.left : undefined
-                        leftMargin: hifi.dimensions.tablePadding
-                        right: parent ? parent.right : undefined
-                        rightMargin: hifi.dimensions.tablePadding
+                    HifiControls.Button {
+                        text: "Reload All"
+                        color: hifi.buttons.black
+                        onClicked: reloadAll()
                     }
 
-                    FiraSansSemiBold {
-                        id: textItem
-                        text: styleData.value
-                        size: hifi.fontSizes.tableText
-                        color: table.colorScheme == hifi.colorSchemes.light
-                                   ? (styleData.selected ? hifi.colors.black : hifi.colors.baseGrayHighlight)
-                                   : (styleData.selected ? hifi.colors.black : hifi.colors.lightGrayText)
+                    HifiControls.Button {
+                        text: "Remove All"
+                        color: hifi.buttons.red
+                        onClicked: stopAll()
+                    }
+                }
+
+                HifiControls.VerticalSpacer {
+                    height: hifi.dimensions.controlInterlineHeight + 2  // Add space for border
+                }
+
+                HifiControls.Table {
+                    model: runningScriptsModel
+                    id: table
+                    height: 185
+                    colorScheme: hifi.colorSchemes.dark
+                    anchors.left: parent.left
+                    anchors.right: parent.right
+                    expandSelectedRow: true
+
+                    itemDelegate: Item {
                         anchors {
-                            left: parent.left
-                            right: parent.right
-                            top: parent.top
-                            topMargin: 3
+                            left: parent ? parent.left : undefined
+                            leftMargin: hifi.dimensions.tablePadding
+                            right: parent ? parent.right : undefined
+                            rightMargin: hifi.dimensions.tablePadding
                         }
 
-                        HiFiGlyphs {
-                            id: reloadButton
-                            text: hifi.glyphs.reloadSmall
-                            color: reloadButtonArea.pressed ? hifi.colors.white : parent.color
+                        FiraSansSemiBold {
+                            id: textItem
+                            text: styleData.value
+                            size: hifi.fontSizes.tableText
+                            color: table.colorScheme == hifi.colorSchemes.light
+                                ? (styleData.selected ? hifi.colors.black : hifi.colors.baseGrayHighlight)
+                            : (styleData.selected ? hifi.colors.black : hifi.colors.lightGrayText)
                             anchors {
-                                top: parent.top
-                                right: stopButton.left
-                                verticalCenter: parent.verticalCenter
-                            }
-                            MouseArea {
-                                id: reloadButtonArea
-                                anchors { fill: parent; margins: -2 }
-                                onClicked: reloadScript(model.url)
-                            }
-                        }
-
-                        HiFiGlyphs {
-                            id: stopButton
-                            text: hifi.glyphs.closeSmall
-                            color: stopButtonArea.pressed ? hifi.colors.white : parent.color
-                            anchors {
-                                top: parent.top
+                                left: parent.left
                                 right: parent.right
-                                verticalCenter: parent.verticalCenter
+                                top: parent.top
+                                topMargin: 3
                             }
-                            MouseArea {
-                                id: stopButtonArea
-                                anchors { fill: parent; margins: -2 }
-                                onClicked: stopScript(model.url)
+
+                            HiFiGlyphs {
+                                id: reloadButton
+                                text: hifi.glyphs.reloadSmall
+                                color: reloadButtonArea.pressed ? hifi.colors.white : parent.color
+                                anchors {
+                                    top: parent.top
+                                    right: stopButton.left
+                                    verticalCenter: parent.verticalCenter
+                                }
+                                MouseArea {
+                                    id: reloadButtonArea
+                                    anchors { fill: parent; margins: -2 }
+                                    onClicked: reloadScript(model.url)
+                                }
+                            }
+
+                            HiFiGlyphs {
+                                id: stopButton
+                                text: hifi.glyphs.closeSmall
+                                color: stopButtonArea.pressed ? hifi.colors.white : parent.color
+                                anchors {
+                                    top: parent.top
+                                    right: parent.right
+                                    verticalCenter: parent.verticalCenter
+                                }
+                                MouseArea {
+                                    id: stopButtonArea
+                                    anchors { fill: parent; margins: -2 }
+                                    onClicked: stopScript(model.url)
+                                }
+                            }
+
+                        }
+
+                        FiraSansSemiBold {
+                            text: runningScriptsModel.get(styleData.row) ? runningScriptsModel.get(styleData.row).url : ""
+                            elide: Text.ElideMiddle
+                            size: hifi.fontSizes.tableText
+                            color: table.colorScheme == hifi.colorSchemes.light
+                                ? (styleData.selected ? hifi.colors.black : hifi.colors.lightGray)
+                            : (styleData.selected ? hifi.colors.black : hifi.colors.lightGrayText)
+                            anchors {
+                                top: textItem.bottom
+                                left: parent.left
+                                right: parent.right
+                            }
+                            visible: styleData.selected
+                        }
+                    }
+
+                    TableViewColumn {
+                        role: "name"
+                    }
+                }
+
+                HifiControls.VerticalSpacer {
+                    height: hifi.dimensions.controlInterlineHeight + 2  // Add space for border
+                }
+            }
+
+            HifiControls.TabletContentSection {
+                name: "Load Scripts"
+
+                HifiControls.VerticalSpacer {}
+
+                Row {
+                    spacing: hifi.dimensions.contentSpacing.x
+
+                    HifiControls.Button {
+                        text: "from URL"
+                        color: hifi.buttons.black
+                        height: 26
+                        onClicked: fromUrlTimer.running = true
+
+                        // For some reason trigginer an API that enters
+                        // an internal event loop directly from the button clicked
+                        // trigger below causes the appliction to behave oddly.
+                        // Most likely because the button onClicked handling is never
+                        // completed until the function returns.
+                        // FIXME find a better way of handling the input dialogs that
+                        // doesn't trigger this.
+                        Timer {
+                            id: fromUrlTimer
+                            interval: 5
+                            repeat: false
+                            running: false
+                            onTriggered: ApplicationInterface.loadScriptURLDialog();
+                        }
+                    }
+
+                    HifiControls.Button {
+                        text: "from Disk"
+                        color: hifi.buttons.black
+                        height: 26
+                        onClicked: fromDiskTimer.running = true
+
+                        Timer {
+                            id: fromDiskTimer
+                            interval: 5
+                            repeat: false
+                            running: false
+                            onTriggered: ApplicationInterface.loadDialog();
+                        }
+                    }
+
+                    HifiControls.Button {
+                        text: "Load Defaults"
+                        color: hifi.buttons.black
+                        height: 26
+                        onClicked: loadDefaults()
+                    }
+                }
+
+                HifiControls.VerticalSpacer {}
+
+                HifiControls.TextField {
+                    id: filterEdit
+                    isSearchField: true
+                    anchors.left: parent.left
+                    anchors.right: parent.right
+                    colorScheme: hifi.colorSchemes.dark
+                    placeholderText: "Filter"
+                    onTextChanged: scriptsModel.filterRegExp = new RegExp("^.*" + text + ".*$", "i")
+                    Component.onCompleted: scriptsModel.filterRegExp = new RegExp("^.*$", "i")
+                    onActiveFocusChanged: {
+                        // raise the keyboard
+                        keyboard.raised = activeFocus;
+
+                        // scroll to the bottom of the content area.
+                        if (activeFocus) {
+                            flickable.contentY = (flickable.contentHeight - flickable.height);
+                        }
+                    }
+                }
+
+                HifiControls.VerticalSpacer {
+                    height: hifi.dimensions.controlInterlineHeight + 2  // Add space for border
+                }
+
+                HifiControls.Tree {
+                    id: treeView
+                    height: 155
+                    treeModel: scriptsModel
+                    colorScheme: hifi.colorSchemes.dark
+                    anchors.left: parent.left
+                    anchors.right: parent.right
+                }
+
+                HifiControls.VerticalSpacer {
+                    height: hifi.dimensions.controlInterlineHeight + 2  // Add space for border
+                }
+
+                HifiControls.TextField {
+                    id: selectedScript
+                    anchors.left: parent.left
+                    anchors.right: parent.right
+                    anchors.rightMargin: loadButton.width + hifi.dimensions.contentSpacing.x
+
+                    colorScheme: hifi.colorSchemes.dark
+                    readOnly: true
+
+                    Connections {
+                        target: treeView
+                        onCurrentIndexChanged: {
+                            var path = scriptsModel.data(treeView.currentIndex, 0x100)
+                            if (path) {
+                                selectedScript.text = path
+                            } else {
+                                selectedScript.text = ""
                             }
                         }
-
-                    }
-
-                    FiraSansSemiBold {
-                        text: runningScriptsModel.get(styleData.row) ? runningScriptsModel.get(styleData.row).url : ""
-                        elide: Text.ElideMiddle
-                        size: hifi.fontSizes.tableText
-                        color: table.colorScheme == hifi.colorSchemes.light
-                                   ? (styleData.selected ? hifi.colors.black : hifi.colors.lightGray)
-                                   : (styleData.selected ? hifi.colors.black : hifi.colors.lightGrayText)
-                        anchors {
-                            top: textItem.bottom
-                            left: parent.left
-                            right: parent.right
-                        }
-                        visible: styleData.selected
                     }
                 }
 
-                TableViewColumn {
-                    role: "name"
-                }
-            }
-
-            HifiControls.VerticalSpacer {
-                height: hifi.dimensions.controlInterlineHeight + 2  // Add space for border
-            }
-        }
-
-        HifiControls.TabletContentSection {
-            name: "Load Scripts"
-
-            HifiControls.VerticalSpacer {}
-
-            Row {
-                spacing: hifi.dimensions.contentSpacing.x
-
-                HifiControls.Button {
-                    text: "from URL"
-                    color: hifi.buttons.black
-                    height: 26
-                    onClicked: fromUrlTimer.running = true
-
-                    // For some reason trigginer an API that enters
-                    // an internal event loop directly from the button clicked
-                    // trigger below causes the appliction to behave oddly.
-                    // Most likely because the button onClicked handling is never
-                    // completed until the function returns.
-                    // FIXME find a better way of handling the input dialogs that
-                    // doesn't trigger this.
-                    Timer {
-                        id: fromUrlTimer
-                        interval: 5
-                        repeat: false
-                        running: false
-                        onTriggered: ApplicationInterface.loadScriptURLDialog();
-                    }
-                }
-
-                HifiControls.Button {
-                    text: "from Disk"
-                    color: hifi.buttons.black
-                    height: 26
-                    onClicked: fromDiskTimer.running = true
-
-                    Timer {
-                        id: fromDiskTimer
-                        interval: 5
-                        repeat: false
-                        running: false
-                        onTriggered: ApplicationInterface.loadDialog();
-                    }
-                }
-
-                HifiControls.Button {
-                    text: "Load Defaults"
-                    color: hifi.buttons.black
-                    height: 26
-                    onClicked: loadDefaults()
-                }
-            }
-
-            HifiControls.VerticalSpacer {}
-
-            HifiControls.TextField {
-                id: filterEdit
-                isSearchField: true
-                anchors.left: parent.left
-                anchors.right: parent.right
-                colorScheme: hifi.colorSchemes.dark
-                placeholderText: "Filter"
-                onTextChanged: scriptsModel.filterRegExp =  new RegExp("^.*" + text + ".*$", "i")
-                Component.onCompleted: scriptsModel.filterRegExp = new RegExp("^.*$", "i")
-            }
-
-            HifiControls.VerticalSpacer {
-                height: hifi.dimensions.controlInterlineHeight + 2  // Add space for border
-            }
-
-            HifiControls.Tree {
-                id: treeView
-                height: 155
-                treeModel: scriptsModel
-                colorScheme: hifi.colorSchemes.dark
-                anchors.left: parent.left
-                anchors.right: parent.right
-            }
-
-            HifiControls.VerticalSpacer {
-                height: hifi.dimensions.controlInterlineHeight + 2  // Add space for border
-            }
-
-            HifiControls.TextField {
-                id: selectedScript
-                anchors.left: parent.left
-                anchors.right: parent.right
-                anchors.rightMargin: loadButton.width + hifi.dimensions.contentSpacing.x
-
-                colorScheme: hifi.colorSchemes.dark
-                readOnly: true
-
-                Connections {
-                    target: treeView
-                    onCurrentIndexChanged: {
-                        var path = scriptsModel.data(treeView.currentIndex, 0x100)
-                        if (path) {
-                            selectedScript.text = path
-                        } else {
-                            selectedScript.text = ""
-                        }
-                    }
-                }
-            }
-
-            Item {
-                // Take the loadButton out of the column flow.
-                id: loadButtonContainer
-                anchors.top: selectedScript.top
-                anchors.right: parent.right
-
-                HifiControls.Button {
-                    id: loadButton
+                Item {
+                    // Take the loadButton out of the column flow.
+                    id: loadButtonContainer
+                    anchors.top: selectedScript.top
                     anchors.right: parent.right
 
-                    text: "Load"
-                    color: hifi.buttons.blue
-                    enabled: selectedScript.text != ""
-                    onClicked: root.loadScript(selectedScript.text)
+                    HifiControls.Button {
+                        id: loadButton
+                        anchors.right: parent.right
+
+                        text: "Load"
+                        color: hifi.buttons.blue
+                        enabled: selectedScript.text != ""
+                        onClicked: root.loadScript(selectedScript.text)
+                    }
+                }
+
+                HifiControls.VerticalSpacer {
+                    height: hifi.dimensions.controlInterlineHeight - (!isHMD ? 3 : 0)
+                }
+
+                HifiControls.TextAction {
+                    id: directoryButton
+                    icon: hifi.glyphs.script
+                    iconSize: 24
+                    text: "Reveal Scripts Folder"
+                    onClicked: fileDialogHelper.openDirectory(scripts.defaultScriptsPath)
+                    colorScheme: hifi.colorSchemes.dark
+                    anchors.left: parent.left
+                    visible: !isHMD
+                }
+
+                HifiControls.VerticalSpacer {
+                    height: hifi.dimensions.controlInterlineHeight - 3
+                    visible: !isHMD
                 }
             }
+        }
+    }
 
-            HifiControls.VerticalSpacer {
-                height: hifi.dimensions.controlInterlineHeight - (!isHMD ? 3 : 0)
-            }
-
-            HifiControls.TextAction {
-                id: directoryButton
-                icon: hifi.glyphs.script
-                iconSize: 24
-                text: "Reveal Scripts Folder"
-                onClicked: fileDialogHelper.openDirectory(scripts.defaultScriptsPath)
-                colorScheme: hifi.colorSchemes.dark
-                anchors.left: parent.left
-                visible: !isHMD
-            }
-
-            HifiControls.VerticalSpacer {
-                height: hifi.dimensions.controlInterlineHeight - 3
-                visible: !isHMD
-            }
+    HifiControls.Keyboard {
+        id: keyboard
+        raised: false
+        numeric: false
+        anchors {
+            bottom: parent.bottom
+            left: parent.left
+            right: parent.right
         }
     }
 }
diff --git a/interface/resources/qml/hifi/tablet/TabletMenuStack.qml b/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
index f77ad0d4b8..bacc11228e 100644
--- a/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
+++ b/interface/resources/qml/hifi/tablet/TabletMenuStack.qml
@@ -17,7 +17,7 @@ Item {
     id: root
     anchors.fill: parent
     objectName: "tabletMenuHandlerItem"
-    
+
     StackView {
         anchors.fill: parent
         id: d
@@ -54,6 +54,10 @@ Item {
             d.currentItem.focus = true;
             d.currentItem.forceActiveFocus();
             breadcrumbText.text = d.currentItem.title;
+            if (typeof bgNavBar !== "undefined") {
+                d.currentItem.y = bgNavBar.height;
+                d.currentItem.height -= bgNavBar.height;
+            }
         }
 
         function popSource() {

From 45829574c21c18028b605f6ffe36577fa1849d02 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Wed, 15 Mar 2017 00:02:42 +0100
Subject: [PATCH 134/247] Allow the user to bring up the tablet when a message
 is open in the tablet

---
 interface/src/Application.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 141b168f82..54398a4f07 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -1625,9 +1625,10 @@ QString Application::getUserAgent() {
 
 void Application::toggleTabletUI() const {
     auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    auto hmd = DependencyManager::get<HMDScriptingInterface>();
     TabletProxy* tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
     bool messageOpen = tablet->isMessageDialogOpen();
-    if (!messageOpen) {
+    if (!messageOpen || (messageOpen && !hmd->getShouldShowTablet())) {
         auto HMD = DependencyManager::get<HMDScriptingInterface>();
         HMD->toggleShouldShowTablet();
     }

From cb4bd5838192c75a41081d40eec92f0ded824d73 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Wed, 15 Mar 2017 14:31:13 +1300
Subject: [PATCH 135/247] Load controller scripts in their own script engine

---
 scripts/defaultScripts.js                     | 32 ++++++++-------
 .../system/controllers/controllerScripts.js   | 41 +++++++++++++++++++
 2 files changed, 59 insertions(+), 14 deletions(-)
 create mode 100644 scripts/system/controllers/controllerScripts.js

diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js
index 27efab134a..aba2f35e6b 100644
--- a/scripts/defaultScripts.js
+++ b/scripts/defaultScripts.js
@@ -11,7 +11,7 @@
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
 //
 
-var DEFAULT_SCRIPTS = [
+var DEFAULT_SCRIPTS_COMBINED = [
     "system/progress.js",
     "system/away.js",
     "system/audio.js",
@@ -27,17 +27,13 @@ var DEFAULT_SCRIPTS = [
     "system/tablet-users.js",
     "system/selectAudioDevice.js",
     "system/notifications.js",
-    "system/controllers/squeezeHands.js",
-    "system/controllers/controllerDisplayManager.js",
-    "system/controllers/handControllerGrab.js",
-    "system/controllers/handControllerPointer.js",
-    "system/controllers/grab.js",
-    "system/controllers/teleport.js",
-    "system/controllers/toggleAdvancedMovementForHandControllers.js",
     "system/dialTone.js",
     "system/firstPersonHMD.js",
     "system/tablet-ui/tabletUI.js"
 ];
+var DEFAULT_SCRIPTS_SEPARATE = [
+    "system/controllers/controllerScripts.js"
+];
 
 // add a menu item for debugging
 var MENU_CATEGORY = "Developer";
@@ -64,16 +60,24 @@ if (Menu.menuExists(MENU_CATEGORY) && !Menu.menuItemExists(MENU_CATEGORY, MENU_I
     });
 }
 
-function runDefaultsTogether() {
-    for (var j in DEFAULT_SCRIPTS) {
-        Script.include(DEFAULT_SCRIPTS[j]);
+function loadSeparateDefaults() {
+    for (var i in DEFAULT_SCRIPTS_SEPARATE) {
+        Script.load(DEFAULT_SCRIPTS_SEPARATE[i]);
     }
 }
 
-function runDefaultsSeparately() {
-    for (var i in DEFAULT_SCRIPTS) {
-        Script.load(DEFAULT_SCRIPTS[i]);
+function runDefaultsTogether() {
+    for (var i in DEFAULT_SCRIPTS_COMBINED) {
+        Script.include(DEFAULT_SCRIPTS_COMBINED[i]);
     }
+    loadSeparateDefaults();
+}
+
+function runDefaultsSeparately() {
+    for (var i in DEFAULT_SCRIPTS_COMBINED) {
+        Script.load(DEFAULT_SCRIPTS_COMBINED[i]);
+    }
+    loadSeparateDefaults();
 }
 
 // start all scripts
diff --git a/scripts/system/controllers/controllerScripts.js b/scripts/system/controllers/controllerScripts.js
new file mode 100644
index 0000000000..df11a1e5be
--- /dev/null
+++ b/scripts/system/controllers/controllerScripts.js
@@ -0,0 +1,41 @@
+"use strict";
+
+//  controllerScripts.js
+//
+//  Created by David Rowe on 15 Mar 2017.
+//  Copyright 2017 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
+//
+
+var CONTOLLER_SCRIPTS = [
+    "squeezeHands.js",
+    "controllerDisplayManager.js",
+    "handControllerGrab.js",
+    "handControllerPointer.js",
+    "grab.js",
+    "teleport.js",
+    "toggleAdvancedMovementForHandControllers.js",
+];
+
+var DEBUG_MENU_ITEM = "Debug defaultScripts.js";
+
+
+function runDefaultsTogether() {
+    for (var j in CONTOLLER_SCRIPTS) {
+        Script.include(CONTOLLER_SCRIPTS[j]);
+    }
+}
+
+function runDefaultsSeparately() {
+    for (var i in CONTOLLER_SCRIPTS) {
+        Script.load(CONTOLLER_SCRIPTS[i]);
+    }
+}
+
+if (Menu.isOptionChecked(DEBUG_MENU_ITEM)) {
+    runDefaultsSeparately();
+} else {
+    runDefaultsTogether();
+}

From 181c7da51a08ab860b00df0f80cfb7ec88373663 Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Wed, 15 Mar 2017 14:55:53 +0100
Subject: [PATCH 136/247] Fixed warnings

---
 interface/src/ui/OctreeStatsProvider.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/src/ui/OctreeStatsProvider.cpp b/interface/src/ui/OctreeStatsProvider.cpp
index 95092d4253..5f40b9916d 100644
--- a/interface/src/ui/OctreeStatsProvider.cpp
+++ b/interface/src/ui/OctreeStatsProvider.cpp
@@ -17,8 +17,8 @@
 OctreeStatsProvider::OctreeStatsProvider(QObject* parent, NodeToOctreeSceneStats* model) :
     QObject(parent),
     _model(model)
-  , _averageUpdatesPerSecond(SAMPLES_PER_SECOND)
   , _statCount(0)
+  , _averageUpdatesPerSecond(SAMPLES_PER_SECOND)
 {
     //schedule updates
     connect(&_updateTimer, &QTimer::timeout, this, &OctreeStatsProvider::updateOctreeStatsData);

From 816b0b5cfdc1beb2685da0272e7c18b52f142570 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Wed, 15 Mar 2017 09:02:32 -0800
Subject: [PATCH 137/247] unmangle merge

---
 libraries/entities-renderer/src/EntityTreeRenderer.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libraries/entities-renderer/src/EntityTreeRenderer.cpp b/libraries/entities-renderer/src/EntityTreeRenderer.cpp
index 8ed9cc23c7..668c732ca0 100644
--- a/libraries/entities-renderer/src/EntityTreeRenderer.cpp
+++ b/libraries/entities-renderer/src/EntityTreeRenderer.cpp
@@ -760,7 +760,7 @@ void EntityTreeRenderer::mouseDoublePressEvent(QMouseEvent* event) {
         PointerEvent pointerEvent(PointerEvent::Press, MOUSE_POINTER_ID,
             pos2D, rayPickResult.intersection,
             rayPickResult.surfaceNormal, ray.direction,
-            toPointerButton(*event), toPointerButtons(*event));
+            toPointerButton(*event), toPointerButtons(*event), Qt::NoModifier);
 
         emit mouseDoublePressOnEntity(rayPickResult.entityID, pointerEvent);
 

From b66ff1959543992073bcd12f3ccb423634a78fc8 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Wed, 15 Mar 2017 09:51:30 -0800
Subject: [PATCH 138/247] prefer-avatar-finger-over-stylus setting now defaults
 to true

---
 interface/src/Application.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 1fc2eeaacf..040ee46bb8 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -552,7 +552,7 @@ const float DEFAULT_DESKTOP_TABLET_SCALE_PERCENT = 75.0f;
 const bool DEFAULT_DESKTOP_TABLET_BECOMES_TOOLBAR = true;
 const bool DEFAULT_HMD_TABLET_BECOMES_TOOLBAR = false;
 const bool DEFAULT_TABLET_VISIBLE_TO_OTHERS = false;
-const bool DEFAULT_PREFER_AVATAR_FINGER_OVER_STYLUS = false;
+const bool DEFAULT_PREFER_AVATAR_FINGER_OVER_STYLUS = true;
 
 Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bool runServer, QString runServerPathOption) :
     QApplication(argc, argv),

From 4bc050e5835b542b7df09328af44e73cd465033c Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Wed, 15 Mar 2017 19:26:50 +0100
Subject: [PATCH 139/247] added tablet notification

---
 libraries/script-engine/src/TabletScriptingInterface.h |  9 ++++++++-
 libraries/ui/src/OffscreenUi.cpp                       |  4 ++++
 scripts/system/notifications.js                        | 10 ++++++++--
 3 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/libraries/script-engine/src/TabletScriptingInterface.h b/libraries/script-engine/src/TabletScriptingInterface.h
index 00624254d7..acc53653f8 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.h
+++ b/libraries/script-engine/src/TabletScriptingInterface.h
@@ -56,7 +56,14 @@ public:
     QQuickWindow* getTabletWindow();
 
     QObject* getFlags();
-
+signals:
+    /** jsdoc
+     * Signaled when a tablet message or dialog is created
+     * @function TabletProxy#tabletNotification
+     * @returns {Signal}
+     */
+    void tabletNotification();
+    
 private:
     void processMenuEvents(QObject* object, const QKeyEvent* event);
     void processTabletEvents(QObject* object, const QKeyEvent* event);
diff --git a/libraries/ui/src/OffscreenUi.cpp b/libraries/ui/src/OffscreenUi.cpp
index 982d58464f..1cb9045e79 100644
--- a/libraries/ui/src/OffscreenUi.cpp
+++ b/libraries/ui/src/OffscreenUi.cpp
@@ -223,6 +223,7 @@ QQuickItem* OffscreenUi::createMessageBox(Icon icon, const QString& title, const
         invokeResult =  QMetaObject::invokeMethod(tabletRoot, "messageBox",
                                                   Q_RETURN_ARG(QVariant, result),
                                                   Q_ARG(QVariant, QVariant::fromValue(map)));
+        emit tabletScriptingInterface->tabletNotification();
     }
 
     if (!invokeResult) {
@@ -430,6 +431,7 @@ QQuickItem* OffscreenUi::createInputDialog(const Icon icon, const QString& title
         invokeResult = QMetaObject::invokeMethod(tabletRoot, "inputDialog",
                                                  Q_RETURN_ARG(QVariant, result),
                                                  Q_ARG(QVariant, QVariant::fromValue(map)));
+        emit tabletScriptingInterface->tabletNotification();
     }
     if (!invokeResult) {
         qWarning() << "Failed to create message box";
@@ -457,6 +459,7 @@ QQuickItem* OffscreenUi::createCustomInputDialog(const Icon icon, const QString&
         invokeResult = QMetaObject::invokeMethod(tabletRoot, "inputDialog",
                                                  Q_RETURN_ARG(QVariant, result),
                                                  Q_ARG(QVariant, QVariant::fromValue(map)));
+        emit tabletScriptingInterface->tabletNotification();
     }
     
     if (!invokeResult) {
@@ -614,6 +617,7 @@ QString OffscreenUi::fileDialog(const QVariantMap& properties) {
         invokeResult =  QMetaObject::invokeMethod(tabletRoot, "fileDialog",
                                   Q_RETURN_ARG(QVariant, buildDialogResult),
                                   Q_ARG(QVariant, QVariant::fromValue(properties)));
+        emit tabletScriptingInterface->tabletNotification();
     }
 
     if (!invokeResult) {
diff --git a/scripts/system/notifications.js b/scripts/system/notifications.js
index b2ebb1fd46..0b7c2fa1b3 100644
--- a/scripts/system/notifications.js
+++ b/scripts/system/notifications.js
@@ -94,11 +94,13 @@ var NotificationType = {
     LOD_WARNING: 2,
     CONNECTION_REFUSED: 3,
     EDIT_ERROR: 4,
+    TABLET: 5,
     properties: [
         { text: "Snapshot" },
         { text: "Level of Detail" },
         { text: "Connection Refused" },
-        { text: "Edit error" }
+        { text: "Edit error" },
+        { text: "Tablet" }
     ],
     getTypeFromMenuItem: function(menuItemName) {
         if (menuItemName.substr(menuItemName.length - NOTIFICATION_MENU_ITEM_POST.length) !== NOTIFICATION_MENU_ITEM_POST) {
@@ -535,6 +537,10 @@ function onSnapshotTaken(pathStillSnapshot, pathAnimatedSnapshot, notify) {
     }
 }
 
+function tabletNotification() {
+    createNotification("Tablet need your attention", NotificationType.TABLET);
+}
+
 function processingGif() {
     createNotification("Processing GIF snapshot...", NotificationType.SNAPSHOT);
 }
@@ -641,7 +647,7 @@ Window.snapshotTaken.connect(onSnapshotTaken);
 Window.processingGif.connect(processingGif);
 Window.notifyEditError = onEditError;
 Window.notify = onNotify;
-
+Tablet.tabletNotification.connect(tabletNotification);
 setup();
 
 }()); // END LOCAL_SCOPE

From a5f1fb9e9a3124b73f751c167fb1a7147e840c8f Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Wed, 15 Mar 2017 19:45:30 +0100
Subject: [PATCH 140/247] fixed notification spelling error

---
 scripts/system/notifications.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/system/notifications.js b/scripts/system/notifications.js
index 0b7c2fa1b3..b527348733 100644
--- a/scripts/system/notifications.js
+++ b/scripts/system/notifications.js
@@ -538,7 +538,7 @@ function onSnapshotTaken(pathStillSnapshot, pathAnimatedSnapshot, notify) {
 }
 
 function tabletNotification() {
-    createNotification("Tablet need your attention", NotificationType.TABLET);
+    createNotification("Tablet needs your attention", NotificationType.TABLET);
 }
 
 function processingGif() {

From 856e15060da09c76ec12bb8f60184653e245c58d Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Wed, 15 Mar 2017 21:05:13 +0100
Subject: [PATCH 141/247] Implemented Domain Connection statistics for Tablet
 UI

---
 .../qml/hifi/dialogs/TabletDCDialog.qml       | 160 ++++++++++++++++++
 interface/src/Application.cpp                 |  15 +-
 interface/src/Application.h                   |   1 +
 interface/src/Menu.cpp                        |   2 +-
 interface/src/ui/DomainConnectionModel.cpp    | 101 +++++++++++
 interface/src/ui/DomainConnectionModel.h      |  47 +++++
 interface/src/ui/overlays/Web3DOverlay.cpp    |   2 +
 7 files changed, 326 insertions(+), 2 deletions(-)
 create mode 100644 interface/resources/qml/hifi/dialogs/TabletDCDialog.qml
 create mode 100644 interface/src/ui/DomainConnectionModel.cpp
 create mode 100644 interface/src/ui/DomainConnectionModel.h

diff --git a/interface/resources/qml/hifi/dialogs/TabletDCDialog.qml b/interface/resources/qml/hifi/dialogs/TabletDCDialog.qml
new file mode 100644
index 0000000000..b33b957e15
--- /dev/null
+++ b/interface/resources/qml/hifi/dialogs/TabletDCDialog.qml
@@ -0,0 +1,160 @@
+//
+//  TabletDCDialog.qml
+//
+//  Created by Vlad Stelmahovsky on  3/15/17
+//  Copyright 2017 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
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import Qt.labs.settings 1.0
+
+import "../../styles-uit"
+import "../../controls-uit" as HifiControls
+import "../../windows"
+
+Rectangle {
+    id: root
+    objectName: "DCConectionTiming"
+
+    property var eventBridge;
+    signal sendToScript(var message);
+    property bool isHMD: false
+
+    color: hifi.colors.baseGray
+
+    property int colorScheme: hifi.colorSchemes.dark
+
+    HifiConstants { id: hifi }
+
+    Component.onCompleted: DCModel.refresh()
+
+    Row {
+        id: header
+        anchors.top: parent.top
+        anchors.topMargin: hifi.dimensions.tabletMenuHeader
+        anchors.leftMargin: 5
+        anchors.rightMargin: 5
+        anchors.left: parent.left
+        anchors.right: parent.right
+
+        HifiControls.Label {
+            id: nameButton
+            text: qsTr("Name")
+            size: 15
+            color: "white"
+            horizontalAlignment: Text.AlignHCenter
+            verticalAlignment: Text.AlignVCenter
+            height: 40
+            width: 175
+        }
+        HifiControls.Label {
+            id: tsButton
+            text: qsTr("Timestamp\n(ms)")
+            size: 15
+            color: "white"
+            horizontalAlignment: Text.AlignHCenter
+            verticalAlignment: Text.AlignVCenter
+            height: 40
+            width: 125
+        }
+        HifiControls.Label {
+            id: deltaButton
+            text: qsTr("Delta\n(ms)")
+            size: 15
+            color: "white"
+            horizontalAlignment: Text.AlignHCenter
+            verticalAlignment: Text.AlignVCenter
+            height: 40
+            width: 80
+        }
+        HifiControls.Label {
+            id: elapseButton
+            text: qsTr("Time elapsed\n(ms)")
+            size: 15
+            color: "white"
+            horizontalAlignment: Text.AlignHCenter
+            verticalAlignment: Text.AlignVCenter
+            height: 40
+            width: 80
+        }
+    }
+
+    ListView {
+        anchors.leftMargin: 5
+        anchors.rightMargin: 5
+        anchors.left: parent.left
+        anchors.right: parent.right
+        anchors.top: header.bottom
+        anchors.topMargin: 5
+        anchors.bottom: refreshButton.top
+        anchors.bottomMargin: 10
+        clip: true
+        snapMode: ListView.SnapToItem
+
+        model: DCModel
+
+        delegate: Rectangle {
+            anchors.left: parent.left
+            anchors.right: parent.right
+            height: 30
+            color: index % 2 === 0 ? hifi.colors.baseGray : hifi.colors.lightGray
+            Row {
+                anchors.fill: parent
+                spacing: 5
+                HifiControls.Label {
+                    size: 15
+                    text: name
+                    color: "white"
+                    anchors.verticalCenter: parent.verticalCenter
+                    colorScheme: root.colorScheme
+                    width: nameButton.width
+                }
+                HifiControls.Label {
+                    size: 15
+                    text: timestamp
+                    color: "white"
+                    anchors.verticalCenter: parent.verticalCenter
+                    colorScheme: root.colorScheme
+                    horizontalAlignment: Text.AlignHCenter
+                    width: tsButton.width
+                }
+                HifiControls.Label {
+                    size: 15
+                    text: delta
+                    color: "white"
+                    anchors.verticalCenter: parent.verticalCenter
+                    colorScheme: root.colorScheme
+                    horizontalAlignment: Text.AlignHCenter
+                    width: deltaButton.width
+                }
+                HifiControls.Label {
+                    size: 15
+                    text: timeelapsed
+                    color: "white"
+                    anchors.verticalCenter: parent.verticalCenter
+                    colorScheme: root.colorScheme
+                    horizontalAlignment: Text.AlignHCenter
+                    width: elapseButton.width
+                }
+            }
+        }
+    }
+
+    HifiControls.Button {
+        id: refreshButton
+        anchors.left: parent.left
+        anchors.right: parent.right
+        anchors.bottom: parent.bottom
+        text: qsTr("Refresh")
+        color: hifi.buttons.blue
+        colorScheme: root.colorScheme
+        height: 30
+        onClicked: {
+            DCModel.refresh()
+        }
+    }
+}
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 040ee46bb8..d78fc295a7 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -171,6 +171,7 @@
 #include "ui/Stats.h"
 #include "ui/UpdateDialog.h"
 #include "ui/overlays/Overlays.h"
+#include "ui/DomainConnectionModel.h"
 #include "Util.h"
 #include "InterfaceParentFinder.h"
 #include "ui/OctreeStatsProvider.h"
@@ -501,6 +502,7 @@ bool setupEssentials(int& argc, char** argv) {
     DependencyManager::set<ToolbarScriptingInterface>();
     DependencyManager::set<UserActivityLoggerScriptingInterface>();
     DependencyManager::set<AssetMappingsScriptingInterface>();
+    DependencyManager::set<DomainConnectionModel>();
 
 #if defined(Q_OS_MAC) || defined(Q_OS_WIN)
     DependencyManager::set<SpeechRecognizer>();
@@ -6412,8 +6414,19 @@ void Application::loadEntityStatisticsDialog() {
     } else {
         tablet->pushOntoStack("../../hifi/dialogs/TabletEntityStatistics.qml");
     }
-
 }
+
+void Application::loadDomainConnectionDialog() {
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+    if (tablet->getToolbarMode() || (!tablet->getTabletRoot() && !isHMDMode())) {
+        auto dialogsManager = DependencyManager::get<DialogsManager>();
+        dialogsManager->showDomainConnectionDialog();
+    } else {
+        tablet->pushOntoStack("../../hifi/dialogs/TabletDCDialog.qml");
+    }
+}
+
 void Application::toggleLogDialog() {
     if (! _logDialog) {
         _logDialog = new LogDialog(nullptr, getLogger());
diff --git a/interface/src/Application.h b/interface/src/Application.h
index 2ed54a05d8..653b724364 100644
--- a/interface/src/Application.h
+++ b/interface/src/Application.h
@@ -405,6 +405,7 @@ public slots:
     Q_INVOKABLE void toggleMuteAudio();
     void loadLODToolsDialog();
     void loadEntityStatisticsDialog();
+    void loadDomainConnectionDialog();
 
 private slots:
     void showDesktop();
diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp
index 2ae66af14b..b95b4d28b9 100644
--- a/interface/src/Menu.cpp
+++ b/interface/src/Menu.cpp
@@ -572,7 +572,7 @@ Menu::Menu() {
     addActionToQMenuAndActionHash(networkMenu, MenuOption::DiskCacheEditor, 0,
         dialogsManager.data(), SLOT(toggleDiskCacheEditor()));
     addActionToQMenuAndActionHash(networkMenu, MenuOption::ShowDSConnectTable, 0,
-        dialogsManager.data(), SLOT(showDomainConnectionDialog()));
+        qApp, SLOT(loadDomainConnectionDialog()));
 
     #if (PR_BUILD || DEV_BUILD)
     addCheckableActionToQMenuAndActionHash(networkMenu, MenuOption::SendWrongProtocolVersion, 0, false,
diff --git a/interface/src/ui/DomainConnectionModel.cpp b/interface/src/ui/DomainConnectionModel.cpp
new file mode 100644
index 0000000000..b9e4c1348e
--- /dev/null
+++ b/interface/src/ui/DomainConnectionModel.cpp
@@ -0,0 +1,101 @@
+//
+//  DomainConnectionModel.cpp
+//
+//  Created by Vlad Stelmahovsky
+//  Copyright 2017 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
+//
+
+#include "DomainConnectionModel.h"
+#include <QLoggingCategory>
+
+#include <NodeList.h>
+#include <NumericalConstants.h>
+
+Q_LOGGING_CATEGORY(dcmodel, "hifi.dcmodel")
+
+DomainConnectionModel::DomainConnectionModel(QAbstractItemModel* parent) :
+    QAbstractItemModel(parent)
+{}
+
+DomainConnectionModel::~DomainConnectionModel() {
+}
+
+QVariant DomainConnectionModel::data(const QModelIndex& index, int role) const {
+    //sanity
+    const QMap<quint64, LimitedNodeList::ConnectionStep> &times =
+            DependencyManager::get<NodeList>()->getLastConnectionTimes();
+
+    if (!index.isValid() || index.row() >= times.size())
+        return QVariant();
+
+    // setup our data with the values from the NodeList
+    quint64 firstStepTime = times.firstKey() / USECS_PER_MSEC;
+    quint64 timestamp = times.keys().at(index.row());
+
+    quint64 stepTime = timestamp / USECS_PER_MSEC;
+    quint64 delta = 0;//(stepTime - lastStepTime);
+    quint64 elapsed = 0;//stepTime - firstStepTime;
+
+    if (index.row() > 0) {
+        quint64 prevstepTime = times.keys().at(index.row() - 1) / USECS_PER_MSEC;
+        delta = (stepTime - prevstepTime);
+        elapsed = stepTime - firstStepTime;
+    }
+
+    if (role == Qt::DisplayRole || role == DisplayNameRole) {
+        const QMetaObject &nodeListMeta = NodeList::staticMetaObject;
+        QMetaEnum stepEnum = nodeListMeta.enumerator(nodeListMeta.indexOfEnumerator("ConnectionStep"));
+        int stepIndex = (int) times.value(timestamp);
+        return stepEnum.valueToKey(stepIndex);
+    } else if (role == DeltaRole) {
+        return delta;
+    } else if (role == TimestampRole) {
+        return stepTime;
+    } else if (role == TimeElapsedRole) {
+        return elapsed;
+    }
+    return QVariant();
+}
+
+int DomainConnectionModel::rowCount(const QModelIndex& parent) const {
+    Q_UNUSED(parent)
+    const QMap<quint64, LimitedNodeList::ConnectionStep> &times =
+            DependencyManager::get<NodeList>()->getLastConnectionTimes();
+    return times.size();
+}
+
+QHash<int, QByteArray> DomainConnectionModel::roleNames() const {
+    QHash<int, QByteArray> roles;
+    roles.insert(DisplayNameRole, "name");
+    roles.insert(TimestampRole, "timestamp");
+    roles.insert(DeltaRole, "delta");
+    roles.insert(TimeElapsedRole, "timeelapsed");
+    return roles;
+}
+
+QModelIndex DomainConnectionModel::index(int row, int column, const QModelIndex &parent) const
+{
+    Q_UNUSED(parent)
+    return createIndex(row, column);
+}
+
+QModelIndex DomainConnectionModel::parent(const QModelIndex &child) const
+{
+    Q_UNUSED(child)
+    return QModelIndex();
+}
+
+int DomainConnectionModel::columnCount(const QModelIndex &parent) const
+{
+    Q_UNUSED(parent)
+    return 1;
+}
+
+void DomainConnectionModel::refresh() {
+    //inform view that we want refresh data
+    beginResetModel();
+    endResetModel();
+}
\ No newline at end of file
diff --git a/interface/src/ui/DomainConnectionModel.h b/interface/src/ui/DomainConnectionModel.h
new file mode 100644
index 0000000000..bf96012f12
--- /dev/null
+++ b/interface/src/ui/DomainConnectionModel.h
@@ -0,0 +1,47 @@
+//
+//  ScriptsUsersModel.h
+//
+//  Created by Vlad Stelmahovsky
+//  Copyright 2017 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
+//
+#pragma once
+
+#ifndef hifi_DomainConnectionModel_h
+#define hifi_DomainConnectionModel_h
+
+#include <QAbstractItemModel>
+#include <DependencyManager.h>
+
+class DomainConnectionModel : public QAbstractItemModel, public Dependency {
+    Q_OBJECT
+    SINGLETON_DEPENDENCY
+public:
+    DomainConnectionModel(QAbstractItemModel* parent = nullptr);
+    ~DomainConnectionModel();
+    QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
+    int rowCount(const QModelIndex& parent = QModelIndex()) const override;
+    QHash<int, QByteArray> roleNames() const override;
+
+    QModelIndex index(int row, int column, const QModelIndex& parent) const override;
+    QModelIndex parent(const QModelIndex& child) const override;
+    int columnCount(const QModelIndex& parent = QModelIndex()) const override;
+
+    enum Roles {
+        DisplayNameRole = Qt::UserRole,
+        TimestampRole,
+        DeltaRole,
+        TimeElapsedRole
+    };
+
+public slots:
+    void refresh();
+
+protected:
+
+private:
+};
+
+#endif // hifi_DomainConnectionModel_h
\ No newline at end of file
diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp
index e239a5e456..fa815421c7 100644
--- a/interface/src/ui/overlays/Web3DOverlay.cpp
+++ b/interface/src/ui/overlays/Web3DOverlay.cpp
@@ -45,6 +45,7 @@
 #include "AudioClient.h"
 #include "LODManager.h"
 #include "ui/OctreeStatsProvider.h"
+#include "ui/DomainConnectionModel.h"
 
 static const float DPI = 30.47f;
 static const float INCHES_TO_METERS = 1.0f / 39.3701f;
@@ -187,6 +188,7 @@ void Web3DOverlay::loadSourceURL() {
             _webSurface->getRootContext()->setContextProperty("Assets", DependencyManager::get<AssetMappingsScriptingInterface>().data());
             _webSurface->getRootContext()->setContextProperty("LODManager", DependencyManager::get<LODManager>().data());
             _webSurface->getRootContext()->setContextProperty("OctreeStats", DependencyManager::get<OctreeStatsProvider>().data());
+            _webSurface->getRootContext()->setContextProperty("DCModel", DependencyManager::get<DomainConnectionModel>().data());
             _webSurface->getRootContext()->setContextProperty("pathToFonts", "../../");
             tabletScriptingInterface->setQmlTabletRoot("com.highfidelity.interface.tablet.system", _webSurface->getRootItem(), _webSurface.data());
 

From a4c0ce4240ea130f72c5d9ed524df11c51ea95e0 Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Wed, 15 Mar 2017 22:13:37 +0100
Subject: [PATCH 142/247] Typo fix

---
 interface/src/ui/DomainConnectionModel.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/src/ui/DomainConnectionModel.h b/interface/src/ui/DomainConnectionModel.h
index bf96012f12..11ecb23bd2 100644
--- a/interface/src/ui/DomainConnectionModel.h
+++ b/interface/src/ui/DomainConnectionModel.h
@@ -1,5 +1,5 @@
 //
-//  ScriptsUsersModel.h
+//  DomainConnectionModel.h
 //
 //  Created by Vlad Stelmahovsky
 //  Copyright 2017 High Fidelity, Inc.
@@ -44,4 +44,4 @@ protected:
 private:
 };
 
-#endif // hifi_DomainConnectionModel_h
\ No newline at end of file
+#endif // hifi_DomainConnectionModel_h

From 42216b69863e3fb393510e0a50122f890621bda7 Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Wed, 15 Mar 2017 16:47:31 -0700
Subject: [PATCH 143/247] create import entities button on create tab

---
 interface/resources/qml/hifi/tablet/Edit.qml | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/interface/resources/qml/hifi/tablet/Edit.qml b/interface/resources/qml/hifi/tablet/Edit.qml
index 00856f8212..b9d7326c8e 100644
--- a/interface/resources/qml/hifi/tablet/Edit.qml
+++ b/interface/resources/qml/hifi/tablet/Edit.qml
@@ -7,6 +7,7 @@ import "../../controls"
 import "../toolbars"
 import HFWebEngineProfile 1.0
 import QtGraphicalEffects 1.0
+import "../../controls-uit" as HifiControls
 import "../../styles-uit"
 
 StackView {
@@ -17,6 +18,8 @@ StackView {
     property var eventBridge;
     signal sendToScript(var message);
 
+    HifiConstants { id: hifi }
+
     function pushSource(path) {
         editRoot.push(Qt.resolvedUrl(path));
         editRoot.currentItem.eventBridge = editRoot.eventBridge;
@@ -247,6 +250,18 @@ StackView {
                             }
                         ]
                     }
+
+                    HifiControls.Button {
+                        text: "Import Entities"
+                        color: hifi.buttons.black
+                        colorScheme: hifi.colorSchemes.dark
+                        anchors.right: parent.right
+                        anchors.rightMargin: 55
+                        anchors.left: parent.left
+                        anchors.leftMargin: 55
+                        anchors.top: assetServerButton.bottom
+                        anchors.topMargin: 35
+                    }
                 }
             }
 

From 10ebb6efd7ffabf97b3f26d262dbe6a54a2cfb6f Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Wed, 15 Mar 2017 16:55:21 -0700
Subject: [PATCH 144/247] simplify asset server button

---
 interface/resources/qml/hifi/tablet/Edit.qml | 101 +++----------------
 1 file changed, 13 insertions(+), 88 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/Edit.qml b/interface/resources/qml/hifi/tablet/Edit.qml
index b9d7326c8e..bb3385c874 100644
--- a/interface/resources/qml/hifi/tablet/Edit.qml
+++ b/interface/resources/qml/hifi/tablet/Edit.qml
@@ -158,97 +158,22 @@ StackView {
                         }
                     }
 
-                    Item {
+                    HifiControls.Button {
                         id: assetServerButton
-                        width: 370
-                        height: 38
-                        anchors.horizontalCenter: parent.horizontalCenter
+                        text: "Open This Domain's Asset Server"
+                        color: hifi.buttons.black
+                        colorScheme: hifi.colorSchemes.dark
+                        anchors.right: parent.right
+                        anchors.rightMargin: 55
+                        anchors.left: parent.left
+                        anchors.leftMargin: 55
                         anchors.top: createEntitiesFlow.bottom
                         anchors.topMargin: 35
-                        
-                        Rectangle {
-                            id: assetServerButtonBg
-                            color: "black"
-                            opacity: 1
-                            radius: 6
-                            anchors.right: parent.right
-                            anchors.rightMargin: 0
-                            anchors.left: parent.left
-                            anchors.leftMargin: 0
-                            anchors.bottom: parent.bottom
-                            anchors.bottomMargin: 0
-                            anchors.top: parent.top
-                            anchors.topMargin: 0
+                        onClicked: {
+                            editRoot.sendToScript({
+                                method: "newEntityButtonClicked", params: { buttonName: "openAssetBrowserButton" }
+                            });
                         }
-
-                        Rectangle {
-                            id: assetServerButtonGradient
-                            gradient: Gradient {
-                                GradientStop {
-                                    position: 0
-                                    color: "#383838"
-                                }
-
-                                GradientStop {
-                                    position: 1
-                                    color: "black"
-                                }
-                            }
-                            opacity: 1
-                            radius: 6
-                            anchors.right: parent.right
-                            anchors.rightMargin: 0
-                            anchors.left: parent.left
-                            anchors.leftMargin: 0
-                            anchors.bottom: parent.bottom
-                            anchors.bottomMargin: 0
-                            anchors.top: parent.top
-                            anchors.topMargin: 0
-                        }
-
-                        Text {
-                            color: "#ffffff"
-                            text: "OPEN THIS DOMAIN'S ASSET SERVER"
-                            font.bold: true
-                            font.pixelSize: 14
-                            anchors.centerIn: parent
-                        }
-
-                        MouseArea {
-                            anchors.fill: parent
-                            hoverEnabled: true
-                            enabled: true
-                            onClicked: {
-                                editRoot.sendToScript({
-                                    method: "newEntityButtonClicked", params: { buttonName: "openAssetBrowserButton" }
-                                });
-                            }
-                            onEntered: {
-                                assetServerButton.state = "hover state";
-                            }
-                            onExited: {
-                                assetServerButton.state = "base state";
-                            }
-                        }
-
-                        states: [
-                            State {
-                                name: "hover state"
-
-                                PropertyChanges {
-                                    target: assetServerButtonGradient
-                                    opacity: 0
-                                }
-                            },
-                            State {
-                                name: "base state"
-
-                                PropertyChanges {
-                                    target: assetServerButtonGradient
-                                    opacity: 1
-                                }
-                            }
-                        ]
                     }
 
                     HifiControls.Button {
@@ -260,7 +185,7 @@ StackView {
                         anchors.left: parent.left
                         anchors.leftMargin: 55
                         anchors.top: assetServerButton.bottom
-                        anchors.topMargin: 35
+                        anchors.topMargin: 20
                     }
                 }
             }

From 9e458fd180b471802adddbd15d71baa46fedfc4f Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 16 Mar 2017 17:25:28 +1300
Subject: [PATCH 145/247] Fix keyboard in tablet custom query dialog

---
 .../qml/dialogs/TabletCustomQueryDialog.qml   | 231 +++++++++---------
 1 file changed, 119 insertions(+), 112 deletions(-)

diff --git a/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml b/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
index 3f6e07da4f..3f2750abe9 100644
--- a/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
+++ b/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
@@ -20,7 +20,9 @@ TabletModalWindow {
     id: root;
     HifiConstants { id: hifi; }
 
-    y: hifi.dimensions.tabletMenuHeader
+    anchors.fill: parent
+    width: parent.width
+    height: parent.height
 
     title: ""
     visible: true;
@@ -108,7 +110,7 @@ TabletModalWindow {
 
     TabletModalFrame {
         id: modalWindowItem
-        width: parent.width - 12
+        width: parent.width - 6
         height: 240
         anchors {
             verticalCenter: parent.verticalCenter
@@ -119,7 +121,7 @@ TabletModalWindow {
             id: d;
             readonly property int minWidth: 470
             readonly property int maxWidth: 470
-            readonly property int minHeight: 240
+            readonly property int minHeight: 120
             readonly property int maxHeight: 720
 
             function resize() {
@@ -130,8 +132,8 @@ TabletModalWindow {
                         ((keyboardEnabled && keyboardRaised) ? (keyboard.raisedHeight + hifi.dimensions.contentSpacing.y) : 0);
 
                 root.width = (targetWidth < d.minWidth) ? d.minWidth : ((targetWidth > d.maxWdith) ? d.maxWidth : targetWidth);
-                root.height = (targetHeight < d.minHeight) ? d.minHeight : ((targetHeight > d.maxHeight) ?
-                                                                                d.maxHeight : targetHeight);
+                modalWindowItem.height = (targetHeight < d.minHeight) ? d.minHeight : ((targetHeight > d.maxHeight) ?
+                                                                                           d.maxHeight : targetHeight);
                 if (checkBoxField.visible && comboBoxField.visible) {
                     checkBoxField.width = extraInputs.width / 2;
                     comboBoxField.width = extraInputs.width / 2;
@@ -140,14 +142,16 @@ TabletModalWindow {
                 }
             }
         }
-//        Item {
-//            anchors {
-//                //                top: parent.top;
-//                //                bottom: extraInputs.visible ? extraInputs.top : buttons.top;
-//                left: parent.left;
-//                right: parent.right;
-//                topMargin: 20
-//            }
+
+        Item {
+            anchors {
+                top: parent.top;
+                bottom: extraInputs.visible ? extraInputs.top : buttons.top;
+                left: parent.left;
+                right: parent.right;
+                leftMargin: 12
+                rightMargin: 12
+            }
 
             // FIXME make a text field type that can be bound to a history for autocompletion
             ControlsUIT.TextField {
@@ -156,14 +160,16 @@ TabletModalWindow {
                 focus: root.textInput ? true : false;
                 visible: root.textInput ? true : false;
                 anchors {
-                    top: parent.top
                     left: parent.left;
                     right: parent.right;
-                    leftMargin: 5; rightMargin: 5;
-                    topMargin: textField.controlHeight - textField.height + 5
+                    bottom: keyboard.top;
+                    bottomMargin: hifi.dimensions.contentSpacing.y;
                 }
             }
 
+            property alias keyboardOverride: root.keyboardOverride
+            property alias keyboardRaised: root.keyboardRaised
+            property alias punctuationMode: root.punctuationMode
             ControlsUIT.Keyboard {
                 id: keyboard
                 raised: keyboardEnabled && keyboardRaised
@@ -171,110 +177,111 @@ TabletModalWindow {
                 anchors {
                     left: parent.left
                     right: parent.right
-                    leftMargin: 5; rightMargin: 5;
-                    top: textField.bottom
-                    topMargin: raised ? hifi.dimensions.contentSpacing.y : 0
+                    bottom: parent.bottom
+                    bottomMargin: raised ? hifi.dimensions.contentSpacing.y : 0
                 }
             }
-            //        }
+        }
 
-            Row {
-                id: extraInputs;
-                visible: Boolean(root.checkBox || root.comboBox);
+        Item {
+            id: extraInputs;
+            visible: Boolean(root.checkBox || root.comboBox);
+            anchors {
+                left: parent.left;
+                right: parent.right;
+                bottom: buttons.top;
+                bottomMargin: hifi.dimensions.contentSpacing.y;
+                leftMargin: 12
+                rightMargin: 12
+            }
+            height: comboBoxField.controlHeight;
+            onHeightChanged: d.resize();
+            onWidthChanged: d.resize();
+
+            ControlsUIT.CheckBox {
+                id: checkBoxField;
+                text: root.checkBox.label;
+                focus: Boolean(root.checkBox);
+                visible: Boolean(root.checkBox);
                 anchors {
                     left: parent.left;
-                    right: parent.right;
-                    leftMargin: 5; rightMargin: 5;
-                    top: keyboard.bottom;
-                    topMargin: hifi.dimensions.contentSpacing.y + 20;
-                }
-                height: comboBoxField.controlHeight;
-                onHeightChanged: d.resize();
-                onWidthChanged: d.resize();
-
-                ControlsUIT.CheckBox {
-                    id: checkBoxField;
-                    text: root.checkBox.label;
-                    focus: Boolean(root.checkBox);
-                    visible: Boolean(root.checkBox);
-                    //                anchors {
-                    //                    left: parent.left;
-                    //                    bottom: parent.bottom;
-                    //                    leftMargin: 6;  // Magic number to align with warning icon
-                    //                    bottomMargin: 6;
-                    //                }
-                }
-
-                ControlsUIT.ComboBox {
-                    id: comboBoxField;
-                    label: root.comboBox.label;
-                    focus: Boolean(root.comboBox);
-                    visible: Boolean(root.comboBox);
-                    //                anchors {
-                    //                    right: parent.right;
-                    //                    bottom: parent.bottom;
-                    //                }
-                    model: root.comboBox ? root.comboBox.items : [];
-                    onAccepted: {
-                        updateCheckbox();
-                        focus = true;
-                    }
-                }
-            }
-
-            Row {
-                id: buttons;
-                focus: true;
-                spacing: hifi.dimensions.contentSpacing.x;
-                layoutDirection: Qt.RightToLeft;
-                onHeightChanged: d.resize();
-                onWidthChanged: {
-                    d.resize();
-                    resizeWarningText();
-                }
-
-                anchors {
                     bottom: parent.bottom;
-                    left: parent.left;
-                    right: parent.right;
-                    bottomMargin: hifi.dimensions.contentSpacing.y;
-                    leftMargin: 5; rightMargin: 5;
-                }
-
-                function resizeWarningText() {
-                    var rowWidth = buttons.width;
-                    var buttonsWidth = acceptButton.width + cancelButton.width + hifi.dimensions.contentSpacing.x * 2;
-                    var warningIconWidth = warningIcon.width + hifi.dimensions.contentSpacing.x;
-                    warningText.width = rowWidth - buttonsWidth - warningIconWidth;
-                }
-
-                ControlsUIT.Button {
-                    id: cancelButton;
-                    action: cancelAction;
-                }
-
-                ControlsUIT.Button {
-                    id: acceptButton;
-                    action: acceptAction;
-                }
-
-                Text {
-                    id: warningText;
-                    visible: Boolean(root.warning);
-                    text: root.warning;
-                    wrapMode: Text.WordWrap;
-                    font.italic: true;
-                    maximumLineCount: 2;
-                }
-
-                HiFiGlyphs {
-                    id: warningIcon;
-                    visible: Boolean(root.warning);
-                    text: hifi.glyphs.alert;
-                    size: hifi.dimensions.controlLineHeight;
+                    leftMargin: 6;  // Magic number to align with warning icon
+                    bottomMargin: 6;
                 }
             }
-//        }//column
+
+            ControlsUIT.ComboBox {
+                id: comboBoxField;
+                label: root.comboBox.label;
+                focus: Boolean(root.comboBox);
+                visible: Boolean(root.comboBox);
+                anchors {
+                    right: parent.right;
+                    bottom: parent.bottom;
+                }
+                model: root.comboBox ? root.comboBox.items : [];
+                onAccepted: {
+                    updateCheckbox();
+                    focus = true;
+                }
+            }
+        }
+
+        Row {
+            id: buttons;
+            focus: true;
+            spacing: hifi.dimensions.contentSpacing.x;
+            layoutDirection: Qt.RightToLeft;
+            onHeightChanged: d.resize();
+            onWidthChanged: {
+                d.resize();
+                resizeWarningText();
+            }
+
+            anchors {
+                bottom: parent.bottom;
+                left: parent.left;
+                right: parent.right;
+                bottomMargin: hifi.dimensions.contentSpacing.y;
+                leftMargin: 12
+                rightMargin: 12
+            }
+
+            function resizeWarningText() {
+                var rowWidth = buttons.width;
+                var buttonsWidth = acceptButton.width + cancelButton.width + hifi.dimensions.contentSpacing.x * 2;
+                var warningIconWidth = warningIcon.width + hifi.dimensions.contentSpacing.x;
+                warningText.width = rowWidth - buttonsWidth - warningIconWidth;
+            }
+
+            ControlsUIT.Button {
+                id: cancelButton;
+                action: cancelAction;
+            }
+
+            ControlsUIT.Button {
+                id: acceptButton;
+                action: acceptAction;
+            }
+
+            Text {
+                id: warningText;
+                visible: Boolean(root.warning);
+                text: root.warning;
+                wrapMode: Text.WordWrap;
+                font.italic: true;
+                maximumLineCount: 2;
+            }
+
+            HiFiGlyphs {
+                id: warningIcon;
+                visible: Boolean(root.warning);
+                text: hifi.glyphs.alert;
+                size: hifi.dimensions.controlLineHeight;
+            }
+        }
+
         Action {
             id: cancelAction;
             text: qsTr("Cancel");

From 7efda8bead43c2481c4dd5c686ca9af53140701f Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 16 Mar 2017 17:33:38 +1300
Subject: [PATCH 146/247] Make clicking on dialog background defocus current
 control

---
 interface/resources/qml/dialogs/TabletCustomQueryDialog.qml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml b/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
index 3f2750abe9..3243a50676 100644
--- a/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
+++ b/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
@@ -117,6 +117,12 @@ TabletModalWindow {
             horizontalCenter: parent.horizontalCenter
         }
 
+        MouseArea {
+            // Clicking dialog background defocuses active control.
+            anchors.fill: parent
+            onClicked: parent.forceActiveFocus();
+        }
+
         QtObject {
             id: d;
             readonly property int minWidth: 470

From 3c1506237ac0f6b3a428ed9dbdda67fea4092730 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 16 Mar 2017 17:56:13 +1300
Subject: [PATCH 147/247] Fix not all warning text displaying

---
 interface/resources/qml/dialogs/CustomQueryDialog.qml       | 1 +
 interface/resources/qml/dialogs/TabletCustomQueryDialog.qml | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/interface/resources/qml/dialogs/CustomQueryDialog.qml b/interface/resources/qml/dialogs/CustomQueryDialog.qml
index 97f55d087b..98aa158b1c 100644
--- a/interface/resources/qml/dialogs/CustomQueryDialog.qml
+++ b/interface/resources/qml/dialogs/CustomQueryDialog.qml
@@ -259,6 +259,7 @@ ModalWindow {
                 visible: Boolean(root.warning);
                 text: hifi.glyphs.alert;
                 size: hifi.dimensions.controlLineHeight;
+                width: 20  // Line up with checkbox.
             }
         }
 
diff --git a/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml b/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
index 3243a50676..00081ab16d 100644
--- a/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
+++ b/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
@@ -277,7 +277,7 @@ TabletModalWindow {
                 text: root.warning;
                 wrapMode: Text.WordWrap;
                 font.italic: true;
-                maximumLineCount: 2;
+                maximumLineCount: 3;
             }
 
             HiFiGlyphs {
@@ -285,6 +285,7 @@ TabletModalWindow {
                 visible: Boolean(root.warning);
                 text: hifi.glyphs.alert;
                 size: hifi.dimensions.controlLineHeight;
+                width: 20  // Line up with checkbox.
             }
         }
 

From 74db9dc573f4707accb287d01318c5dba60dfeac Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 16 Mar 2017 18:18:00 +1300
Subject: [PATCH 148/247] Fix drop-down hiding behind buttons

---
 interface/resources/qml/dialogs/TabletCustomQueryDialog.qml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml b/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
index 00081ab16d..d462cf00d9 100644
--- a/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
+++ b/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
@@ -203,6 +203,7 @@ TabletModalWindow {
             height: comboBoxField.controlHeight;
             onHeightChanged: d.resize();
             onWidthChanged: d.resize();
+            z: 20
 
             ControlsUIT.CheckBox {
                 id: checkBoxField;
@@ -244,6 +245,7 @@ TabletModalWindow {
                 d.resize();
                 resizeWarningText();
             }
+            z: 10
 
             anchors {
                 bottom: parent.bottom;

From 89eb0738557a2485d1ec5675941ed63cb499c87c Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 16 Mar 2017 18:24:04 +1300
Subject: [PATCH 149/247] Fix dialog height changing as drop-down value is
 changed

---
 interface/resources/qml/AssetServer.qml                     | 2 +-
 interface/resources/qml/dialogs/TabletCustomQueryDialog.qml | 2 +-
 interface/resources/qml/hifi/dialogs/TabletAssetServer.qml  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/interface/resources/qml/AssetServer.qml b/interface/resources/qml/AssetServer.qml
index cf61a2ae4a..69411edce5 100644
--- a/interface/resources/qml/AssetServer.qml
+++ b/interface/resources/qml/AssetServer.qml
@@ -177,7 +177,7 @@ ScrollingWindow {
                     SHAPE_TYPE_STATIC_MESH
                 ],
                 checkStateOnDisable: false,
-                warningOnDisable: "Models with automatic collisions set to 'Exact' cannot be dynamic"
+                warningOnDisable: "Models with 'Exact' automatic collisions cannot be dynamic"
             }
         });
 
diff --git a/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml b/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
index d462cf00d9..8da2150c9a 100644
--- a/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
+++ b/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
@@ -279,7 +279,7 @@ TabletModalWindow {
                 text: root.warning;
                 wrapMode: Text.WordWrap;
                 font.italic: true;
-                maximumLineCount: 3;
+                maximumLineCount: 2;
             }
 
             HiFiGlyphs {
diff --git a/interface/resources/qml/hifi/dialogs/TabletAssetServer.qml b/interface/resources/qml/hifi/dialogs/TabletAssetServer.qml
index 93e18c7aba..2460fc39d5 100644
--- a/interface/resources/qml/hifi/dialogs/TabletAssetServer.qml
+++ b/interface/resources/qml/hifi/dialogs/TabletAssetServer.qml
@@ -176,7 +176,7 @@ Rectangle {
                                                            SHAPE_TYPE_STATIC_MESH
                                                        ],
                                                        checkStateOnDisable: false,
-                                                       warningOnDisable: "Models with automatic collisions set to 'Exact' cannot be dynamic"
+                                                       warningOnDisable: "Models with 'Exact' automatic collisions cannot be dynamic"
                                                    }
                                                });
 

From 1080e21afd707eea654d976e3a21e659e4680f90 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Thu, 16 Mar 2017 18:27:13 +1300
Subject: [PATCH 150/247] Tidying

---
 .../resources/qml/dialogs/CustomQueryDialog.qml    |  8 ++++----
 .../qml/dialogs/TabletCustomQueryDialog.qml        | 14 +++++++-------
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/interface/resources/qml/dialogs/CustomQueryDialog.qml b/interface/resources/qml/dialogs/CustomQueryDialog.qml
index 98aa158b1c..4d6fe74bca 100644
--- a/interface/resources/qml/dialogs/CustomQueryDialog.qml
+++ b/interface/resources/qml/dialogs/CustomQueryDialog.qml
@@ -107,10 +107,10 @@ ModalWindow {
 
         QtObject {
             id: d;
-            readonly property int minWidth: 480;
-            readonly property int maxWdith: 1280;
-            readonly property int minHeight: 120;
-            readonly property int maxHeight: 720;
+            readonly property int minWidth: 480
+            readonly property int maxWdith: 1280
+            readonly property int minHeight: 120
+            readonly property int maxHeight: 720
 
             function resize() {
                 var targetWidth = Math.max(titleWidth, pane.width);
diff --git a/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml b/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
index 8da2150c9a..7965006b8b 100644
--- a/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
+++ b/interface/resources/qml/dialogs/TabletCustomQueryDialog.qml
@@ -12,7 +12,7 @@ import QtQuick 2.5
 import QtQuick.Controls 1.4
 import QtQuick.Dialogs 1.2 as OriginalDialogs
 
-import "../controls-uit" as ControlsUIT
+import "../controls-uit"
 import "../styles-uit"
 import "../windows"
 
@@ -160,7 +160,7 @@ TabletModalWindow {
             }
 
             // FIXME make a text field type that can be bound to a history for autocompletion
-            ControlsUIT.TextField {
+            TextField {
                 id: textField;
                 label: root.textInput.label;
                 focus: root.textInput ? true : false;
@@ -176,7 +176,7 @@ TabletModalWindow {
             property alias keyboardOverride: root.keyboardOverride
             property alias keyboardRaised: root.keyboardRaised
             property alias punctuationMode: root.punctuationMode
-            ControlsUIT.Keyboard {
+            Keyboard {
                 id: keyboard
                 raised: keyboardEnabled && keyboardRaised
                 numeric: punctuationMode
@@ -205,7 +205,7 @@ TabletModalWindow {
             onWidthChanged: d.resize();
             z: 20
 
-            ControlsUIT.CheckBox {
+            CheckBox {
                 id: checkBoxField;
                 text: root.checkBox.label;
                 focus: Boolean(root.checkBox);
@@ -218,7 +218,7 @@ TabletModalWindow {
                 }
             }
 
-            ControlsUIT.ComboBox {
+            ComboBox {
                 id: comboBoxField;
                 label: root.comboBox.label;
                 focus: Boolean(root.comboBox);
@@ -263,12 +263,12 @@ TabletModalWindow {
                 warningText.width = rowWidth - buttonsWidth - warningIconWidth;
             }
 
-            ControlsUIT.Button {
+            Button {
                 id: cancelButton;
                 action: cancelAction;
             }
 
-            ControlsUIT.Button {
+            Button {
                 id: acceptButton;
                 action: acceptAction;
             }

From f1947769d66f9654468aae74f6fb7bd286863b64 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Fri, 17 Mar 2017 11:15:56 +1300
Subject: [PATCH 151/247] Fix tablet settings dialogs' titles and make QML
 consistent

---
 .../hifi/tablet/TabletAudioPreferences.qml    | 10 +++-------
 .../hifi/tablet/TabletAvatarPreferences.qml   | 10 +++-------
 .../hifi/tablet/TabletGeneralPreferences.qml  |  9 ++-------
 .../hifi/tablet/TabletGraphicsPreferences.qml | 20 +++++++++++--------
 .../qml/hifi/tablet/TabletLodPreferences.qml  | 20 +++++++++++--------
 .../tablet/TabletNetworkingPreferences.qml    | 12 ++++-------
 .../tabletWindows/TabletPreferencesDialog.qml | 13 +-----------
 7 files changed, 37 insertions(+), 57 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/TabletAudioPreferences.qml b/interface/resources/qml/hifi/tablet/TabletAudioPreferences.qml
index 1c18c44a97..75a243b188 100644
--- a/interface/resources/qml/hifi/tablet/TabletAudioPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAudioPreferences.qml
@@ -9,17 +9,16 @@
 //
 
 import QtQuick 2.5
+import QtQuick.Controls 1.4
 import "tabletWindows"
 import "../../dialogs"
-import QtQuick.Controls 1.4
-import QtQuick.Controls.Styles 1.4
-import QtGraphicalEffects 1.0
 
 StackView {
     id: profileRoot
     initialItem: root
     objectName: "stack"
-    property var title: "Audio Preferences"
+    property string title: "Audio Settings"
+
     property var eventBridge;
     signal sendToScript(var message);
 
@@ -33,10 +32,7 @@ StackView {
 
     TabletPreferencesDialog {
         id: root
-        property string title: "Audio Settings"
         objectName: "TabletAudioPreferences"
-        width: parent.width
-        height: parent.height
         showCategories: ["Audio"]
     }
 }
diff --git a/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml b/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml
index b29164a30f..f189b5c1cd 100644
--- a/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml
@@ -9,17 +9,16 @@
 //
 
 import QtQuick 2.5
+import QtQuick.Controls 1.4
 import "tabletWindows"
 import "../../dialogs"
-import QtQuick.Controls 1.4
-import QtQuick.Controls.Styles 1.4
-import QtGraphicalEffects 1.0
 
 StackView {
     id: profileRoot
     initialItem: root
     objectName: "stack"
-    property var title: "Avatar Preferences"
+    property string title: "Avatar Settings"
+
     property var eventBridge;
     signal sendToScript(var message);
 
@@ -33,10 +32,7 @@ StackView {
 
     TabletPreferencesDialog {
         id: root
-        property string title: "Avatar Preferences"
         objectName: "TabletAvatarPreferences"
-        width: parent.width
-        height: parent.height
         showCategories: ["Avatar Basics", "Avatar Tuning", "Avatar Camera"]
     }
 }
diff --git a/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml b/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml
index 47e6a05f78..c790b18747 100644
--- a/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml
@@ -9,17 +9,15 @@
 //
 
 import QtQuick 2.5
+import QtQuick.Controls 1.4
 import "tabletWindows"
 import "../../dialogs"
-import QtQuick.Controls 1.4
-import QtQuick.Controls.Styles 1.4
-import QtGraphicalEffects 1.0
 
 StackView {
     id: profileRoot
     initialItem: root
     objectName: "stack"
-    property var title: "General Prefernces"
+    property string title: "General Settings"
     
     property var eventBridge;
     signal sendToScript(var message);
@@ -34,10 +32,7 @@ StackView {
     
     TabletPreferencesDialog {
         id: root
-        property string title: "General Preferences"
         objectName: "TabletGeneralPreferences"
-        width: parent.width
-        height: parent.height
         showCategories: ["UI", "Snapshots", "Scripts", "Privacy", "Octree", "HMD", "Sixense Controllers", "Perception Neuron", "Kinect"]
     }
 }
diff --git a/interface/resources/qml/hifi/tablet/TabletGraphicsPreferences.qml b/interface/resources/qml/hifi/tablet/TabletGraphicsPreferences.qml
index 2ca9634ee6..6420119480 100644
--- a/interface/resources/qml/hifi/tablet/TabletGraphicsPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletGraphicsPreferences.qml
@@ -1,16 +1,23 @@
-import QtQuick 2.5
-import Qt.labs.settings 1.0
+//
+//  TabletGraphicsPreferences.qml
+//
+//  Created by Vlad Stelmahovsky on 12 Mar 2017.
+//  Copyright 2017 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
+//
 
+import QtQuick 2.5
+import QtQuick.Controls 1.4
 import "tabletWindows"
 import "../../dialogs"
-import QtQuick.Controls 1.4
-import QtQuick.Controls.Styles 1.4
-import QtGraphicalEffects 1.0
 
 StackView {
     id: profileRoot
     initialItem: root
     objectName: "stack"
+    property string title: "Graphics Settings"
 
     property var eventBridge;
     signal sendToScript(var message);
@@ -25,10 +32,7 @@ StackView {
 
     TabletPreferencesDialog {
         id: root
-        property string title: "Graphics Settings"
         objectName: "TabletGraphicsPreferences"
-        width: parent.width
-        height: parent.height
         showCategories: ["Graphics"]
     }
 }
diff --git a/interface/resources/qml/hifi/tablet/TabletLodPreferences.qml b/interface/resources/qml/hifi/tablet/TabletLodPreferences.qml
index 8f03bdb0c5..d6affb25b0 100644
--- a/interface/resources/qml/hifi/tablet/TabletLodPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletLodPreferences.qml
@@ -1,16 +1,23 @@
-import QtQuick 2.5
-import Qt.labs.settings 1.0
+//
+//  TabletLodPreferences.qml
+//
+//  Created by Vlad Stelmahovsky on 11 Mar 2017.
+//  Copyright 2017 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
+//
 
+import QtQuick 2.5
+import QtQuick.Controls 1.4
 import "tabletWindows"
 import "../../dialogs"
-import QtQuick.Controls 1.4
-import QtQuick.Controls.Styles 1.4
-import QtGraphicalEffects 1.0
 
 StackView {
     id: profileRoot
     initialItem: root
     objectName: "stack"
+    property string title: "LOD Settings"
 
     property var eventBridge;
     signal sendToScript(var message);
@@ -25,10 +32,7 @@ StackView {
 
     TabletPreferencesDialog {
         id: root
-        property string title: "LOD Settings"
         objectName: "TabletLodPreferences"
-        width: parent.width
-        height: parent.height
         showCategories: ["Level of Detail Tuning"]
     }
 }
diff --git a/interface/resources/qml/hifi/tablet/TabletNetworkingPreferences.qml b/interface/resources/qml/hifi/tablet/TabletNetworkingPreferences.qml
index f48d270646..766446977d 100644
--- a/interface/resources/qml/hifi/tablet/TabletNetworkingPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletNetworkingPreferences.qml
@@ -9,17 +9,16 @@
 //
 
 import QtQuick 2.5
+import QtQuick.Controls 1.4
 import "tabletWindows"
 import "../../dialogs"
-import QtQuick.Controls 1.4
-import QtQuick.Controls.Styles 1.4
-import QtGraphicalEffects 1.0
 
 StackView {
     id: profileRoot
     initialItem: root
     objectName: "stack"
-    property var title: "Network Preferences"
+    property var title: "Networking Settings"
+
     property var eventBridge;
     signal sendToScript(var message);
 
@@ -33,10 +32,7 @@ StackView {
 
     TabletPreferencesDialog {
         id: root
-        property string title: "Networking Settings"
-        objectName: "NetworkingPreferences"
-        width: parent.width
-        height: parent.height
+        objectName: "TabletNetworkingPreferences"
         showCategories: ["Networking"]
     }
 }
diff --git a/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml b/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
index daa071d0ca..c96099a78a 100644
--- a/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
+++ b/interface/resources/qml/hifi/tablet/tabletWindows/TabletPreferencesDialog.qml
@@ -58,21 +58,10 @@ Item {
         Tablet.getTablet("com.highfidelity.interface.tablet.system").gotoHomeScreen();
     }
 
-    HifiControls.TabletHeader {
-        id: header
-        title: parent.title
-
-        anchors {
-            top: parent.top
-            left: parent.left
-            right: parent.right
-        }
-    }
-
     Rectangle {
         id: main
         anchors {
-            top: header.bottom
+            top: parent.top
             bottom: footer.top
             left: parent.left
             right: parent.right

From 069e66b87570191f6791c8937e196a4a3d3791c2 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Fri, 17 Mar 2017 11:19:50 +1300
Subject: [PATCH 152/247] Fix stack functions

---
 .../resources/qml/hifi/tablet/TabletAudioPreferences.qml  | 4 ++--
 .../resources/qml/hifi/tablet/TabletAvatarPreferences.qml | 4 ++--
 .../qml/hifi/tablet/TabletGeneralPreferences.qml          | 8 ++++----
 .../qml/hifi/tablet/TabletGraphicsPreferences.qml         | 4 ++--
 .../resources/qml/hifi/tablet/TabletLodPreferences.qml    | 4 ++--
 .../qml/hifi/tablet/TabletNetworkingPreferences.qml       | 4 ++--
 6 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/TabletAudioPreferences.qml b/interface/resources/qml/hifi/tablet/TabletAudioPreferences.qml
index 75a243b188..b21bc238ac 100644
--- a/interface/resources/qml/hifi/tablet/TabletAudioPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAudioPreferences.qml
@@ -23,11 +23,11 @@ StackView {
     signal sendToScript(var message);
 
     function pushSource(path) {
-        editRoot.push(Qt.reslovedUrl(path));
+        profileRoot.push(Qt.reslovedUrl(path));
     }
 
     function popSource() {
-
+        profileRoot.pop();
     }
 
     TabletPreferencesDialog {
diff --git a/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml b/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml
index f189b5c1cd..75973f32ae 100644
--- a/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAvatarPreferences.qml
@@ -23,11 +23,11 @@ StackView {
     signal sendToScript(var message);
 
     function pushSource(path) {
-        editRoot.push(Qt.reslovedUrl(path));
+        profileRoot.push(Qt.reslovedUrl(path));
     }
 
     function popSource() {
-
+        profileRoot.pop();
     }
 
     TabletPreferencesDialog {
diff --git a/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml b/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml
index c790b18747..6fc29ac920 100644
--- a/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletGeneralPreferences.qml
@@ -21,15 +21,15 @@ StackView {
     
     property var eventBridge;
     signal sendToScript(var message);
-    
+
     function pushSource(path) {
-        editRoot.push(Qt.reslovedUrl(path));
+        profileRoot.push(Qt.reslovedUrl(path));
     }
 
     function popSource() {
-        
+        profileRoot.pop();
     }
-    
+
     TabletPreferencesDialog {
         id: root
         objectName: "TabletGeneralPreferences"
diff --git a/interface/resources/qml/hifi/tablet/TabletGraphicsPreferences.qml b/interface/resources/qml/hifi/tablet/TabletGraphicsPreferences.qml
index 6420119480..67c466f991 100644
--- a/interface/resources/qml/hifi/tablet/TabletGraphicsPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletGraphicsPreferences.qml
@@ -23,11 +23,11 @@ StackView {
     signal sendToScript(var message);
 
     function pushSource(path) {
-        editRoot.push(Qt.reslovedUrl(path));
+        profileRoot.push(Qt.reslovedUrl(path));
     }
 
     function popSource() {
-
+        profileRoot.pop();
     }
 
     TabletPreferencesDialog {
diff --git a/interface/resources/qml/hifi/tablet/TabletLodPreferences.qml b/interface/resources/qml/hifi/tablet/TabletLodPreferences.qml
index d6affb25b0..f61f6f8c4e 100644
--- a/interface/resources/qml/hifi/tablet/TabletLodPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletLodPreferences.qml
@@ -23,11 +23,11 @@ StackView {
     signal sendToScript(var message);
 
     function pushSource(path) {
-        editRoot.push(Qt.reslovedUrl(path));
+        profileRoot.push(Qt.reslovedUrl(path));
     }
 
     function popSource() {
-
+        profileRoot.pop();
     }
 
     TabletPreferencesDialog {
diff --git a/interface/resources/qml/hifi/tablet/TabletNetworkingPreferences.qml b/interface/resources/qml/hifi/tablet/TabletNetworkingPreferences.qml
index 766446977d..db47c78c48 100644
--- a/interface/resources/qml/hifi/tablet/TabletNetworkingPreferences.qml
+++ b/interface/resources/qml/hifi/tablet/TabletNetworkingPreferences.qml
@@ -23,11 +23,11 @@ StackView {
     signal sendToScript(var message);
 
     function pushSource(path) {
-        editRoot.push(Qt.reslovedUrl(path));
+        profileRoot.push(Qt.reslovedUrl(path));
     }
 
     function popSource() {
-
+        profileRoot.pop();
     }
 
     TabletPreferencesDialog {

From 07e4b0ce4184d1fc7a8cc6b49da9689260fff52e Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Fri, 17 Mar 2017 11:28:14 +1300
Subject: [PATCH 153/247] Fix title menu icon getting stuck on white

---
 interface/resources/qml/hifi/tablet/TabletMenu.qml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/resources/qml/hifi/tablet/TabletMenu.qml b/interface/resources/qml/hifi/tablet/TabletMenu.qml
index d7d5130bce..af36f72c82 100644
--- a/interface/resources/qml/hifi/tablet/TabletMenu.qml
+++ b/interface/resources/qml/hifi/tablet/TabletMenu.qml
@@ -60,7 +60,7 @@ FocusScope {
                 anchors.fill: parent
                 hoverEnabled: true
                 onEntered: iconColorOverlay.color = "#1fc6a6";
-                onExited: iconColorOverlay.color = "#ffffff";
+                onExited: iconColorOverlay.color = "#34a2c7";
                 // navigate back to root level menu
                 onClicked: {
                     buildMenu();

From 6531efffbcd2e100e5cc5832b7ab049dd2c9dba4 Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Fri, 17 Mar 2017 11:22:07 -0700
Subject: [PATCH 154/247] hook up qml button to edit.js

---
 interface/resources/qml/hifi/tablet/Edit.qml |  5 +++++
 scripts/system/edit.js                       | 16 +++++++++++++++-
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/interface/resources/qml/hifi/tablet/Edit.qml b/interface/resources/qml/hifi/tablet/Edit.qml
index bb3385c874..815f6b5f3c 100644
--- a/interface/resources/qml/hifi/tablet/Edit.qml
+++ b/interface/resources/qml/hifi/tablet/Edit.qml
@@ -186,6 +186,11 @@ StackView {
                         anchors.leftMargin: 55
                         anchors.top: assetServerButton.bottom
                         anchors.topMargin: 20
+                        onClicked: {
+                            editRoot.sendToScript({
+                                method: "newEntityButtonClicked", params: { buttonName: "importEntitiesButton" }
+                            });
+                        }
                     }
                 }
             }
diff --git a/scripts/system/edit.js b/scripts/system/edit.js
index 55bd11b286..ecf8167e43 100644
--- a/scripts/system/edit.js
+++ b/scripts/system/edit.js
@@ -294,7 +294,21 @@ var toolBar = (function () {
             that.toggle();
         });
 
-        addButton("openAssetBrowserButton", "assets-01.svg", function(){
+        addButton("importEntitiesButton", "assets-01.svg", function() {
+            var importURL = null;
+            var fullPath = Window.browse("Select Model to Import", "", "*.json");
+            if (fullPath) {
+                importURL = "file:///" + fullPath;
+            }
+            if (importURL) {
+                if (!isActive && (Entities.canRez() && Entities.canRezTmp())) {
+                    toolBar.toggle();
+                }
+                importSVO(importURL);
+            }
+        });
+
+        addButton("openAssetBrowserButton", "assets-01.svg", function() {
             Window.showAssetServer();
         });
 

From 33a7ff825ee9ccccfdb6795e132f32138a511a94 Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Fri, 17 Mar 2017 11:37:38 -0700
Subject: [PATCH 155/247] indicate expecting json file on button text

---
 interface/resources/qml/hifi/tablet/Edit.qml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/resources/qml/hifi/tablet/Edit.qml b/interface/resources/qml/hifi/tablet/Edit.qml
index 815f6b5f3c..4abe698fbc 100644
--- a/interface/resources/qml/hifi/tablet/Edit.qml
+++ b/interface/resources/qml/hifi/tablet/Edit.qml
@@ -177,7 +177,7 @@ StackView {
                     }
 
                     HifiControls.Button {
-                        text: "Import Entities"
+                        text: "Import Entities (.json)"
                         color: hifi.buttons.black
                         colorScheme: hifi.colorSchemes.dark
                         anchors.right: parent.right

From 1a46f18aa3960cb30ab10d7adc6dc896fcdccd34 Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Fri, 17 Mar 2017 15:56:55 -0700
Subject: [PATCH 156/247] adding export button + hiding jump to selection

---
 scripts/system/html/entityList.html | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/scripts/system/html/entityList.html b/scripts/system/html/entityList.html
index 3cb79353f9..bdd01bc7d2 100644
--- a/scripts/system/html/entityList.html
+++ b/scripts/system/html/entityList.html
@@ -24,7 +24,8 @@
                 <input type="button" id="locked" class="glyph" value="&#xe006;" />
                 <input type="button" id="visible" class="glyph" value="&#xe007;" />
             </div>
-            <input type="button" id="teleport" value="Jump To Selection" />
+            <input type="button" id="export" value="Export Selection" />
+            <input type="button" id="teleport" value="Jump to Selection" style="display: none"/>
             <input type="button" id="pal" class="glyph" value="&#xe00c;" />
             <input type="button" class="red" id="delete" value="Delete" />
         </div>

From 197a06c423355497e3b7f74d84153cc093c53099 Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Fri, 17 Mar 2017 16:17:21 -0700
Subject: [PATCH 157/247] changes in TWO entityList.js to register the export
 event

---
 scripts/system/html/js/entityList.js   |  4 ++++
 scripts/system/libraries/entityList.js | 12 ++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/scripts/system/html/js/entityList.js b/scripts/system/html/js/entityList.js
index dd8e8199b4..a371b3bdc9 100644
--- a/scripts/system/html/js/entityList.js
+++ b/scripts/system/html/js/entityList.js
@@ -40,6 +40,7 @@ function loaded() {
       elInView = document.getElementById("in-view")
       elRadius = document.getElementById("radius");
       elTeleport = document.getElementById("teleport");
+      elExport = document.getElementById("export");
       elPal = document.getElementById("pal");
       elEntityTable = document.getElementById("entity-table");
       elInfoToggle = document.getElementById("info-toggle");
@@ -276,6 +277,9 @@ function loaded() {
       elTeleport.onclick = function () {
           EventBridge.emitWebEvent(JSON.stringify({ type: 'teleport' }));
       }
+      elExport.onclick = function() {
+          EventBridge.emitWebEvent(JSON.stringify({ type: 'export'}));
+      }
       elPal.onclick = function () {
           EventBridge.emitWebEvent(JSON.stringify({ type: 'pal' }));
       }
diff --git a/scripts/system/libraries/entityList.js b/scripts/system/libraries/entityList.js
index 63ac33a1dd..3488733289 100644
--- a/scripts/system/libraries/entityList.js
+++ b/scripts/system/libraries/entityList.js
@@ -128,6 +128,18 @@ EntityListTool = function(opts) {
             if (selectionManager.hasSelection()) {
                 MyAvatar.position = selectionManager.worldPosition;
             }
+        } else if (data.type == "export") {
+            if (!selectionManager.hasSelection()) {
+                Window.notifyEditError("No entities have been selected.");
+            } else {
+                var filename = Window.save("Select Where to Save", "", "*.json");
+                if (filename) {
+                    var success = Clipboard.exportEntities(filename, selectionManager.selections);
+                    if (!success) {
+                        Window.notifyEditError("Export failed.");
+                    }
+                }
+            }
         } else if (data.type == "pal") {
             var sessionIds = {}; // Collect the sessionsIds of all selected entitities, w/o duplicates.
             selectionManager.selections.forEach(function (id) {

From 5e162a64470da527e89bd9371a8fad240b45afc9 Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Sat, 18 Mar 2017 14:38:49 +0100
Subject: [PATCH 158/247] Implemented login facility for tablet UI

---
 .../TabletLoginDialog/CompleteProfileBody.qml | 124 ++++++++
 .../qml/TabletLoginDialog/LinkAccountBody.qml | 296 ++++++++++++++++++
 .../qml/TabletLoginDialog/SignInBody.qml      | 109 +++++++
 .../qml/TabletLoginDialog/SignUpBody.qml      | 276 ++++++++++++++++
 .../UsernameCollisionBody.qml                 | 157 ++++++++++
 .../qml/TabletLoginDialog/WelcomeBody.qml     |  79 +++++
 .../qml/dialogs/TabletLoginDialog.qml         | 113 +++++++
 interface/src/ui/DialogsManager.cpp           |   5 +-
 interface/src/ui/LoginDialog.cpp              |  44 ++-
 interface/src/ui/LoginDialog.h                |   1 +
 10 files changed, 1199 insertions(+), 5 deletions(-)
 create mode 100644 interface/resources/qml/TabletLoginDialog/CompleteProfileBody.qml
 create mode 100644 interface/resources/qml/TabletLoginDialog/LinkAccountBody.qml
 create mode 100644 interface/resources/qml/TabletLoginDialog/SignInBody.qml
 create mode 100644 interface/resources/qml/TabletLoginDialog/SignUpBody.qml
 create mode 100644 interface/resources/qml/TabletLoginDialog/UsernameCollisionBody.qml
 create mode 100644 interface/resources/qml/TabletLoginDialog/WelcomeBody.qml
 create mode 100644 interface/resources/qml/dialogs/TabletLoginDialog.qml

diff --git a/interface/resources/qml/TabletLoginDialog/CompleteProfileBody.qml b/interface/resources/qml/TabletLoginDialog/CompleteProfileBody.qml
new file mode 100644
index 0000000000..6024563bcf
--- /dev/null
+++ b/interface/resources/qml/TabletLoginDialog/CompleteProfileBody.qml
@@ -0,0 +1,124 @@
+//
+//  CompleteProfileBody.qml
+//
+//  Created by Clement on 7/18/16
+//  Copyright 2015 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
+//
+
+import Hifi 1.0
+import QtQuick 2.4
+import QtQuick.Controls.Styles 1.4 as OriginalStyles
+
+import "../controls-uit"
+import "../styles-uit"
+
+Item {
+    id: completeProfileBody
+    clip: true
+
+    QtObject {
+        id: d
+        function resize() {}
+    }
+
+    Row {
+        id: buttons
+        anchors {
+            top: parent.top
+            horizontalCenter: parent.horizontalCenter
+            margins: 0
+            topMargin: 2 * hifi.dimensions.contentSpacing.y
+        }
+        spacing: hifi.dimensions.contentSpacing.x
+        onHeightChanged: d.resize(); onWidthChanged: d.resize();
+
+        Button {
+            anchors.verticalCenter: parent.verticalCenter
+            width: 200
+
+            text: qsTr("Create your profile")
+            color: hifi.buttons.blue
+
+            onClicked: loginDialog.createAccountFromStream()
+        }
+
+        Button {
+            anchors.verticalCenter: parent.verticalCenter
+
+            text: qsTr("Cancel")
+
+            onClicked: bodyLoader.popup()
+        }
+    }
+
+    ShortcutText {
+        id: additionalTextContainer
+        anchors {
+            top: buttons.bottom
+            horizontalCenter: parent.horizontalCenter
+            margins: 0
+            topMargin: hifi.dimensions.contentSpacing.y
+        }
+
+        text: "<a href='https://fake.link'>Already have a High Fidelity profile? Link to an existing profile here.</a>"
+
+        wrapMode: Text.WordWrap
+        lineHeight: 2
+        lineHeightMode: Text.ProportionalHeight
+        horizontalAlignment: Text.AlignHCenter
+
+        onLinkActivated: {
+            bodyLoader.setSource("LinkAccountBody.qml")
+        }
+    }
+
+    InfoItem {
+        id: termsContainer
+        anchors {
+            top: additionalTextContainer.bottom
+            left: parent.left
+            margins: 0
+            topMargin: 2 * hifi.dimensions.contentSpacing.y
+        }
+
+        text: qsTr("By creating this user profile, you agree to <a href='https://highfidelity.com/terms'>High Fidelity's Terms of Service</a>")
+        wrapMode: Text.WordWrap
+        color: hifi.colors.baseGrayHighlight
+        lineHeight: 1
+        lineHeightMode: Text.ProportionalHeight
+        horizontalAlignment: Text.AlignHCenter
+
+        onLinkActivated: loginDialog.openUrl(link)
+    }
+
+    Component.onCompleted: {
+        loginDialogRoot.title = qsTr("Complete Your Profile")
+        loginDialogRoot.iconText = "<"
+        d.resize();
+    }
+
+    Connections {
+        target: loginDialog
+        onHandleCreateCompleted: {
+            console.log("Create Succeeded")
+
+            loginDialog.loginThroughSteam()
+        }
+        onHandleCreateFailed: {
+            console.log("Create Failed: " + error)
+
+            bodyLoadersetSource("UsernameCollisionBody.qml")
+        }
+        onHandleLoginCompleted: {
+            console.log("Login Succeeded")
+
+            bodyLoader.setSource("WelcomeBody.qml", { "welcomeBack" : false })
+        }
+        onHandleLoginFailed: {
+            console.log("Login Failed")
+        }
+    }
+}
diff --git a/interface/resources/qml/TabletLoginDialog/LinkAccountBody.qml b/interface/resources/qml/TabletLoginDialog/LinkAccountBody.qml
new file mode 100644
index 0000000000..8010a34250
--- /dev/null
+++ b/interface/resources/qml/TabletLoginDialog/LinkAccountBody.qml
@@ -0,0 +1,296 @@
+//
+//  LinkAccountBody.qml
+//
+//  Created by Clement on 7/18/16
+//  Copyright 2015 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
+//
+
+import Hifi 1.0
+import QtQuick 2.4
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4 as OriginalStyles
+
+import "../controls-uit"
+import "../styles-uit"
+
+Item {
+    id: linkAccountBody
+    clip: true
+    height: parent.height
+    width: parent.width
+    property bool failAfterSignUp: false
+
+    function login() {
+        mainTextContainer.visible = false
+        toggleLoading(true)
+        loginDialog.login(usernameField.text, passwordField.text)
+    }
+
+    property bool keyboardEnabled: false
+    property bool keyboardRaised: false
+    property bool punctuationMode: false
+
+    onKeyboardRaisedChanged: d.resize();
+
+    QtObject {
+        id: d
+        function resize() {}
+    }
+
+    function toggleLoading(isLoading) {
+        linkAccountSpinner.visible = isLoading
+        form.visible = !isLoading
+
+        if (loginDialog.isSteamRunning()) {
+            additionalInformation.visible = !isLoading
+        }
+
+        leftButton.visible = !isLoading
+        buttons.visible = !isLoading
+    }
+
+    BusyIndicator {
+        id: linkAccountSpinner
+
+        anchors {
+            top: parent.top
+            horizontalCenter: parent.horizontalCenter
+            topMargin: hifi.dimensions.contentSpacing.y
+        }
+
+        visible: false
+        running: true
+
+        width: 48
+        height: 48
+    }
+
+    ShortcutText {
+        id: mainTextContainer
+        anchors {
+            top: parent.top
+            left: parent.left
+            margins: 0
+            topMargin: hifi.dimensions.contentSpacing.y
+        }
+
+        visible: false
+
+        text: qsTr("Username or password incorrect.")
+        wrapMode: Text.WordWrap
+        color: hifi.colors.redAccent
+        lineHeight: 1
+        lineHeightMode: Text.ProportionalHeight
+        horizontalAlignment: Text.AlignHCenter
+    }
+
+    Column {
+        id: form
+        anchors {
+            top: mainTextContainer.bottom
+            left: parent.left
+            margins: 0
+            topMargin: 2 * hifi.dimensions.contentSpacing.y
+        }
+        spacing: 2 * hifi.dimensions.contentSpacing.y
+
+        Row {
+            spacing: hifi.dimensions.contentSpacing.x
+
+            TextField {
+                id: usernameField
+                anchors {
+                    verticalCenter: parent.verticalCenter
+                }
+                width: 350
+
+                label: "Username or Email"
+            }
+
+            ShortcutText {
+                anchors {
+                    verticalCenter: parent.verticalCenter
+                }
+
+                text: "<a href='https://highfidelity.com/users/password/new'>Forgot Username?</a>"
+
+                verticalAlignment: Text.AlignVCenter
+                horizontalAlignment: Text.AlignHCenter
+                linkColor: hifi.colors.blueAccent
+
+                onLinkActivated: loginDialog.openUrl(link)
+            }
+        }
+        Row {
+            spacing: hifi.dimensions.contentSpacing.x
+
+            TextField {
+                id: passwordField
+                anchors {
+                    verticalCenter: parent.verticalCenter
+                }
+                width: 350
+
+                label: "Password"
+                echoMode: TextInput.Password
+            }
+
+            ShortcutText {
+                anchors {
+                    verticalCenter: parent.verticalCenter
+                }
+
+                text: "<a href='https://highfidelity.com/users/password/new'>Forgot Password?</a>"
+
+                verticalAlignment: Text.AlignVCenter
+                horizontalAlignment: Text.AlignHCenter
+                linkColor: hifi.colors.blueAccent
+
+                onLinkActivated: loginDialog.openUrl(link)
+            }
+        }
+
+    }
+
+    InfoItem {
+        id: additionalInformation
+        anchors {
+            top: form.bottom
+            left: parent.left
+            margins: 0
+            topMargin: hifi.dimensions.contentSpacing.y
+        }
+
+        visible: loginDialog.isSteamRunning()
+
+        text: qsTr("Your steam account informations will not be exposed to other users.")
+        wrapMode: Text.WordWrap
+        color: hifi.colors.baseGrayHighlight
+        lineHeight: 1
+        lineHeightMode: Text.ProportionalHeight
+        horizontalAlignment: Text.AlignHCenter
+    }
+
+    // Override ScrollingWindow's keyboard that would be at very bottom of dialog.
+    Keyboard {
+        raised: keyboardEnabled && keyboardRaised
+        numeric: punctuationMode
+        anchors {
+            left: parent.left
+            right: parent.right
+            bottom: buttons.top
+            bottomMargin: keyboardRaised ? 2 * hifi.dimensions.contentSpacing.y : 0
+        }
+    }
+
+    Row {
+        id: leftButton
+        anchors {
+            left: parent.left
+            bottom: parent.bottom
+            bottomMargin: hifi.dimensions.contentSpacing.y
+        }
+
+        spacing: hifi.dimensions.contentSpacing.x
+        onHeightChanged: d.resize(); onWidthChanged: d.resize();
+
+        Button {
+          anchors.verticalCenter: parent.verticalCenter
+
+          text: qsTr("Sign Up")
+          visible: !loginDialog.isSteamRunning()
+
+          onClicked: {
+              bodyLoader.setSource("SignUpBody.qml")
+          }
+        }
+    }
+
+    Row {
+        id: buttons
+        anchors {
+            right: parent.right
+            bottom: parent.bottom
+            bottomMargin: hifi.dimensions.contentSpacing.y
+        }
+        spacing: hifi.dimensions.contentSpacing.x
+        onHeightChanged: d.resize(); onWidthChanged: d.resize();
+
+        Button {
+            id: linkAccountButton
+            anchors.verticalCenter: parent.verticalCenter
+            width: 200
+
+            text: qsTr(loginDialog.isSteamRunning() ? "Link Account" : "Login")
+            color: hifi.buttons.blue
+
+            onClicked: linkAccountBody.login()
+        }
+
+        Button {
+            anchors.verticalCenter: parent.verticalCenter
+            text: qsTr("Cancel")
+            onClicked: {
+                bodyLoader.popup()
+            }
+        }
+    }
+
+    Component.onCompleted: {
+        loginDialogRoot.title = qsTr("Sign Into High Fidelity")
+        loginDialogRoot.iconText = "<"
+        keyboardEnabled = HMD.active;
+        d.resize();
+
+        if (failAfterSignUp) {
+            mainTextContainer.text = "Account created successfully."
+            mainTextContainer.visible = true
+        }
+
+        usernameField.forceActiveFocus();
+    }
+
+    Connections {
+        target: loginDialog
+        onHandleLoginCompleted: {
+            console.log("Login Succeeded, linking steam account")
+
+            if (loginDialog.isSteamRunning()) {
+                loginDialog.linkSteam()
+            } else {
+                bodyLoader.setSource("WelcomeBody.qml", { "welcomeBack" : true })
+            }
+        }
+        onHandleLoginFailed: {
+            console.log("Login Failed")
+            mainTextContainer.visible = true
+            toggleLoading(false)
+        }
+        onHandleLinkCompleted: {
+            console.log("Link Succeeded")
+
+            bodyLoader.setSource("WelcomeBody.qml", { "welcomeBack" : true })
+        }
+        onHandleLinkFailed: {
+            console.log("Link Failed")
+            toggleLoading(false)
+        }
+    }
+
+    Keys.onPressed: {
+        if (!visible) {
+            return
+        }
+
+        switch (event.key) {
+            case Qt.Key_Enter:
+            case Qt.Key_Return:
+                event.accepted = true
+                linkAccountBody.login()
+                break
+        }
+    }
+}
diff --git a/interface/resources/qml/TabletLoginDialog/SignInBody.qml b/interface/resources/qml/TabletLoginDialog/SignInBody.qml
new file mode 100644
index 0000000000..9cdf69c7bc
--- /dev/null
+++ b/interface/resources/qml/TabletLoginDialog/SignInBody.qml
@@ -0,0 +1,109 @@
+//
+//  SignInBody.qml
+//
+//  Created by Clement on 7/18/16
+//  Copyright 2015 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
+//
+
+import Hifi 1.0
+import QtQuick 2.4
+import QtQuick.Controls.Styles 1.4 as OriginalStyles
+
+import "../controls-uit"
+import "../styles-uit"
+
+Item {
+    id: signInBody
+    clip: true
+
+    property bool required: false
+
+    function login() {
+        console.log("Trying to log in")
+        loginDialog.loginThroughSteam()
+    }
+
+    function cancel() {
+        bodyLoader.popup()
+    }
+
+    QtObject {
+        id: d
+        function resize() {}
+    }
+
+    InfoItem {
+        id: mainTextContainer
+        anchors {
+            top: parent.top
+            horizontalCenter: parent.horizontalCenter
+            margins: 0
+            topMargin: hifi.dimensions.contentSpacing.y
+        }
+
+        text: required ? qsTr("This domain's owner requires that you sign in:")
+                       : qsTr("Sign in to access your user account:")
+        wrapMode: Text.WordWrap
+        color: hifi.colors.baseGrayHighlight
+        lineHeight: 2
+        lineHeightMode: Text.ProportionalHeight
+        horizontalAlignment: Text.AlignHCenter
+    }
+
+    Row {
+        id: buttons
+        anchors {
+            top: mainTextContainer.bottom
+            horizontalCenter: parent.horizontalCenter
+            margins: 0
+            topMargin: 2 * hifi.dimensions.contentSpacing.y
+        }
+        spacing: hifi.dimensions.contentSpacing.x
+        onHeightChanged: d.resize(); onWidthChanged: d.resize();
+
+        Button {
+            anchors.verticalCenter: parent.verticalCenter
+
+            width: undefined // invalidate so that the image's size sets the width
+            height: undefined // invalidate so that the image's size sets the height
+            focus: true
+
+            style: OriginalStyles.ButtonStyle {
+                background: Image {
+                    id: buttonImage
+                    source: "../../images/steam-sign-in.png"
+                }
+            }
+            onClicked: signInBody.login()
+        }
+        Button {
+            anchors.verticalCenter: parent.verticalCenter
+
+            text: qsTr("Cancel");
+
+            onClicked: signInBody.cancel()
+        }
+    }
+
+    Component.onCompleted: {
+        loginDialogRoot.title = required ? qsTr("Sign In Required")
+                              : qsTr("Sign In")
+        loginDialogRoot.iconText = ""
+        d.resize();
+    }
+
+    Connections {
+        target: loginDialog
+        onHandleLoginCompleted: {
+            console.log("Login Succeeded")
+            bodyLoader.setSource("WelcomeBody.qml", { "welcomeBack" : true })
+        }
+        onHandleLoginFailed: {
+            console.log("Login Failed")
+            bodyLoader.setSource("CompleteProfileBody.qml")
+        }
+    }
+}
diff --git a/interface/resources/qml/TabletLoginDialog/SignUpBody.qml b/interface/resources/qml/TabletLoginDialog/SignUpBody.qml
new file mode 100644
index 0000000000..2cfc0e736a
--- /dev/null
+++ b/interface/resources/qml/TabletLoginDialog/SignUpBody.qml
@@ -0,0 +1,276 @@
+//
+//  SignUpBody.qml
+//
+//  Created by Stephen Birarda on 7 Dec 2016
+//  Copyright 2016 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
+//
+
+import Hifi 1.0
+import QtQuick 2.4
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4 as OriginalStyles
+
+import "../controls-uit"
+import "../styles-uit"
+
+Item {
+    id: signupBody
+    clip: true
+//    height: parent.height
+//    width: parent.width
+
+    function signup() {
+        mainTextContainer.visible = false
+        toggleLoading(true)
+        loginDialog.signup(emailField.text, usernameField.text, passwordField.text)
+    }
+
+    property bool keyboardEnabled: false
+    property bool keyboardRaised: false
+    property bool punctuationMode: false
+
+    onKeyboardRaisedChanged: d.resize();
+
+    QtObject {
+        id: d
+        function resize() {}
+    }
+
+    function toggleLoading(isLoading) {
+        linkAccountSpinner.visible = isLoading
+        form.visible = !isLoading
+
+        leftButton.visible = !isLoading
+        buttons.visible = !isLoading
+    }
+
+    BusyIndicator {
+        id: linkAccountSpinner
+
+        anchors {
+            top: parent.top
+            horizontalCenter: parent.horizontalCenter
+            topMargin: hifi.dimensions.contentSpacing.y
+        }
+
+        visible: false
+        running: true
+
+        width: 48
+        height: 48
+    }
+
+    ShortcutText {
+        id: mainTextContainer
+        anchors {
+            top: parent.top
+            left: parent.left
+            margins: 0
+            topMargin: hifi.dimensions.contentSpacing.y
+        }
+
+        visible: false
+
+        text: qsTr("There was an unknown error while creating your account.")
+        wrapMode: Text.WordWrap
+        color: hifi.colors.redAccent
+        horizontalAlignment: Text.AlignLeft
+    }
+
+    Column {
+        id: form
+        anchors {
+            top: mainTextContainer.bottom
+            left: parent.left
+            margins: 0
+            topMargin: 2 * hifi.dimensions.contentSpacing.y
+        }
+        spacing: 2 * hifi.dimensions.contentSpacing.y
+
+        Row {
+            spacing: hifi.dimensions.contentSpacing.x
+
+            TextField {
+                id: emailField
+                anchors {
+                    verticalCenter: parent.verticalCenter
+                }
+                width: 300
+
+                label: "Email"
+            }
+        }
+
+        Row {
+            spacing: hifi.dimensions.contentSpacing.x
+
+            TextField {
+                id: usernameField
+                anchors {
+                    verticalCenter: parent.verticalCenter
+                }
+                width: 300
+
+                label: "Username"
+            }
+
+            ShortcutText {
+                anchors {
+                    verticalCenter: parent.verticalCenter
+                }
+
+                text: qsTr("No spaces / special chars.")
+
+                verticalAlignment: Text.AlignVCenter
+                horizontalAlignment: Text.AlignHCenter
+
+                color: hifi.colors.blueAccent
+            }
+        }
+
+        Row {
+            spacing: hifi.dimensions.contentSpacing.x
+
+            TextField {
+                id: passwordField
+                anchors {
+                    verticalCenter: parent.verticalCenter
+                }
+                width: 300
+
+                label: "Password"
+                echoMode: TextInput.Password
+            }
+
+            ShortcutText {
+                anchors {
+                    verticalCenter: parent.verticalCenter
+                }
+
+                text: qsTr("At least 6 characters")
+
+                verticalAlignment: Text.AlignVCenter
+                horizontalAlignment: Text.AlignHCenter
+
+                color: hifi.colors.blueAccent
+            }
+        }
+
+    }
+
+    // Override ScrollingWindow's keyboard that would be at very bottom of dialog.
+    Keyboard {
+        raised: keyboardEnabled && keyboardRaised
+        numeric: punctuationMode
+        anchors {
+            left: parent.left
+            right: parent.right
+            bottom: buttons.top
+            bottomMargin: keyboardRaised ? 2 * hifi.dimensions.contentSpacing.y : 0
+        }
+    }
+
+    Row {
+        id: leftButton
+        anchors {
+            left: parent.left
+            bottom: parent.bottom
+            bottomMargin: hifi.dimensions.contentSpacing.y
+        }
+
+        spacing: hifi.dimensions.contentSpacing.x
+        onHeightChanged: d.resize(); onWidthChanged: d.resize();
+
+        Button {
+            anchors.verticalCenter: parent.verticalCenter
+
+            text: qsTr("Existing User")
+
+            onClicked: {
+                bodyLoader.setSource("LinkAccountBody.qml")
+            }
+        }
+    }
+
+    Row {
+        id: buttons
+        anchors {
+            right: parent.right
+            bottom: parent.bottom
+            bottomMargin: hifi.dimensions.contentSpacing.y
+        }
+        spacing: hifi.dimensions.contentSpacing.x
+        onHeightChanged: d.resize(); onWidthChanged: d.resize();
+
+        Button {
+            id: linkAccountButton
+            anchors.verticalCenter: parent.verticalCenter
+            width: 200
+
+            text: qsTr("Sign Up")
+            color: hifi.buttons.blue
+
+            onClicked: signupBody.signup()
+        }
+
+        Button {
+            anchors.verticalCenter: parent.verticalCenter
+
+            text: qsTr("Cancel")
+
+            onClicked: bodyLoader.popup()
+        }
+    }
+
+    Component.onCompleted: {
+        loginDialogRoot.title = qsTr("Create an Account")
+        loginDialogRoot.iconText = "<"
+        keyboardEnabled = HMD.active;
+        d.resize();
+
+        emailField.forceActiveFocus();
+    }
+
+    Connections {
+        target: loginDialog
+        onHandleSignupCompleted: {
+            console.log("Sign Up Succeeded");
+
+            // now that we have an account, login with that username and password
+            loginDialog.login(usernameField.text, passwordField.text)
+        }
+        onHandleSignupFailed: {
+            console.log("Sign Up Failed")
+            toggleLoading(false)
+
+            mainTextContainer.text = errorString
+            mainTextContainer.visible = true
+
+            d.resize();
+        }
+        onHandleLoginCompleted: {
+            bodyLoader.setSource("WelcomeBody.qml", { "welcomeBack": false })
+        }
+        onHandleLoginFailed: {
+            // we failed to login, show the LoginDialog so the user will try again
+            bodyLoader.setSource("LinkAccountBody.qml", { "failAfterSignUp": true })
+        }
+    }
+
+    Keys.onPressed: {
+        if (!visible) {
+            return
+        }
+
+        switch (event.key) {
+        case Qt.Key_Enter:
+        case Qt.Key_Return:
+            event.accepted = true
+            signupBody.signup()
+            break
+        }
+    }
+}
diff --git a/interface/resources/qml/TabletLoginDialog/UsernameCollisionBody.qml b/interface/resources/qml/TabletLoginDialog/UsernameCollisionBody.qml
new file mode 100644
index 0000000000..9e5b01d339
--- /dev/null
+++ b/interface/resources/qml/TabletLoginDialog/UsernameCollisionBody.qml
@@ -0,0 +1,157 @@
+//
+//  UsernameCollisionBody.qml
+//
+//  Created by Clement on 7/18/16
+//  Copyright 2015 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
+//
+
+import Hifi 1.0
+import QtQuick 2.4
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4 as OriginalStyles
+
+import "../controls-uit"
+import "../styles-uit"
+
+Item {
+    id: usernameCollisionBody
+    clip: true
+    width: parent.width
+    height: parent.height
+
+    function create() {
+        mainTextContainer.visible = false
+        loginDialog.createAccountFromStream(textField.text)
+    }
+
+
+    property bool keyboardEnabled: false
+    property bool keyboardRaised: false
+    property bool punctuationMode: false
+
+    onKeyboardRaisedChanged: d.resize();
+
+    QtObject {
+        id: d
+        function resize() {}
+    }
+
+    ShortcutText {
+        id: mainTextContainer
+        anchors {
+            top: parent.top
+            left: parent.left
+            margins: 0
+            topMargin: hifi.dimensions.contentSpacing.y
+        }
+
+        text: qsTr("Your Steam username is not available.")
+        wrapMode: Text.WordWrap
+        color: hifi.colors.redAccent
+        lineHeight: 1
+        lineHeightMode: Text.ProportionalHeight
+        horizontalAlignment: Text.AlignHCenter
+    }
+
+
+    TextField {
+        id: textField
+        anchors {
+            top: mainTextContainer.bottom
+            left: parent.left
+            margins: 0
+            topMargin: hifi.dimensions.contentSpacing.y
+        }
+        width: 250
+
+        placeholderText: "Choose your own"
+    }
+
+    // Override ScrollingWindow's keyboard that would be at very bottom of dialog.
+    Keyboard {
+        raised: keyboardEnabled && keyboardRaised
+        numeric: punctuationMode
+        anchors {
+            left: parent.left
+            right: parent.right
+            bottom: buttons.top
+            bottomMargin: keyboardRaised ? 2 * hifi.dimensions.contentSpacing.y : 0
+        }
+    }
+
+    Row {
+        id: buttons
+        anchors {
+            bottom: parent.bottom
+            right: parent.right
+            margins: 0
+            topMargin: hifi.dimensions.contentSpacing.y
+        }
+        spacing: hifi.dimensions.contentSpacing.x
+        onHeightChanged: d.resize(); onWidthChanged: d.resize();
+
+        Button {
+            anchors.verticalCenter: parent.verticalCenter
+            width: 200
+
+            text: qsTr("Create your profile")
+            color: hifi.buttons.blue
+
+            onClicked: usernameCollisionBody.create()
+        }
+
+        Button {
+            anchors.verticalCenter: parent.verticalCenter
+
+            text: qsTr("Cancel")
+            onClicked: bodyLoader.popup()
+        }
+    }
+
+    Component.onCompleted: {
+        loginDialogRoot.title = qsTr("Complete Your Profile")
+        loginDialogRoot.iconText = "<"
+        keyboardEnabled = HMD.active;
+        d.resize();
+    }
+
+    Connections {
+        target: loginDialog
+        onHandleCreateCompleted: {
+            console.log("Create Succeeded")
+
+            loginDialog.loginThroughSteam()
+        }
+        onHandleCreateFailed: {
+            console.log("Create Failed: " + error)
+
+            mainTextContainer.visible = true
+            mainTextContainer.text = "\"" + textField.text + qsTr("\" is invalid or already taken.")
+        }
+        onHandleLoginCompleted: {
+            console.log("Login Succeeded")
+
+            bodyLoader.setSource("WelcomeBody.qml", { "welcomeBack" : false })
+        }
+        onHandleLoginFailed: {
+            console.log("Login Failed")
+        }
+    }
+
+    Keys.onPressed: {
+        if (!visible) {
+            return
+        }
+
+        switch (event.key) {
+            case Qt.Key_Enter:
+            case Qt.Key_Return:
+                event.accepted = true
+                usernameCollisionBody.create()
+                break
+        }
+    }
+}
diff --git a/interface/resources/qml/TabletLoginDialog/WelcomeBody.qml b/interface/resources/qml/TabletLoginDialog/WelcomeBody.qml
new file mode 100644
index 0000000000..5ec259ca96
--- /dev/null
+++ b/interface/resources/qml/TabletLoginDialog/WelcomeBody.qml
@@ -0,0 +1,79 @@
+//
+//  WelcomeBody.qml
+//
+//  Created by Clement on 7/18/16
+//  Copyright 2015 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
+//
+
+import Hifi 1.0
+import QtQuick 2.4
+
+import "../controls-uit"
+import "../styles-uit"
+
+Item {
+    id: welcomeBody
+    clip: true
+
+    property bool welcomeBack: false
+
+    function setTitle() {
+        loginDialogRoot.title = (welcomeBack ? qsTr("Welcome back <b>") : qsTr("Welcome <b>")) + Account.username + qsTr("</b>!")
+        loginDialogRoot.iconText = ""
+        d.resize();
+    }
+
+    QtObject {
+        id: d
+        function resize() {}
+    }
+
+    InfoItem {
+        id: mainTextContainer
+        anchors {
+            top: parent.top
+            horizontalCenter: parent.horizontalCenter
+            margins: 0
+            topMargin: hifi.dimensions.contentSpacing.y
+        }
+
+        text: qsTr("You are now signed into High Fidelity")
+        wrapMode: Text.WordWrap
+        color: hifi.colors.baseGrayHighlight
+        lineHeight: 2
+        lineHeightMode: Text.ProportionalHeight
+        horizontalAlignment: Text.AlignHCenter
+    }
+
+    Row {
+        id: buttons
+        anchors {
+            top: mainTextContainer.bottom
+            horizontalCenter: parent.horizontalCenter
+            margins: 0
+            topMargin: 2 * hifi.dimensions.contentSpacing.y
+        }
+        spacing: hifi.dimensions.contentSpacing.x
+        onHeightChanged: d.resize(); onWidthChanged: d.resize();
+
+        Button {
+            anchors.verticalCenter: parent.verticalCenter
+
+            text: qsTr("Close");
+
+            onClicked: bodyLoader.popup()
+        }
+    }
+
+    Component.onCompleted: {
+        welcomeBody.setTitle()
+    }
+
+    Connections {
+        target: Account
+        onUsernameChanged: welcomeBody.setTitle()
+    }
+}
diff --git a/interface/resources/qml/dialogs/TabletLoginDialog.qml b/interface/resources/qml/dialogs/TabletLoginDialog.qml
new file mode 100644
index 0000000000..78e5edebb5
--- /dev/null
+++ b/interface/resources/qml/dialogs/TabletLoginDialog.qml
@@ -0,0 +1,113 @@
+//
+//  TabletLoginDialog.qml
+//
+//  Created by Vlad Stelmahovsky on 15 Mar 2017
+//  Copyright 2017 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
+//
+
+import Hifi 1.0
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+
+import "../controls-uit"
+import "../styles-uit"
+import "../windows"
+
+TabletModalWindow {
+    id: loginDialogRoot
+    objectName: "LoginDialog"
+
+    property var eventBridge;
+    signal sendToScript(var message);
+    property bool isHMD: false
+
+    color: hifi.colors.baseGray
+
+    property int colorScheme: hifi.colorSchemes.dark
+    property int titleWidth: 0
+    property string iconText: ""
+    property int icon: hifi.icons.none
+    property int iconSize: 35
+    MouseArea {
+        width: parent.width
+        height: parent.height
+    }
+
+    property bool keyboardOverride: true
+    onIconChanged: updateIcon();
+
+    property var items;
+    property string label: ""
+
+    onTitleWidthChanged: d.resize();
+
+    property bool keyboardEnabled: false
+    property bool keyboardRaised: false
+    property bool punctuationMode: false
+
+    onKeyboardRaisedChanged: d.resize();
+
+    signal canceled();
+
+    function updateIcon() {
+        if (!root) {
+            return;
+        }
+        iconText = hifi.glyphForIcon(root.icon);
+    }
+
+    property alias bodyLoader: bodyLoader
+    property alias loginDialog: loginDialog
+    property alias hifi: hifi
+
+    HifiConstants { id: hifi }
+
+    onCanceled: {
+        loginDialogRoot.Stack.view.pop()
+    }
+
+    LoginDialog {
+        id: loginDialog
+        width: parent.width
+        height: parent.height
+        StackView {
+            id: bodyLoader
+            property var item: currentItem
+            property var props
+            property string source: ""
+
+            onCurrentItemChanged: {
+                //cleanup source for future usage
+                source = ""
+            }
+
+            function setSource(src, props) {
+                source = "../TabletLoginDialog/" + src
+                bodyLoader.props = props
+            }
+            function popup() {
+                bodyLoader.pop()
+
+                //check if last screen, if yes, dialog is popped out
+                if (depth === 1)
+                    loginDialogRoot.canceled()
+            }
+
+            anchors.fill: parent
+            anchors.margins: 10
+            onSourceChanged: {
+                if (source !== "") {
+                    bodyLoader.push(Qt.resolvedUrl(source), props)
+                }
+            }
+            Component.onCompleted: {
+                setSource(loginDialog.isSteamRunning() ?
+                              "SignInBody.qml" :
+                              "LinkAccountBody.qml")
+            }
+        }
+    }
+}
diff --git a/interface/src/ui/DialogsManager.cpp b/interface/src/ui/DialogsManager.cpp
index 3252fef4f0..e52b1b6d9e 100644
--- a/interface/src/ui/DialogsManager.cpp
+++ b/interface/src/ui/DialogsManager.cpp
@@ -31,6 +31,9 @@
 #include "ScriptEditorWindow.h"
 #include "UpdateDialog.h"
 
+#include "TabletScriptingInterface.h"
+#include "scripting/HMDScriptingInterface.h"
+
 template<typename T>
 void DialogsManager::maybeCreateDialog(QPointer<T>& member) {
     if (!member) {
@@ -77,7 +80,7 @@ void DialogsManager::toggleLoginDialog() {
 }
 
 void DialogsManager::showLoginDialog() {
-    LoginDialog::show();
+    LoginDialog::showWithSelection();
 }
 
 void DialogsManager::showUpdateDialog() {
diff --git a/interface/src/ui/LoginDialog.cpp b/interface/src/ui/LoginDialog.cpp
index e333bb1b88..dce76eb661 100644
--- a/interface/src/ui/LoginDialog.cpp
+++ b/interface/src/ui/LoginDialog.cpp
@@ -24,6 +24,10 @@
 #include "DependencyManager.h"
 #include "Menu.h"
 
+#include "Application.h"
+#include "TabletScriptingInterface.h"
+#include "scripting/HMDScriptingInterface.h"
+
 HIFI_QML_DEF(LoginDialog)
 
 LoginDialog::LoginDialog(QQuickItem *parent) : OffscreenQmlDialog(parent) {
@@ -31,7 +35,25 @@ LoginDialog::LoginDialog(QQuickItem *parent) : OffscreenQmlDialog(parent) {
     connect(accountManager.data(), &AccountManager::loginComplete,
         this, &LoginDialog::handleLoginCompleted);
     connect(accountManager.data(), &AccountManager::loginFailed,
-        this, &LoginDialog::handleLoginFailed);
+            this, &LoginDialog::handleLoginFailed);
+}
+
+void LoginDialog::showWithSelection()
+{
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+    auto hmd = DependencyManager::get<HMDScriptingInterface>();
+
+    if (tablet->getToolbarMode()) {
+        LoginDialog::show();
+    } else {
+        if (!hmd->getShouldShowTablet() && !qApp->isHMDMode()) {
+            LoginDialog::show();
+        } else {
+            static const QUrl url("../../dialogs/TabletLoginDialog.qml");
+            tablet->pushOntoStack(url);
+        }
+    }
 }
 
 void LoginDialog::toggleAction() {
@@ -51,7 +73,7 @@ void LoginDialog::toggleAction() {
         // change the menu item to login
         loginAction->setText("Login / Sign Up");
         connection = connect(loginAction, &QAction::triggered, [] {
-            LoginDialog::show();
+            LoginDialog::showWithSelection();
         });
     }
 }
@@ -141,9 +163,23 @@ void LoginDialog::createAccountFromStream(QString username) {
 }
 
 void LoginDialog::openUrl(const QString& url) const {
+
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+    auto hmd = DependencyManager::get<HMDScriptingInterface>();
     auto offscreenUi = DependencyManager::get<OffscreenUi>();
-    auto browser = offscreenUi->load("Browser.qml");
-    browser->setProperty("url", url);
+
+    if (tablet->getToolbarMode()) {
+        auto browser = offscreenUi->load("Browser.qml");
+        browser->setProperty("url", url);
+    } else {
+        if (!hmd->getShouldShowTablet() && !qApp->isHMDMode()) {
+            auto browser = offscreenUi->load("Browser.qml");
+            browser->setProperty("url", url);
+        } else {
+            tablet->gotoWebScreen(url);
+        }
+    }
 }
 
 void LoginDialog::linkCompleted(QNetworkReply& reply) {
diff --git a/interface/src/ui/LoginDialog.h b/interface/src/ui/LoginDialog.h
index ce6075793b..5ebf866fbd 100644
--- a/interface/src/ui/LoginDialog.h
+++ b/interface/src/ui/LoginDialog.h
@@ -27,6 +27,7 @@ public:
 
     LoginDialog(QQuickItem* parent = nullptr);
 
+    static void showWithSelection();
 signals:
     void handleLoginCompleted();
     void handleLoginFailed();

From 5335bf88620a1bc6586f355e415b3df124665011 Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Sat, 18 Mar 2017 15:44:32 +0100
Subject: [PATCH 159/247] Menu items in Tablet UI now wrapped

---
 interface/resources/qml/hifi/tablet/TabletMenuItem.qml | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/TabletMenuItem.qml b/interface/resources/qml/hifi/tablet/TabletMenuItem.qml
index c9223650f8..25f672e7a9 100644
--- a/interface/resources/qml/hifi/tablet/TabletMenuItem.qml
+++ b/interface/resources/qml/hifi/tablet/TabletMenuItem.qml
@@ -32,8 +32,7 @@ Item {
         anchors {
             left: parent.left
             leftMargin: hifi.dimensions.menuPadding.x + 15
-            top: label.top
-            topMargin: 0
+            verticalCenter: label.verticalCenter
         }
         width: 20
         visible: source.visible && source.type === 1 && source.checkable
@@ -51,6 +50,8 @@ Item {
     RalewaySemiBold {
         id: label
         size: 20
+        //wrap will work only if width is set
+        width: parent.width - (check.width + check.anchors.leftMargin) - tail.width
         font.capitalization: isSubMenu ? Font.MixedCase : Font.AllUppercase
         anchors.left: check.right
         anchors.verticalCenter: parent.verticalCenter
@@ -58,6 +59,7 @@ Item {
         color: source.enabled ? hifi.colors.baseGrayShadow : hifi.colors.baseGrayShadow50
         enabled: source.visible && (source.type !== 0 ? source.enabled : false)
         visible: source.visible
+        wrapMode: Text.WordWrap
     }
 
     Item {

From 98cae8d1521ad76afd35389eea79c2152aadaa86 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Mon, 20 Mar 2017 09:37:46 -0700
Subject: [PATCH 160/247] added
 EntityScriptingInterface::getEntityLocalTransform.  try harder to make sure
 polyvox mesh is ready before giving it to javascript

---
 .../src/RenderablePolyVoxEntityItem.cpp       | 17 ++++++++++----
 .../src/RenderablePolyVoxEntityItem.h         |  4 ++--
 .../entities/src/EntityScriptingInterface.cpp | 23 +++++++++++++++----
 .../entities/src/EntityScriptingInterface.h   | 10 ++++++++
 libraries/model/src/model/Geometry.cpp        |  2 +-
 5 files changed, 43 insertions(+), 13 deletions(-)

diff --git a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
index 1d58527427..efe284651a 100644
--- a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
+++ b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
@@ -1312,7 +1312,7 @@ void RenderablePolyVoxEntityItem::setMesh(model::MeshPointer mesh) {
         }
         _mesh = mesh;
         _meshDirty = true;
-        _meshInitialized = true;
+        _meshReady = true;
         neighborsNeedUpdate = _neighborsNeedUpdate;
         _neighborsNeedUpdate = false;
     });
@@ -1324,7 +1324,7 @@ void RenderablePolyVoxEntityItem::setMesh(model::MeshPointer mesh) {
 void RenderablePolyVoxEntityItem::computeShapeInfoWorker() {
     // this creates a collision-shape for the physics engine.  The shape comes from
     // _volData for cubic extractors and from _mesh for marching-cube extractors
-    if (!_meshInitialized) {
+    if (!_meshReady) {
         return;
     }
 
@@ -1601,15 +1601,22 @@ bool RenderablePolyVoxEntityItem::getMeshAsScriptValue(QScriptEngine *engine, QS
     MeshProxy* meshProxy = nullptr;
     glm::mat4 transform = voxelToLocalMatrix();
     withReadLock([&] {
-        if (_meshInitialized) {
+        gpu::BufferView::Index numVertices = (gpu::BufferView::Index)_mesh->getNumVertices();
+        if (!_meshReady) {
+            // we aren't ready to return a mesh.  the caller will have to try again later.
+            success = false;
+        } else if (numVertices == 0) {
+            // we are ready, but there are no triangles in the mesh.
+            success = true;
+        } else {
             success = true;
             // the mesh will be in voxel-space.  transform it into object-space
             meshProxy = new MeshProxy(
                 _mesh->map([=](glm::vec3 position){ return glm::vec3(transform * glm::vec4(position, 1.0f)); },
                            [=](glm::vec3 normal){ return glm::vec3(transform * glm::vec4(normal, 0.0f)); },
-                           [](uint32_t index){ return index; }));
+                           [&](uint32_t index){ return index; }));
+            result = meshToScriptValue(engine, meshProxy);
         }
     });
-    result = meshToScriptValue(engine, meshProxy);
     return success;
 }
diff --git a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.h b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.h
index cf4672f068..e6467be987 100644
--- a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.h
+++ b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.h
@@ -142,7 +142,7 @@ public:
     uint8_t getVoxelInternal(int x, int y, int z) const;
     bool setVoxelInternal(int x, int y, int z, uint8_t toValue);
 
-    void setVolDataDirty() { withWriteLock([&] { _volDataDirty = true; }); }
+    void setVolDataDirty() { withWriteLock([&] { _volDataDirty = true; _meshReady = false; }); }
 
     // Transparent polyvox didn't seem to be working so disable for now
     bool isTransparent() override { return false; }
@@ -157,7 +157,7 @@ private:
     model::MeshPointer _mesh;
     gpu::Stream::FormatPointer _vertexFormat;
     bool _meshDirty { true }; // does collision-shape need to be recomputed?
-    bool _meshInitialized { false };
+    bool _meshReady { false };
 
     NetworkTexturePointer _xTexture;
     NetworkTexturePointer _yTexture;
diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp
index 7ab0c3f7d9..88cc527164 100644
--- a/libraries/entities/src/EntityScriptingInterface.cpp
+++ b/libraries/entities/src/EntityScriptingInterface.cpp
@@ -934,11 +934,7 @@ void EntityScriptingInterface::voxelsToMesh(QUuid entityID, QScriptValue callbac
     QScriptValue mesh { false };
 
     polyVoxWorker(entityID, [&](PolyVoxEntityItem& polyVoxEntity) mutable {
-        if (polyVoxEntity.getOnCount() == 0) {
-            success = true;
-        } else {
-            success = polyVoxEntity.getMeshAsScriptValue(callback.engine(), mesh);
-        }
+        success = polyVoxEntity.getMeshAsScriptValue(callback.engine(), mesh);
         return true;
     });
 
@@ -1578,3 +1574,20 @@ glm::mat4 EntityScriptingInterface::getEntityTransform(const QUuid& entityID) {
     }
     return result;
 }
+
+glm::mat4 EntityScriptingInterface::getEntityLocalTransform(const QUuid& entityID) {
+    glm::mat4 result;
+    if (_entityTree) {
+        _entityTree->withReadLock([&] {
+            EntityItemPointer entity = _entityTree->findEntityByEntityItemID(EntityItemID(entityID));
+            if (entity) {
+                glm::mat4 translation = glm::translate(entity->getLocalPosition());
+                glm::mat4 rotation = glm::mat4_cast(entity->getLocalOrientation());
+                glm::mat4 registration = glm::translate(ENTITY_ITEM_DEFAULT_REGISTRATION_POINT -
+                                                        entity->getRegistrationPoint());
+                result = translation * rotation * registration;
+            }
+        });
+    }
+    return result;
+}
diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h
index fa727aaa7a..71758ba53f 100644
--- a/libraries/entities/src/EntityScriptingInterface.h
+++ b/libraries/entities/src/EntityScriptingInterface.h
@@ -304,6 +304,16 @@ public slots:
      */
     Q_INVOKABLE glm::mat4 getEntityTransform(const QUuid& entityID);
 
+
+    /**jsdoc
+     * Returns object to world transform, excluding scale
+     *
+     * @function Entities.getEntityLocalTransform
+     * @param {EntityID} entityID The ID of the entity whose local transform is to be returned
+     * @return {Mat4} Entity's object to parent transform, excluding scale
+     */
+    Q_INVOKABLE glm::mat4 getEntityLocalTransform(const QUuid& entityID);
+
 signals:
     void collisionWithEntity(const EntityItemID& idA, const EntityItemID& idB, const Collision& collision);
 
diff --git a/libraries/model/src/model/Geometry.cpp b/libraries/model/src/model/Geometry.cpp
index 04b0db92d3..341015816e 100755
--- a/libraries/model/src/model/Geometry.cpp
+++ b/libraries/model/src/model/Geometry.cpp
@@ -228,7 +228,7 @@ void Mesh::forEach(std::function<void(glm::vec3)> vertexFunc,
 
     // normal data
     const gpu::BufferView& normalsBufferView = getAttributeBuffer(attributeTypeNormal);
-    gpu::BufferView::Index numNormals =  (gpu::BufferView::Index) normalsBufferView.getNumElements();
+    gpu::BufferView::Index numNormals =  (gpu::BufferView::Index)normalsBufferView.getNumElements();
     for (gpu::BufferView::Index i = 0; i < numNormals; i ++) {
         normalFunc(normalsBufferView.get<glm::vec3>(i));
     }

From f57905fbb3225a176587ae7775f61c0e0e19ddd2 Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Mon, 20 Mar 2017 10:23:55 -0700
Subject: [PATCH 161/247] remove code for jump to selection

---
 scripts/system/html/entityList.html  | 1 -
 scripts/system/html/js/entityList.js | 4 ----
 2 files changed, 5 deletions(-)

diff --git a/scripts/system/html/entityList.html b/scripts/system/html/entityList.html
index bdd01bc7d2..9d774f1861 100644
--- a/scripts/system/html/entityList.html
+++ b/scripts/system/html/entityList.html
@@ -25,7 +25,6 @@
                 <input type="button" id="visible" class="glyph" value="&#xe007;" />
             </div>
             <input type="button" id="export" value="Export Selection" />
-            <input type="button" id="teleport" value="Jump to Selection" style="display: none"/>
             <input type="button" id="pal" class="glyph" value="&#xe00c;" />
             <input type="button" class="red" id="delete" value="Delete" />
         </div>
diff --git a/scripts/system/html/js/entityList.js b/scripts/system/html/js/entityList.js
index a371b3bdc9..c6692fc26e 100644
--- a/scripts/system/html/js/entityList.js
+++ b/scripts/system/html/js/entityList.js
@@ -39,7 +39,6 @@ function loaded() {
       elFilter = document.getElementById("filter");
       elInView = document.getElementById("in-view")
       elRadius = document.getElementById("radius");
-      elTeleport = document.getElementById("teleport");
       elExport = document.getElementById("export");
       elPal = document.getElementById("pal");
       elEntityTable = document.getElementById("entity-table");
@@ -274,9 +273,6 @@ function loaded() {
       elToggleVisible.onclick = function () {
           EventBridge.emitWebEvent(JSON.stringify({ type: 'toggleVisible' }));
       }
-      elTeleport.onclick = function () {
-          EventBridge.emitWebEvent(JSON.stringify({ type: 'teleport' }));
-      }
       elExport.onclick = function() {
           EventBridge.emitWebEvent(JSON.stringify({ type: 'export'}));
       }

From de24023a2142efb227a04742a8201c50ef14d2ba Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Mon, 20 Mar 2017 20:43:32 +0100
Subject: [PATCH 162/247] Fix edit.js from deselecting an object when trying to
 delete it

---
 scripts/system/edit.js | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/scripts/system/edit.js b/scripts/system/edit.js
index 55bd11b286..e598953ba7 100644
--- a/scripts/system/edit.js
+++ b/scripts/system/edit.js
@@ -687,11 +687,22 @@ function mouseReleaseEvent(event) {
     }
 }
 
+function wasTabletClicked(event) {
+    var rayPick = Camera.computePickRay(event.x, event.y);
+    var result = Overlays.findRayIntersection(rayPick, true, [HMD.tabletID, HMD.tabletScreenID, HMD.homeButtonID]);
+    return result.intersects;
+}
+    
 function mouseClickEvent(event) {
     var wantDebug = false;
-    var result, properties;
+    var result, properties, tabletClicked;
     if (isActive && event.isLeftButton) {
         result = findClickedEntity(event);
+        tabletClicked = wasTabletClicked(event);
+        if (tabletClicked) {
+            return;
+        }
+        
         if (result === null || result === undefined) {
             if (!event.isShifted) {
                 selectionManager.clearSelections();

From 13cd500c2e6d4763393d07dd0dd821e0e05ec5a5 Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Mon, 20 Mar 2017 20:46:37 +0100
Subject: [PATCH 163/247] Make runningscripts able to open even if there is no
 scripts running

---
 interface/src/Application.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 9517b69050..b48a247bb1 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -5821,12 +5821,14 @@ bool Application::displayAvatarAttachmentConfirmationDialog(const QString& name)
     }
 }
 
-void Application::toggleRunningScriptsWidget() const {
-    
+void Application::toggleRunningScriptsWidget() const {    
+    auto scriptEngines = DependencyManager::get<ScriptEngines>();
+    bool _scriptsRunning = !scriptEngines->getRunningScripts().isEmpty();
     auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+
     auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
     auto hmd = DependencyManager::get<HMDScriptingInterface>();
-    if (tablet->getToolbarMode()) {
+    if (tablet->getToolbarMode() || false == _scriptsRunning) {
         static const QUrl url("hifi/dialogs/RunningScripts.qml");
         DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
     } else {

From f5c3d41f2cde58b27e707f5b713f21f8cafca3ab Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidleity.io>
Date: Mon, 20 Mar 2017 14:51:47 -0700
Subject: [PATCH 164/247] Tablet scale settings now take effect soon after they
 are changed.

---
 scripts/system/libraries/WebTablet.js | 32 ++++++++++++++++++++++
 scripts/system/tablet-ui/tabletUI.js  | 39 +++++++++++++++++++++------
 2 files changed, 63 insertions(+), 8 deletions(-)

diff --git a/scripts/system/libraries/WebTablet.js b/scripts/system/libraries/WebTablet.js
index 6041a842d6..8114c2052b 100644
--- a/scripts/system/libraries/WebTablet.js
+++ b/scripts/system/libraries/WebTablet.js
@@ -279,6 +279,38 @@ WebTablet.prototype.getOverlayObject = function () {
     return Overlays.getOverlayObject(this.webOverlayID);
 };
 
+WebTablet.prototype.setWidth = function (width) {
+
+    // scale factor of natural tablet dimensions.
+    this.width = width || DEFAULT_WIDTH;
+    var tabletScaleFactor = this.width / TABLET_NATURAL_DIMENSIONS.x;
+    this.height = TABLET_NATURAL_DIMENSIONS.y * tabletScaleFactor;
+    this.depth = TABLET_NATURAL_DIMENSIONS.z * tabletScaleFactor;
+    this.dpi = DEFAULT_DPI * (DEFAULT_WIDTH / this.width);
+
+    // update tablet model dimensions
+    if (this.tabletIsOverlay) {
+        Overlays.editOverlay(this.tabletEntityID, {dimensions: {x: this.width, y: this.height, z: this.depth}});
+    } else {
+        Entities.editEntity(this.tabletEntityID, {dimensions: {x: this.width, y: this.height, z: this.depth}});
+    }
+
+    // update webOverlay
+    var WEB_ENTITY_Z_OFFSET = (this.depth / 2);
+    var WEB_ENTITY_Y_OFFSET = 0.004;
+    Overlays.editOverlay(this.webOverlayID, {
+        localPosition: { x: 0, y: WEB_ENTITY_Y_OFFSET, z: -WEB_ENTITY_Z_OFFSET },
+        dpi: this.dpi
+    });
+
+    // update homeButton
+    var HOME_BUTTON_Y_OFFSET = (this.height / 2) - (this.height / 20);
+    Overlays.editOverlay(this.homeButtonID, {
+        localPosition: {x: -0.001, y: -HOME_BUTTON_Y_OFFSET, z: 0.0},
+        dimensions: { x: 4 * tabletScaleFactor, y: 4 * tabletScaleFactor, z: 4 * tabletScaleFactor}
+    });
+};
+
 WebTablet.prototype.destroy = function () {
     Overlays.deleteOverlay(this.webOverlayID);
     if (this.tabletIsOverlay) {
diff --git a/scripts/system/tablet-ui/tabletUI.js b/scripts/system/tablet-ui/tabletUI.js
index 3b15eb4edb..a010cb0a9c 100644
--- a/scripts/system/tablet-ui/tabletUI.js
+++ b/scripts/system/tablet-ui/tabletUI.js
@@ -24,6 +24,7 @@
     var preMakeTime = Date.now();
     var validCheckTime = Date.now();
     var debugTablet = false;
+    var tabletScalePercentage = 100.0;
     UIWebTablet = null;
 
     Script.include("../libraries/WebTablet.js");
@@ -48,26 +49,45 @@
         return true;
     }
 
+    function getTabletScalePercentageFromSettings() {
+        var toolbarMode = Tablet.getTablet("com.highfidelity.interface.tablet.system").toolbarMode;
+        var tabletScalePercentage = DEFAULT_TABLET_SCALE;
+        if (!toolbarMode) {
+            if (HMD.active) {
+                tabletScalePercentage = Settings.getValue("hmdTabletScale") || DEFAULT_TABLET_SCALE;
+            } else {
+                tabletScalePercentage = Settings.getValue("desktopTabletScale") || DEFAULT_TABLET_SCALE;
+            }
+        }
+        return tabletScalePercentage;
+    }
+
+    function updateTabletWidthFromSettings() {
+        var newTabletScalePercentage = getTabletScalePercentageFromSettings();
+        if (newTabletScalePercentage !== tabletScalePercentage && UIWebTablet) {
+            tabletScalePercentage = newTabletScalePercentage;
+            UIWebTablet.setWidth(DEFAULT_WIDTH * (tabletScalePercentage / 100));
+        }
+    }
+
+    function onHmdChanged() {
+        updateTabletWidthFromSettings();
+    }
 
     function rezTablet() {
         if (debugTablet) {
             print("TABLET rezzing");
         }
-        var toolbarMode = Tablet.getTablet("com.highfidelity.interface.tablet.system").toolbarMode;
-        var TABLET_SCALE = DEFAULT_TABLET_SCALE;
-        if (toolbarMode) {
-            TABLET_SCALE = Settings.getValue("desktopTabletScale") || DEFAULT_TABLET_SCALE;
-        } else {
-            TABLET_SCALE = Settings.getValue("hmdTabletScale") || DEFAULT_TABLET_SCALE;
-        }
 
+        tabletScalePercentage = getTabletScalePercentageFromSettings();
         UIWebTablet = new WebTablet("qml/hifi/tablet/TabletRoot.qml",
-                                    DEFAULT_WIDTH * (TABLET_SCALE / 100),
+                                    DEFAULT_WIDTH * (tabletScalePercentage / 100),
                                     null, activeHand, true);
         UIWebTablet.register();
         HMD.tabletID = UIWebTablet.tabletEntityID;
         HMD.homeButtonID = UIWebTablet.homeButtonID;
         HMD.tabletScreenID = UIWebTablet.webOverlayID;
+        HMD.displayModeChanged.connect(onHmdChanged);
 
         tabletRezzed = true;
     }
@@ -166,6 +186,8 @@
             tablet.updateAudioBar(currentMicLevel);
         }
 
+        updateTabletWidthFromSettings();
+
         if (validCheckTime - now > MSECS_PER_SEC) {
             validCheckTime = now;
             if (tabletRezzed && UIWebTablet && !tabletIsValid()) {
@@ -180,6 +202,7 @@
             }
         }
 
+        // check for change in tablet scale.
 
         if (HMD.showTablet && !tabletShown && !toolbarMode) {
             UserActivityLogger.openedTablet(visibleToOthers);

From b6bf58d5be68ea42f55deda37dc30d293a11b14c Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Mon, 20 Mar 2017 15:28:30 -0700
Subject: [PATCH 165/247] rearrange layout of main tablet go to screen

---
 .../qml/hifi/tablet/TabletAddressDialog.qml   | 209 +++++++++---------
 1 file changed, 104 insertions(+), 105 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
index 952a1f7faa..3a6577f4c0 100644
--- a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
@@ -82,6 +82,107 @@ Item {
         }
 
         onMetaverseServerUrlChanged: updateLocationTextTimer.start();
+        Rectangle {
+            id: navBar
+            width: 480
+            height: 70
+
+            gradient: Gradient {
+                GradientStop {
+                    position: 0
+                    color: "#c2ced8"
+
+                }
+
+                GradientStop {
+                    position: 1
+                    color: "#c2ced8"
+                }
+            }
+
+            anchors {
+                top: parent.top
+                right: parent.right
+                left: parent.left
+            }
+
+
+            ToolbarButton {
+                id: homeButton
+                imageURL: "../../../images/home.svg"
+                onClicked: {
+                    addressBarDialog.loadHome();
+                    root.shown = false;
+                }
+                anchors {
+                    left: parent.left
+                    leftMargin: homeButton.width / 2
+                    verticalCenter: parent.verticalCenter
+                }
+            }
+            property int inputAreaHeight: 70
+            property int inputAreaStep: (height - inputAreaHeight) / 2
+
+             HifiStyles.RalewayLight {
+                id: notice;
+                font.pixelSize: hifi.fonts.pixelSize * 0.50;
+                anchors {
+                    top: parent.top
+                    topMargin: parent.inputAreaStep + 12
+                    left: addressLine.left
+                    right: addressLine.right
+                }
+            }
+            HifiStyles.FiraSansRegular {
+                id: location;
+                font.pixelSize: addressLine.font.pixelSize;
+                color: "gray";
+                clip: true;
+                anchors.fill: addressLine;
+                visible: addressLine.text.length === 0
+            }
+
+            TextInput {
+                id: addressLine
+                focus: true
+                anchors {
+                    bottom: parent.bottom
+                    left: homeButton.right
+                    right: parent.right
+                    leftMargin: homeButton.width
+                    rightMargin: homeButton.width / 2
+                    topMargin: parent.inputAreaStep + (2 * hifi.layout.spacing)
+                    bottomMargin: parent.inputAreaStep
+                }
+                font.pixelSize: hifi.fonts.pixelSize * 0.75
+                cursorVisible: false
+                onTextChanged: {
+                    filterChoicesByText();
+                    updateLocationText(text.length > 0);
+                    if (!isCursorVisible && text.length > 0) {
+                        isCursorVisible = true;
+                        cursorVisible = true;
+                    }
+                }
+                onAccepted: {
+                    addressBarDialog.keyboardEnabled = false;
+                }
+                onActiveFocusChanged: {
+                    cursorVisible = isCursorVisible && focus;
+                }
+                MouseArea {
+                    // If user clicks in address bar show cursor to indicate ability to enter address.
+                    anchors.fill: parent
+                    onClicked: {
+                        isCursorVisible = true;
+                        //parent.cursorVisible = true;
+                        parent.forceActiveFocus();
+                        addressBarDialog.keyboardEnabled = HMD.active
+                        tabletRoot.playButtonClickSound();
+                    }
+                }
+            }
+        }
         Rectangle {
             id: topBar
             height: 90
@@ -103,7 +204,7 @@ Item {
             anchors.left: parent.left
             anchors.leftMargin: 0
             anchors.topMargin: 0
-            anchors.top: parent.top
+            anchors.top: navBar.bottom
             
             Row {
                 id: thing
@@ -158,7 +259,7 @@ Item {
                 }
 
             
-            anchors.bottom: backgroundImage.top
+            anchors.bottom: parent.keyboardEnabled ? keyboard.top : parent.bottom
             anchors.bottomMargin: 0
             anchors.right: parent.right
             anchors.rightMargin: 0
@@ -210,109 +311,7 @@ Item {
             }
         }
 
-        Rectangle {
-            id: backgroundImage
-            width: 480
-            height: 70
-
-            gradient: Gradient {
-                GradientStop {
-                    position: 0
-                    color: "#c2ced8"
-
-                }
-                
-                GradientStop {
-                    position: 1
-                    color: "#c2ced8"
-                }
-            }
-
-            anchors {
-                bottom: parent.keyboardEnabled ? keyboard.top : parent.bottom
-                right: parent.right
-                left: parent.left
-            }
-
-
-            ToolbarButton {
-                id: homeButton
-                imageURL: "../../../images/home.svg"
-                onClicked: {
-                    addressBarDialog.loadHome();
-                    root.shown = false;
-                }
-                anchors {
-                    left: parent.left
-                    leftMargin: homeButton.width / 2
-                    verticalCenter: parent.verticalCenter
-                }
-            }
-            property int inputAreaHeight: 70
-            property int inputAreaStep: (height - inputAreaHeight) / 2
-
-             HifiStyles.RalewayLight {
-                id: notice;
-                font.pixelSize: hifi.fonts.pixelSize * 0.50;
-                anchors {
-                    top: parent.top
-                    topMargin: parent.inputAreaStep + 12
-                    left: addressLine.left
-                    right: addressLine.right
-                }
-            }
-            HifiStyles.FiraSansRegular {
-                id: location;
-                font.pixelSize: addressLine.font.pixelSize;
-                color: "gray";
-                clip: true;
-                anchors.fill: addressLine;
-                visible: addressLine.text.length === 0
-            }
-            
-            TextInput {
-                id: addressLine
-                focus: true
-                anchors {
-                    bottom: parent.bottom
-                    left: homeButton.right
-                    right: parent.right
-                    leftMargin: homeButton.width
-                    rightMargin: homeButton.width / 2
-                    topMargin: parent.inputAreaStep + (2 * hifi.layout.spacing)
-                    bottomMargin: parent.inputAreaStep
-                }
-                font.pixelSize: hifi.fonts.pixelSize * 0.75
-                cursorVisible: false
-                onTextChanged: {
-                    filterChoicesByText();
-                    updateLocationText(text.length > 0);
-                    if (!isCursorVisible && text.length > 0) {
-                        isCursorVisible = true;
-                        cursorVisible = true;
-                    }
-                }
-                onAccepted: {
-                    addressBarDialog.keyboardEnabled = false;
-                }
-                onActiveFocusChanged: {
-                    cursorVisible = isCursorVisible && focus;
-                }
-                MouseArea {
-                    // If user clicks in address bar show cursor to indicate ability to enter address.
-                    anchors.fill: parent
-                    onClicked: {
-                        isCursorVisible = true;
-                        //parent.cursorVisible = true;
-                        parent.forceActiveFocus();
-                        addressBarDialog.keyboardEnabled = HMD.active
-                        tabletRoot.playButtonClickSound();
-                    }
-                }
-            }  
-        }
-
-          Timer {
+        Timer {
             // Delay updating location text a bit to avoid flicker of content and so that connection status is valid.
             id: updateLocationTextTimer
             running: false

From cedc3cf8b6793284bb776a514c271829c021123f Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Mon, 20 Mar 2017 23:43:01 +0100
Subject: [PATCH 166/247] Fix naming. Move variable instantiation within scope

---
 interface/src/Application.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index b48a247bb1..0738b463a4 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -5823,15 +5823,15 @@ bool Application::displayAvatarAttachmentConfirmationDialog(const QString& name)
 
 void Application::toggleRunningScriptsWidget() const {    
     auto scriptEngines = DependencyManager::get<ScriptEngines>();
-    bool _scriptsRunning = !scriptEngines->getRunningScripts().isEmpty();
+    bool scriptsRunning = !scriptEngines->getRunningScripts().isEmpty();
     auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
-
     auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
-    auto hmd = DependencyManager::get<HMDScriptingInterface>();
-    if (tablet->getToolbarMode() || false == _scriptsRunning) {
+
+    if (tablet->getToolbarMode() || false == scriptsRunning) {
         static const QUrl url("hifi/dialogs/RunningScripts.qml");
         DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");
     } else {
+        auto hmd = DependencyManager::get<HMDScriptingInterface>();
         if (!hmd->getShouldShowTablet() && !isHMDMode()) {
             static const QUrl url("hifi/dialogs/RunningScripts.qml");
             DependencyManager::get<OffscreenUi>()->show(url, "RunningScripts");

From 1d095b8158afa9f8bdd13c06b5a2f79c92b45879 Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Mon, 20 Mar 2017 15:57:59 -0700
Subject: [PATCH 167/247] added back forward and back button on nav bar

---
 .../qml/hifi/tablet/TabletAddressDialog.qml   | 54 ++++++++++++-------
 1 file changed, 35 insertions(+), 19 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
index 3a6577f4c0..d2af9a6999 100644
--- a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
@@ -87,26 +87,12 @@ Item {
             width: 480
             height: 70
 
-            gradient: Gradient {
-                GradientStop {
-                    position: 0
-                    color: "#c2ced8"
-
-                }
-
-                GradientStop {
-                    position: 1
-                    color: "#c2ced8"
-                }
-            }
-
             anchors {
                 top: parent.top
                 right: parent.right
                 left: parent.left
             }
 
-
             ToolbarButton {
                 id: homeButton
                 imageURL: "../../../images/home.svg"
@@ -120,10 +106,40 @@ Item {
                     verticalCenter: parent.verticalCenter
                 }
             }
+            ToolbarButton {
+                id: backArrow;
+                imageURL: "../../../images/backward.svg";
+                onClicked: addressBarDialog.loadBack();
+                anchors {
+                    left: homeButton.right
+                    verticalCenter: parent.verticalCenter
+                }
+            }
+            ToolbarButton {
+                id: forwardArrow;
+                imageURL: "../../../images/forward.svg";
+                onClicked: addressBarDialog.loadForward();
+                anchors {
+                    left: backArrow.right
+                    verticalCenter: parent.verticalCenter
+                }
+            }
+        }
+
+        Rectangle {
+            id: addressBar
+            width: 480
+            height: 70
+            anchors {
+                top: navBar.bottom
+                right: parent.right
+                left: parent.left
+            }
+
             property int inputAreaHeight: 70
             property int inputAreaStep: (height - inputAreaHeight) / 2
 
-             HifiStyles.RalewayLight {
+            HifiStyles.RalewayLight {
                 id: notice;
                 font.pixelSize: hifi.fonts.pixelSize * 0.50;
                 anchors {
@@ -147,10 +163,10 @@ Item {
                 focus: true
                 anchors {
                     bottom: parent.bottom
-                    left: homeButton.right
+                    left: parent.left
                     right: parent.right
-                    leftMargin: homeButton.width
-                    rightMargin: homeButton.width / 2
+                    leftMargin: 0
+                    rightMargin: 0
                     topMargin: parent.inputAreaStep + (2 * hifi.layout.spacing)
                     bottomMargin: parent.inputAreaStep
                 }
@@ -204,7 +220,7 @@ Item {
             anchors.left: parent.left
             anchors.leftMargin: 0
             anchors.topMargin: 0
-            anchors.top: navBar.bottom
+            anchors.top: addressBar.bottom
             
             Row {
                 id: thing

From 9cab8b6c4a93f3c7f6959a655f7dcfec3ff4fcca Mon Sep 17 00:00:00 2001
From: Faye Li <si.fi.faye.li@gmial.com>
Date: Mon, 20 Mar 2017 17:04:29 -0700
Subject: [PATCH 168/247] end of day commit

---
 interface/resources/qml/hifi/tablet/TabletAddressDialog.qml | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
index d2af9a6999..8054c90603 100644
--- a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
@@ -90,7 +90,9 @@ Item {
             anchors {
                 top: parent.top
                 right: parent.right
+                rightMargin: 0
                 left: parent.left
+                leftMargin: 0
             }
 
             ToolbarButton {
@@ -102,7 +104,6 @@ Item {
                 }
                 anchors {
                     left: parent.left
-                    leftMargin: homeButton.width / 2
                     verticalCenter: parent.verticalCenter
                 }
             }
@@ -133,7 +134,9 @@ Item {
             anchors {
                 top: navBar.bottom
                 right: parent.right
+                rightMargin: 16
                 left: parent.left
+                leftMargin: 16
             }
 
             property int inputAreaHeight: 70

From fb0adae0b11a7f547901eb0d3d512e850180dce1 Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Tue, 21 Mar 2017 15:04:38 +0100
Subject: [PATCH 169/247] Scripts debug window in Tablet UI

---
 .../qml/hifi/dialogs/TabletDebugWindow.qml    | 78 +++++++++++++++++++
 interface/src/Application.cpp                 | 18 +++++
 interface/src/Application.h                   |  1 +
 interface/src/Menu.cpp                        | 10 +--
 4 files changed, 99 insertions(+), 8 deletions(-)
 create mode 100644 interface/resources/qml/hifi/dialogs/TabletDebugWindow.qml

diff --git a/interface/resources/qml/hifi/dialogs/TabletDebugWindow.qml b/interface/resources/qml/hifi/dialogs/TabletDebugWindow.qml
new file mode 100644
index 0000000000..d4bbe0af04
--- /dev/null
+++ b/interface/resources/qml/hifi/dialogs/TabletDebugWindow.qml
@@ -0,0 +1,78 @@
+//
+//  TabletDebugWindow.qml
+//
+//  Vlad Stelmahovsky, created on 20/03/2017.
+//  Copyright 2017 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
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import Hifi 1.0 as Hifi
+
+import "../../styles-uit"
+import "../../controls-uit" as HifiControls
+
+Rectangle {
+    id: root
+
+    objectName: "DebugWindow"
+    property var eventBridge;
+
+    property var title: "Debug Window"
+    property bool isHMD: false
+
+    color: hifi.colors.baseGray
+
+    HifiConstants { id: hifi }
+
+    signal sendToScript(var message);
+    property int colorScheme: hifi.colorSchemes.dark
+
+    property var channel;
+    property var scripts: ScriptDiscoveryService;
+
+    function fromScript(message) {
+        var MAX_LINE_COUNT = 2000;
+        var TRIM_LINES = 500;
+        if (textArea.lineCount > MAX_LINE_COUNT) {
+            var lines = textArea.text.split('\n');
+            lines.splice(0, TRIM_LINES);
+            textArea.text = lines.join('\n');
+        }
+        textArea.append(message);
+    }
+
+    function getFormattedDate() {
+        var date = new Date();
+        return date.getMonth() + "/" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
+    }
+
+    function sendToLogWindow(type, message, scriptFileName) {
+        var typeFormatted = "";
+        if (type) {
+            typeFormatted = type + " - ";
+        }
+        fromScript("[" + getFormattedDate() + "] " + "[" + scriptFileName + "] " + typeFormatted + message);
+    }
+
+    Connections {
+        target: ScriptDiscoveryService
+        onPrintedMessage: sendToLogWindow("", message, engineName);
+        onWarningMessage: sendToLogWindow("WARNING", message, engineName);
+        onErrorMessage: sendToLogWindow("ERROR", message, engineName);
+        onInfoMessage: sendToLogWindow("INFO", message, engineName);
+    }
+
+    TextArea {
+        id: textArea
+        width: parent.width
+        height: parent.height
+        backgroundVisible: false
+        textColor: hifi.colors.white
+        text:""
+    }
+
+}
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 0738b463a4..be1db95c0a 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -5855,6 +5855,24 @@ void Application::toggleRunningScriptsWidget() const {
     //}
 }
 
+void Application::showScriptLogs() {
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+    auto scriptEngines = DependencyManager::get<ScriptEngines>();
+    QUrl defaultScriptsLoc = defaultScriptsLocation();
+    defaultScriptsLoc.setPath(defaultScriptsLoc.path() + "developer/debugging/debugWindow.js");
+
+    if (tablet->getToolbarMode()) {
+        scriptEngines->loadScript(defaultScriptsLoc.toString());
+    } else {
+        QQuickItem* tabletRoot = tablet->getTabletRoot();
+        if (!tabletRoot && !isHMDMode()) {
+            scriptEngines->loadScript(defaultScriptsLoc.toString());
+        } else {
+            tablet->pushOntoStack("../../hifi/dialogs/TabletDebugWindow.qml");
+        }
+    }
+}
 
 void Application::showAssetServerWidget(QString filePath) {
     if (!DependencyManager::get<NodeList>()->getThisNodeCanWriteAssets()) {
diff --git a/interface/src/Application.h b/interface/src/Application.h
index f7af922148..8b59374aad 100644
--- a/interface/src/Application.h
+++ b/interface/src/Application.h
@@ -408,6 +408,7 @@ public slots:
     void loadLODToolsDialog();
     void loadEntityStatisticsDialog();
     void loadDomainConnectionDialog();
+    void showScriptLogs();
 
 private slots:
     void showDesktop();
diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp
index 977c5817e9..de29020ab7 100644
--- a/interface/src/Menu.cpp
+++ b/interface/src/Menu.cpp
@@ -719,14 +719,8 @@ Menu::Menu() {
     });
     essLogAction->setEnabled(nodeList->getThisNodeCanRez());
 
-    action = addActionToQMenuAndActionHash(developerMenu, "Script Log (HMD friendly)...");
-    connect(action, &QAction::triggered, [] {
-        auto scriptEngines = DependencyManager::get<ScriptEngines>();
-        QUrl defaultScriptsLoc = defaultScriptsLocation();
-        defaultScriptsLoc.setPath(defaultScriptsLoc.path() + "developer/debugging/debugWindow.js");
-        scriptEngines->loadScript(defaultScriptsLoc.toString());
-    });
-
+    action = addActionToQMenuAndActionHash(developerMenu, "Script Log (HMD friendly)...", Qt::NoButton,
+                                           qApp, SLOT(showScriptLogs()));
 
     // Developer > Stats
     addCheckableActionToQMenuAndActionHash(developerMenu, MenuOption::Stats);

From 1811a2edc7044faa20bb738bf1e0c344a8221fb9 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Tue, 21 Mar 2017 19:45:00 +0100
Subject: [PATCH 170/247] fixed third eye laser

---
 scripts/system/controllers/handControllerGrab.js | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index 1693a6137a..0f2bf3346a 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -1018,6 +1018,16 @@ EquipHotspotBuddy.prototype.update = function(deltaTime, timestamp) {
     }
 };
 
+function getControllerJointIndex(hand) {
+    if (HMD.isHandControllerAvailable()) {
+        return MyAvatar.getJointIndex(hand === RIGHT_HAND ?
+                                      "_CONTROLLER_RIGHTHAND" :
+                                      "_CONTROLLER_LEFTHAND");
+    }
+    
+    return MyAvatar.getJointIndex("Head");    
+}
+
 // global EquipHotspotBuddy instance
 var equipHotspotBuddy = new EquipHotspotBuddy();
 
@@ -1029,9 +1039,7 @@ function MyController(hand) {
     this.homeButtonTouched = false;
     this.editTriggered = false;
 
-    this.controllerJointIndex = MyAvatar.getJointIndex(this.hand === RIGHT_HAND ?
-                                                       "_CONTROLLER_RIGHTHAND" :
-                                                       "_CONTROLLER_LEFTHAND");
+    this.controllerJointIndex = getControllerJointIndex(this.hand);
 
     // Until there is some reliable way to keep track of a "stack" of parentIDs, we'll have problems
     // when more than one avatar does parenting grabs on things.  This script tries to work

From 04a334fd0763878fa6fd0acf7266626d3496fc5f Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Tue, 21 Mar 2017 11:02:18 -0800
Subject: [PATCH 171/247] unmangle merge

---
 scripts/system/edit.js | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/scripts/system/edit.js b/scripts/system/edit.js
index 6d2b70d9e1..a30de8f3d1 100644
--- a/scripts/system/edit.js
+++ b/scripts/system/edit.js
@@ -544,15 +544,7 @@ var toolBar = (function () {
             // everybody else to think that Interface has lost focus overall. fogbugzid:558
             // Window.setFocus();
         }
-        // Sets visibility of tool buttons, excluding the power button
-        toolBar.writeProperty("shown", active);
-        var visible = toolBar.readProperty("visible");
-        if (active && !visible) {
-            toolBar.writeProperty("shown", false);
-            toolBar.writeProperty("shown", true);
-        }
         entityIconOverlayManager.setVisible(isActive && Menu.isOptionChecked(MENU_SHOW_LIGHTS_AND_PARTICLES_IN_EDIT_MODE));
-        lightOverlayManager.setVisible(isActive && Menu.isOptionChecked(MENU_SHOW_LIGHTS_IN_EDIT_MODE));
         Entities.setDrawZoneBoundaries(isActive && Menu.isOptionChecked(MENU_SHOW_ZONES_IN_EDIT_MODE));
     };
 

From a4af973ae4f8e3d16facf26bc5c763831e8f8174 Mon Sep 17 00:00:00 2001
From: kunalgosar <kunal.gosar@berkeley.edu>
Date: Tue, 21 Mar 2017 14:12:54 -0700
Subject: [PATCH 172/247] fixed back button on marketplace

---
 scripts/system/html/js/marketplacesInject.js | 13 ++++++++++---
 scripts/system/tablet-users.js               |  6 +++++-
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/scripts/system/html/js/marketplacesInject.js b/scripts/system/html/js/marketplacesInject.js
index 10970a7749..ab89765615 100644
--- a/scripts/system/html/js/marketplacesInject.js
+++ b/scripts/system/html/js/marketplacesInject.js
@@ -25,7 +25,9 @@
     var canWriteAssets = false;
     var xmlHttpRequest = null;
     var isPreparing = false;  // Explicitly track download request status.
-
+    
+    var lastPage = "https://metaverse.highfidelity.com/marketplace?";
+    
     function injectCommonCode(isDirectoryPage) {
 
         // Supporting styles from marketplaces.css.
@@ -65,7 +67,7 @@
 
         // Footer actions.
         $("#back-button").on("click", function () {
-            window.history.back();
+            window.location = lastPage;
         });
         $("#all-markets").on("click", function () {
             EventBridge.emitWebEvent(GOTO_DIRECTORY);
@@ -341,8 +343,13 @@
                 break;
         }
     }
-
+    
+    function locationChanged() {
+        lastPage = location.href;
+    }
+    
     // Load / unload.
     window.addEventListener("load", onLoad);  // More robust to Web site issues than using $(document).ready().
+    window.addEventListener("hashchange", locationChanged);
 
 }());
diff --git a/scripts/system/tablet-users.js b/scripts/system/tablet-users.js
index 88ffa33a88..41c66e29ec 100644
--- a/scripts/system/tablet-users.js
+++ b/scripts/system/tablet-users.js
@@ -69,7 +69,11 @@
     function onWebEventReceived(event) {
         print("Script received a web event, its type is " + typeof event);
         if (typeof event === "string") {
-            event = JSON.parse(event);
+            try {
+                event = JSON.parse(event);
+            } catch(e) {
+                return;
+            }
         }
         if (event.type === "ready") {
             // send username to html

From 30d2ea0ea5f287334316a2ac914b6f24910ad83a Mon Sep 17 00:00:00 2001
From: kunalgosar <kunal.gosar@berkeley.edu>
Date: Tue, 21 Mar 2017 14:15:56 -0700
Subject: [PATCH 173/247] spacing issues

---
 scripts/system/html/js/marketplacesInject.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/system/html/js/marketplacesInject.js b/scripts/system/html/js/marketplacesInject.js
index ab89765615..d0038411b1 100644
--- a/scripts/system/html/js/marketplacesInject.js
+++ b/scripts/system/html/js/marketplacesInject.js
@@ -25,9 +25,9 @@
     var canWriteAssets = false;
     var xmlHttpRequest = null;
     var isPreparing = false;  // Explicitly track download request status.
-    
+
     var lastPage = "https://metaverse.highfidelity.com/marketplace?";
-    
+
     function injectCommonCode(isDirectoryPage) {
 
         // Supporting styles from marketplaces.css.

From f09ee92fe1efacc07e5820fee707b78ae80d1eef Mon Sep 17 00:00:00 2001
From: kunalgosar <kunal.gosar@berkeley.edu>
Date: Tue, 21 Mar 2017 14:16:49 -0700
Subject: [PATCH 174/247] spacing issues

---
 scripts/system/html/js/marketplacesInject.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/system/html/js/marketplacesInject.js b/scripts/system/html/js/marketplacesInject.js
index d0038411b1..d4937ac9db 100644
--- a/scripts/system/html/js/marketplacesInject.js
+++ b/scripts/system/html/js/marketplacesInject.js
@@ -343,11 +343,11 @@
                 break;
         }
     }
-    
+
     function locationChanged() {
         lastPage = location.href;
     }
-    
+
     // Load / unload.
     window.addEventListener("load", onLoad);  // More robust to Web site issues than using $(document).ready().
     window.addEventListener("hashchange", locationChanged);

From d2c139ce6ee6886b2144ee9c6fc3494b1f5af1ec Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Tue, 21 Mar 2017 22:25:45 +0100
Subject: [PATCH 175/247] fix error from using a misspelled function

---
 scripts/system/controllers/handControllerGrab.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index 0f2bf3346a..c8b78b4d08 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -3601,7 +3601,7 @@ function MyController(hand) {
 
         if (this.stylusTarget.entityID) {
             entityPropertiesCache.addEntity(this.stylusTarget.entityID);
-            this.stylusTarget = calcualteStylusTargetFromEntity(this.stylusTip, this.stylusTarget.entityID);
+            this.stylusTarget = calculateStylusTargetFromEntity(this.stylusTip, this.stylusTarget.entityID);
         } else if (this.stylusTarget.overlayID) {
             this.stylusTarget = calculateStylusTargetFromOverlay(this.stylusTip, this.stylusTarget.overlayID);
         }

From a44704c4fe5f17d2beb864d5bf2366535343ddd9 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Wed, 22 Mar 2017 16:32:37 +0100
Subject: [PATCH 176/247] merging with tablet-ui

---
 interface/resources/html/tabletHelp.html | 127 +++++++++++++++++++++++
 1 file changed, 127 insertions(+)
 create mode 100644 interface/resources/html/tabletHelp.html

diff --git a/interface/resources/html/tabletHelp.html b/interface/resources/html/tabletHelp.html
new file mode 100644
index 0000000000..1c70300297
--- /dev/null
+++ b/interface/resources/html/tabletHelp.html
@@ -0,0 +1,127 @@
+<!-- Copyright 2016 High Fidelity, Inc. -->
+<html>
+    <head>
+        <meta charset="utf-8"/>
+        <input type="hidden" id="version" value="1"/>
+        <title>Welcome to Interface</title>
+
+        <style>
+            body {
+                background: black;
+                width: 100%;
+                overflow-x: hidden;
+                margin: 0;
+                padding: 0;
+            }
+
+            #kbm_button {
+                position: absolute;
+                left: 70;
+                top: 118;
+                width: 297;
+                height: 80;
+            }
+
+            #hand_controllers_button {
+                position: absolute;
+                left: 367;
+                top: 118;
+                width: 267;
+                height: 80;
+            }
+
+            #game_controller_button {
+                position: absolute;
+                left: 634;
+                top: 118;
+                width: 297;
+                height: 80;
+            }
+
+            #image_area {
+                width: 1024;
+                height: 720;
+                margin: auto;
+                position: absolute;
+                top: 0; left: 0; bottom: 0; right: 0;
+            }
+        </style>
+        <script>
+            var handControllerImageURL = null;
+
+            function showKbm() {
+                document.getElementById("main_image").setAttribute("src", "img/controls-help-keyboard.png");
+            }
+
+            function showHandControllers() {
+                document.getElementById("main_image").setAttribute("src", handControllerImageURL);
+            }
+
+            function showGamepad() {
+                document.getElementById("main_image").setAttribute("src", "img/controls-help-gamepad.png");
+            }
+
+            // This is not meant to be a complete or hardened query string parser - it only
+            // needs to handle the values we send in and have control over.
+            //
+            // queryString is a string of the form "key1=value1&key2=value2&key3&key4=value4"
+            function parseQueryString(queryString) {
+                var params = {};
+                var paramsParts = queryString.split("&");
+                for (var i = 0; i < paramsParts.length; ++i) {
+                    var paramKeyValue = paramsParts[i].split("=");
+                    if (paramKeyValue.length == 1) {
+                        params[paramKeyValue[0]] = undefined;
+                    } else if (paramKeyValue.length == 2) {
+                        params[paramKeyValue[0]] = paramKeyValue[1];
+                    } else {
+                        console.error("Error parsing param keyvalue: ", paramParts);
+                    }
+                }
+                return params;
+            }
+
+            function load() {
+                var parts = window.location.href.split("?");
+                var params = {};
+                if (parts.length > 0) {
+                    params = parseQueryString(parts[1]);
+                }
+
+                switch (params.handControllerName) {
+                    case "oculus":
+                        handControllerImageURL = "img/controls-help-oculus.png";
+                        break;
+
+                    case "vive":
+                    default:
+                        handControllerImageURL = "img/controls-help-vive.png";
+                }
+
+                switch (params.defaultTab) {
+                    case "gamepad":
+                        showGamepad();
+                        break;
+
+                    case "handControllers":
+                        showHandControllers();
+                        break;
+
+                    case "kbm":
+                    default:
+                        showKbm();
+                }
+            }
+        </script>
+    </head>
+
+    <body onload="load()">
+        <div id="image_area">
+            <img id="main_image" src="img/controls-help-keyboard.png" width="1024px" height="720px"></img>
+            <a href="#" id="kbm_button" onmousedown="showKbm()"></a>
+            <a href="#" id="hand_controllers_button" onmousedown="showHandControllers()"></a>
+            <a href="#" id="game_controller_button" onmousedown="showGamepad()"></a>
+        </div>
+    </body>
+
+</html>

From 2c38d7ff89c6099dff7881809a34ab7111479431 Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidelity.io>
Date: Wed, 22 Mar 2017 11:03:03 -0700
Subject: [PATCH 177/247] Tablet spawn orientation now takes hand orientation
 into account.

Perhaps this will make the tablet spawn location feel more predictable and consistent to the user.
---
 scripts/system/libraries/WebTablet.js | 44 ++++++++++++---------------
 1 file changed, 20 insertions(+), 24 deletions(-)

diff --git a/scripts/system/libraries/WebTablet.js b/scripts/system/libraries/WebTablet.js
index 8114c2052b..04917ca4a9 100644
--- a/scripts/system/libraries/WebTablet.js
+++ b/scripts/system/libraries/WebTablet.js
@@ -14,6 +14,7 @@ Script.include(Script.resolvePath("../libraries/utils.js"));
 Script.include(Script.resolvePath("../libraries/controllers.js"));
 Script.include(Script.resolvePath("../libraries/Xform.js"));
 
+var VEC3_ZERO = {x: 0, y: 0, z: 0};
 var X_AXIS = {x: 1, y: 0, z: 0};
 var Y_AXIS = {x: 0, y: 1, z: 0};
 var DEFAULT_DPI = 34;
@@ -22,6 +23,7 @@ var DEFAULT_VERTICAL_FIELD_OF_VIEW = 45; // degrees
 var SENSOR_TO_ROOM_MATRIX = -2;
 var CAMERA_MATRIX = -7;
 var ROT_Y_180 = {x: 0, y: 1, z: 0, w: 0};
+var ROT_IDENT = {x: 0, y: 0, z: 0, w: 1};
 var TABLET_TEXTURE_RESOLUTION = { x: 480, y: 706 };
 var INCHES_TO_METERS = 1 / 39.3701;
 var AVATAR_SELF_ID = "{00000000-0000-0000-0000-000000000001}";
@@ -51,35 +53,29 @@ function calcSpawnInfo(hand, height) {
 
     if (HMD.active && hand !== NO_HANDS) {
         var handController = getControllerWorldLocation(hand, true);
-        var controllerPosition = handController.position;
 
-        // base of the tablet is slightly above controller position
-        var TABLET_BASE_DISPLACEMENT = {x: 0, y: 0.1, z: 0};
-        var tabletBase = Vec3.sum(controllerPosition, TABLET_BASE_DISPLACEMENT);
-
-        var d = Vec3.subtract(headPos, tabletBase);
-        var theta = Math.acos(d.y / Vec3.length(d));
-        d.y = 0;
-        if (Vec3.length(d) < 0.0001) {
-            d = {x: 1, y: 0, z: 0};
-        } else {
-            d = Vec3.normalize(d);
+        var TABLET_UP_OFFSET = 0.1;
+        var TABLET_FORWARD_OFFSET = 0.1;
+        var normal = Vec3.multiplyQbyV(handController.rotation, {x: 0, y: -1, z: 0});
+        var pitch = Math.asin(normal.y);
+        var MAX_PITCH = Math.PI / 4;
+        if (pitch < -MAX_PITCH) {
+            pitch = -MAX_PITCH;
+        } else if (pitch > MAX_PITCH) {
+            pitch = MAX_PITCH;
         }
-        var w = Vec3.normalize(Vec3.cross(Y_AXIS, d));
-        var ANGLE_OFFSET = 25;
-        var q = Quat.angleAxis(theta * (180 / Math.PI) - (90 - ANGLE_OFFSET), w);
-        var u = Vec3.multiplyQbyV(q, d);
 
-        // use u to compute a full lookAt quaternion.
-        var lookAtRot = Quat.lookAt(tabletBase, Vec3.sum(tabletBase, u), Y_AXIS);
-        var yDisplacement = (height / 2);
-        var zDisplacement = 0.05;
-        var tabletOffset = Vec3.multiplyQbyV(lookAtRot, {x: 0, y: yDisplacement, z: zDisplacement});
-        finalPosition = Vec3.sum(tabletBase, tabletOffset);
+        // rebuild normal from pitch and heading.
+        var heading = Math.atan2(normal.z, normal.x);
+        normal = {x: Math.cos(heading), y: Math.sin(pitch), z: Math.sin(heading)};
+
+        var position = Vec3.sum(handController.position, {x: 0, y: TABLET_UP_OFFSET, z: 0});
+        var rotation = Quat.lookAt({x: 0, y: 0, z: 0}, normal, Y_AXIS);
+        var offset = Vec3.multiplyQbyV(rotation, {x: 0, y: height / 2, z: TABLET_FORWARD_OFFSET});
 
         return {
-            position: finalPosition,
-            rotation: lookAtRot
+            position: Vec3.sum(offset, position),
+            rotation: rotation
         };
     } else {
         var front = Quat.getFront(headRot);

From 3a896541112f6c673b8a37b4740eff5b42cb0116 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Wed, 22 Mar 2017 19:14:53 +0100
Subject: [PATCH 178/247] saving work

---
 interface/resources/html/tabletHelp.html | 13 ++++++------
 interface/src/Application.cpp            |  8 +++++---
 scripts/system/help.js                   | 26 ++++++++++++++++--------
 3 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/interface/resources/html/tabletHelp.html b/interface/resources/html/tabletHelp.html
index 1c70300297..6bd3b0e7ad 100644
--- a/interface/resources/html/tabletHelp.html
+++ b/interface/resources/html/tabletHelp.html
@@ -6,10 +6,11 @@
         <title>Welcome to Interface</title>
 
         <style>
-            body {
+          body {
                 background: black;
                 width: 100%;
                 overflow-x: hidden;
+                overflow-y: hidden;
                 margin: 0;
                 padding: 0;
             }
@@ -18,7 +19,7 @@
                 position: absolute;
                 left: 70;
                 top: 118;
-                width: 297;
+                width: 160;
                 height: 80;
             }
 
@@ -26,7 +27,7 @@
                 position: absolute;
                 left: 367;
                 top: 118;
-                width: 267;
+                width: 160;
                 height: 80;
             }
 
@@ -34,12 +35,12 @@
                 position: absolute;
                 left: 634;
                 top: 118;
-                width: 297;
+                width: 160;
                 height: 80;
             }
 
             #image_area {
-                width: 1024;
+                width: 480;
                 height: 720;
                 margin: auto;
                 position: absolute;
@@ -117,7 +118,7 @@
 
     <body onload="load()">
         <div id="image_area">
-            <img id="main_image" src="img/controls-help-keyboard.png" width="1024px" height="720px"></img>
+            <img id="main_image" src="img/controls-help-keyboard.png" width="480px" height="720px"></img>
             <a href="#" id="kbm_button" onmousedown="showKbm()"></a>
             <a href="#" id="hand_controllers_button" onmousedown="showHandControllers()"></a>
             <a href="#" id="game_controller_button" onmousedown="showGamepad()"></a>
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 535a8adafc..1990d9be33 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -222,7 +222,7 @@ static const float MIRROR_FULLSCREEN_DISTANCE = 0.389f;
 static const quint64 TOO_LONG_SINCE_LAST_SEND_DOWNSTREAM_AUDIO_STATS = 1 * USECS_PER_SECOND;
 
 static const QString INFO_EDIT_ENTITIES_PATH = "html/edit-commands.html";
-static const QString INFO_HELP_PATH = "html/help.html";
+static const QString INFO_HELP_PATH = "../../../html/tabletHelp.html";
 
 static const unsigned int THROTTLED_SIM_FRAMERATE = 15;
 static const int THROTTLED_SIM_FRAME_PERIOD_MS = MSECS_PER_SECOND / THROTTLED_SIM_FRAMERATE;
@@ -2397,8 +2397,10 @@ void Application::showHelp() {
     QUrlQuery queryString;
     queryString.addQueryItem("handControllerName", handControllerName);
     queryString.addQueryItem("defaultTab", defaultTab);
-
-    InfoView::show(INFO_HELP_PATH, false, queryString.toString());
+    auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
+    TabletProxy* tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
+    tablet->gotoWebScreen(INFO_HELP_PATH + "?" + queryString.toString());
+    //InfoView::show(INFO_HELP_PATH, false, queryString.toString());
 }
 
 void Application::resizeEvent(QResizeEvent* event) {
diff --git a/scripts/system/help.js b/scripts/system/help.js
index 3923b922fc..ac411a8622 100644
--- a/scripts/system/help.js
+++ b/scripts/system/help.js
@@ -13,8 +13,10 @@
 /* globals Tablet, Script, HMD, Controller, Menu */
 
 (function() { // BEGIN LOCAL_SCOPE
-
+    
+    var HOME_BUTTON_TEXTURE = Script.resourcesPath() + "meshes/tablet-with-home-button.fbx/tablet-with-home-button.fbm/button-root.png";
     var buttonName = "HELP";
+    var onHelpScreen = false;
     var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
     var button = tablet.addButton({
         icon: "icons/tablet-icons/help-i.svg",
@@ -25,18 +27,24 @@
 
     var enabled = false;
     function onClicked() {
-        if (enabled) {
-            Menu.closeInfoView('InfoView_html/help.html');
-            enabled = !enabled;
-            button.editProperties({isActive: enabled});
+        if (onHelpScreen) {
+            tablet.gotoHomeScreen();
         } else {
+            var tabletEntity = HMD.tabletID;
+            if (tabletEntity) {
+                Entities.editEntity(tabletEntity, {textures: JSON.stringify({"tex.close" : HOME_BUTTON_TEXTURE})});
+            }
             Menu.triggerOption('Help...');
-            enabled = !enabled;
-            button.editProperties({isActive: enabled});
+            onHelpScreen = true;
         }
     }
 
+    function onScreenChanged(type, url) {
+        onHelpScreen = false;
+    }
+
     button.clicked.connect(onClicked);
+    tablet.screenChanged.connect(onScreenChanged);
 
     var POLL_RATE = 500;
     var interval = Script.setInterval(function () {
@@ -48,8 +56,8 @@
     }, POLL_RATE);
 
     Script.scriptEnding.connect(function () {
-        if (enabled) {
-             Menu.closeInfoView('InfoView_html/help.html');
+        if (onUserScreen) {
+            tablet.gotoHomeScreen();
         }
         button.clicked.disconnect(onClicked);
         Script.clearInterval(interval);

From df875ab5042725f0f60cfb5cd0baa48d7e4bedfd Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Wed, 22 Mar 2017 16:21:45 -0700
Subject: [PATCH 179/247] make RenderablePolyVoxEntityItem::setSphere affect
 any voxel the sphere touches rather than just the ones whose center the
 sphere touches

---
 .../src/RenderablePolyVoxEntityItem.cpp       | 39 +++++++++++++++----
 libraries/shared/src/AABox.cpp                | 26 +++++++++++++
 libraries/shared/src/AABox.h                  |  1 +
 3 files changed, 58 insertions(+), 8 deletions(-)

diff --git a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
index efe284651a..cd62d72c70 100644
--- a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
+++ b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
@@ -414,19 +414,41 @@ bool RenderablePolyVoxEntityItem::setSphere(glm::vec3 centerWorldCoords, float r
     glm::ivec3 lowI = glm::clamp(low, glm::vec3(0.0f), _voxelVolumeSize);
     glm::ivec3 highI = glm::clamp(high, glm::vec3(0.0f), _voxelVolumeSize);
 
+    // This three-level for loop iterates over every voxel in the volume that might be in the sphere
+    // withWriteLock([&] {
+    //     for (int z = lowI.z; z < highI.z; z++) {
+    //         for (int y = lowI.y; y < highI.y; y++) {
+    //             for (int x = lowI.x; x < highI.x; x++) {
+    //                 // Store our current position as a vector...
+    //                 glm::vec4 pos(x + 0.5f, y + 0.5f, z + 0.5f, 1.0); // consider voxels cenetered on their coordinates
+    //                 // convert to world coordinates
+    //                 glm::vec3 worldPos = glm::vec3(vtwMatrix * pos);
+    //                 // compute how far the current position is from the center of the volume
+    //                 float fDistToCenter = glm::distance(worldPos, centerWorldCoords);
+    //                 // If the current voxel is less than 'radius' units from the center then we set its value
+    //                 if (fDistToCenter <= radiusWorldCoords) {
+    //                     result |= setVoxelInternal(x, y, z, toValue);
+    //                 }
+    //             }
+    //         }
+    //     }
+    // });
+
+
+    glm::vec3 radials(radiusWorldCoords / voxelSize.x,
+                      radiusWorldCoords / voxelSize.y,
+                      radiusWorldCoords / voxelSize.z);
+    float minRadial = glm::min(radials.x, radials.y);
+    minRadial = glm::min(minRadial, radials.z);
+
     // This three-level for loop iterates over every voxel in the volume that might be in the sphere
     withWriteLock([&] {
         for (int z = lowI.z; z < highI.z; z++) {
             for (int y = lowI.y; y < highI.y; y++) {
                 for (int x = lowI.x; x < highI.x; x++) {
-                    // Store our current position as a vector...
-                    glm::vec4 pos(x + 0.5f, y + 0.5f, z + 0.5f, 1.0); // consider voxels cenetered on their coordinates
-                    // convert to world coordinates
-                    glm::vec3 worldPos = glm::vec3(vtwMatrix * pos);
-                    // compute how far the current position is from the center of the volume
-                    float fDistToCenter = glm::distance(worldPos, centerWorldCoords);
-                    // If the current voxel is less than 'radius' units from the center then we set its value
-                    if (fDistToCenter <= radiusWorldCoords) {
+                    AABox voxelBox(glm::vec3(x - 0.5f, y - 0.5f, z - 0.5f), glm::vec3(1.0f, 1.0f, 1.0f));
+                    // if (voxelBox.touchesSphere(centerInVoxelCoords, minRadial)) {
+                    if (voxelBox.touchesAAEllipsoid(centerInVoxelCoords, radials)) {
                         result |= setVoxelInternal(x, y, z, toValue);
                     }
                 }
@@ -434,6 +456,7 @@ bool RenderablePolyVoxEntityItem::setSphere(glm::vec3 centerWorldCoords, float r
         }
     });
 
+
     if (result) {
         compressVolumeDataAndSendEditPacket();
     }
diff --git a/libraries/shared/src/AABox.cpp b/libraries/shared/src/AABox.cpp
index 89d5ce709d..fa993856dd 100644
--- a/libraries/shared/src/AABox.cpp
+++ b/libraries/shared/src/AABox.cpp
@@ -436,6 +436,32 @@ glm::vec3 AABox::getClosestPointOnFace(const glm::vec4& origin, const glm::vec4&
     return getClosestPointOnFace(glm::vec3(origin), face);
 }
 
+bool AABox::touchesAAEllipsoid(const glm::vec3& center, glm::vec3 radials) const {
+    if (_corner.x - radials.x > center.x ||
+        _corner.y - radials.y > center.y ||
+        _corner.z - radials.z > center.z ||
+        _corner.x + _scale.x + radials.x < center.x ||
+        _corner.y + _scale.y + radials.y < center.y ||
+        _corner.z + _scale.z + radials.z < center.z) {
+        return false;
+    }
+
+    for (int i = 0; i < FACE_COUNT; i++) {
+        glm::vec3 closest = getClosestPointOnFace(center, (BoxFace)i) - center;
+        float x = closest.x;
+        float y = closest.y;
+        float z = closest.z;
+        float a = radials.x;
+        float b = radials.y;
+        float c = radials.z;
+        if (x*x/(a*a) + y*y/(b*b) + z*z/(c*c) < 1.0f) {
+            return true;
+        }
+    }
+    return false;
+}
+
+
 glm::vec4 AABox::getPlane(BoxFace face) const {
     switch (face) {
         case MIN_X_FACE: return glm::vec4(-1.0f, 0.0f, 0.0f, _corner.x);
diff --git a/libraries/shared/src/AABox.h b/libraries/shared/src/AABox.h
index ccc7b6e302..022f1a6ff1 100644
--- a/libraries/shared/src/AABox.h
+++ b/libraries/shared/src/AABox.h
@@ -70,6 +70,7 @@ public:
     bool findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, float& distance,
                                 BoxFace& face, glm::vec3& surfaceNormal) const;
     bool touchesSphere(const glm::vec3& center, float radius) const; // fast but may generate false positives
+    bool touchesAAEllipsoid(const glm::vec3& center, glm::vec3 radials) const;
     bool findSpherePenetration(const glm::vec3& center, float radius, glm::vec3& penetration) const;
     bool findCapsulePenetration(const glm::vec3& start, const glm::vec3& end, float radius, glm::vec3& penetration) const;
 

From af97c7275e9fd1dbb120e90c044fadad459b1b9d Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Thu, 23 Mar 2017 17:03:24 +0100
Subject: [PATCH 180/247] Use loadQMlSource if no stack is aviable

---
 interface/resources/qml/hifi/tablet/TabletRoot.qml       | 1 -
 interface/src/Application.cpp                            | 6 +++++-
 libraries/script-engine/src/TabletScriptingInterface.cpp | 2 +-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/interface/resources/qml/hifi/tablet/TabletRoot.qml b/interface/resources/qml/hifi/tablet/TabletRoot.qml
index 99c9351993..febb2793ec 100644
--- a/interface/resources/qml/hifi/tablet/TabletRoot.qml
+++ b/interface/resources/qml/hifi/tablet/TabletRoot.qml
@@ -8,7 +8,6 @@ Item {
     objectName: "tabletRoot"
     property string username: "Unknown user"
     property var eventBridge;
-
     property var rootMenu;
     property var openModal: null;
     property var openMessage: null;
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 535a8adafc..78dee09fe4 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -5848,10 +5848,14 @@ void Application::showDialog(const QString& desktopURL, const QString& tabletURL
     auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
     auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
     auto hmd = DependencyManager::get<HMDScriptingInterface>();
-    if (tablet->getToolbarMode() || (!hmd->getShouldShowTablet() && !isHMDMode())) {
+    if (tablet->getToolbarMode()) {
         DependencyManager::get<OffscreenUi>()->show(desktopURL, name);
     } else {
         tablet->pushOntoStack(tabletURL);
+        if (!hmd->getShouldShowTablet() && !isHMDMode()) {
+            hmd->openTablet();
+        }
+        
     }
 }
 
diff --git a/libraries/script-engine/src/TabletScriptingInterface.cpp b/libraries/script-engine/src/TabletScriptingInterface.cpp
index e26b3a3f63..054cf83744 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.cpp
+++ b/libraries/script-engine/src/TabletScriptingInterface.cpp
@@ -358,7 +358,7 @@ void TabletProxy::pushOntoStack(const QVariant& path) {
         if (stack) {
             QMetaObject::invokeMethod(stack, "pushSource", Q_ARG(const QVariant&, path));
         } else {
-            qCDebug(scriptengine) << "tablet cannot push QML because _qmlTabletRoot doesn't have child stack";
+            loadQMLSource(path);
         }
     } else if (_desktopWindow) {
         auto stack = _desktopWindow->asQuickItem()->findChild<QQuickItem*>("stack");

From ce9bb439b3106bf53b7100a2346d9c95cde28899 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Thu, 23 Mar 2017 09:55:30 -0700
Subject: [PATCH 181/247] change Model api in anticipation of more than just
 PolyVox being able to give meshes to javascript

---
 .../src/RenderablePolyVoxEntityItem.cpp       |  6 +--
 .../src/RenderablePolyVoxEntityItem.h         |  3 +-
 libraries/entities/src/EntityItem.h           |  6 ++-
 .../entities/src/EntityScriptingInterface.cpp | 40 ++++++++++++-------
 .../entities/src/EntityScriptingInterface.h   |  3 +-
 libraries/entities/src/PolyVoxEntityItem.cpp  |  4 --
 libraries/entities/src/PolyVoxEntityItem.h    |  2 -
 .../src => model/src/model}/MeshProxy.h       | 15 ++++++-
 .../src/ModelScriptingInterface.cpp           | 24 +----------
 .../src/ModelScriptingInterface.h             |  8 +---
 10 files changed, 52 insertions(+), 59 deletions(-)
 rename libraries/{script-engine/src => model/src/model}/MeshProxy.h (68%)

diff --git a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
index efe284651a..f39d84caaf 100644
--- a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
+++ b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
@@ -1592,7 +1592,7 @@ void RenderablePolyVoxEntityItem::locationChanged(bool tellPhysics) {
     scene->enqueuePendingChanges(pendingChanges);
 }
 
-bool RenderablePolyVoxEntityItem::getMeshAsScriptValue(QScriptEngine *engine, QScriptValue& result) {
+bool RenderablePolyVoxEntityItem::getMeshes(MeshProxyList& result) {
     if (!updateDependents()) {
         return false;
     }
@@ -1615,8 +1615,8 @@ bool RenderablePolyVoxEntityItem::getMeshAsScriptValue(QScriptEngine *engine, QS
                 _mesh->map([=](glm::vec3 position){ return glm::vec3(transform * glm::vec4(position, 1.0f)); },
                            [=](glm::vec3 normal){ return glm::vec3(transform * glm::vec4(normal, 0.0f)); },
                            [&](uint32_t index){ return index; }));
-            result = meshToScriptValue(engine, meshProxy);
+            result << meshProxy;
         }
     });
-    return success;
+    return meshProxy;
 }
diff --git a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.h b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.h
index e6467be987..a0d5c38a14 100644
--- a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.h
+++ b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.h
@@ -135,7 +135,6 @@ public:
     QByteArray volDataToArray(quint16 voxelXSize, quint16 voxelYSize, quint16 voxelZSize) const;
 
     void setMesh(model::MeshPointer mesh);
-    bool getMeshAsScriptValue(QScriptEngine *engine, QScriptValue& result) override;
     void setCollisionPoints(ShapeInfo::PointCollection points, AABox box);
     PolyVox::SimpleVolume<uint8_t>* getVolData() { return _volData; }
 
@@ -147,6 +146,8 @@ public:
     // Transparent polyvox didn't seem to be working so disable for now
     bool isTransparent() override { return false; }
 
+    bool getMeshes(MeshProxyList& result) override;
+
 protected:
     virtual void locationChanged(bool tellPhysics = true) override;
 
diff --git a/libraries/entities/src/EntityItem.h b/libraries/entities/src/EntityItem.h
index 163b4d9e45..b973d916e6 100644
--- a/libraries/entities/src/EntityItem.h
+++ b/libraries/entities/src/EntityItem.h
@@ -63,6 +63,8 @@ namespace render {
 #define debugTimeOnly(T) qPrintable(QString("%1").arg(T, 16, 10))
 #define debugTreeVector(V) V << "[" << V << " in meters ]"
 
+class MeshProxyList;
+
 
 /// EntityItem class this is the base class for all entity types. It handles the basic properties and functionality available
 /// to all other entity types. In particular: postion, size, rotation, age, lifetime, velocity, gravity. You can not instantiate
@@ -470,9 +472,11 @@ public:
 
     QUuid getLastEditedBy() const { return _lastEditedBy; }
     void setLastEditedBy(QUuid value) { _lastEditedBy = value; }
-    
+
     bool matchesJSONFilters(const QJsonObject& jsonFilters) const;
 
+    virtual bool getMeshes(MeshProxyList& result) { return true; }
+
 protected:
 
     void setSimulated(bool simulated) { _simulated = simulated; }
diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp
index 88d7acf7bf..0888dd4fb9 100644
--- a/libraries/entities/src/EntityScriptingInterface.cpp
+++ b/libraries/entities/src/EntityScriptingInterface.cpp
@@ -21,6 +21,7 @@
 #include <VariantMapToScriptValue.h>
 #include <SharedUtil.h>
 #include <SpatialParentFinder.h>
+#include <model/MeshProxy.h>
 
 #include "EntitiesLogging.h"
 #include "EntityActionFactoryInterface.h"
@@ -1040,21 +1041,6 @@ bool EntityScriptingInterface::setVoxelsInCuboid(QUuid entityID, const glm::vec3
     });
 }
 
-void EntityScriptingInterface::voxelsToMesh(QUuid entityID, QScriptValue callback) {
-    PROFILE_RANGE(script_entities, __FUNCTION__);
-
-    bool success { false };
-    QScriptValue mesh { false };
-
-    polyVoxWorker(entityID, [&](PolyVoxEntityItem& polyVoxEntity) mutable {
-        success = polyVoxEntity.getMeshAsScriptValue(callback.engine(), mesh);
-        return true;
-    });
-
-    QScriptValueList args { mesh, success };
-    callback.call(QScriptValue(), args);
-}
-
 bool EntityScriptingInterface::setAllPoints(QUuid entityID, const QVector<glm::vec3>& points) {
     PROFILE_RANGE(script_entities, __FUNCTION__);
 
@@ -1671,6 +1657,30 @@ bool EntityScriptingInterface::AABoxIntersectsCapsule(const glm::vec3& low, cons
     return aaBox.findCapsulePenetration(start, end, radius, penetration);
 }
 
+void EntityScriptingInterface::getMeshes(QUuid entityID, QScriptValue callback) {
+    PROFILE_RANGE(script_entities, __FUNCTION__);
+
+    EntityItemPointer entity = static_cast<EntityItemPointer>(_entityTree->findEntityByEntityItemID(entityID));
+    if (!entity) {
+        qCDebug(entities) << "EntityScriptingInterface::getMeshes no entity with ID" << entityID;
+        QScriptValueList args { false, false };
+        callback.call(QScriptValue(), args);
+        return;
+    }
+
+    MeshProxyList result;
+    bool success = entity->getMeshes(result);
+
+    if (success) {
+        QScriptValue resultAsScriptValue = meshesToScriptValue(callback.engine(), result);
+        QScriptValueList args { resultAsScriptValue, true };
+        callback.call(QScriptValue(), args);
+    } else {
+        QScriptValueList args { callback.engine()->undefinedValue(), false };
+        callback.call(QScriptValue(), args);
+    }
+}
+
 glm::mat4 EntityScriptingInterface::getEntityTransform(const QUuid& entityID) {
     glm::mat4 result;
     if (_entityTree) {
diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h
index 944c2bb8d5..7b4c2ff800 100644
--- a/libraries/entities/src/EntityScriptingInterface.h
+++ b/libraries/entities/src/EntityScriptingInterface.h
@@ -266,7 +266,6 @@ public slots:
     Q_INVOKABLE bool setAllVoxels(QUuid entityID, int value);
     Q_INVOKABLE bool setVoxelsInCuboid(QUuid entityID, const glm::vec3& lowPosition,
                                        const glm::vec3& cuboidSize, int value);
-    Q_INVOKABLE void voxelsToMesh(QUuid entityID, QScriptValue callback);
 
     Q_INVOKABLE bool setAllPoints(QUuid entityID, const QVector<glm::vec3>& points);
     Q_INVOKABLE bool appendPoint(QUuid entityID, const glm::vec3& point);
@@ -331,6 +330,8 @@ public slots:
                                             const glm::vec3& start, const glm::vec3& end, float radius);
 
 
+    Q_INVOKABLE void getMeshes(QUuid entityID, QScriptValue callback);
+
     /**jsdoc
      * Returns object to world transform, excluding scale
      *
diff --git a/libraries/entities/src/PolyVoxEntityItem.cpp b/libraries/entities/src/PolyVoxEntityItem.cpp
index 90344d6c4b..2a374c1d17 100644
--- a/libraries/entities/src/PolyVoxEntityItem.cpp
+++ b/libraries/entities/src/PolyVoxEntityItem.cpp
@@ -242,7 +242,3 @@ const QByteArray PolyVoxEntityItem::getVoxelData() const {
     });
     return voxelDataCopy;
 }
-
-bool PolyVoxEntityItem::getMeshAsScriptValue(QScriptEngine *engine, QScriptValue& result) {
-    return false;
-}
diff --git a/libraries/entities/src/PolyVoxEntityItem.h b/libraries/entities/src/PolyVoxEntityItem.h
index 311a002a4a..cf7531fc9e 100644
--- a/libraries/entities/src/PolyVoxEntityItem.h
+++ b/libraries/entities/src/PolyVoxEntityItem.h
@@ -135,8 +135,6 @@ class PolyVoxEntityItem : public EntityItem {
     void setVoxelDataDirty(bool value) { withWriteLock([&] { _voxelDataDirty = value; }); }
     virtual void recomputeMesh() {};
 
-    virtual bool getMeshAsScriptValue(QScriptEngine *engine, QScriptValue& result);
-
  protected:
     glm::vec3 _voxelVolumeSize; // this is always 3 bytes
 
diff --git a/libraries/script-engine/src/MeshProxy.h b/libraries/model/src/model/MeshProxy.h
similarity index 68%
rename from libraries/script-engine/src/MeshProxy.h
rename to libraries/model/src/model/MeshProxy.h
index 82f5038348..fcd36e6e9c 100644
--- a/libraries/script-engine/src/MeshProxy.h
+++ b/libraries/model/src/model/MeshProxy.h
@@ -1,6 +1,6 @@
 //
 //  MeshProxy.h
-//  libraries/script-engine/src
+//  libraries/model/src/model/
 //
 //  Created by Seth Alves on 2017-1-27.
 //  Copyright 2017 High Fidelity, Inc.
@@ -12,7 +12,11 @@
 #ifndef hifi_MeshProxy_h
 #define hifi_MeshProxy_h
 
-#include <model/Geometry.h>
+#include <QScriptEngine>
+#include <QScriptValueIterator>
+#include <QtScript/QScriptValue>
+
+#include "Geometry.h"
 
 using MeshPointer = std::shared_ptr<model::Mesh>;
 
@@ -38,4 +42,11 @@ Q_DECLARE_METATYPE(MeshProxy*);
 class MeshProxyList : public QList<MeshProxy*> {}; // typedef and using fight with the Qt macros/templates, do this instead
 Q_DECLARE_METATYPE(MeshProxyList);
 
+
+QScriptValue meshToScriptValue(QScriptEngine* engine, MeshProxy* const &in);
+void meshFromScriptValue(const QScriptValue& value, MeshProxy* &out);
+
+QScriptValue meshesToScriptValue(QScriptEngine* engine, const MeshProxyList &in);
+void meshesFromScriptValue(const QScriptValue& value, MeshProxyList &out);
+
 #endif // hifi_MeshProxy_h
diff --git a/libraries/script-engine/src/ModelScriptingInterface.cpp b/libraries/script-engine/src/ModelScriptingInterface.cpp
index 833ac5b64d..22b7eb89ed 100644
--- a/libraries/script-engine/src/ModelScriptingInterface.cpp
+++ b/libraries/script-engine/src/ModelScriptingInterface.cpp
@@ -18,30 +18,8 @@
 
 ModelScriptingInterface::ModelScriptingInterface(QObject* parent) : QObject(parent) {
     _modelScriptEngine = qobject_cast<ScriptEngine*>(parent);
-}
 
-QScriptValue meshToScriptValue(QScriptEngine* engine, MeshProxy* const &in) {
-    return engine->newQObject(in, QScriptEngine::QtOwnership,
-                              QScriptEngine::ExcludeDeleteLater | QScriptEngine::ExcludeChildObjects);
-}
-
-void meshFromScriptValue(const QScriptValue& value, MeshProxy* &out) {
-    out = qobject_cast<MeshProxy*>(value.toQObject());
-}
-
-QScriptValue meshesToScriptValue(QScriptEngine* engine, const MeshProxyList &in) {
-    return engine->toScriptValue(in);
-}
-
-void meshesFromScriptValue(const QScriptValue& value, MeshProxyList &out) {
-    QScriptValueIterator itr(value);
-    while(itr.hasNext()) {
-        itr.next();
-        MeshProxy* meshProxy = qscriptvalue_cast<MeshProxyList::value_type>(itr.value());
-        if (meshProxy) {
-            out.append(meshProxy);
-        }
-    }
+    qScriptRegisterSequenceMetaType<QList<MeshProxy*>>(_modelScriptEngine);
 }
 
 QString ModelScriptingInterface::meshToOBJ(MeshProxyList in) {
diff --git a/libraries/script-engine/src/ModelScriptingInterface.h b/libraries/script-engine/src/ModelScriptingInterface.h
index 14789943e3..105d6d548e 100644
--- a/libraries/script-engine/src/ModelScriptingInterface.h
+++ b/libraries/script-engine/src/ModelScriptingInterface.h
@@ -17,7 +17,7 @@
 #include <QScriptValue>
 #include <OBJWriter.h>
 #include <model/Geometry.h>
-#include "MeshProxy.h"
+#include <model/MeshProxy.h>
 
 using MeshPointer = std::shared_ptr<model::Mesh>;
 class ScriptEngine;
@@ -36,10 +36,4 @@ private:
     ScriptEngine* _modelScriptEngine { nullptr };
 };
 
-QScriptValue meshToScriptValue(QScriptEngine* engine, MeshProxy* const &in);
-void meshFromScriptValue(const QScriptValue& value, MeshProxy* &out);
-
-QScriptValue meshesToScriptValue(QScriptEngine* engine, const MeshProxyList &in);
-void meshesFromScriptValue(const QScriptValue& value, MeshProxyList &out);
-
 #endif // hifi_ModelScriptingInterface_h

From ba0c9e405a70ec0d44c1751db3d82553c44dc33e Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Thu, 23 Mar 2017 10:38:57 -0700
Subject: [PATCH 182/247] cleanup

---
 .../src/RenderablePolyVoxEntityItem.cpp       | 38 +++++++------------
 1 file changed, 14 insertions(+), 24 deletions(-)

diff --git a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
index f37b46d0bb..b7ca5b8e26 100644
--- a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
+++ b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
@@ -414,43 +414,33 @@ bool RenderablePolyVoxEntityItem::setSphere(glm::vec3 centerWorldCoords, float r
     glm::ivec3 lowI = glm::clamp(low, glm::vec3(0.0f), _voxelVolumeSize);
     glm::ivec3 highI = glm::clamp(high, glm::vec3(0.0f), _voxelVolumeSize);
 
-    // This three-level for loop iterates over every voxel in the volume that might be in the sphere
-    // withWriteLock([&] {
-    //     for (int z = lowI.z; z < highI.z; z++) {
-    //         for (int y = lowI.y; y < highI.y; y++) {
-    //             for (int x = lowI.x; x < highI.x; x++) {
-    //                 // Store our current position as a vector...
-    //                 glm::vec4 pos(x + 0.5f, y + 0.5f, z + 0.5f, 1.0); // consider voxels cenetered on their coordinates
-    //                 // convert to world coordinates
-    //                 glm::vec3 worldPos = glm::vec3(vtwMatrix * pos);
-    //                 // compute how far the current position is from the center of the volume
-    //                 float fDistToCenter = glm::distance(worldPos, centerWorldCoords);
-    //                 // If the current voxel is less than 'radius' units from the center then we set its value
-    //                 if (fDistToCenter <= radiusWorldCoords) {
-    //                     result |= setVoxelInternal(x, y, z, toValue);
-    //                 }
-    //             }
-    //         }
-    //     }
-    // });
-
-
     glm::vec3 radials(radiusWorldCoords / voxelSize.x,
                       radiusWorldCoords / voxelSize.y,
                       radiusWorldCoords / voxelSize.z);
-    float minRadial = glm::min(radials.x, radials.y);
-    minRadial = glm::min(minRadial, radials.z);
 
     // This three-level for loop iterates over every voxel in the volume that might be in the sphere
     withWriteLock([&] {
         for (int z = lowI.z; z < highI.z; z++) {
             for (int y = lowI.y; y < highI.y; y++) {
                 for (int x = lowI.x; x < highI.x; x++) {
+
+                    // set voxels whose bounding-box touches the sphere
                     AABox voxelBox(glm::vec3(x - 0.5f, y - 0.5f, z - 0.5f), glm::vec3(1.0f, 1.0f, 1.0f));
-                    // if (voxelBox.touchesSphere(centerInVoxelCoords, minRadial)) {
                     if (voxelBox.touchesAAEllipsoid(centerInVoxelCoords, radials)) {
                         result |= setVoxelInternal(x, y, z, toValue);
                     }
+
+                    // TODO -- this version only sets voxels which have centers inside the sphere.  which is best?
+                    // // Store our current position as a vector...
+                    // glm::vec4 pos(x + 0.5f, y + 0.5f, z + 0.5f, 1.0); // consider voxels cenetered on their coordinates
+                    // // convert to world coordinates
+                    // glm::vec3 worldPos = glm::vec3(vtwMatrix * pos);
+                    // // compute how far the current position is from the center of the volume
+                    // float fDistToCenter = glm::distance(worldPos, centerWorldCoords);
+                    // // If the current voxel is less than 'radius' units from the center then we set its value
+                    // if (fDistToCenter <= radiusWorldCoords) {
+                    //     result |= setVoxelInternal(x, y, z, toValue);
+                    // }
                 }
             }
         }

From bb1c556c911a169f3b384b2cd4515aea481bd7f9 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Thu, 23 Mar 2017 11:04:50 -0700
Subject: [PATCH 183/247] forgot a file

---
 libraries/model/src/model/MeshProxy.cpp | 54 +++++++++++++++++++++++++
 1 file changed, 54 insertions(+)
 create mode 100644 libraries/model/src/model/MeshProxy.cpp

diff --git a/libraries/model/src/model/MeshProxy.cpp b/libraries/model/src/model/MeshProxy.cpp
new file mode 100644
index 0000000000..01bafa086c
--- /dev/null
+++ b/libraries/model/src/model/MeshProxy.cpp
@@ -0,0 +1,54 @@
+//
+//  MeshProxy.cpp
+//  libraries/model/src/model/
+//
+//  Created by Seth Alves on 2017-3-22.
+//  Copyright 2017 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
+//
+
+#include "MeshProxy.h"
+
+
+QScriptValue meshToScriptValue(QScriptEngine* engine, MeshProxy* const &in) {
+    return engine->newQObject(in, QScriptEngine::QtOwnership,
+                              QScriptEngine::ExcludeDeleteLater | QScriptEngine::ExcludeChildObjects);
+}
+
+void meshFromScriptValue(const QScriptValue& value, MeshProxy* &out) {
+    out = qobject_cast<MeshProxy*>(value.toQObject());
+}
+
+QScriptValue meshesToScriptValue(QScriptEngine* engine, const MeshProxyList &in) {
+    // QScriptValueList result;
+    QScriptValue result = engine->newArray();
+    int i = 0;
+    foreach (MeshProxy* const meshProxy, in) {
+        qDebug() << "meshesToScriptValue adding mesh: " << (void*)meshProxy;
+        // result.setProperty(i++, QScriptValue(engine, meshProxy));
+        result.setProperty(i++, meshToScriptValue(engine, meshProxy));
+        // result.setProperty(QString::number(i++), QScriptValue(meshProxy));
+        // result[i] = QScriptValue(meshProxy);
+        // result << QScriptValue(meshProxy);
+    }
+    // result.setProperty("length", i);
+    return result;
+}
+
+void meshesFromScriptValue(const QScriptValue& value, MeshProxyList &out) {
+    QScriptValueIterator itr(value);
+
+    qDebug() << "in meshesFromScriptValue, value.length =" << value.property("length").toInt32();
+
+    while(itr.hasNext()) {
+        itr.next();
+        MeshProxy* meshProxy = qscriptvalue_cast<MeshProxyList::value_type>(itr.value());
+        if (meshProxy) {
+            out.append(meshProxy);
+        } else {
+            qDebug() << "null meshProxy";
+        }
+    }
+}

From 8915ecd23d1196142f856d72dc8713a3073e45be Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidleity.io>
Date: Wed, 22 Mar 2017 09:17:30 -0700
Subject: [PATCH 184/247] compile time option to switch from touch to mouse
 events for web tablet

---
 interface/src/ui/overlays/Web3DOverlay.cpp | 48 ++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp
index ede630d4ad..97c736cc8e 100644
--- a/interface/src/ui/overlays/Web3DOverlay.cpp
+++ b/interface/src/ui/overlays/Web3DOverlay.cpp
@@ -340,6 +340,52 @@ void Web3DOverlay::setProxyWindow(QWindow* proxyWindow) {
     _webSurface->setProxyWindow(proxyWindow);
 }
 
+#define USE_MOUSE_EVENTS
+
+#ifdef USE_MOUSE_EVENTS
+void Web3DOverlay::handlePointerEvent(const PointerEvent& event) {
+    if (!_webSurface) {
+        return;
+    }
+
+    glm::vec2 windowPos = event.getPos2D() * (METERS_TO_INCHES * _dpi);
+    QPointF windowPoint(windowPos.x, windowPos.y);
+
+    if (event.getType() == PointerEvent::Press) {
+        this->_pressed = true;
+    } else if (event.getType() == PointerEvent::Release) {
+        this->_pressed = false;
+    }
+
+
+    Qt::MouseButtons buttons = Qt::NoButton;
+    if (event.getButtons() & PointerEvent::PrimaryButton) {
+        buttons |= Qt::LeftButton;
+    }
+
+    QEvent::Type type;
+    Qt::MouseButton button = Qt::NoButton;
+    if (event.getButton() == PointerEvent::PrimaryButton) {
+        button = Qt::LeftButton;
+    }
+    switch (event.getType()) {
+        case PointerEvent::Press:
+            type = QEvent::MouseButtonPress;
+            break;
+        case PointerEvent::Release:
+            type = QEvent::MouseButtonRelease;
+            break;
+        case PointerEvent::Move:
+        default:
+            type = QEvent::MouseMove;
+            break;
+    }
+
+    QMouseEvent* mouseEvent = new QMouseEvent(type, windowPoint, windowPoint, windowPoint, button, buttons, Qt::NoModifier);
+    QCoreApplication::postEvent(_webSurface->getWindow(), mouseEvent);
+}
+
+#else
 void Web3DOverlay::handlePointerEvent(const PointerEvent& event) {
     if (!_webSurface) {
         return;
@@ -395,6 +441,8 @@ void Web3DOverlay::handlePointerEvent(const PointerEvent& event) {
 
     QCoreApplication::postEvent(_webSurface->getWindow(), touchEvent);
 }
+#endif
+
 
 void Web3DOverlay::setProperties(const QVariantMap& properties) {
     Billboard3DOverlay::setProperties(properties);

From bab9890fea046e8c7165b686fbac1207b215d50a Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidelity.io>
Date: Thu, 23 Mar 2017 11:02:17 -0700
Subject: [PATCH 185/247] Added inputMode property to Web3DOverlay.

This allows user to switch between Touch messages and Mouse messages.
Added a sliderTestMain.js script which demonstrates this behavior.
---
 interface/src/ui/overlays/Web3DOverlay.cpp    | 141 ++++++++--------
 interface/src/ui/overlays/Web3DOverlay.h      |   8 +
 libraries/shared/src/PointerEvent.cpp         |  28 +++-
 libraries/shared/src/PointerEvent.h           |   5 +-
 scripts/developer/tests/sliderTest.html       | 157 ++++++++++++++++++
 scripts/developer/tests/sliderTestMain.js     |  35 ++++
 .../system/controllers/handControllerGrab.js  |   6 +-
 7 files changed, 305 insertions(+), 75 deletions(-)
 create mode 100644 scripts/developer/tests/sliderTest.html
 create mode 100644 scripts/developer/tests/sliderTestMain.js

diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp
index 97c736cc8e..1cf40d282d 100644
--- a/interface/src/ui/overlays/Web3DOverlay.cpp
+++ b/interface/src/ui/overlays/Web3DOverlay.cpp
@@ -232,10 +232,7 @@ void Web3DOverlay::render(RenderArgs* args) {
         std::weak_ptr<Web3DOverlay> weakSelf = std::dynamic_pointer_cast<Web3DOverlay>(qApp->getOverlays().getOverlay(selfOverlayID));
         auto forwardPointerEvent = [=](OverlayID overlayID, const PointerEvent& event) {
             auto self = weakSelf.lock();
-            if (!self) {
-                return;
-            }
-            if (overlayID == selfOverlayID) {
+            if (self && overlayID == selfOverlayID) {
                 self->handlePointerEvent(event);
             }
         };
@@ -249,22 +246,9 @@ void Web3DOverlay::render(RenderArgs* args) {
                 return;
             }
             if (self->_pressed && overlayID == selfOverlayID) {
-                // If the user mouses off the overlay while the button is down, simulate a touch end.
-                QTouchEvent::TouchPoint point;
-                point.setId(event.getID());
-                point.setState(Qt::TouchPointReleased);
-                glm::vec2 windowPos = event.getPos2D() * (METERS_TO_INCHES * _dpi);
-                QPointF windowPoint(windowPos.x, windowPos.y);
-                point.setScenePos(windowPoint);
-                point.setPos(windowPoint);
-                QList<QTouchEvent::TouchPoint> touchPoints;
-                touchPoints.push_back(point);
-                QTouchEvent* touchEvent = new QTouchEvent(QEvent::TouchEnd, nullptr, Qt::NoModifier, Qt::TouchPointReleased,
-                    touchPoints);
-                touchEvent->setWindow(self->_webSurface->getWindow());
-                touchEvent->setDevice(&_touchDevice);
-                touchEvent->setTarget(self->_webSurface->getRootItem());
-                QCoreApplication::postEvent(self->_webSurface->getWindow(), touchEvent);
+                PointerEvent endEvent(PointerEvent::Release, event.getID(), event.getPos2D(), event.getPos3D(), event.getNormal(), event.getDirection(),
+                                      event.getButton(), event.getButtons(), event.getKeyboardModifiers());
+                forwardPointerEvent(overlayID, event);
             }
         }, Qt::DirectConnection);
 
@@ -340,53 +324,15 @@ void Web3DOverlay::setProxyWindow(QWindow* proxyWindow) {
     _webSurface->setProxyWindow(proxyWindow);
 }
 
-#define USE_MOUSE_EVENTS
-
-#ifdef USE_MOUSE_EVENTS
 void Web3DOverlay::handlePointerEvent(const PointerEvent& event) {
-    if (!_webSurface) {
-        return;
+    if (_inputMode == Touch) {
+        handlePointerEventAsTouch(event);
+    } else {
+        handlePointerEventAsMouse(event);
     }
-
-    glm::vec2 windowPos = event.getPos2D() * (METERS_TO_INCHES * _dpi);
-    QPointF windowPoint(windowPos.x, windowPos.y);
-
-    if (event.getType() == PointerEvent::Press) {
-        this->_pressed = true;
-    } else if (event.getType() == PointerEvent::Release) {
-        this->_pressed = false;
-    }
-
-
-    Qt::MouseButtons buttons = Qt::NoButton;
-    if (event.getButtons() & PointerEvent::PrimaryButton) {
-        buttons |= Qt::LeftButton;
-    }
-
-    QEvent::Type type;
-    Qt::MouseButton button = Qt::NoButton;
-    if (event.getButton() == PointerEvent::PrimaryButton) {
-        button = Qt::LeftButton;
-    }
-    switch (event.getType()) {
-        case PointerEvent::Press:
-            type = QEvent::MouseButtonPress;
-            break;
-        case PointerEvent::Release:
-            type = QEvent::MouseButtonRelease;
-            break;
-        case PointerEvent::Move:
-        default:
-            type = QEvent::MouseMove;
-            break;
-    }
-
-    QMouseEvent* mouseEvent = new QMouseEvent(type, windowPoint, windowPoint, windowPoint, button, buttons, Qt::NoModifier);
-    QCoreApplication::postEvent(_webSurface->getWindow(), mouseEvent);
 }
 
-#else
-void Web3DOverlay::handlePointerEvent(const PointerEvent& event) {
+void Web3DOverlay::handlePointerEventAsTouch(const PointerEvent& event) {
     if (!_webSurface) {
         return;
     }
@@ -394,16 +340,16 @@ void Web3DOverlay::handlePointerEvent(const PointerEvent& event) {
     glm::vec2 windowPos = event.getPos2D() * (METERS_TO_INCHES * _dpi);
     QPointF windowPoint(windowPos.x, windowPos.y);
 
-    if (event.getType() == PointerEvent::Move) {
+    if (event.getButtons() == PointerEvent::NoButtons && event.getType() == PointerEvent::Move) {
         // Forward a mouse move event to the Web surface.
-        QMouseEvent* mouseEvent = new QMouseEvent(QEvent::MouseMove, windowPoint, windowPoint, windowPoint, Qt::NoButton,
-            Qt::NoButton, Qt::NoModifier);
+        QMouseEvent* mouseEvent = new QMouseEvent(QEvent::MouseMove, windowPoint, windowPoint, windowPoint, Qt::NoButton, Qt::NoButton, Qt::NoModifier);
         QCoreApplication::postEvent(_webSurface->getWindow(), mouseEvent);
+        return;
     }
 
-    if (event.getType() == PointerEvent::Press) {
+    if (event.getType() == PointerEvent::Press && event.getButton() == PointerEvent::PrimaryButton) {
         this->_pressed = true;
-    } else if (event.getType() == PointerEvent::Release) {
+    } else if (event.getType() == PointerEvent::Release && event.getButton() == PointerEvent::PrimaryButton) {
         this->_pressed = false;
     }
 
@@ -441,8 +387,47 @@ void Web3DOverlay::handlePointerEvent(const PointerEvent& event) {
 
     QCoreApplication::postEvent(_webSurface->getWindow(), touchEvent);
 }
-#endif
 
+void Web3DOverlay::handlePointerEventAsMouse(const PointerEvent& event) {
+    if (!_webSurface) {
+        return;
+    }
+
+    glm::vec2 windowPos = event.getPos2D() * (METERS_TO_INCHES * _dpi);
+    QPointF windowPoint(windowPos.x, windowPos.y);
+
+    if (event.getType() == PointerEvent::Press) {
+        this->_pressed = true;
+    } else if (event.getType() == PointerEvent::Release) {
+        this->_pressed = false;
+    }
+
+    Qt::MouseButtons buttons = Qt::NoButton;
+    if (event.getButtons() & PointerEvent::PrimaryButton) {
+        buttons |= Qt::LeftButton;
+    }
+
+    QEvent::Type type;
+    Qt::MouseButton button = Qt::NoButton;
+    if (event.getButton() == PointerEvent::PrimaryButton) {
+        button = Qt::LeftButton;
+    }
+    switch (event.getType()) {
+        case PointerEvent::Press:
+            type = QEvent::MouseButtonPress;
+            break;
+        case PointerEvent::Release:
+            type = QEvent::MouseButtonRelease;
+            break;
+        case PointerEvent::Move:
+        default:
+            type = QEvent::MouseMove;
+            break;
+    }
+
+    QMouseEvent* mouseEvent = new QMouseEvent(type, windowPoint, windowPoint, windowPoint, button, buttons, Qt::NoModifier);
+    QCoreApplication::postEvent(_webSurface->getWindow(), mouseEvent);
+}
 
 void Web3DOverlay::setProperties(const QVariantMap& properties) {
     Billboard3DOverlay::setProperties(properties);
@@ -486,6 +471,16 @@ void Web3DOverlay::setProperties(const QVariantMap& properties) {
     if (showKeyboardFocusHighlight.isValid()) {
         _showKeyboardFocusHighlight = showKeyboardFocusHighlight.toBool();
     }
+
+    auto inputModeValue = properties["inputMode"];
+    if (inputModeValue.isValid()) {
+        QString inputModeStr = inputModeValue.toString();
+        if (inputModeStr == "Mouse") {
+            _inputMode = Mouse;
+        } else {
+            _inputMode = Touch;
+        }
+    }
 }
 
 QVariant Web3DOverlay::getProperty(const QString& property) {
@@ -507,6 +502,14 @@ QVariant Web3DOverlay::getProperty(const QString& property) {
     if (property == "showKeyboardFocusHighlight") {
         return _showKeyboardFocusHighlight;
     }
+
+    if (property == "inputMode") {
+        if (_inputMode == Mouse) {
+            return QVariant("Mouse");
+        } else {
+            return QVariant("Touch");
+        }
+    }
     return Billboard3DOverlay::getProperty(property);
 }
 
diff --git a/interface/src/ui/overlays/Web3DOverlay.h b/interface/src/ui/overlays/Web3DOverlay.h
index e71cac2452..6a35dec96d 100644
--- a/interface/src/ui/overlays/Web3DOverlay.h
+++ b/interface/src/ui/overlays/Web3DOverlay.h
@@ -40,6 +40,8 @@ public:
     QObject* getEventHandler();
     void setProxyWindow(QWindow* proxyWindow);
     void handlePointerEvent(const PointerEvent& event);
+    void handlePointerEventAsTouch(const PointerEvent& event);
+    void handlePointerEventAsMouse(const PointerEvent& event);
 
     // setters
     void setURL(const QString& url);
@@ -55,6 +57,11 @@ public:
 
     virtual Web3DOverlay* createClone() const override;
 
+    enum InputMode {
+        Touch,
+        Mouse
+    };
+
 public slots:
     void emitScriptEvent(const QVariant& scriptMessage);
 
@@ -63,6 +70,7 @@ signals:
     void webEventReceived(const QVariant& message);
 
 private:
+    InputMode _inputMode { Touch };
     QSharedPointer<OffscreenQmlSurface> _webSurface;
     QMetaObject::Connection _connection;
     gpu::TexturePointer _texture;
diff --git a/libraries/shared/src/PointerEvent.cpp b/libraries/shared/src/PointerEvent.cpp
index 1a64a5ddb1..7ec5e78b9f 100644
--- a/libraries/shared/src/PointerEvent.cpp
+++ b/libraries/shared/src/PointerEvent.cpp
@@ -143,7 +143,7 @@ void PointerEvent::fromScriptValue(const QScriptValue& object, PointerEvent& eve
         }
 
         QScriptValue id = object.property("id");
-        event._id = type.isNumber() ? (uint32_t)type.toNumber() : 0;
+        event._id = id.isNumber() ? (uint32_t)id.toNumber() : 0;
 
         glm::vec2 pos2D;
         vec2FromScriptValue(object.property("pos2D"), event._pos2D);
@@ -158,7 +158,8 @@ void PointerEvent::fromScriptValue(const QScriptValue& object, PointerEvent& eve
         vec3FromScriptValue(object.property("direction"), event._direction);
 
         QScriptValue button = object.property("button");
-        QString buttonStr = type.isString() ? type.toString() : "NoButtons";
+        QString buttonStr = type.isString() ? button.toString() : "NoButtons";
+
         if (buttonStr == "Primary") {
             event._button = PrimaryButton;
         } else if (buttonStr == "Secondary") {
@@ -186,3 +187,26 @@ void PointerEvent::fromScriptValue(const QScriptValue& object, PointerEvent& eve
         event._keyboardModifiers = (Qt::KeyboardModifiers)(object.property("keyboardModifiers").toUInt32());
     }
 }
+
+static const char* typeToStringMap[PointerEvent::NumEventTypes] = { "Press", "DoublePress", "Release", "Move" };
+static const char* buttonsToStringMap[8] = {
+    "NoButtons",
+    "PrimaryButton",
+    "SecondaryButton",
+    "PrimaryButton | SecondaryButton",
+    "TertiaryButton",
+    "PrimaryButton | TertiaryButton",
+    "SecondaryButton | TertiaryButton",
+    "PrimaryButton | SecondaryButton | TertiaryButton",
+};
+
+QDebug& operator<<(QDebug& dbg, const PointerEvent& p) {
+    dbg.nospace() << "PointerEvent, type = " << typeToStringMap[p.getType()] << ", id = " << p.getID();
+    dbg.nospace() << ", pos2D = (" << p.getPos2D().x << ", " << p.getPos2D().y;
+    dbg.nospace() << "), pos3D = (" << p.getPos3D().x << ", " << p.getPos3D().y << ", " << p.getPos3D().z;
+    dbg.nospace() << "), normal = (" << p.getNormal().x << ", " << p.getNormal().y << ", " << p.getNormal().z;
+    dbg.nospace() << "), dir = (" << p.getDirection().x << ", " << p.getDirection().y << ", " << p.getDirection().z;
+    dbg.nospace() << "), button = " << buttonsToStringMap[p.getButton()] << " " << (int)p.getButton();
+    dbg.nospace() << ", buttons = " << buttonsToStringMap[p.getButtons()];
+    return dbg;
+}
diff --git a/libraries/shared/src/PointerEvent.h b/libraries/shared/src/PointerEvent.h
index 4c00ba3e69..cdea0aa3ed 100644
--- a/libraries/shared/src/PointerEvent.h
+++ b/libraries/shared/src/PointerEvent.h
@@ -31,7 +31,8 @@ public:
         Press,       // A button has just been pressed
         DoublePress, // A button has just been double pressed
         Release,     // A button has just been released
-        Move         // The pointer has just moved
+        Move,         // The pointer has just moved
+        NumEventTypes
     };
 
     PointerEvent();
@@ -68,6 +69,8 @@ private:
     Qt::KeyboardModifiers _keyboardModifiers; // set of keys held when event was generated
 };
 
+QDebug& operator<<(QDebug& dbg, const PointerEvent& p);
+
 Q_DECLARE_METATYPE(PointerEvent)
 
 #endif // hifi_PointerEvent_h
diff --git a/scripts/developer/tests/sliderTest.html b/scripts/developer/tests/sliderTest.html
new file mode 100644
index 0000000000..a672cfeaf8
--- /dev/null
+++ b/scripts/developer/tests/sliderTest.html
@@ -0,0 +1,157 @@
+<!--
+//  quick_start_template.html
+//
+//  Created by Faye Li on 3 Feb 2017
+//  Copyright 2017 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
+-->
+<html>
+    <head>
+        <title>Slider Test</title>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+        <link href="https://fonts.googleapis.com/css?family=Raleway:300,400,600,700"" rel="stylesheet">
+        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
+        <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/9.7.2/css/bootstrap-slider.min.css">
+        <!-- <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" /> -->
+        <style>
+            body {
+                margin: 0;
+                width: 100%;
+                font-family: 'Raleway', sans-serif;
+                color: white;
+                background: linear-gradient(#2b2b2b, #0f212e);
+            }
+
+            .top-bar {
+                height: 90px;
+                background: linear-gradient(#2b2b2b, #1e1e1e);
+                font-weight: bold;
+                padding-left: 30px;
+                padding-right: 30px;
+                display: flex;
+                align-items: center;
+                position: fixed;
+                width: 480px;
+                top: 0;
+                z-index: 1;
+            }
+
+            .content {
+                margin-top: 90px;
+                padding: 30px;
+            }
+
+            input[type=button] {
+                font-family: 'Raleway';
+                font-weight: bold;
+                font-size: 13px;
+                text-transform: uppercase;
+                vertical-align: top;
+                height: 28px;
+                min-width: 120px;
+                padding: 0px 18px;
+                margin-right: 6px;
+                border-radius: 5px;
+                border: none;
+                color: #fff;
+                background-color: #000;
+                background: linear-gradient(#343434 20%, #000 100%);
+                cursor: pointer;
+            }
+
+            input[type=button].red {
+                color: #fff;
+                background-color: #94132e;
+                background: linear-gradient(#d42043 20%, #94132e 100%);
+            }
+            input[type=button].blue {
+                color: #fff;
+                background-color: #1080b8;
+                background: linear-gradient(#00b4ef 20%, #1080b8 100%);
+            }
+            input[type=button].white {
+                color: #121212;
+                background-color: #afafaf;
+                background: linear-gradient(#fff 20%, #afafaf 100%);
+            }
+
+            input[type=button]:enabled:hover {
+                background: linear-gradient(#000, #000);
+                border: none;
+            }
+            input[type=button].red:enabled:hover {
+                background: linear-gradient(#d42043, #d42043);
+                border: none;
+            }
+            input[type=button].blue:enabled:hover {
+                background: linear-gradient(#00b4ef, #00b4ef);
+                border: none;
+            }
+            input[type=button].white:enabled:hover {
+                background: linear-gradient(#fff, #fff);
+                border: none;
+            }
+
+            input[type=button]:active {
+                background: linear-gradient(#343434, #343434);
+            }
+            input[type=button].red:active {
+                background: linear-gradient(#94132e, #94132e);
+            }
+            input[type=button].blue:active {
+                background: linear-gradient(#1080b8, #1080b8);
+            }
+            input[type=button].white:active {
+                background: linear-gradient(#afafaf, #afafaf);
+            }
+
+            input[type=button]:disabled {
+                color: #252525;
+                background: linear-gradient(#575757 20%, #252525 100%);
+            }
+
+            input[type=button][pressed=pressed] {
+                color: #00b4ef;
+            }
+
+        </style>
+    </head>
+    <body>
+        <div class="top-bar">
+            <h4>Slider Test</h4>
+        </div>
+        <div class="content">
+            <p>Native Input Range Slider</p>
+            <p>
+                <input type="range" name="native-slider" id="native-slider" value="60" min="0" max="100">
+            </p>
+            <p>Bootstrap Slider</p>
+            <p>
+                <input
+              id="bootstrap-slider"
+              type="text"
+              data-provide="slider"
+              data-slider-min="0"
+              data-slider-max="100"
+              data-slider-step="1"
+              data-slider-value="60"
+              data-slider-tooltip="hide"
+                >
+            </p>
+        </div>
+
+        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
+        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/9.7.2/bootstrap-slider.min.js"></script>
+        <script>
+            function main() {
+                console.log("ready");
+            }
+
+            $(document).ready(main);
+        </script>
+    </body>
+</html>
\ No newline at end of file
diff --git a/scripts/developer/tests/sliderTestMain.js b/scripts/developer/tests/sliderTestMain.js
new file mode 100644
index 0000000000..22bf4fa911
--- /dev/null
+++ b/scripts/developer/tests/sliderTestMain.js
@@ -0,0 +1,35 @@
+(function () {
+	var HTML_URL = Script.resolvePath("sliderTest.html");
+	var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+    var button = tablet.addButton({
+        text: "SLIDER"
+    });
+
+    function onClicked() {
+        tablet.gotoWebScreen(HTML_URL);
+    }
+
+    button.clicked.connect(onClicked);
+
+    var onSliderTestScreen = false;
+    function onScreenChanged(type, url) {
+        if (type === "Web" && url === HTML_URL) {
+            // when switching to the slider page, change inputMode to "Mouse", this should make the sliders work.
+            onSliderTestScreen = true;
+            Overlays.editOverlay(HMD.tabletScreenID, { inputMode: "Mouse" });
+        } else if (onSliderTestScreen) {
+            // when switching off of the slider page, change inputMode to back to "Touch".
+            onSliderTestScreen = false;
+            Overlays.editOverlay(HMD.tabletScreenID, { inputMode: "Touch" });
+        }
+    }
+
+    tablet.screenChanged.connect(onScreenChanged);
+
+	function cleanup() {
+        tablet.removeButton(button);
+        tablet.screenChanged.disconnect(onScreenChanged);
+    }
+    Script.scriptEnding.connect(cleanup);
+
+}());
diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index c8b78b4d08..f614020880 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -3446,7 +3446,7 @@ function MyController(hand) {
         if (intersectInfo) {
             var pointerEvent = {
                 type: "Press",
-                id: HARDWARE_MOUSE_ID,
+                id: this.hand + 1,
                 pos2D: projectOntoOverlayXYPlane(this.grabbedOverlay, intersectInfo.point),
                 pos3D: intersectInfo.point,
                 normal: intersectInfo.normal,
@@ -3495,7 +3495,7 @@ function MyController(hand) {
             if (this.deadspotExpired) {
                 pointerEvent = {
                     type: "Release",
-                    id: HARDWARE_MOUSE_ID,
+                    id: this.hand + 1,
                     pos2D: pos2D,
                     pos3D: pos3D,
                     normal: intersectInfo.normal,
@@ -3539,7 +3539,7 @@ function MyController(hand) {
 
             var pointerEvent = {
                 type: "Move",
-                id: HARDWARE_MOUSE_ID,
+                id: this.hand + 1,
                 pos2D: pos2D,
                 pos3D: pos3D,
                 normal: intersectInfo.normal,

From b023cb71be18df4c97a872ad7a7f633ea517087c Mon Sep 17 00:00:00 2001
From: Stephen Birarda <commit@birarda.com>
Date: Thu, 23 Mar 2017 16:02:39 -0700
Subject: [PATCH 186/247] when building RelWithDebInfo check for correct bullet
 libs

---
 cmake/externals/bullet/CMakeLists.txt | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/cmake/externals/bullet/CMakeLists.txt b/cmake/externals/bullet/CMakeLists.txt
index 125432002c..799306d8e5 100644
--- a/cmake/externals/bullet/CMakeLists.txt
+++ b/cmake/externals/bullet/CMakeLists.txt
@@ -66,11 +66,15 @@ if (DEFINED BULLET_LIB_EXT)
     list(GET _LIB_PAIR 0 _LIB_VAR_NAME)
     list(GET _LIB_PAIR 1 _LIB_NAME)
 
-    set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_RELEASE ${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}.${BULLET_LIB_EXT} CACHE FILEPATH "${_LIB_NAME} release library location")
+
 
     if (WIN32)
+      # on windows, we might end up with a library that ends with RelWithDebInfo if Visual Studio is building for that configuration
+      set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_RELEASE "${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}$<$<OR:$<CONFIG:RelWithDebInfo>>:_RelWithDebugInfo>.${BULLET_LIB_EXT}" CACHE FILEPATH "${_LIB_NAME} release library location")
+
       set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_DEBUG ${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}_Debug.${BULLET_LIB_EXT} CACHE FILEPATH "${_LIB_NAME} debug library location")
     else ()
+      set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_RELEASE ${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}.${BULLET_LIB_EXT} CACHE FILEPATH "${_LIB_NAME} release library location")
       set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_DEBUG "" CACHE FILEPATH "${_LIB_NAME} debug library location")
     endif ()
   endforeach()

From 654ae5032b5c202adc63ff536201bc9e1e2b132c Mon Sep 17 00:00:00 2001
From: Stephen Birarda <commit@birarda.com>
Date: Thu, 23 Mar 2017 16:11:48 -0700
Subject: [PATCH 187/247] simplify the RelWithDebInfo check in bullet ext

---
 cmake/externals/bullet/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cmake/externals/bullet/CMakeLists.txt b/cmake/externals/bullet/CMakeLists.txt
index 799306d8e5..098f0bb19d 100644
--- a/cmake/externals/bullet/CMakeLists.txt
+++ b/cmake/externals/bullet/CMakeLists.txt
@@ -70,7 +70,7 @@ if (DEFINED BULLET_LIB_EXT)
 
     if (WIN32)
       # on windows, we might end up with a library that ends with RelWithDebInfo if Visual Studio is building for that configuration
-      set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_RELEASE "${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}$<$<OR:$<CONFIG:RelWithDebInfo>>:_RelWithDebugInfo>.${BULLET_LIB_EXT}" CACHE FILEPATH "${_LIB_NAME} release library location")
+      set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_RELEASE "${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}$<$<CONFIG:RelWithDebInfo>:_RelWithDebugInfo>.${BULLET_LIB_EXT}" CACHE FILEPATH "${_LIB_NAME} release library location")
 
       set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_DEBUG ${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}_Debug.${BULLET_LIB_EXT} CACHE FILEPATH "${_LIB_NAME} debug library location")
     else ()

From a078121c464325d0b52deacc6e37a424f43345e5 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Fri, 24 Mar 2017 00:23:13 +0100
Subject: [PATCH 188/247] saving work

---
 interface/resources/qml/hifi/Card.qml         | 73 ++++++++++---------
 .../resources/qml/hifi/TabletTextButton.qml   | 64 ++++++++++++++++
 .../qml/hifi/tablet/TabletAddressDialog.qml   | 55 +++++---------
 scripts/defaultScripts.js                     |  2 +-
 4 files changed, 124 insertions(+), 70 deletions(-)
 create mode 100644 interface/resources/qml/hifi/TabletTextButton.qml

diff --git a/interface/resources/qml/hifi/Card.qml b/interface/resources/qml/hifi/Card.qml
index f6f7e88d0c..781149c1b3 100644
--- a/interface/resources/qml/hifi/Card.qml
+++ b/interface/resources/qml/hifi/Card.qml
@@ -153,44 +153,49 @@ Rectangle {
             margins: textPadding;
         }
     }
-    Row {
-        FiraSansRegular {
-            id: users;
-            visible: isConcurrency;
-            text: onlineUsers;
-            size: textSize;
-            color: messageColor;
-            anchors.verticalCenter: message.verticalCenter;
-        }
-        Image {
-            id: icon;
-            source: "../../images/snap-icon.svg"
-            width: 40;
-            height: 40;
-            visible: action === 'snapshot';
-        }
-        RalewayRegular {
-            id: message;
-            text: isConcurrency ? ((onlineUsers === 1) ? "person" : "people") : (drillDownToPlace ? "snapshots" : ("by " + userName));
-            size: textSizeSmall;
-            color: messageColor;
-            elide: Text.ElideRight; // requires a width to be specified`
-            width: root.width - textPadding
-                - (users.visible ? users.width + parent.spacing : 0)
-                - (icon.visible ? icon.width + parent.spacing : 0)
-                - (actionIcon.width + (2 * smallMargin));
+
+    Rectangle {
+        radius: 20
+        color: "transparent"
+        Row {
+            FiraSansRegular {
+                id: users;
+                visible: isConcurrency;
+                text: onlineUsers;
+                size: textSize;
+                color: messageColor;
+                anchors.verticalCenter: message.verticalCenter;
+            }
+            Image {
+                id: icon;
+                source: "../../images/snap-icon.svg"
+                width: 40;
+                height: 40;
+                visible: action === 'snapshot';
+            }
+            RalewayRegular {
+                id: message;
+                text: isConcurrency ? ((onlineUsers === 1) ? "person" : "people") : (drillDownToPlace ? "snapshots" : ("by " + userName));
+                size: textSizeSmall;
+                color: messageColor;
+                elide: Text.ElideRight; // requires a width to be specified`
+                width: root.width - textPadding
+                    - (users.visible ? users.width + parent.spacing : 0)
+                    - (icon.visible ? icon.width + parent.spacing : 0)
+                    - (actionIcon.width + (2 * smallMargin));
+                anchors {
+                    bottom: parent.bottom;
+                    bottomMargin: parent.spacing;
+                }
+            }
+            spacing: textPadding;
+            height: messageHeight;
             anchors {
                 bottom: parent.bottom;
-                bottomMargin: parent.spacing;
+                left: parent.left;
+                leftMargin: textPadding;
             }
         }
-        spacing: textPadding;
-        height: messageHeight;
-        anchors {
-            bottom: parent.bottom;
-            left: parent.left;
-            leftMargin: textPadding;
-        }
     }
     // These two can be supplied to provide hover behavior.
     // For example, AddressBarDialog provides functions that set the current list view item
diff --git a/interface/resources/qml/hifi/TabletTextButton.qml b/interface/resources/qml/hifi/TabletTextButton.qml
new file mode 100644
index 0000000000..20f30f002c
--- /dev/null
+++ b/interface/resources/qml/hifi/TabletTextButton.qml
@@ -0,0 +1,64 @@
+//
+//  TabletTextButton.qml
+//
+//  Created by Dante Ruiz on 2017/3/23
+//  Copyright 2015 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
+//
+
+import Hifi 1.0
+import QtQuick 2.4
+import "../styles-uit"
+
+Rectangle {
+    property alias text: label.text
+    property alias pixelSize: label.font.pixelSize;
+    property bool selected: false
+    property int spacing: 2
+    property var action: function () {}
+    property string highlightColor: hifi.colors.blueHighlight;
+    width: label.width + 64
+    height: 32
+    color: hifi.colors.white
+    HifiConstants { id: hifi }
+    RalewaySemiBold {
+        id: label;
+        color: hifi.colors.blueHighlight;
+        font.pixelSize: 15;
+        anchors {
+            horizontalCenter: parent.horizontalCenter;
+            verticalCenter: parent.verticalCenter;
+        }
+    }
+
+    /*Rectangle {
+        anchors.fill: parent
+        border.width: 3
+        border.color: clickArea.containMouse ? highlightColor : "transparent"
+        color: "transparent"
+    }*/
+        
+    Rectangle {
+        id: indicator
+        width: parent.width
+        height: 3
+        anchors {
+            left: parent.left
+            right: parent.right
+            bottom: parent.bottom
+        }
+        color: hifi.colors.blueHighlight
+        visible: parent.selected
+    }
+
+    MouseArea {
+        id: clickArea;
+        anchors.fill: parent;
+        acceptedButtons: Qt.LeftButton;
+        onClicked: action(parent);
+        hoverEnabled: true;
+    }
+}
+        
diff --git a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
index 8054c90603..9e68d3435a 100644
--- a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
@@ -28,7 +28,7 @@ Item {
     height: parent.height
 
     property var allStories: [];
-    property int cardWidth: 370;
+    property int cardWidth: 460;
     property int cardHeight: 320;
     property string metaverseBase: addressBarDialog.metaverseServerUrl + "/api/v1/";
 
@@ -86,7 +86,7 @@ Item {
             id: navBar
             width: 480
             height: 70
-
+            color: hifi.colors.white
             anchors {
                 top: parent.top
                 right: parent.right
@@ -201,22 +201,17 @@ Item {
                     }
                 }
             }
+
+            Rectangle {
+                anchors.fill: addressLine
+                color: hifiStyleConstants.colors.baseGray
+                opacity: 0.1
+            }
         }
         Rectangle {
             id: topBar
-            height: 90
-            gradient: Gradient {
-                GradientStop {
-                    position: 0
-                    color: "#2b2b2b"
-                    
-                }
-
-                GradientStop {
-                    position: 1
-                    color: "#1e1e1e"
-                }
-            }
+            height: 37
+            color: hifi.colors.white
 
             anchors.right: parent.right
             anchors.rightMargin: 0
@@ -227,14 +222,15 @@ Item {
             
             Row {
                 id: thing
-                spacing: 2 * hifi.layout.spacing
+                spacing: 5 * hifi.layout.spacing
 
                 anchors {
                     top: parent.top;
                     left: parent.left
+                    leftMargin: 25
                 }
 
-                TextButton {
+                TabletTextButton {
                     id: allTab;
                     text: "ALL";
                     property string includeActions: 'snapshot, concurrency';
@@ -242,7 +238,7 @@ Item {
                     action: tabSelect;
                 }
 
-                TextButton {
+                TabletTextButton {
                     id: placeTab;
                     text: "PLACES";
                     property string includeActions: 'concurrency';
@@ -251,7 +247,7 @@ Item {
                     
                 }
 
-                TextButton {
+                TabletTextButton {
                     id: snapTab;
                     text: "SNAP";
                     property string includeActions: 'snapshot';
@@ -264,20 +260,7 @@ Item {
 
         Rectangle {
             id: bgMain
-                gradient: Gradient {
-                    GradientStop {
-                        position: 0
-                        color: "#2b2b2b"
-
-                    }
-                    
-                    GradientStop {
-                        position: 1
-                        color: "#0f212e"
-                    }
-                }
-
-            
+            color: hifi.colors.white
             anchors.bottom: parent.keyboardEnabled ? keyboard.top : parent.bottom
             anchors.bottomMargin: 0
             anchors.right: parent.right
@@ -292,7 +275,7 @@ Item {
             ListView {
                 id: scroll
                 
-                property int stackedCardShadowHeight: 10;
+                property int stackedCardShadowHeight: 0;
                 clip: true
                 spacing: 14
                 anchors {
@@ -300,7 +283,9 @@ Item {
                     top: parent.top
                     left: parent.left
                     right: parent.right
-                    leftMargin: 50
+                    leftMargin: 10
+                    verticalCenter: parent.verticalCenter;
+                    horizontalCenter: parent.horizontalCenter;
                 }
                 model: suggestions
                 orientation: ListView.Vertical
diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js
index aba2f35e6b..109b92d33a 100644
--- a/scripts/defaultScripts.js
+++ b/scripts/defaultScripts.js
@@ -21,7 +21,7 @@ var DEFAULT_SCRIPTS_COMBINED = [
     "system/snapshot.js",
     "system/help.js",
     "system/pal.js", // "system/mod.js", // older UX, if you prefer
-    "system/goto.js",
+    "system/tablet-goto.js",
     "system/marketplaces/marketplaces.js",
     "system/edit.js",
     "system/tablet-users.js",

From be34e5a814709399677663c15050beb8750443bb Mon Sep 17 00:00:00 2001
From: Stephen Birarda <commit@birarda.com>
Date: Thu, 23 Mar 2017 16:40:13 -0700
Subject: [PATCH 189/247] fix RelWithDebInfo path for faceshift

---
 cmake/externals/faceshift/CMakeLists.txt | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/cmake/externals/faceshift/CMakeLists.txt b/cmake/externals/faceshift/CMakeLists.txt
index 28fbffec34..ed387be34f 100644
--- a/cmake/externals/faceshift/CMakeLists.txt
+++ b/cmake/externals/faceshift/CMakeLists.txt
@@ -27,6 +27,8 @@ set(LIBRARY_RELEASE_PATH "lib/Release")
 if (WIN32)
   set(LIBRARY_PREFIX "")
   set(LIBRARY_EXT "lib")
+  # use RelWithDebInfo in release path when building RelWithDebInfo config on Windows
+  set(LIBRARY_RELEASE_PATH "$<$<CONFIG:RelWithDebInfo>:build/RelWithDebInfo>$<$<NOT:$<CONFIG:RelWithDebInfo>>:lib/Release>")
 elseif (APPLE)
   set(LIBRARY_EXT "a")
   set(LIBRARY_PREFIX "lib")

From 670f51af0b3fffb7080b26b95c0d927235d6c353 Mon Sep 17 00:00:00 2001
From: Stephen Birarda <commit@birarda.com>
Date: Thu, 23 Mar 2017 16:50:03 -0700
Subject: [PATCH 190/247] fix reference to RelWithDebugInfo library for polyvox

---
 cmake/externals/polyvox/CMakeLists.txt | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/cmake/externals/polyvox/CMakeLists.txt b/cmake/externals/polyvox/CMakeLists.txt
index 3740e26762..9aa4bed955 100644
--- a/cmake/externals/polyvox/CMakeLists.txt
+++ b/cmake/externals/polyvox/CMakeLists.txt
@@ -19,7 +19,7 @@ ExternalProject_Get_Property(${EXTERNAL_NAME} INSTALL_DIR)
 
 if (APPLE)
   set(INSTALL_NAME_LIBRARY_DIR ${INSTALL_DIR}/lib)
-  
+
   ExternalProject_Add_Step(
     ${EXTERNAL_NAME}
     change-install-name-debug
@@ -29,7 +29,7 @@ if (APPLE)
     WORKING_DIRECTORY <SOURCE_DIR>
     LOG 1
   )
-  
+
   ExternalProject_Add_Step(
     ${EXTERNAL_NAME}
     change-install-name-release
@@ -59,7 +59,7 @@ endif ()
 
 if (WIN32)
   set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_DEBUG ${INSTALL_DIR}/PolyVoxCore/lib/Debug/PolyVoxCore.lib CACHE FILEPATH "polyvox core library")
-  set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_RELEASE ${INSTALL_DIR}/PolyVoxCore/lib/Release/PolyVoxCore.lib CACHE FILEPATH "polyvox core library")
+  set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_RELEASE "${INSTALL_DIR}/PolyVoxCore/lib/$<$<CONFIG:RelWithDebInfo>:RelWithDebInfo>$<$<NOT:$<CONFIG:RelWithDebInfo>>:Release>/PolyVoxCore.lib" CACHE FILEPATH "polyvox core library")
 #  set(${EXTERNAL_NAME_UPPER}_UTIL_LIBRARY ${INSTALL_DIR}/PolyVoxUtil/lib/PolyVoxUtil.lib CACHE FILEPATH "polyvox util library")
 elseif (APPLE)
   set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_DEBUG ${INSTALL_DIR}/lib/Debug/libPolyVoxCore.dylib CACHE FILEPATH "polyvox core library")

From e100a7bedbab70e1160f86304083cfb50ade9993 Mon Sep 17 00:00:00 2001
From: Stephen Birarda <commit@birarda.com>
Date: Thu, 23 Mar 2017 16:54:21 -0700
Subject: [PATCH 191/247] point VHACD external to correct library for
 RelWithDebugInfo

---
 cmake/externals/vhacd/CMakeLists.txt | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/cmake/externals/vhacd/CMakeLists.txt b/cmake/externals/vhacd/CMakeLists.txt
index efe6ed0381..befdce0b96 100644
--- a/cmake/externals/vhacd/CMakeLists.txt
+++ b/cmake/externals/vhacd/CMakeLists.txt
@@ -8,7 +8,7 @@ include(ExternalProject)
 ExternalProject_Add(
   ${EXTERNAL_NAME}
   URL http://hifi-public.s3.amazonaws.com/dependencies/v-hacd-master.zip
-  URL_MD5 3bfc94f8dd3dfbfe8f4dc088f4820b3e 
+  URL_MD5 3bfc94f8dd3dfbfe8f4dc088f4820b3e
   CMAKE_ARGS ${ANDROID_CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
   BINARY_DIR ${EXTERNAL_PROJECT_PREFIX}/build
   LOG_DOWNLOAD 1
@@ -25,7 +25,11 @@ string(TOUPPER ${EXTERNAL_NAME} EXTERNAL_NAME_UPPER)
 
 if (WIN32)
   set(${EXTERNAL_NAME_UPPER}_LIBRARY_DEBUG ${INSTALL_DIR}/lib/Debug/VHACD_LIB.lib CACHE FILEPATH "Path to V-HACD debug library")
-  set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${INSTALL_DIR}/lib/Release/VHACD_LIB.lib CACHE FILEPATH "Path to V-HACD release library")
+
+  # use generator expression to ensure the library is found when building RelWithDebInfo in VS
+  set(_LIB_FOLDER "$<$<CONFIG:RelWithDebInfo>:build/src/VHACD_Lib/RelWithDebInfo>$<$<NOT:$<CONFIG:RelWithDebInfo>>:lib/Release>")
+
+  set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${INSTALL_DIR}/${_LIB_FOLDER}/VHACD_LIB.lib CACHE FILEPATH "Path to V-HACD release library")
 else ()
   set(${EXTERNAL_NAME_UPPER}_LIBRARY_DEBUG "" CACHE FILEPATH "Path to V-HACD debug library")
   set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${INSTALL_DIR}/lib/libVHACD.a CACHE FILEPATH "Path to V-HACD release library")

From 5311de1f7b2fd050e85b7f5730a7a1ece67bdd60 Mon Sep 17 00:00:00 2001
From: Stephen Birarda <commit@birarda.com>
Date: Thu, 23 Mar 2017 17:05:08 -0700
Subject: [PATCH 192/247] handle MinSizeRel library discovery for bullet
 external

---
 cmake/externals/bullet/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cmake/externals/bullet/CMakeLists.txt b/cmake/externals/bullet/CMakeLists.txt
index 098f0bb19d..317e3302d9 100644
--- a/cmake/externals/bullet/CMakeLists.txt
+++ b/cmake/externals/bullet/CMakeLists.txt
@@ -70,7 +70,7 @@ if (DEFINED BULLET_LIB_EXT)
 
     if (WIN32)
       # on windows, we might end up with a library that ends with RelWithDebInfo if Visual Studio is building for that configuration
-      set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_RELEASE "${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}$<$<CONFIG:RelWithDebInfo>:_RelWithDebugInfo>.${BULLET_LIB_EXT}" CACHE FILEPATH "${_LIB_NAME} release library location")
+      set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_RELEASE "${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}$<$<CONFIG:RelWithDebInfo>:_RelWithDebugInfo>$<$<CONFIG:MinSizeRel>:_MinsizeRel>.${BULLET_LIB_EXT}" CACHE FILEPATH "${_LIB_NAME} release library location")
 
       set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_DEBUG ${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}_Debug.${BULLET_LIB_EXT} CACHE FILEPATH "${_LIB_NAME} debug library location")
     else ()

From ee521ed36993ed3ae9f1cd689b1a42dd892d255e Mon Sep 17 00:00:00 2001
From: Stephen Birarda <commit@birarda.com>
Date: Thu, 23 Mar 2017 17:06:22 -0700
Subject: [PATCH 193/247] handle library release path for faceshift MinSizeRel
 build

---
 cmake/externals/faceshift/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cmake/externals/faceshift/CMakeLists.txt b/cmake/externals/faceshift/CMakeLists.txt
index ed387be34f..2ab5cfe6c3 100644
--- a/cmake/externals/faceshift/CMakeLists.txt
+++ b/cmake/externals/faceshift/CMakeLists.txt
@@ -28,7 +28,7 @@ if (WIN32)
   set(LIBRARY_PREFIX "")
   set(LIBRARY_EXT "lib")
   # use RelWithDebInfo in release path when building RelWithDebInfo config on Windows
-  set(LIBRARY_RELEASE_PATH "$<$<CONFIG:RelWithDebInfo>:build/RelWithDebInfo>$<$<NOT:$<CONFIG:RelWithDebInfo>>:lib/Release>")
+  set(LIBRARY_RELEASE_PATH "$<$<CONFIG:RelWithDebInfo>:build/RelWithDebInfo>$<$<CONFIG:MinSizeRel>:build/MinSizeRel>$<$<CONFIG:Release>:lib/Release>")
 elseif (APPLE)
   set(LIBRARY_EXT "a")
   set(LIBRARY_PREFIX "lib")

From 0367f70a390161d27ae25e05fe6f9a164eecd5c8 Mon Sep 17 00:00:00 2001
From: Stephen Birarda <commit@birarda.com>
Date: Thu, 23 Mar 2017 17:07:51 -0700
Subject: [PATCH 194/247] interpolate CONFIG for polyvox library path

---
 cmake/externals/polyvox/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cmake/externals/polyvox/CMakeLists.txt b/cmake/externals/polyvox/CMakeLists.txt
index 9aa4bed955..c0586d88a4 100644
--- a/cmake/externals/polyvox/CMakeLists.txt
+++ b/cmake/externals/polyvox/CMakeLists.txt
@@ -59,7 +59,7 @@ endif ()
 
 if (WIN32)
   set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_DEBUG ${INSTALL_DIR}/PolyVoxCore/lib/Debug/PolyVoxCore.lib CACHE FILEPATH "polyvox core library")
-  set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_RELEASE "${INSTALL_DIR}/PolyVoxCore/lib/$<$<CONFIG:RelWithDebInfo>:RelWithDebInfo>$<$<NOT:$<CONFIG:RelWithDebInfo>>:Release>/PolyVoxCore.lib" CACHE FILEPATH "polyvox core library")
+  set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_RELEASE "${INSTALL_DIR}/PolyVoxCore/lib/$<CONFIG>/PolyVoxCore.lib" CACHE FILEPATH "polyvox core library")
 #  set(${EXTERNAL_NAME_UPPER}_UTIL_LIBRARY ${INSTALL_DIR}/PolyVoxUtil/lib/PolyVoxUtil.lib CACHE FILEPATH "polyvox util library")
 elseif (APPLE)
   set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_DEBUG ${INSTALL_DIR}/lib/Debug/libPolyVoxCore.dylib CACHE FILEPATH "polyvox core library")

From 6d38b1fe72186f25c06d2556c91f74f785c530a9 Mon Sep 17 00:00:00 2001
From: Stephen Birarda <commit@birarda.com>
Date: Thu, 23 Mar 2017 17:11:30 -0700
Subject: [PATCH 195/247] handle MinSizeRel configuration in vhacd external

---
 cmake/externals/vhacd/CMakeLists.txt | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/cmake/externals/vhacd/CMakeLists.txt b/cmake/externals/vhacd/CMakeLists.txt
index befdce0b96..779451a304 100644
--- a/cmake/externals/vhacd/CMakeLists.txt
+++ b/cmake/externals/vhacd/CMakeLists.txt
@@ -26,8 +26,12 @@ string(TOUPPER ${EXTERNAL_NAME} EXTERNAL_NAME_UPPER)
 if (WIN32)
   set(${EXTERNAL_NAME_UPPER}_LIBRARY_DEBUG ${INSTALL_DIR}/lib/Debug/VHACD_LIB.lib CACHE FILEPATH "Path to V-HACD debug library")
 
-  # use generator expression to ensure the library is found when building RelWithDebInfo in VS
-  set(_LIB_FOLDER "$<$<CONFIG:RelWithDebInfo>:build/src/VHACD_Lib/RelWithDebInfo>$<$<NOT:$<CONFIG:RelWithDebInfo>>:lib/Release>")
+  # use generator expression to ensure the correct library is found when building different configurations in VS
+  set(_LIB_FOLDER """
+    $<$<CONFIG:RelWithDebInfo>:build/src/VHACD_Lib/RelWithDebInfo>
+    $<$<CONFIG:MinSizeRel>:build/src/VHACD_Lib/MinSizeRel>
+    $<$<OR:$<CONFIG:Release>,$<CONFIG:Debug>>:lib/Release>
+  """)
 
   set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${INSTALL_DIR}/${_LIB_FOLDER}/VHACD_LIB.lib CACHE FILEPATH "Path to V-HACD release library")
 else ()

From 22c7d4032bd66d47203bbc22d2ee2b81bdc27826 Mon Sep 17 00:00:00 2001
From: Stephen Birarda <commit@birarda.com>
Date: Thu, 23 Mar 2017 17:13:19 -0700
Subject: [PATCH 196/247] fix debug config handling of release faceshift lib

---
 cmake/externals/faceshift/CMakeLists.txt | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/cmake/externals/faceshift/CMakeLists.txt b/cmake/externals/faceshift/CMakeLists.txt
index 2ab5cfe6c3..2f49dab428 100644
--- a/cmake/externals/faceshift/CMakeLists.txt
+++ b/cmake/externals/faceshift/CMakeLists.txt
@@ -27,8 +27,12 @@ set(LIBRARY_RELEASE_PATH "lib/Release")
 if (WIN32)
   set(LIBRARY_PREFIX "")
   set(LIBRARY_EXT "lib")
-  # use RelWithDebInfo in release path when building RelWithDebInfo config on Windows
-  set(LIBRARY_RELEASE_PATH "$<$<CONFIG:RelWithDebInfo>:build/RelWithDebInfo>$<$<CONFIG:MinSizeRel>:build/MinSizeRel>$<$<CONFIG:Release>:lib/Release>")
+  # use selected configuration in release path when building on Windows
+  set(LIBRARY_RELEASE_PATH """
+    $<$<CONFIG:RelWithDebInfo>:build/RelWithDebInfo>
+    $<$<CONFIG:MinSizeRel>:build/MinSizeRel>
+    $<$<OR:<$<CONFIG:Release>,$<CONFIG:Debug>>:lib/Release>
+  """)
 elseif (APPLE)
   set(LIBRARY_EXT "a")
   set(LIBRARY_PREFIX "lib")

From 85dc63a671ed0be16af32f1a5346bdbcf18836fd Mon Sep 17 00:00:00 2001
From: Stephen Birarda <commit@birarda.com>
Date: Thu, 23 Mar 2017 17:14:44 -0700
Subject: [PATCH 197/247] fix multi-line strings in VHACD and faceshift
 externals

---
 cmake/externals/faceshift/CMakeLists.txt | 8 +++-----
 cmake/externals/vhacd/CMakeLists.txt     | 8 +++-----
 2 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/cmake/externals/faceshift/CMakeLists.txt b/cmake/externals/faceshift/CMakeLists.txt
index 2f49dab428..c4f2055435 100644
--- a/cmake/externals/faceshift/CMakeLists.txt
+++ b/cmake/externals/faceshift/CMakeLists.txt
@@ -28,11 +28,9 @@ if (WIN32)
   set(LIBRARY_PREFIX "")
   set(LIBRARY_EXT "lib")
   # use selected configuration in release path when building on Windows
-  set(LIBRARY_RELEASE_PATH """
-    $<$<CONFIG:RelWithDebInfo>:build/RelWithDebInfo>
-    $<$<CONFIG:MinSizeRel>:build/MinSizeRel>
-    $<$<OR:<$<CONFIG:Release>,$<CONFIG:Debug>>:lib/Release>
-  """)
+  set(LIBRARY_RELEASE_PATH "$<$<CONFIG:RelWithDebInfo>:build/RelWithDebInfo>")
+  set(LIBRARY_RELEASE_PATH "${LIBRARY_RELEASE_PATH}$<$<CONFIG:MinSizeRel>:build/MinSizeRel>")
+  set(LIBRARY_RELEASE_PATH "${LIBRARY_RELEASE_PATH}$<$<OR:$<CONFIG:Release>,$<CONFIG:Debug>>:lib/Release>")
 elseif (APPLE)
   set(LIBRARY_EXT "a")
   set(LIBRARY_PREFIX "lib")
diff --git a/cmake/externals/vhacd/CMakeLists.txt b/cmake/externals/vhacd/CMakeLists.txt
index 779451a304..11afa255f1 100644
--- a/cmake/externals/vhacd/CMakeLists.txt
+++ b/cmake/externals/vhacd/CMakeLists.txt
@@ -27,11 +27,9 @@ if (WIN32)
   set(${EXTERNAL_NAME_UPPER}_LIBRARY_DEBUG ${INSTALL_DIR}/lib/Debug/VHACD_LIB.lib CACHE FILEPATH "Path to V-HACD debug library")
 
   # use generator expression to ensure the correct library is found when building different configurations in VS
-  set(_LIB_FOLDER """
-    $<$<CONFIG:RelWithDebInfo>:build/src/VHACD_Lib/RelWithDebInfo>
-    $<$<CONFIG:MinSizeRel>:build/src/VHACD_Lib/MinSizeRel>
-    $<$<OR:$<CONFIG:Release>,$<CONFIG:Debug>>:lib/Release>
-  """)
+  set(_LIB_FOLDER "$<$<CONFIG:RelWithDebInfo>:build/src/VHACD_Lib/RelWithDebInfo>")
+  set(_LIB_FOLDER "${_LIB_FOLDER}$<$<CONFIG:MinSizeRel>:build/src/VHACD_Lib/MinSizeRel>")
+  set(_LIB_FOLDER "${_LIB_FOLDER}$<$<OR:$<CONFIG:Release>,$<CONFIG:Debug>>:lib/Release>")
 
   set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${INSTALL_DIR}/${_LIB_FOLDER}/VHACD_LIB.lib CACHE FILEPATH "Path to V-HACD release library")
 else ()

From a7987734251ab53807cdac97296249a3d235688b Mon Sep 17 00:00:00 2001
From: Stephen Birarda <commit@birarda.com>
Date: Thu, 23 Mar 2017 17:31:02 -0700
Subject: [PATCH 198/247] fix polyvox location for MinSizeRel

---
 cmake/externals/polyvox/CMakeLists.txt | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/cmake/externals/polyvox/CMakeLists.txt b/cmake/externals/polyvox/CMakeLists.txt
index c0586d88a4..c799b45e78 100644
--- a/cmake/externals/polyvox/CMakeLists.txt
+++ b/cmake/externals/polyvox/CMakeLists.txt
@@ -59,7 +59,13 @@ endif ()
 
 if (WIN32)
   set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_DEBUG ${INSTALL_DIR}/PolyVoxCore/lib/Debug/PolyVoxCore.lib CACHE FILEPATH "polyvox core library")
-  set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_RELEASE "${INSTALL_DIR}/PolyVoxCore/lib/$<CONFIG>/PolyVoxCore.lib" CACHE FILEPATH "polyvox core library")
+
+  # use generator expression to ensure the correct library is found when building different configurations in VS
+  set(_LIB_FOLDER "$<$<CONFIG:RelWithDebInfo>:PolyVoxCore/lib/RelWithDebInfo>")
+  set(_LIB_FOLDER "${_LIB_FOLDER}$<$<CONFIG:MinSizeRel>:build/library/PolyVoxCore/MinSizeRel>")
+  set(_LIB_FOLDER "${_LIB_FOLDER}$<$<OR:$<CONFIG:Release>,$<CONFIG:Debug>>:PolyVoxCore/lib/Release>")
+
+  set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_RELEASE "${INSTALL_DIR}/${_LIB_FOLDER}/PolyVoxCore.lib" CACHE FILEPATH "polyvox core library")
 #  set(${EXTERNAL_NAME_UPPER}_UTIL_LIBRARY ${INSTALL_DIR}/PolyVoxUtil/lib/PolyVoxUtil.lib CACHE FILEPATH "polyvox util library")
 elseif (APPLE)
   set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_DEBUG ${INSTALL_DIR}/lib/Debug/libPolyVoxCore.dylib CACHE FILEPATH "polyvox core library")

From 54b11bb6eeddb63cf2432b3205bfeb27003c23fb Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidelity.io>
Date: Fri, 24 Mar 2017 11:22:50 -0700
Subject: [PATCH 199/247] Hide the scrollbar on the marketplace

---
 scripts/system/html/js/marketplacesInject.js | 1 +
 1 file changed, 1 insertion(+)

diff --git a/scripts/system/html/js/marketplacesInject.js b/scripts/system/html/js/marketplacesInject.js
index 10970a7749..86ec1b944a 100644
--- a/scripts/system/html/js/marketplacesInject.js
+++ b/scripts/system/html/js/marketplacesInject.js
@@ -38,6 +38,7 @@
                 '#marketplace-navigation input#back-button { position: absolute; left: 20px; margin-top: 12px; padding-left: 0; padding-right: 5px; }' +
                 '#marketplace-navigation input#all-markets { position: absolute; right: 20px; margin-top: 12px; padding-left: 15px; padding-right: 15px; }' +
                 '#marketplace-navigation .right { position: absolute; right: 20px; }' +
+                '::-webkit-scrollbar { width: 0px; background: transparent; }' +
             '</style>'
         );
 

From 7e6ff7c2fb7d8056bb54b0948760ae2e876508df Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidelity.io>
Date: Fri, 24 Mar 2017 11:40:10 -0700
Subject: [PATCH 200/247] Scrollbar is visible on marketplace in toolbar mode.

---
 scripts/system/html/js/marketplacesInject.js  |   1 -
 .../html/js/marketplacesInjectNoScrollbar.js  | 349 ++++++++++++++++++
 scripts/system/marketplaces/marketplaces.js   |   9 +-
 3 files changed, 357 insertions(+), 2 deletions(-)
 create mode 100644 scripts/system/html/js/marketplacesInjectNoScrollbar.js

diff --git a/scripts/system/html/js/marketplacesInject.js b/scripts/system/html/js/marketplacesInject.js
index 86ec1b944a..10970a7749 100644
--- a/scripts/system/html/js/marketplacesInject.js
+++ b/scripts/system/html/js/marketplacesInject.js
@@ -38,7 +38,6 @@
                 '#marketplace-navigation input#back-button { position: absolute; left: 20px; margin-top: 12px; padding-left: 0; padding-right: 5px; }' +
                 '#marketplace-navigation input#all-markets { position: absolute; right: 20px; margin-top: 12px; padding-left: 15px; padding-right: 15px; }' +
                 '#marketplace-navigation .right { position: absolute; right: 20px; }' +
-                '::-webkit-scrollbar { width: 0px; background: transparent; }' +
             '</style>'
         );
 
diff --git a/scripts/system/html/js/marketplacesInjectNoScrollbar.js b/scripts/system/html/js/marketplacesInjectNoScrollbar.js
new file mode 100644
index 0000000000..86ec1b944a
--- /dev/null
+++ b/scripts/system/html/js/marketplacesInjectNoScrollbar.js
@@ -0,0 +1,349 @@
+//
+//  marketplacesInject.js
+//
+//  Created by David Rowe on 12 Nov 2016.
+//  Copyright 2016 High Fidelity, Inc.
+//
+//  Injected into marketplace Web pages.
+//
+//  Distributed under the Apache License, Version 2.0.
+//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+//
+
+(function () {
+
+    // Event bridge messages.
+    var CLARA_IO_DOWNLOAD = "CLARA.IO DOWNLOAD";
+    var CLARA_IO_STATUS = "CLARA.IO STATUS";
+    var CLARA_IO_CANCEL_DOWNLOAD = "CLARA.IO CANCEL DOWNLOAD";
+    var CLARA_IO_CANCELLED_DOWNLOAD = "CLARA.IO CANCELLED DOWNLOAD";
+    var GOTO_DIRECTORY = "GOTO_DIRECTORY";
+    var QUERY_CAN_WRITE_ASSETS = "QUERY_CAN_WRITE_ASSETS";
+    var CAN_WRITE_ASSETS = "CAN_WRITE_ASSETS";
+    var WARN_USER_NO_PERMISSIONS = "WARN_USER_NO_PERMISSIONS";
+
+    var canWriteAssets = false;
+    var xmlHttpRequest = null;
+    var isPreparing = false;  // Explicitly track download request status.
+
+    function injectCommonCode(isDirectoryPage) {
+
+        // Supporting styles from marketplaces.css.
+        // Glyph font family, size, and spacing adjusted because HiFi-Glyphs cannot be used cross-domain.
+        $("head").append(
+            '<style>' +
+                '#marketplace-navigation { font-family: Arial, Helvetica, sans-serif; width: 100%; height: 50px; background: #00b4ef; position: fixed; bottom: 0; z-index: 1000; }' +
+                '#marketplace-navigation .glyph { margin-left: 20px; margin-right: 3px; font-family: sans-serif; color: #fff; font-size: 24px; line-height: 50px; }' +
+                '#marketplace-navigation .text { color: #fff; font-size: 18px; line-height: 50px; vertical-align: top; position: relative; top: 1px; }' +
+                '#marketplace-navigation input#back-button { position: absolute; left: 20px; margin-top: 12px; padding-left: 0; padding-right: 5px; }' +
+                '#marketplace-navigation input#all-markets { position: absolute; right: 20px; margin-top: 12px; padding-left: 15px; padding-right: 15px; }' +
+                '#marketplace-navigation .right { position: absolute; right: 20px; }' +
+                '::-webkit-scrollbar { width: 0px; background: transparent; }' +
+            '</style>'
+        );
+
+        // Supporting styles from edit-style.css.
+        // Font family, size, and position adjusted because Raleway-Bold cannot be used cross-domain.
+        $("head").append(
+            '<style>' +
+                'input[type=button] { font-family: Arial, Helvetica, sans-serif; font-weight: bold; font-size: 12px; text-transform: uppercase; vertical-align: center; height: 28px; min-width: 100px; padding: 0 15px; border-radius: 5px; border: none; color: #fff; background-color: #000; background: linear-gradient(#343434 20%, #000 100%); cursor: pointer; }' +
+                'input[type=button].white { color: #121212; background-color: #afafaf; background: linear-gradient(#fff 20%, #afafaf 100%); }' +
+                'input[type=button].white:enabled:hover { background: linear-gradient(#fff, #fff); border: none; }' +
+                'input[type=button].white:active { background: linear-gradient(#afafaf, #afafaf); }' +
+            '</style>'
+        );
+
+        // Footer.
+        var isInitialHiFiPage = location.href === "https://metaverse.highfidelity.com/marketplace?";
+        $("body").append(
+            '<div id="marketplace-navigation">' +
+                (!isInitialHiFiPage ? '<input id="back-button" type="button" class="white" value="&lt; Back" />' : '') +
+                (isInitialHiFiPage ? '<span class="glyph">&#x1f6c8;</span> <span class="text">See also other marketplaces.</span>' : '') +
+                (!isDirectoryPage ? '<input id="all-markets" type="button" class="white" value="See All Markets" />' : '') +
+                (isDirectoryPage ? '<span class="right"><span class="glyph">&#x1f6c8;</span> <span class="text">Select a marketplace to explore.</span><span>' : '') +
+            '</div>'
+        );
+
+        // Footer actions.
+        $("#back-button").on("click", function () {
+            window.history.back();
+        });
+        $("#all-markets").on("click", function () {
+            EventBridge.emitWebEvent(GOTO_DIRECTORY);
+        });
+    }
+
+    function injectDirectoryCode() {
+
+        // Remove e-mail hyperlink.
+        var letUsKnow = $("#letUsKnow");
+        letUsKnow.replaceWith(letUsKnow.html());
+
+        // Add button links.
+        $('#exploreClaraMarketplace').on('click', function () {
+            window.location = "https://clara.io/library?gameCheck=true&public=true";
+        });
+        $('#exploreHifiMarketplace').on('click', function () {
+            window.location = "http://www.highfidelity.com/marketplace";
+        });
+    }
+
+    function injectHiFiCode() {
+        // Nothing to do.
+    }
+
+    function updateClaraCode() {
+        // Have to repeatedly update Clara page because its content can change dynamically without location.href changing.
+
+        // Clara library page.
+        if (location.href.indexOf("clara.io/library") !== -1) {
+            // Make entries navigate to "Image" view instead of default "Real Time" view.
+            var elements = $("a.thumbnail");
+            for (var i = 0, length = elements.length; i < length; i++) {
+                var value = elements[i].getAttribute("href");
+                if (value.slice(-6) !== "/image") {
+                    elements[i].setAttribute("href", value + "/image");
+                }
+            }
+        }
+
+        // Clara item page.
+        if (location.href.indexOf("clara.io/view/") !== -1) {
+            // Make site navigation links retain gameCheck etc. parameters.
+            var element = $("a[href^=\'/library\']")[0];
+            var parameters = "?gameCheck=true&public=true";
+            var href = element.getAttribute("href");
+            if (href.slice(-parameters.length) !== parameters) {
+                element.setAttribute("href", href + parameters);
+            }
+
+            // Remove unwanted buttons and replace download options with a single "Download to High Fidelity" button.
+            var buttons = $("a.embed-button").parent("div");
+            var downloadFBX;
+            if (buttons.find("div.btn-group").length > 0) {
+                buttons.children(".btn-primary, .btn-group , .embed-button").each(function () { this.remove(); });
+                if ($("#hifi-download-container").length === 0) {  // Button hasn't been moved already.
+                    downloadFBX = $('<a class="btn btn-primary"><i class=\'glyphicon glyphicon-download-alt\'></i> Download to High Fidelity</a>');
+                    buttons.prepend(downloadFBX);
+                    downloadFBX[0].addEventListener("click", startAutoDownload);
+                }
+            }
+
+            // Move the "Download to High Fidelity" button to be more visible on tablet.
+            if ($("#hifi-download-container").length === 0 && window.innerWidth < 700) {
+                var downloadContainer = $('<div id="hifi-download-container"></div>');
+                $(".top-title .col-sm-4").append(downloadContainer);
+                downloadContainer.append(downloadFBX);
+            }
+
+            // Automatic download to High Fidelity.
+            function startAutoDownload() {
+
+                // One file request at a time.
+                if (isPreparing) {
+                    console.log("WARNIKNG: Clara.io FBX: Prepare only one download at a time");
+                    return;
+                }
+
+                // User must be able to write to Asset Server.
+                if (!canWriteAssets) {
+                    console.log("ERROR: Clara.io FBX: File download cancelled because no permissions to write to Asset Server");
+                    EventBridge.emitWebEvent(WARN_USER_NO_PERMISSIONS);
+                    return;
+                }
+
+                // User must be logged in.
+                var loginButton = $("#topnav a[href='/signup']");
+                if (loginButton.length > 0) {
+                    loginButton[0].click();
+                    return;
+                }
+
+                // Obtain zip file to download for requested asset.
+                // Reference: https://clara.io/learn/sdk/api/export
+
+                //var XMLHTTPREQUEST_URL = "https://clara.io/api/scenes/{uuid}/export/fbx?zip=true&centerScene=true&alignSceneGround=true&fbxUnit=Meter&fbxVersion=7&fbxEmbedTextures=true&imageFormat=WebGL";
+                // 13 Jan 2017: Specify FBX version 5 and remove some options in order to make Clara.io site more likely to 
+                // be successful in generating zip files.
+                var XMLHTTPREQUEST_URL = "https://clara.io/api/scenes/{uuid}/export/fbx?fbxUnit=Meter&fbxVersion=5&fbxEmbedTextures=true&imageFormat=WebGL";
+
+                var uuid = location.href.match(/\/view\/([a-z0-9\-]*)/)[1];
+                var url = XMLHTTPREQUEST_URL.replace("{uuid}", uuid);
+
+                xmlHttpRequest = new XMLHttpRequest();
+                var responseTextIndex = 0;
+                var zipFileURL = "";
+
+                xmlHttpRequest.onreadystatechange = function () {
+                    // Messages are appended to responseText; process the new ones.
+                    var message = this.responseText.slice(responseTextIndex);
+                    var statusMessage = "";
+
+                    if (isPreparing) {  // Ignore messages in flight after finished/cancelled.
+                        var lines = message.split(/[\n\r]+/);
+
+                        for (var i = 0, length = lines.length; i < length; i++) {
+                            if (lines[i].slice(0, 5) === "data:") {
+                                // Parse line.
+                                var data;
+                                try {
+                                    data = JSON.parse(lines[i].slice(5));
+                                }
+                                catch (e) {
+                                    data = {};
+                                }
+
+                                // Extract status message.
+                                if (data.hasOwnProperty("message") && data.message !== null) {
+                                    statusMessage = data.message;
+                                    console.log("Clara.io FBX: " + statusMessage);
+                                }
+
+                                // Extract zip file URL.
+                                if (data.hasOwnProperty("files") && data.files.length > 0) {
+                                    zipFileURL = data.files[0].url;
+                                    if (zipFileURL.slice(-4) !== ".zip") {
+                                        console.log(JSON.stringify(data));  // Data for debugging.
+                                    }
+                                }
+                            }
+                        }
+
+                        if (statusMessage !== "") {
+                            // Update the UI with the most recent status message.
+                            EventBridge.emitWebEvent(CLARA_IO_STATUS + " " + statusMessage);
+                        }
+                    }
+
+                    responseTextIndex = this.responseText.length;
+                };
+
+                // Note: onprogress doesn't have computable total length so can't use it to determine % complete.
+
+                xmlHttpRequest.onload = function () {
+                    var statusMessage = "";
+
+                    if (!isPreparing) {
+                        return;
+                    }
+
+                    isPreparing = false;
+
+                    var HTTP_OK = 200;
+                    if (this.status !== HTTP_OK) {
+                        statusMessage = "Zip file request terminated with " + this.status + " " + this.statusText;
+                        console.log("ERROR: Clara.io FBX: " + statusMessage);
+                        EventBridge.emitWebEvent(CLARA_IO_STATUS + " " + statusMessage);
+                    } else if (zipFileURL.slice(-4) !== ".zip") {
+                        statusMessage = "Error creating zip file for download.";
+                        console.log("ERROR: Clara.io FBX: " + statusMessage + ": " + zipFileURL);
+                        EventBridge.emitWebEvent(CLARA_IO_STATUS + " " + statusMessage);
+                    } else {
+                        EventBridge.emitWebEvent(CLARA_IO_DOWNLOAD + " " + zipFileURL);
+                        console.log("Clara.io FBX: File download initiated for " + zipFileURL);
+                    }
+
+                    xmlHttpRequest = null;
+                }
+
+                isPreparing = true;
+
+                console.log("Clara.io FBX: Request zip file for " + uuid);
+                EventBridge.emitWebEvent(CLARA_IO_STATUS + " Initiating download");
+
+                xmlHttpRequest.open("POST", url, true);
+                xmlHttpRequest.setRequestHeader("Accept", "text/event-stream");
+                xmlHttpRequest.send();
+            }
+        }
+    }
+
+    function injectClaraCode() {
+
+        // Make space for marketplaces footer in Clara pages.
+        $("head").append(
+            '<style>' +
+                '#app { margin-bottom: 135px; }' +
+                '.footer { bottom: 50px; }' +
+            '</style>'
+        );
+
+        // Condense space.
+        $("head").append(
+            '<style>' +
+                'div.page-title { line-height: 1.2; font-size: 13px; }' +
+                'div.page-title-row { padding-bottom: 0; }' +
+            '</style>'
+        );
+
+        // Move "Download to High Fidelity" button.
+        $("head").append(
+            '<style>' +
+                '#hifi-download-container { position: absolute; top: 6px; right: 16px; }' +
+            '</style>'
+        );
+
+        // Update code injected per page displayed.
+        var updateClaraCodeInterval = undefined;
+        updateClaraCode();
+        updateClaraCodeInterval = setInterval(function () {
+            updateClaraCode();
+        }, 1000);
+
+        window.addEventListener("unload", function () {
+            clearInterval(updateClaraCodeInterval);
+            updateClaraCodeInterval = undefined;
+        });
+
+        EventBridge.emitWebEvent(QUERY_CAN_WRITE_ASSETS);
+    }
+
+    function cancelClaraDownload() {
+        isPreparing = false;
+
+        if (xmlHttpRequest) {
+            xmlHttpRequest.abort();
+            xmlHttpRequest = null;
+            console.log("Clara.io FBX: File download cancelled");
+            EventBridge.emitWebEvent(CLARA_IO_CANCELLED_DOWNLOAD);
+        }
+    }
+
+    function onLoad() {
+
+        EventBridge.scriptEventReceived.connect(function (message) {
+            if (message.slice(0, CAN_WRITE_ASSETS.length) === CAN_WRITE_ASSETS) {
+                canWriteAssets = message.slice(-4) === "true";
+            }
+
+            if (message.slice(0, CLARA_IO_CANCEL_DOWNLOAD.length) === CLARA_IO_CANCEL_DOWNLOAD) {
+                cancelClaraDownload();
+            }
+        });
+
+        var DIRECTORY = 0;
+        var HIFI = 1;
+        var CLARA = 2;
+        var pageType = DIRECTORY;
+
+        if (location.href.indexOf("highfidelity.com/") !== -1) { pageType = HIFI; }
+        if (location.href.indexOf("clara.io/") !== -1) { pageType = CLARA; }
+
+        injectCommonCode(pageType === DIRECTORY);
+        switch (pageType) {
+            case DIRECTORY:
+                injectDirectoryCode();
+                break;
+            case HIFI:
+                injectHiFiCode();
+                break;
+            case CLARA:
+                injectClaraCode();
+                break;
+        }
+    }
+
+    // Load / unload.
+    window.addEventListener("load", onLoad);  // More robust to Web site issues than using $(document).ready().
+
+}());
diff --git a/scripts/system/marketplaces/marketplaces.js b/scripts/system/marketplaces/marketplaces.js
index f130e3cedb..c24034b38e 100644
--- a/scripts/system/marketplaces/marketplaces.js
+++ b/scripts/system/marketplaces/marketplaces.js
@@ -19,6 +19,7 @@ var MARKETPLACE_URL = "https://metaverse.highfidelity.com/marketplace";
 var MARKETPLACE_URL_INITIAL = MARKETPLACE_URL + "?";  // Append "?" to signal injected script that it's the initial page.
 var MARKETPLACES_URL = Script.resolvePath("../html/marketplaces.html");
 var MARKETPLACES_INJECT_SCRIPT_URL = Script.resolvePath("../html/js/marketplacesInject.js");
+var MARKETPLACES_INJECT_NO_SCROLLBAR_SCRIPT_URL = Script.resolvePath("../html/js/marketplacesInjectNoScrollbar.js");
 
 var HOME_BUTTON_TEXTURE = "http://hifi-content.s3.amazonaws.com/alan/dev/tablet-with-home-button.fbx/tablet-with-home-button.fbm/button-root.png";
 // var HOME_BUTTON_TEXTURE = Script.resourcesPath() + "meshes/tablet-with-home-button.fbx/tablet-with-home-button.fbm/button-root.png";
@@ -59,7 +60,13 @@ function showMarketplace() {
     UserActivityLogger.openedMarketplace();
 
     shouldActivateButton = true;
-    tablet.gotoWebScreen(MARKETPLACE_URL_INITIAL, MARKETPLACES_INJECT_SCRIPT_URL);
+
+    // by default the marketplace should NOT have a scrollbar, except when tablet is in toolbar mode.
+    var injectURL = MARKETPLACES_INJECT_NO_SCROLLBAR_SCRIPT_URL;
+    if (tablet.toolbarMode) {
+        injectURL = MARKETPLACES_INJECT_SCRIPT_URL;
+    }
+    tablet.gotoWebScreen(MARKETPLACE_URL_INITIAL, injectURL);
     onMarketplaceScreen = true;
 
     tablet.webEventReceived.connect(function (message) {

From 642cf57976fb1ff1ce7062bf2ebd5b7ae0f1929a Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Fri, 24 Mar 2017 12:49:58 -0700
Subject: [PATCH 201/247] obj-writer now outputs normals

---
 libraries/fbx/src/OBJWriter.cpp | 36 +++++++++++++++++++++++++++++----
 1 file changed, 32 insertions(+), 4 deletions(-)

diff --git a/libraries/fbx/src/OBJWriter.cpp b/libraries/fbx/src/OBJWriter.cpp
index 5ee04c5718..e236ecb0fa 100644
--- a/libraries/fbx/src/OBJWriter.cpp
+++ b/libraries/fbx/src/OBJWriter.cpp
@@ -40,12 +40,16 @@ static QString formatFloat(double n) {
 }
 
 bool writeOBJToTextStream(QTextStream& out, QList<MeshPointer> meshes) {
+    int attributeTypeNormal = gpu::Stream::InputSlot::NORMAL; // libraries/gpu/src/gpu/Stream.h
+
     // each mesh's vertices are numbered from zero.  We're combining all their vertices into one list here,
     // so keep track of the start index for each mesh.
     QList<int> meshVertexStartOffset;
+    QList<int> meshNormalStartOffset;
     int currentVertexStartOffset = 0;
+    int currentNormalStartOffset = 0;
 
-    // write out all vertices
+    // write out vertices
     foreach (const MeshPointer& mesh, meshes) {
         meshVertexStartOffset.append(currentVertexStartOffset);
         const gpu::BufferView& vertexBuffer = mesh->getVertexBuffer();
@@ -64,10 +68,28 @@ bool writeOBJToTextStream(QTextStream& out, QList<MeshPointer> meshes) {
     }
     out << "\n";
 
+    // write out normals
+    bool haveNormals = true;
+    foreach (const MeshPointer& mesh, meshes) {
+        meshNormalStartOffset.append(currentNormalStartOffset);
+        const gpu::BufferView& normalsBufferView = mesh->getAttributeBuffer(attributeTypeNormal);
+        gpu::BufferView::Index numNormals =  (gpu::BufferView::Index)normalsBufferView.getNumElements();
+        for (gpu::BufferView::Index i = 0; i < numNormals; i++) {
+            glm::vec3 normal = normalsBufferView.get<glm::vec3>(i);
+            out << "vn ";
+            out << formatFloat(normal[0]) << " ";
+            out << formatFloat(normal[1]) << " ";
+            out << formatFloat(normal[2]) << "\n";
+        }
+        currentNormalStartOffset += numNormals;
+    }
+    out << "\n";
+
     // write out faces
     int nth = 0;
     foreach (const MeshPointer& mesh, meshes) {
         currentVertexStartOffset = meshVertexStartOffset.takeFirst();
+        currentNormalStartOffset = meshNormalStartOffset.takeFirst();
 
         const gpu::BufferView& partBuffer = mesh->getPartBuffer();
         const gpu::BufferView& indexBuffer = mesh->getIndexBuffer();
@@ -104,9 +126,15 @@ bool writeOBJToTextStream(QTextStream& out, QList<MeshPointer> meshes) {
                 indexCount++;
 
                 out << "f ";
-                out << currentVertexStartOffset + index0 + 1 << " ";
-                out << currentVertexStartOffset + index1 + 1 << " ";
-                out << currentVertexStartOffset + index2 + 1 << "\n";
+                if (haveNormals) {
+                    out << currentVertexStartOffset + index0 + 1 << "//" << currentVertexStartOffset + index0 + 1 << " ";
+                    out << currentVertexStartOffset + index1 + 1 << "//" << currentVertexStartOffset + index1 + 1 << " ";
+                    out << currentVertexStartOffset + index2 + 1 << "//" << currentVertexStartOffset + index2 + 1 << "\n";
+                } else {
+                    out << currentVertexStartOffset + index0 + 1 << " ";
+                    out << currentVertexStartOffset + index1 + 1 << " ";
+                    out << currentVertexStartOffset + index2 + 1 << "\n";
+                }
             }
             out << "\n";
         }

From 8f7f5efadebfb44c114a126d46348159517ad1d8 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Fri, 24 Mar 2017 12:51:00 -0700
Subject: [PATCH 202/247] new javascript call: Model.newMesh()

---
 .../src/RenderablePolyVoxEntityItem.h         |  2 +-
 libraries/model/src/model/MeshFace.cpp        | 44 ++++++++++++++
 libraries/model/src/model/MeshFace.h          | 43 +++++++++++++
 .../src/ModelScriptingInterface.cpp           | 60 ++++++++++++++++++-
 .../src/ModelScriptingInterface.h             |  4 ++
 libraries/shared/src/RegisteredMetaTypes.cpp  | 19 ++++++
 libraries/shared/src/RegisteredMetaTypes.h    |  4 ++
 7 files changed, 173 insertions(+), 3 deletions(-)
 create mode 100644 libraries/model/src/model/MeshFace.cpp
 create mode 100644 libraries/model/src/model/MeshFace.h

diff --git a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.h b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.h
index a0d5c38a14..cdfe2e38fe 100644
--- a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.h
+++ b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.h
@@ -66,7 +66,7 @@ public:
     void render(RenderArgs* args) override;
     virtual bool supportsDetailedRayIntersection() const override { return true; }
     virtual bool findDetailedRayIntersection(const glm::vec3& origin, const glm::vec3& direction,
-                        bool& keepSearching, OctreeElementPointer& element, float& distance, 
+                        bool& keepSearching, OctreeElementPointer& element, float& distance,
                         BoxFace& face, glm::vec3& surfaceNormal,
                         void** intersectedObject, bool precisionPicking) const override;
 
diff --git a/libraries/model/src/model/MeshFace.cpp b/libraries/model/src/model/MeshFace.cpp
new file mode 100644
index 0000000000..8092d36aa3
--- /dev/null
+++ b/libraries/model/src/model/MeshFace.cpp
@@ -0,0 +1,44 @@
+//
+//  MeshFace.cpp
+//  libraries/model/src/model/
+//
+//  Created by Seth Alves on 2017-3-23
+//  Copyright 2017 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
+//
+
+#include <RegisteredMetaTypes.h>
+
+#include "MeshFace.h"
+
+
+QScriptValue meshFaceToScriptValue(QScriptEngine* engine, const MeshFace &meshFace) {
+    QScriptValue obj = engine->newObject();
+    obj.setProperty("vertices", qVectorIntToScriptValue(engine, meshFace.vertexIndices));
+    return obj;
+}
+
+void meshFaceFromScriptValue(const QScriptValue &object, MeshFace& meshFaceResult) {
+    qVectorIntFromScriptValue(object.property("vertices"), meshFaceResult.vertexIndices);
+}
+
+QScriptValue qVectorMeshFaceToScriptValue(QScriptEngine* engine, const QVector<MeshFace>& vector) {
+    QScriptValue array = engine->newArray();
+    for (int i = 0; i < vector.size(); i++) {
+        array.setProperty(i, meshFaceToScriptValue(engine, vector.at(i)));
+    }
+    return array;
+}
+
+void qVectorMeshFaceFromScriptValue(const QScriptValue& array, QVector<MeshFace>& result) {
+    int length = array.property("length").toInteger();
+    result.clear();
+
+    for (int i = 0; i < length; i++) {
+        MeshFace meshFace = MeshFace();
+        meshFaceFromScriptValue(array.property(i), meshFace);
+        result << meshFace;
+    }
+}
diff --git a/libraries/model/src/model/MeshFace.h b/libraries/model/src/model/MeshFace.h
new file mode 100644
index 0000000000..ef1e3a0b6b
--- /dev/null
+++ b/libraries/model/src/model/MeshFace.h
@@ -0,0 +1,43 @@
+//
+//  MeshFace.h
+//  libraries/model/src/model/
+//
+//  Created by Seth Alves on 2017-3-23
+//  Copyright 2017 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
+//
+
+#ifndef hifi_MeshFace_h
+#define hifi_MeshFace_h
+
+#include <QScriptEngine>
+#include <QScriptValueIterator>
+#include <QtScript/QScriptValue>
+
+#include "Geometry.h"
+
+using MeshPointer = std::shared_ptr<model::Mesh>;
+
+class MeshFace {
+
+public:
+    MeshFace() {}
+    ~MeshFace() {}
+
+    QVector<uint32_t> vertexIndices;
+    // TODO -- material...
+};
+
+Q_DECLARE_METATYPE(MeshFace)
+Q_DECLARE_METATYPE(QVector<MeshFace>)
+
+QScriptValue meshFaceToScriptValue(QScriptEngine* engine, const MeshFace &meshFace);
+void meshFaceFromScriptValue(const QScriptValue &object, MeshFace& meshFaceResult);
+QScriptValue qVectorMeshFaceToScriptValue(QScriptEngine* engine, const QVector<MeshFace>& vector);
+void qVectorMeshFaceFromScriptValue(const QScriptValue& array, QVector<MeshFace>& result);
+
+
+
+#endif // hifi_MeshFace_h
diff --git a/libraries/script-engine/src/ModelScriptingInterface.cpp b/libraries/script-engine/src/ModelScriptingInterface.cpp
index 22b7eb89ed..c02eb642a1 100644
--- a/libraries/script-engine/src/ModelScriptingInterface.cpp
+++ b/libraries/script-engine/src/ModelScriptingInterface.cpp
@@ -12,7 +12,9 @@
 #include <QScriptEngine>
 #include <QScriptValueIterator>
 #include <QtScript/QScriptValue>
+#include <model/MeshFace.h>
 #include "ScriptEngine.h"
+#include "ScriptEngineLogging.h"
 #include "ModelScriptingInterface.h"
 #include "OBJWriter.h"
 
@@ -20,6 +22,8 @@ ModelScriptingInterface::ModelScriptingInterface(QObject* parent) : QObject(pare
     _modelScriptEngine = qobject_cast<ScriptEngine*>(parent);
 
     qScriptRegisterSequenceMetaType<QList<MeshProxy*>>(_modelScriptEngine);
+    qScriptRegisterMetaType(_modelScriptEngine, meshFaceToScriptValue, meshFaceFromScriptValue);
+    qScriptRegisterMetaType(_modelScriptEngine, qVectorMeshFaceToScriptValue, qVectorMeshFaceFromScriptValue);
 }
 
 QString ModelScriptingInterface::meshToOBJ(MeshProxyList in) {
@@ -118,8 +122,6 @@ QScriptValue ModelScriptingInterface::appendMeshes(MeshProxyList in) {
     return meshToScriptValue(_modelScriptEngine, resultProxy);
 }
 
-
-
 QScriptValue ModelScriptingInterface::transformMesh(glm::mat4 transform, MeshProxy* meshProxy) {
     if (!meshProxy) {
         return QScriptValue(false);
@@ -135,3 +137,57 @@ QScriptValue ModelScriptingInterface::transformMesh(glm::mat4 transform, MeshPro
     MeshProxy* resultProxy = new MeshProxy(result);
     return meshToScriptValue(_modelScriptEngine, resultProxy);
 }
+
+QScriptValue ModelScriptingInterface::newMesh(const QVector<glm::vec3>& vertices,
+                                              const QVector<glm::vec3>& normals,
+                                              const QVector<MeshFace>& faces) {
+    model::MeshPointer mesh(new model::Mesh());
+
+    // vertices
+    auto vertexBuffer = std::make_shared<gpu::Buffer>(vertices.size() * sizeof(glm::vec3), (gpu::Byte*)vertices.data());
+    auto vertexBufferPtr = gpu::BufferPointer(vertexBuffer);
+    gpu::BufferView vertexBufferView(vertexBufferPtr, 0, vertexBufferPtr->getSize(),
+                                     sizeof(glm::vec3), gpu::Element(gpu::VEC3, gpu::FLOAT, gpu::XYZ));
+    mesh->setVertexBuffer(vertexBufferView);
+
+    if (vertices.size() == normals.size()) {
+        // normals
+        auto normalBuffer = std::make_shared<gpu::Buffer>(normals.size() * sizeof(glm::vec3), (gpu::Byte*)normals.data());
+        auto normalBufferPtr = gpu::BufferPointer(normalBuffer);
+        gpu::BufferView normalBufferView(normalBufferPtr, 0, normalBufferPtr->getSize(),
+                                         sizeof(glm::vec3), gpu::Element(gpu::VEC3, gpu::FLOAT, gpu::XYZ));
+        mesh->addAttribute(gpu::Stream::NORMAL, normalBufferView);
+    } else {
+        qCDebug(scriptengine) << "ModelScriptingInterface::newMesh normals must be same length as vertices";
+    }
+
+    // indices (faces)
+    int VERTICES_PER_TRIANGLE = 3;
+    int indexBufferSize = faces.size() * sizeof(uint32_t) * VERTICES_PER_TRIANGLE;
+    unsigned char* indexData  = new unsigned char[indexBufferSize];
+    unsigned char* indexDataCursor = indexData;
+    foreach(const MeshFace& meshFace, faces) {
+        for (int i = 0; i < VERTICES_PER_TRIANGLE; i++) {
+            memcpy(indexDataCursor, &meshFace.vertexIndices[i], sizeof(uint32_t));
+            indexDataCursor += sizeof(uint32_t);
+        }
+    }
+    auto indexBuffer = std::make_shared<gpu::Buffer>(indexBufferSize, (gpu::Byte*)indexData);
+    auto indexBufferPtr = gpu::BufferPointer(indexBuffer);
+    gpu::BufferView indexBufferView(indexBufferPtr, gpu::Element(gpu::SCALAR, gpu::UINT32, gpu::RAW));
+    mesh->setIndexBuffer(indexBufferView);
+
+    // parts
+    std::vector<model::Mesh::Part> parts;
+    parts.emplace_back(model::Mesh::Part((model::Index)0, // startIndex
+                                         (model::Index)faces.size() * 3, // numIndices
+                                         (model::Index)0, // baseVertex
+                                         model::Mesh::TRIANGLES)); // topology
+    mesh->setPartBuffer(gpu::BufferView(new gpu::Buffer(parts.size() * sizeof(model::Mesh::Part),
+                                                        (gpu::Byte*) parts.data()), gpu::Element::PART_DRAWCALL));
+
+
+
+    MeshProxy* meshProxy = new MeshProxy(mesh);
+    return meshToScriptValue(_modelScriptEngine, meshProxy);
+}
diff --git a/libraries/script-engine/src/ModelScriptingInterface.h b/libraries/script-engine/src/ModelScriptingInterface.h
index 105d6d548e..e3d5b18b29 100644
--- a/libraries/script-engine/src/ModelScriptingInterface.h
+++ b/libraries/script-engine/src/ModelScriptingInterface.h
@@ -18,6 +18,7 @@
 #include <OBJWriter.h>
 #include <model/Geometry.h>
 #include <model/MeshProxy.h>
+#include <model/MeshFace.h>
 
 using MeshPointer = std::shared_ptr<model::Mesh>;
 class ScriptEngine;
@@ -31,6 +32,9 @@ public:
     Q_INVOKABLE QString meshToOBJ(MeshProxyList in);
     Q_INVOKABLE QScriptValue appendMeshes(MeshProxyList in);
     Q_INVOKABLE QScriptValue transformMesh(glm::mat4 transform, MeshProxy* meshProxy);
+    Q_INVOKABLE QScriptValue newMesh(const QVector<glm::vec3>& vertices,
+                                     const QVector<glm::vec3>& normals,
+                                     const QVector<MeshFace>& faces);
 
 private:
     ScriptEngine* _modelScriptEngine { nullptr };
diff --git a/libraries/shared/src/RegisteredMetaTypes.cpp b/libraries/shared/src/RegisteredMetaTypes.cpp
index 7f12d6cc00..70067b93f3 100644
--- a/libraries/shared/src/RegisteredMetaTypes.cpp
+++ b/libraries/shared/src/RegisteredMetaTypes.cpp
@@ -43,6 +43,7 @@ void registerMetaTypes(QScriptEngine* engine) {
     qScriptRegisterMetaType(engine, qVectorQuatToScriptValue, qVectorQuatFromScriptValue);
     qScriptRegisterMetaType(engine, qVectorBoolToScriptValue, qVectorBoolFromScriptValue);
     qScriptRegisterMetaType(engine, qVectorFloatToScriptValue, qVectorFloatFromScriptValue);
+    qScriptRegisterMetaType(engine, qVectorIntToScriptValue, qVectorIntFromScriptValue);
     qScriptRegisterMetaType(engine, vec2toScriptValue, vec2FromScriptValue);
     qScriptRegisterMetaType(engine, quatToScriptValue, quatFromScriptValue);
     qScriptRegisterMetaType(engine, qRectToScriptValue, qRectFromScriptValue);
@@ -386,6 +387,15 @@ QScriptValue qVectorFloatToScriptValue(QScriptEngine* engine, const QVector<floa
     return array;
 }
 
+QScriptValue qVectorIntToScriptValue(QScriptEngine* engine, const QVector<uint32_t>& vector) {
+    QScriptValue array = engine->newArray();
+    for (int i = 0; i < vector.size(); i++) {
+        int num = vector.at(i);
+        array.setProperty(i, QScriptValue(num));
+    }
+    return array;
+}
+
 void qVectorFloatFromScriptValue(const QScriptValue& array, QVector<float>& vector) {
     int length = array.property("length").toInteger();
     
@@ -393,6 +403,15 @@ void qVectorFloatFromScriptValue(const QScriptValue& array, QVector<float>& vect
         vector << array.property(i).toVariant().toFloat();
     }
 }
+
+void qVectorIntFromScriptValue(const QScriptValue& array, QVector<uint32_t>& vector) {
+    int length = array.property("length").toInteger();
+
+    for (int i = 0; i < length; i++) {
+        vector << array.property(i).toVariant().toInt();
+    }
+}
+
 //
 QVector<glm::vec3> qVectorVec3FromScriptValue(const QScriptValue& array){
     QVector<glm::vec3> newVector;
diff --git a/libraries/shared/src/RegisteredMetaTypes.h b/libraries/shared/src/RegisteredMetaTypes.h
index 498a8b3b3a..8a15f62eed 100644
--- a/libraries/shared/src/RegisteredMetaTypes.h
+++ b/libraries/shared/src/RegisteredMetaTypes.h
@@ -113,6 +113,10 @@ QScriptValue qVectorFloatToScriptValue(QScriptEngine* engine, const QVector<floa
 void qVectorFloatFromScriptValue(const QScriptValue& array, QVector<float>& vector);
 QVector<float> qVectorFloatFromScriptValue(const QScriptValue& array);
 
+// vector<uint32_t>
+QScriptValue qVectorIntToScriptValue(QScriptEngine* engine, const QVector<uint32_t>& vector);
+void qVectorIntFromScriptValue(const QScriptValue& array, QVector<uint32_t>& vector);
+
 QVector<QUuid> qVectorQUuidFromScriptValue(const QScriptValue& array);
 
 QScriptValue aaCubeToScriptValue(QScriptEngine* engine, const AACube& aaCube);

From 6e40f03c8e08e31536d472bf8093a6f14212f3e3 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Fri, 24 Mar 2017 15:08:13 -0700
Subject: [PATCH 203/247] cleanups

---
 libraries/model/src/model/Geometry.cpp | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/libraries/model/src/model/Geometry.cpp b/libraries/model/src/model/Geometry.cpp
index 341015816e..16608ab63e 100755
--- a/libraries/model/src/model/Geometry.cpp
+++ b/libraries/model/src/model/Geometry.cpp
@@ -145,7 +145,7 @@ model::MeshPointer Mesh::map(std::function<glm::vec3(glm::vec3)> vertexFunc,
     unsigned char* resultVertexData = new unsigned char[vertexSize];
     unsigned char* vertexDataCursor = resultVertexData;
 
-    for (gpu::BufferView::Index i = 0; i < numVertices; i ++) {
+    for (gpu::BufferView::Index i = 0; i < numVertices; i++) {
         glm::vec3 pos = vertexFunc(vertexBufferView.get<glm::vec3>(i));
         memcpy(vertexDataCursor, &pos, sizeof(pos));
         vertexDataCursor += sizeof(pos);
@@ -159,7 +159,7 @@ model::MeshPointer Mesh::map(std::function<glm::vec3(glm::vec3)> vertexFunc,
     unsigned char* resultNormalData = new unsigned char[normalSize];
     unsigned char* normalDataCursor = resultNormalData;
 
-    for (gpu::BufferView::Index i = 0; i < numNormals; i ++) {
+    for (gpu::BufferView::Index i = 0; i < numNormals; i++) {
         glm::vec3 normal = normalFunc(normalsBufferView.get<glm::vec3>(i));
         memcpy(normalDataCursor, &normal, sizeof(normal));
         normalDataCursor += sizeof(normal);
@@ -173,7 +173,7 @@ model::MeshPointer Mesh::map(std::function<glm::vec3(glm::vec3)> vertexFunc,
     unsigned char* resultIndexData = new unsigned char[indexSize];
     unsigned char* indexDataCursor = resultIndexData;
 
-    for (gpu::BufferView::Index i = 0; i < numIndexes; i ++) {
+    for (gpu::BufferView::Index i = 0; i < numIndexes; i++) {
         uint32_t index = indexFunc(indexBufferView.get<uint32_t>(i));
         memcpy(indexDataCursor, &index, sizeof(index));
         indexDataCursor += sizeof(index);
@@ -217,19 +217,18 @@ model::MeshPointer Mesh::map(std::function<glm::vec3(glm::vec3)> vertexFunc,
 void Mesh::forEach(std::function<void(glm::vec3)> vertexFunc,
                    std::function<void(glm::vec3)> normalFunc,
                    std::function<void(uint32_t)> indexFunc) {
-    int attributeTypeNormal = gpu::Stream::InputSlot::NORMAL; // libraries/gpu/src/gpu/Stream.h
-
     // vertex data
     const gpu::BufferView& vertexBufferView = getVertexBuffer();
     gpu::BufferView::Index numVertices = (gpu::BufferView::Index)getNumVertices();
-    for (gpu::BufferView::Index i = 0; i < numVertices; i ++) {
+    for (gpu::BufferView::Index i = 0; i < numVertices; i++) {
         vertexFunc(vertexBufferView.get<glm::vec3>(i));
     }
 
     // normal data
+    int attributeTypeNormal = gpu::Stream::InputSlot::NORMAL; // libraries/gpu/src/gpu/Stream.h
     const gpu::BufferView& normalsBufferView = getAttributeBuffer(attributeTypeNormal);
     gpu::BufferView::Index numNormals =  (gpu::BufferView::Index)normalsBufferView.getNumElements();
-    for (gpu::BufferView::Index i = 0; i < numNormals; i ++) {
+    for (gpu::BufferView::Index i = 0; i < numNormals; i++) {
         normalFunc(normalsBufferView.get<glm::vec3>(i));
     }
     // TODO -- other attributes
@@ -237,7 +236,7 @@ void Mesh::forEach(std::function<void(glm::vec3)> vertexFunc,
     // face data
     const gpu::BufferView& indexBufferView = getIndexBuffer();
     gpu::BufferView::Index numIndexes = (gpu::BufferView::Index)getNumIndices();
-    for (gpu::BufferView::Index i = 0; i < numIndexes; i ++) {
+    for (gpu::BufferView::Index i = 0; i < numIndexes; i++) {
         indexFunc(indexBufferView.get<uint32_t>(i));
     }
 }

From d9046a1982c1b760edf4e3a3e66a9390e9caa1a6 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Fri, 24 Mar 2017 23:54:54 +0100
Subject: [PATCH 204/247] goto on the tablet

---
 interface/resources/qml/hifi/Card.qml         |  84 +++++------
 .../qml/hifi/tablet/TabletAddressDialog.qml   |  26 ++--
 .../qml/hifi/tablet/TabletStoryCard.qml       | 132 ++++++++++++++++++
 3 files changed, 190 insertions(+), 52 deletions(-)
 create mode 100644 interface/resources/qml/hifi/tablet/TabletStoryCard.qml

diff --git a/interface/resources/qml/hifi/Card.qml b/interface/resources/qml/hifi/Card.qml
index 781149c1b3..01a5441380 100644
--- a/interface/resources/qml/hifi/Card.qml
+++ b/interface/resources/qml/hifi/Card.qml
@@ -129,7 +129,7 @@ Rectangle {
     property int dropSamples: 9;
     property int dropSpread: 0;
     DropShadow {
-        visible: showPlace && (desktop ? desktop.gradientsSupported : false)
+        visible: true;//showPlace && (desktop ? desktop.gradientsSupported : false)
         source: place;
         anchors.fill: place;
         horizontalOffset: dropHorizontalOffset;
@@ -139,12 +139,12 @@ Rectangle {
         color: hifi.colors.black;
         spread: dropSpread;
     }
-    RalewaySemiBold {
+    RalewayLight {
         id: place;
         visible: showPlace;
         text: placeName;
         color: hifi.colors.white;
-        size: textSize;
+        size: 38;
         elide: Text.ElideRight; // requires constrained width
         anchors {
             top: parent.top;
@@ -154,48 +154,44 @@ Rectangle {
         }
     }
 
-    Rectangle {
-        radius: 20
-        color: "transparent"
-        Row {
-            FiraSansRegular {
-                id: users;
-                visible: isConcurrency;
-                text: onlineUsers;
-                size: textSize;
-                color: messageColor;
-                anchors.verticalCenter: message.verticalCenter;
-            }
-            Image {
-                id: icon;
-                source: "../../images/snap-icon.svg"
-                width: 40;
-                height: 40;
-                visible: action === 'snapshot';
-            }
-            RalewayRegular {
-                id: message;
-                text: isConcurrency ? ((onlineUsers === 1) ? "person" : "people") : (drillDownToPlace ? "snapshots" : ("by " + userName));
-                size: textSizeSmall;
-                color: messageColor;
-                elide: Text.ElideRight; // requires a width to be specified`
-                width: root.width - textPadding
-                    - (users.visible ? users.width + parent.spacing : 0)
-                    - (icon.visible ? icon.width + parent.spacing : 0)
-                    - (actionIcon.width + (2 * smallMargin));
-                anchors {
-                    bottom: parent.bottom;
-                    bottomMargin: parent.spacing;
-                }
-            }
-            spacing: textPadding;
-            height: messageHeight;
+       Row {
+        FiraSansRegular {
+            id: users;
+            visible: isConcurrency;
+            text: onlineUsers;
+            size: textSize;
+            color: messageColor;
+            anchors.verticalCenter: message.verticalCenter;
+        }
+        Image {
+            id: icon;
+            source: "../../images/snap-icon.svg"
+            width: 40;
+            height: 40;
+            visible: action === 'snapshot';
+        }
+        RalewayRegular {
+            id: message;
+            text: isConcurrency ? ((onlineUsers === 1) ? "person" : "people") : (drillDownToPlace ? "snapshots" : ("by " + userName));
+            size: textSizeSmall;
+            color: messageColor;
+            elide: Text.ElideRight; // requires a width to be specified`
+            width: root.width - textPadding
+                - (users.visible ? users.width + parent.spacing : 0)
+                - (icon.visible ? icon.width + parent.spacing : 0)
+                - (actionIcon.width + (2 * smallMargin));
             anchors {
                 bottom: parent.bottom;
-                left: parent.left;
-                leftMargin: textPadding;
+                bottomMargin: parent.spacing;
             }
         }
+        spacing: textPadding;
+        height: messageHeight;
+        anchors {
+            bottom: parent.bottom;
+            left: parent.left;
+            leftMargin: textPadding;
+        }
     }
     // These two can be supplied to provide hover behavior.
     // For example, AddressBarDialog provides functions that set the current list view item
@@ -221,6 +217,12 @@ Rectangle {
             margins: smallMargin;
         }
     }
+    DropShadow {
+        anchors.fill: actionIcon
+        radius: 8.0
+        color: "#80000000"
+        source: actionIcon
+    }
     MouseArea {
         id: messageArea;
         width: parent.width;
diff --git a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
index 9e68d3435a..bfecf5457b 100644
--- a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
@@ -1,7 +1,7 @@
 //
 //  TabletAddressDialog.qml
 //
-//  Created by Dante Ruiz on 2016/07/16
+//  Created by Dante Ruiz on 2017/03/16
 //  Copyright 2015 High Fidelity, Inc.
 //
 //  Distributed under the Apache License, Version 2.0.
@@ -9,7 +9,8 @@
 //
 
 import Hifi 1.0
-import QtQuick 2.4
+import QtQuick 2.5
+import QtQuick.Controls 1.4
 import QtGraphicalEffects 1.0
 import "../../controls"
 import "../../styles"
@@ -19,11 +20,11 @@ import "../toolbars"
 import "../../styles-uit" as HifiStyles
 import "../../controls-uit" as HifiControls
 
-Item {
+StackView {
     id: root
     HifiConstants { id: hifi }
     HifiStyles.HifiConstants { id: hifiStyleConstants }
-    
+    initialItem: addressBarDialog
     width: parent.width
     height: parent.height
 
@@ -32,7 +33,7 @@ Item {
     property int cardHeight: 320;
     property string metaverseBase: addressBarDialog.metaverseServerUrl + "/api/v1/";
 
-
+    Component { id: tabletStoryCard; TabletStoryCard {} }
     Component.onCompleted: {
         fillDestinations();
         updateLocationText();
@@ -42,7 +43,7 @@ Item {
     Component.onDestruction: {
         root.parentChanged.disconnect(center);
     }
-
+    
     function center() {
         // Explicitly center in order to avoid warnings at shutdown
         anchors.centerIn = parent;
@@ -54,6 +55,9 @@ Item {
     }
     function goCard(targetString) {
         if (0 !== targetString.indexOf('hifi://')) {
+            var card = tabletStoryCard.createObject();
+            card.setUrl(addressBarDialog.metaverseServerUrl + targetString);
+            root.push(card);
             return;
         }
         addressLine.text = targetString;
@@ -86,7 +90,7 @@ Item {
             id: navBar
             width: 480
             height: 70
-            color: hifi.colors.white
+            color: hifiStyleConstants.colors.white
             anchors {
                 top: parent.top
                 right: parent.right
@@ -194,7 +198,7 @@ Item {
                     anchors.fill: parent
                     onClicked: {
                         isCursorVisible = true;
-                        //parent.cursorVisible = true;
+                        parent.cursorVisible = true;
                         parent.forceActiveFocus();
                         addressBarDialog.keyboardEnabled = HMD.active
                         tabletRoot.playButtonClickSound();
@@ -204,14 +208,14 @@ Item {
 
             Rectangle {
                 anchors.fill: addressLine
-                color: hifiStyleConstants.colors.baseGray
+                color: hifiStyleConstants.colors.lightGray
                 opacity: 0.1
             }
         }
         Rectangle {
             id: topBar
             height: 37
-            color: hifi.colors.white
+            color: hifiStyleConstants.colors.white
 
             anchors.right: parent.right
             anchors.rightMargin: 0
@@ -260,7 +264,7 @@ Item {
 
         Rectangle {
             id: bgMain
-            color: hifi.colors.white
+            color: hifiStyleConstants.colors.white
             anchors.bottom: parent.keyboardEnabled ? keyboard.top : parent.bottom
             anchors.bottomMargin: 0
             anchors.right: parent.right
diff --git a/interface/resources/qml/hifi/tablet/TabletStoryCard.qml b/interface/resources/qml/hifi/tablet/TabletStoryCard.qml
new file mode 100644
index 0000000000..ea6a23cb10
--- /dev/null
+++ b/interface/resources/qml/hifi/tablet/TabletStoryCard.qml
@@ -0,0 +1,132 @@
+//
+//  TabletAddressDialog.qml
+//
+//  Created by Dante Ruiz on 2017/04/24
+//  Copyright 2015 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
+//
+
+import Hifi 1.0
+import QtQuick 2.4
+import QtGraphicalEffects 1.0
+import "../../controls"
+import "../../styles"
+import "../../windows"
+import "../"
+import "../toolbars"
+import "../../styles-uit" as HifiStyles
+import "../../controls-uit" as HifiControls
+
+
+Rectangle {
+    id: cardRoot
+    HifiStyles.HifiConstants { id: hifi }
+    width: parent.width
+    height: parent.height
+    property string address: ""
+
+    function setUrl(url) {
+        cardRoot.address = url;
+        webview.url = url;
+    }
+
+    function goBack() {
+    }
+
+    function visit() {
+    }
+
+    Rectangle {
+        id: header
+        anchors {
+            left: parent.left
+            right: parent.right
+            top: parent.top
+        }
+        
+        width: parent.width
+        height: 50
+        color: hifi.colors.white
+
+        Row {
+            anchors.fill: parent
+            spacing: 80
+
+            Item {
+                id: backButton
+                anchors {
+                    top: parent.top
+                    left: parent.left
+                    leftMargin: 100
+                }
+                height: parent.height
+                width: parent.height
+
+                HifiStyles.FiraSansSemiBold {
+                    text: "BACK"
+                    elide: Text.ElideRight
+                    anchors.fill: parent
+                    size: 16
+
+                    verticalAlignment: Text.AlignVCenter
+                    horizontalAlignment: Text.AlignHCenter
+
+                    color: hifi.colors.lightGray
+
+                    MouseArea {
+                        id: backButtonMouseArea
+                        anchors.fill: parent
+                        hoverEnabled: enabled
+
+                        onClicked: {
+                            webview.goBack();
+                        }
+                    }
+                }
+            }
+
+            Item {
+                id: closeButton
+                anchors {
+                    top: parent.top
+                    right: parent.right
+                    rightMargin: 100
+                }
+                height: parent.height
+                width: parent.height
+
+                HifiStyles.FiraSansSemiBold {
+                    text: "CLOSE"
+                    elide: Text.ElideRight
+                    anchors.fill: parent
+                    size: 16
+
+                    verticalAlignment: Text.AlignVCenter
+                    horizontalAlignment: Text.AlignHCenter
+
+                    color: hifi.colors.lightGray
+
+                    MouseArea {
+                        id: closeButtonMouseArea
+                        anchors.fill: parent
+                        hoverEnabled: enabled
+
+                        onClicked: root.pop();
+                    }
+                }
+            }
+        }
+    }
+
+    HifiControls.WebView {
+        id: webview
+        anchors {
+            top: header.bottom
+            right: parent.right
+            left: parent.left
+            bottom: parent.bottom
+        }
+    }   
+}

From 3e98b2273c0e098e721996c4f955408f02c38450 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Sat, 25 Mar 2017 00:52:41 +0100
Subject: [PATCH 205/247] help in the tablet

---
 .../html/img/tablet-help-gamepad.jpg          | Bin 0 -> 259716 bytes
 .../html/img/tablet-help-keyboard.jpg         | Bin 0 -> 190462 bytes
 .../resources/html/img/tablet-help-oculus.jpg | Bin 0 -> 255457 bytes
 .../resources/html/img/tablet-help-vive.jpg   | Bin 0 -> 216386 bytes
 interface/resources/html/tabletHelp.html      |  69 +++++++++++++-----
 5 files changed, 49 insertions(+), 20 deletions(-)
 create mode 100644 interface/resources/html/img/tablet-help-gamepad.jpg
 create mode 100644 interface/resources/html/img/tablet-help-keyboard.jpg
 create mode 100644 interface/resources/html/img/tablet-help-oculus.jpg
 create mode 100644 interface/resources/html/img/tablet-help-vive.jpg

diff --git a/interface/resources/html/img/tablet-help-gamepad.jpg b/interface/resources/html/img/tablet-help-gamepad.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5abb38d66b37f600e1ab8bc5061bc671df6792de
GIT binary patch
literal 259716
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%0DdW{h$s3m;xJbT5TjHf-T+i>#M
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
IKk=pY|G>DivH$=8

literal 0
HcmV?d00001

diff --git a/interface/resources/html/img/tablet-help-keyboard.jpg b/interface/resources/html/img/tablet-help-keyboard.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..40c6017561116f90106539cc6bab8176986ffb7e
GIT binary patch
literal 190462
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
Iy{D1?0PvbRmjD0&

literal 0
HcmV?d00001

diff --git a/interface/resources/html/img/tablet-help-oculus.jpg b/interface/resources/html/img/tablet-help-oculus.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..26f1672405322c1a6e0333be6b2a058575bcf0f2
GIT binary patch
literal 255457
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%0A^hP_Ru|~;lQ8yV*
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
D%8dhA

literal 0
HcmV?d00001

diff --git a/interface/resources/html/img/tablet-help-vive.jpg b/interface/resources/html/img/tablet-help-vive.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..98e57eef47b8e5b8ec4ba72e2a36bf390cd737c4
GIT binary patch
literal 216386
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

literal 0
HcmV?d00001

diff --git a/interface/resources/html/tabletHelp.html b/interface/resources/html/tabletHelp.html
index 6bd3b0e7ad..635c557de3 100644
--- a/interface/resources/html/tabletHelp.html
+++ b/interface/resources/html/tabletHelp.html
@@ -15,26 +15,18 @@
                 padding: 0;
             }
 
-            #kbm_button {
+            #left_button {
                 position: absolute;
                 left: 70;
-                top: 118;
+                top: 70;
                 width: 160;
                 height: 80;
             }
 
-            #hand_controllers_button {
+            #right_button {
                 position: absolute;
                 left: 367;
-                top: 118;
-                width: 160;
-                height: 80;
-            }
-
-            #game_controller_button {
-                position: absolute;
-                left: 634;
-                top: 118;
+                top: 70;
                 width: 160;
                 height: 80;
             }
@@ -49,9 +41,11 @@
         </style>
         <script>
             var handControllerImageURL = null;
+            var index = 0;
+            var count = 4;
 
             function showKbm() {
-                document.getElementById("main_image").setAttribute("src", "img/controls-help-keyboard.png");
+                document.getElementById("main_image").setAttribute("src", "img/tablet-help-keyboard.jpg");
             }
 
             function showHandControllers() {
@@ -59,7 +53,39 @@
             }
 
             function showGamepad() {
-                document.getElementById("main_image").setAttribute("src", "img/controls-help-gamepad.png");
+                document.getElementById("main_image").setAttribute("src", "img/tablet-help-gamepad.jpg");
+            }
+
+            function cycleRight() {
+                index = (index + count + 1) % count;
+                chooseIcon();
+            }
+
+            function cycleLeft() {
+                index = (index + count - 1) % count;
+                chooseIcon();
+            }
+
+            function chooseIcon() {
+                switch (index) 
+                {
+                    case 0:
+                        handControllerImageURL = "img/tablet-help-keyboard.jpg";
+                        showHandControllers();
+                        break;
+                    case 1:
+                        handControllerImageURL = "img/tablet-help-vive.jpg";
+                        showHandControllers();
+                        break;
+                    case 2:
+                        showGamepad();
+                        break;
+                    case 3:
+                        showKbm();
+                        break;
+
+                    default:
+                }
             }
 
             // This is not meant to be a complete or hardened query string parser - it only
@@ -91,17 +117,20 @@
 
                 switch (params.handControllerName) {
                     case "oculus":
-                        handControllerImageURL = "img/controls-help-oculus.png";
+                        handControllerImageURL = "img/tablet-help-oculus.jpg";
+                        index = 0;
                         break;
 
                     case "vive":
                     default:
-                        handControllerImageURL = "img/controls-help-vive.png";
+                        handControllerImageURL = "img/tablet-help-vive.jpg";
+                        index = 1;
                 }
 
                 switch (params.defaultTab) {
                     case "gamepad":
                         showGamepad();
+                        index = 2;
                         break;
 
                     case "handControllers":
@@ -111,6 +140,7 @@
                     case "kbm":
                     default:
                         showKbm();
+                        index = 3;
                 }
             }
         </script>
@@ -118,10 +148,9 @@
 
     <body onload="load()">
         <div id="image_area">
-            <img id="main_image" src="img/controls-help-keyboard.png" width="480px" height="720px"></img>
-            <a href="#" id="kbm_button" onmousedown="showKbm()"></a>
-            <a href="#" id="hand_controllers_button" onmousedown="showHandControllers()"></a>
-            <a href="#" id="game_controller_button" onmousedown="showGamepad()"></a>
+            <img id="main_image" src="img/tablet-help-keyboard.jpg" width="480px" height="720px"></img>
+            <a href="#" id="left_button" onmousedown="cycleLeft()"></a>
+            <a href="#" id="right_button" onmousedown="cycleRight()"></a>
         </div>
     </body>
 

From 9e2768cc84b98ae24436d594d1750c11bb292c0e Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Sat, 25 Mar 2017 01:06:21 +0100
Subject: [PATCH 206/247] saving work

---
 interface/resources/qml/hifi/tablet/TabletRoot.qml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/interface/resources/qml/hifi/tablet/TabletRoot.qml b/interface/resources/qml/hifi/tablet/TabletRoot.qml
index febb2793ec..8037c1280e 100644
--- a/interface/resources/qml/hifi/tablet/TabletRoot.qml
+++ b/interface/resources/qml/hifi/tablet/TabletRoot.qml
@@ -31,7 +31,8 @@ Item {
 
     Component { id: customInputDialogBuilder; TabletCustomQueryDialog { } }
     function customInputDialog(properties) {
-        return customInputDialogBuilder.createObject(tabletRoot, properties);
+        openModal = customInputDialogBuilder.createObject(tabletRoot, properties);
+        return openModal;
     }
 
     Component { id: fileDialogBuilder; TabletFileDialog { } }

From 2a59139c7691e8e0e39945d4d6bbeb72fa06946a Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Sat, 25 Mar 2017 01:17:37 +0100
Subject: [PATCH 207/247] trying to fix focus issue

---
 interface/resources/qml/hifi/tablet/TabletAddressDialog.qml | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
index bfecf5457b..e19f8ef72b 100644
--- a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
@@ -35,6 +35,8 @@ StackView {
 
     Component { id: tabletStoryCard; TabletStoryCard {} }
     Component.onCompleted: {
+        root.currentItem.focus = true;
+        root.currentItem.forceActiveFocus();
         fillDestinations();
         updateLocationText();
         root.parentChanged.connect(center);
@@ -199,6 +201,7 @@ StackView {
                     onClicked: {
                         isCursorVisible = true;
                         parent.cursorVisible = true;
+                        parent.focus = true;
                         parent.forceActiveFocus();
                         addressBarDialog.keyboardEnabled = HMD.active
                         tabletRoot.playButtonClickSound();

From fc23c348cb74159a82ea6699806c3c2841ca763b Mon Sep 17 00:00:00 2001
From: Vladyslav Stelmakhovskyi <vladyslav.stelmakhovski@volvocars.com>
Date: Sat, 25 Mar 2017 13:17:38 +0100
Subject: [PATCH 208/247] Implemented Audio settings screen for Tablet UI

---
 interface/resources/qml/hifi/Audio.qml        | 253 ++++++++++++++++++
 .../qml/hifi/components/AudioCheckbox.qml     |  29 ++
 .../AudioDeviceScriptingInterface.cpp         |  29 +-
 .../scripting/AudioDeviceScriptingInterface.h |  14 +
 interface/src/ui/AvatarInputs.cpp             |  21 +-
 interface/src/ui/AvatarInputs.h               |  10 +-
 interface/src/ui/overlays/Web3DOverlay.cpp    |   5 +
 scripts/system/audio.js                       |   3 +-
 8 files changed, 357 insertions(+), 7 deletions(-)
 create mode 100644 interface/resources/qml/hifi/Audio.qml
 create mode 100644 interface/resources/qml/hifi/components/AudioCheckbox.qml

diff --git a/interface/resources/qml/hifi/Audio.qml b/interface/resources/qml/hifi/Audio.qml
new file mode 100644
index 0000000000..deb44b9bd5
--- /dev/null
+++ b/interface/resources/qml/hifi/Audio.qml
@@ -0,0 +1,253 @@
+//
+//  Audio.qml
+//  qml/hifi
+//
+//  Audio setup
+//
+//  Created by Vlad Stelmahovsky on 03/22/2017
+//  Copyright 2017 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
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import QtGraphicalEffects 1.0
+
+import "../styles-uit"
+import "../controls-uit" as HifiControls
+
+import "components"
+
+Rectangle {
+    id: audio;
+
+    //put info text here
+    property alias infoText: infoArea.text
+
+    color: "#404040";
+
+    HifiConstants { id: hifi; }
+    objectName: "AudioWindow"
+
+    property var eventBridge;
+    property string title: "Audio Options"
+    signal sendToScript(var message);
+
+    //set models after Components is shown
+    Component.onCompleted: {
+        refreshTimer.start()
+        refreshTimerOutput.start()
+    }
+
+    Component {
+        id: separator
+        LinearGradient {
+            start: Qt.point(0, 0)
+            end: Qt.point(0, 4)
+            gradient: Gradient {
+                GradientStop { position: 0.0; color: "#303030" }
+                GradientStop { position: 0.33; color: "#252525" }  // Equivalent of darkGray0 over baseGray background.
+                GradientStop { position: 0.5; color: "#303030" }
+                GradientStop { position: 0.6; color: "#454a49" }
+                GradientStop { position: 1.0; color: "#454a49" }
+            }
+            cached: true
+        }
+    }
+
+    Column {
+        anchors { left: parent.left; right: parent.right }
+        spacing: 8
+
+        RalewayRegular {
+            anchors { left: parent.left; right: parent.right; leftMargin: 30 }
+            height: 45
+            size: 20
+            color: "white"
+            text: audio.title
+        }
+
+        Loader {
+            width: parent.width
+            height: 5
+            sourceComponent: separator
+        }
+
+        //connections required to syncronize with Menu
+        Connections {
+            target: AudioDevice
+            onMuteToggled: {
+                audioMute.checkbox.checked = AudioDevice.getMuted()
+            }
+        }
+
+        Connections {
+            target: AvatarInputs
+            onShowAudioToolsChanged: {
+                audioTools.checkbox.checked = showAudioTools
+            }
+        }
+
+        AudioCheckbox {
+            id: audioMute
+            width: parent.width
+            anchors { left: parent.left; right: parent.right; leftMargin: 30 }
+            checkbox.checked: AudioDevice.muted
+            text.text: qsTr("Mute microphone")
+            onCheckBoxClicked: {
+                AudioDevice.muted = checked
+            }
+        }
+
+        AudioCheckbox {
+            id: audioTools
+            width: parent.width
+            anchors { left: parent.left; right: parent.right; leftMargin: 30 }
+            checkbox.checked: AvatarInputs.showAudioTools
+            text.text: qsTr("Show audio level meter")
+            onCheckBoxClicked: {
+                AvatarInputs.showAudioTools = checked
+            }
+        }
+
+        Loader {
+            width: parent.width
+            height: 5
+            sourceComponent: separator
+        }
+
+        Row {
+            anchors { left: parent.left; right: parent.right; leftMargin: 30 }
+            height: 40
+            spacing: 8
+
+            HiFiGlyphs {
+                text: hifi.glyphs.mic
+                color: hifi.colors.primaryHighlight
+                anchors.verticalCenter: parent.verticalCenter
+                font.pointSize: 27
+            }
+            RalewayRegular {
+                anchors.verticalCenter: parent.verticalCenter
+                size: 16
+                color: "#AFAFAF"
+                text: qsTr("CHOOSE INPUT DEVICE")
+            }
+        }
+
+        ListView {
+            Timer {
+                id: refreshTimer
+                interval: 1
+                repeat: false
+                onTriggered: {
+                    //refresh model
+                    inputAudioListView.model = undefined
+                    inputAudioListView.model = AudioDevice.inputAudioDevices
+                }
+            }
+            id: inputAudioListView
+            anchors { left: parent.left; right: parent.right; leftMargin: 70 }
+            height: 125
+            spacing: 16
+            clip: true
+            snapMode: ListView.SnapToItem
+            delegate: AudioCheckbox {
+                width: parent.width
+                checkbox.checked: (modelData === AudioDevice.getInputDevice())
+                text.text: modelData
+                onCheckBoxClicked: {
+                    if (checked) {
+                        AudioDevice.setInputDevice(modelData)
+                        refreshTimer.start()
+                    }
+                }
+            }
+        }
+
+        Loader {
+            width: parent.width
+            height: 5
+            sourceComponent: separator
+        }
+
+        Row {
+            anchors { left: parent.left; right: parent.right; leftMargin: 30 }
+            height: 40
+            spacing: 8
+
+            HiFiGlyphs {
+                text: hifi.glyphs.unmuted
+                color: hifi.colors.primaryHighlight
+                anchors.verticalCenter: parent.verticalCenter
+                font.pointSize: 27
+            }
+            RalewayRegular {
+                anchors.verticalCenter: parent.verticalCenter
+                size: 16
+                color: "#AFAFAF"
+                text: qsTr("CHOOSE OUTPUT DEVICE")
+            }
+        }
+        ListView {
+            id: outputAudioListView
+            Timer {
+                id: refreshTimerOutput
+                interval: 1
+                repeat: false
+                onTriggered: {
+                    //refresh model
+                    outputAudioListView.model = undefined
+                    outputAudioListView.model = AudioDevice.outputAudioDevices
+                }
+            }
+            anchors { left: parent.left; right: parent.right; leftMargin: 70 }
+            height: 250
+            spacing: 16
+            clip: true
+            snapMode: ListView.SnapToItem
+            delegate: AudioCheckbox {
+                width: parent.width
+                checkbox.checked: (modelData === AudioDevice.getOutputDevice())
+                text.text: modelData
+                onCheckBoxClicked: {
+                    if (checked) {
+                        AudioDevice.setOutputDevice(modelData)
+                        refreshTimerOutput.start()
+                    }
+                }
+            }
+        }
+
+        Loader {
+            id: lastSeparator
+            width: parent.width
+            height: 6
+            sourceComponent: separator
+        }
+
+        Row {
+            anchors { left: parent.left; right: parent.right; leftMargin: 30 }
+            height: 40
+            spacing: 8
+
+            HiFiGlyphs {
+                id: infoSign
+                text: hifi.glyphs.info
+                color: "#AFAFAF"
+                anchors.verticalCenter: parent.verticalCenter
+                size: 60
+            }
+            RalewayRegular {
+                id: infoArea
+                width: parent.width - infoSign.implicitWidth - parent.spacing - 10
+                wrapMode: Text.WordWrap
+                anchors.verticalCenter: parent.verticalCenter
+                size: 12
+                color: hifi.colors.baseGrayHighlight
+            }
+        }
+    }
+}
diff --git a/interface/resources/qml/hifi/components/AudioCheckbox.qml b/interface/resources/qml/hifi/components/AudioCheckbox.qml
new file mode 100644
index 0000000000..a8e0441e0a
--- /dev/null
+++ b/interface/resources/qml/hifi/components/AudioCheckbox.qml
@@ -0,0 +1,29 @@
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+
+import "../../styles-uit"
+import "../../controls-uit" as HifiControls
+
+Row {
+    id: row
+    spacing: 16
+    property alias checkbox: cb
+    property alias text: txt
+    signal checkBoxClicked(bool checked)
+
+    HifiControls.CheckBox {
+        id: cb
+        boxSize: 20
+        colorScheme: hifi.colorSchemes.dark
+        anchors.verticalCenter: parent.verticalCenter
+        onClicked: checkBoxClicked(cb.checked)
+    }
+    RalewayBold {
+        id: txt
+        wrapMode: Text.WordWrap
+        width: parent.width - cb.boxSize - 30
+        anchors.verticalCenter: parent.verticalCenter
+        size: 16
+        color: "white"
+    }
+}
diff --git a/interface/src/scripting/AudioDeviceScriptingInterface.cpp b/interface/src/scripting/AudioDeviceScriptingInterface.cpp
index c4dc58f16b..cbb08c0af0 100644
--- a/interface/src/scripting/AudioDeviceScriptingInterface.cpp
+++ b/interface/src/scripting/AudioDeviceScriptingInterface.cpp
@@ -18,6 +18,21 @@ AudioDeviceScriptingInterface* AudioDeviceScriptingInterface::getInstance() {
     return &sharedInstance;
 }
 
+QStringList AudioDeviceScriptingInterface::inputAudioDevices() const
+{
+    return DependencyManager::get<AudioClient>()->getDeviceNames(QAudio::AudioInput).toList();;
+}
+
+QStringList AudioDeviceScriptingInterface::outputAudioDevices() const
+{
+    return DependencyManager::get<AudioClient>()->getDeviceNames(QAudio::AudioOutput).toList();;
+}
+
+bool AudioDeviceScriptingInterface::muted()
+{
+    return getMuted();
+}
+
 AudioDeviceScriptingInterface::AudioDeviceScriptingInterface() {
     connect(DependencyManager::get<AudioClient>().data(), &AudioClient::muteToggled,
             this, &AudioDeviceScriptingInterface::muteToggled);
@@ -31,7 +46,6 @@ bool AudioDeviceScriptingInterface::setInputDevice(const QString& deviceName) {
                               Qt::BlockingQueuedConnection,
                               Q_RETURN_ARG(bool, result),
                               Q_ARG(const QString&, deviceName));
-
     return result;
 }
 
@@ -41,7 +55,6 @@ bool AudioDeviceScriptingInterface::setOutputDevice(const QString& deviceName) {
                               Qt::BlockingQueuedConnection,
                               Q_RETURN_ARG(bool, result),
                               Q_ARG(const QString&, deviceName));
-
     return result;
 }
 
@@ -69,7 +82,6 @@ QVector<QString> AudioDeviceScriptingInterface::getOutputDevices() {
     return DependencyManager::get<AudioClient>()->getDeviceNames(QAudio::AudioOutput);
 }
 
-
 float AudioDeviceScriptingInterface::getInputVolume() {
     return DependencyManager::get<AudioClient>()->getInputVolume();
 }
@@ -90,6 +102,17 @@ void AudioDeviceScriptingInterface::toggleMute() {
     DependencyManager::get<AudioClient>()->toggleMute();
 }
 
+void AudioDeviceScriptingInterface::setMuted(bool muted)
+{
+    bool lMuted = getMuted();
+    if (lMuted == muted)
+        return;
+
+    toggleMute();
+    lMuted = getMuted();
+    emit mutedChanged(lMuted);
+}
+
 bool AudioDeviceScriptingInterface::getMuted() {
     return DependencyManager::get<AudioClient>()->isMuted();
 }
diff --git a/interface/src/scripting/AudioDeviceScriptingInterface.h b/interface/src/scripting/AudioDeviceScriptingInterface.h
index 149de9bf56..4d1d47dcba 100644
--- a/interface/src/scripting/AudioDeviceScriptingInterface.h
+++ b/interface/src/scripting/AudioDeviceScriptingInterface.h
@@ -20,9 +20,18 @@ class AudioEffectOptions;
 
 class AudioDeviceScriptingInterface : public QObject {
     Q_OBJECT
+
+    Q_PROPERTY(QStringList inputAudioDevices READ inputAudioDevices NOTIFY inputAudioDevicesChanged)
+    Q_PROPERTY(QStringList outputAudioDevices READ outputAudioDevices NOTIFY outputAudioDevicesChanged)
+    Q_PROPERTY(bool muted READ muted WRITE setMuted NOTIFY mutedChanged)
+
 public:
     static AudioDeviceScriptingInterface* getInstance();
 
+    QStringList inputAudioDevices() const;
+    QStringList outputAudioDevices() const;
+    bool muted();
+
 public slots:
     bool setInputDevice(const QString& deviceName);
     bool setOutputDevice(const QString& deviceName);
@@ -44,12 +53,17 @@ public slots:
     bool getMuted();
     void toggleMute();
     
+    void setMuted(bool muted);
+
 private:
     AudioDeviceScriptingInterface();
 
 signals:
     void muteToggled();
     void deviceChanged();
+    void mutedChanged(bool muted);
+    void inputAudioDevicesChanged(QStringList inputAudioDevices);
+    void outputAudioDevicesChanged(QStringList outputAudioDevices);
 };
 
 #endif // hifi_AudioDeviceScriptingInterface_h
diff --git a/interface/src/ui/AvatarInputs.cpp b/interface/src/ui/AvatarInputs.cpp
index 944be4bf9e..37d7a30938 100644
--- a/interface/src/ui/AvatarInputs.cpp
+++ b/interface/src/ui/AvatarInputs.cpp
@@ -43,6 +43,16 @@ AvatarInputs::AvatarInputs(QQuickItem* parent) :  QQuickItem(parent) {
         } \
     }
 
+#define AI_UPDATE_WRITABLE(name, src) \
+    { \
+        auto val = src; \
+        if (_##name != val) { \
+            _##name = val; \
+            qDebug() << "AvatarInputs" << val; \
+            emit name##Changed(val); \
+        } \
+    }
+
 #define AI_UPDATE_FLOAT(name, src, epsilon) \
     { \
         float val = src; \
@@ -59,7 +69,8 @@ void AvatarInputs::update() {
     AI_UPDATE(cameraEnabled, !Menu::getInstance()->isOptionChecked(MenuOption::NoFaceTracking));
     AI_UPDATE(cameraMuted, Menu::getInstance()->isOptionChecked(MenuOption::MuteFaceTracking));
     AI_UPDATE(isHMD, qApp->isHMDMode());
-    AI_UPDATE(showAudioTools, Menu::getInstance()->isOptionChecked(MenuOption::AudioTools));
+
+    AI_UPDATE_WRITABLE(showAudioTools, Menu::getInstance()->isOptionChecked(MenuOption::AudioTools));
 
     auto audioIO = DependencyManager::get<AudioClient>();
     const float AUDIO_METER_AVERAGING = 0.5;
@@ -100,6 +111,14 @@ void AvatarInputs::update() {
     //iconColor = PULSE_MIN + (PULSE_MAX - PULSE_MIN) * pulseFactor;
 }
 
+void AvatarInputs::setShowAudioTools(bool showAudioTools) {
+    if (_showAudioTools == showAudioTools)
+        return;
+
+    Menu::getInstance()->setIsOptionChecked(MenuOption::AudioTools, showAudioTools);
+    update();
+}
+
 void AvatarInputs::toggleCameraMute() {
     FaceTracker* faceTracker = qApp->getSelectedFaceTracker();
     if (faceTracker) {
diff --git a/interface/src/ui/AvatarInputs.h b/interface/src/ui/AvatarInputs.h
index 5535469445..0c4fc0f23c 100644
--- a/interface/src/ui/AvatarInputs.h
+++ b/interface/src/ui/AvatarInputs.h
@@ -29,12 +29,17 @@ class AvatarInputs : public QQuickItem {
     AI_PROPERTY(bool, audioClipping, false)
     AI_PROPERTY(float, audioLevel, 0)
     AI_PROPERTY(bool, isHMD, false)
-    AI_PROPERTY(bool, showAudioTools, true)
+
+    Q_PROPERTY(bool showAudioTools READ showAudioTools WRITE setShowAudioTools NOTIFY showAudioToolsChanged)
 
 public:
     static AvatarInputs* getInstance();
     AvatarInputs(QQuickItem* parent = nullptr);
     void update();
+    bool showAudioTools() const   { return _showAudioTools; }
+
+public slots:
+    void setShowAudioTools(bool showAudioTools);
 
 signals:
     void cameraEnabledChanged();
@@ -43,7 +48,7 @@ signals:
     void audioClippingChanged();
     void audioLevelChanged();
     void isHMDChanged();
-    void showAudioToolsChanged();
+    void showAudioToolsChanged(bool showAudioTools);
 
 protected:
     Q_INVOKABLE void resetSensors();
@@ -52,6 +57,7 @@ protected:
 
 private: 
     float _trailingAudioLoudness{ 0 };
+    bool _showAudioTools { false };
 };
 
 #endif // hifi_AvatarInputs_h
diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp
index fa815421c7..e2490f241e 100644
--- a/interface/src/ui/overlays/Web3DOverlay.cpp
+++ b/interface/src/ui/overlays/Web3DOverlay.cpp
@@ -46,6 +46,8 @@
 #include "LODManager.h"
 #include "ui/OctreeStatsProvider.h"
 #include "ui/DomainConnectionModel.h"
+#include "scripting/AudioDeviceScriptingInterface.h"
+#include "ui/AvatarInputs.h"
 
 static const float DPI = 30.47f;
 static const float INCHES_TO_METERS = 1.0f / 39.3701f;
@@ -189,6 +191,9 @@ void Web3DOverlay::loadSourceURL() {
             _webSurface->getRootContext()->setContextProperty("LODManager", DependencyManager::get<LODManager>().data());
             _webSurface->getRootContext()->setContextProperty("OctreeStats", DependencyManager::get<OctreeStatsProvider>().data());
             _webSurface->getRootContext()->setContextProperty("DCModel", DependencyManager::get<DomainConnectionModel>().data());
+            _webSurface->getRootContext()->setContextProperty("AudioDevice", AudioDeviceScriptingInterface::getInstance());
+            _webSurface->getRootContext()->setContextProperty("AvatarInputs", AvatarInputs::getInstance());
+
             _webSurface->getRootContext()->setContextProperty("pathToFonts", "../../");
             tabletScriptingInterface->setQmlTabletRoot("com.highfidelity.interface.tablet.system", _webSurface->getRootItem(), _webSurface.data());
 
diff --git a/scripts/system/audio.js b/scripts/system/audio.js
index beeb8609d8..7bc8676a2e 100644
--- a/scripts/system/audio.js
+++ b/scripts/system/audio.js
@@ -45,7 +45,8 @@ function onClicked() {
         var entity = HMD.tabletID;
         Entities.editEntity(entity, { textures: JSON.stringify({ "tex.close": HOME_BUTTON_TEXTURE }) });
         shouldActivateButton = true;
-        tablet.gotoMenuScreen("Audio");
+        shouldActivateButton = true;
+        tablet.loadQMLSource("../Audio.qml");
         onAudioScreen = true;
     }
 }

From e87bc91d0e264ce40e64fe5cc597a8efc86ba206 Mon Sep 17 00:00:00 2001
From: Sam Cake <Sam Cake>
Date: Sun, 26 Mar 2017 11:48:02 -0700
Subject: [PATCH 209/247] Fixing the roughness/reflection quantization bug

---
 libraries/render-utils/src/DebugDeferredBuffer.cpp            | 1 +
 libraries/render-utils/src/LightAmbient.slh                   | 2 +-
 libraries/render-utils/src/debug_deferred_buffer.slf          | 2 ++
 .../src/surfaceGeometry_downsampleDepthNormal.slf             | 4 ++--
 4 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/libraries/render-utils/src/DebugDeferredBuffer.cpp b/libraries/render-utils/src/DebugDeferredBuffer.cpp
index d0e2859e90..9ffd94af38 100644
--- a/libraries/render-utils/src/DebugDeferredBuffer.cpp
+++ b/libraries/render-utils/src/DebugDeferredBuffer.cpp
@@ -76,6 +76,7 @@ static const std::string DEFAULT_ROUGHNESS_SHADER {
     "vec4 getFragmentColor() {"
     "    DeferredFragment frag = unpackDeferredFragmentNoPosition(uv);"
     "    return vec4(vec3(pow(frag.roughness, 1.0 / 2.2)), 1.0);"
+   // "    return vec4(vec3(pow(colorRamp(frag.roughness), vec3(1.0 / 2.2))), 1.0);"
     " }"
 };
 static const std::string DEFAULT_NORMAL_SHADER {
diff --git a/libraries/render-utils/src/LightAmbient.slh b/libraries/render-utils/src/LightAmbient.slh
index e343d8c239..b919108115 100644
--- a/libraries/render-utils/src/LightAmbient.slh
+++ b/libraries/render-utils/src/LightAmbient.slh
@@ -39,7 +39,7 @@ vec3 evalAmbientSpecularIrradiance(LightAmbient ambient, vec3 fragEyeDir, vec3 f
             <@if supportAmbientMap@>
         {
             float levels = getLightAmbientMapNumMips(ambient);
-            float lod = min(floor((roughness)* levels), levels);
+            float lod = min(((roughness)* levels), levels);
             specularLight = evalSkyboxLight(direction, lod).xyz;
         }
     <@endif@>
diff --git a/libraries/render-utils/src/debug_deferred_buffer.slf b/libraries/render-utils/src/debug_deferred_buffer.slf
index 079f79c06e..c018e5e526 100644
--- a/libraries/render-utils/src/debug_deferred_buffer.slf
+++ b/libraries/render-utils/src/debug_deferred_buffer.slf
@@ -13,6 +13,8 @@
 //
 
 <@include DeferredBufferRead.slh@>
+<@include gpu/Color.slh@>
+<$declareColorWheel()$>
 
 uniform sampler2D linearDepthMap;
 uniform sampler2D halfLinearDepthMap;
diff --git a/libraries/render-utils/src/surfaceGeometry_downsampleDepthNormal.slf b/libraries/render-utils/src/surfaceGeometry_downsampleDepthNormal.slf
index 533073b224..46554dd7f8 100644
--- a/libraries/render-utils/src/surfaceGeometry_downsampleDepthNormal.slf
+++ b/libraries/render-utils/src/surfaceGeometry_downsampleDepthNormal.slf
@@ -24,8 +24,8 @@ void main(void) {
     // Gather 2 by 2 quads from texture
 
     // Try different filters for Z
-//    vec4 Zeyes = textureGather(linearDepthMap, varTexCoord0, 0);
-  //  float Zeye = min(min(Zeyes.x, Zeyes.y), min(Zeyes.z, Zeyes.w));
+    //vec4 Zeyes = textureGather(linearDepthMap, varTexCoord0, 0);
+    //float Zeye = min(min(Zeyes.x, Zeyes.y), min(Zeyes.z, Zeyes.w));
     float Zeye = texture(linearDepthMap, varTexCoord0).x;
 
     vec4 rawNormalsX = textureGather(normalMap, varTexCoord0, 0);

From aa8a1e1dda801bba4f119bf9ae648fe77c0b492d Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Mon, 27 Mar 2017 15:04:33 +1300
Subject: [PATCH 210/247] Open snapshot dialog in tablet or window
 appropriately

---
 scripts/system/html/SnapshotReview.html |  1 -
 scripts/system/snapshot.js              | 12 ++++++------
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/scripts/system/html/SnapshotReview.html b/scripts/system/html/SnapshotReview.html
index d37afb180c..68c91b8190 100644
--- a/scripts/system/html/SnapshotReview.html
+++ b/scripts/system/html/SnapshotReview.html
@@ -3,7 +3,6 @@
     <title>Share</title>
     <link rel="stylesheet" type="text/css" href="css/edit-style.css">
     <link rel="stylesheet" type="text/css" href="css/SnapshotReview.css">
-    <script type="text/javascript" src="qrc:///qtwebchannel/qwebchannel.js"></script>
     <script type="text/javascript" src="js/eventBridgeLoader.js"></script>
     <script type="text/javascript" src="js/SnapshotReview.js"></script>
 </head>
diff --git a/scripts/system/snapshot.js b/scripts/system/snapshot.js
index b9dfc43f9a..8a48aeb0ff 100644
--- a/scripts/system/snapshot.js
+++ b/scripts/system/snapshot.js
@@ -40,7 +40,7 @@ var SNAPSHOT_REVIEW_URL = Script.resolvePath("html/SnapshotReview.html");
 
 var outstanding;
 function confirmShare(data) {
-    var dialog = new OverlayWebWindow('Snapshot Review', SNAPSHOT_REVIEW_URL, 800, 520);
+    tablet.gotoWebScreen(SNAPSHOT_REVIEW_URL);
     function onMessage(message) {
         // Receives message from the html dialog via the qwebchannel EventBridge. This is complicated by the following:
         // 1. Although we can send POJOs, we cannot receive a toplevel object. (Arrays of POJOs are fine, though.)
@@ -51,7 +51,7 @@ function confirmShare(data) {
         var needsLogin = false;
         switch (message) {
         case 'ready':
-            dialog.emitScriptEvent(data); // Send it.
+            tablet.emitScriptEvent(data); // Send it.
             outstanding = 0;
             break;
         case 'openSettings':
@@ -64,8 +64,8 @@ function confirmShare(data) {
             Settings.setValue('openFeedAfterShare', true);
             break;
         default:
-            dialog.webEventReceived.disconnect(onMessage);
-            dialog.close();
+            tablet.webEventReceived.disconnect(onMessage);
+            HMD.closeTablet();
             isLoggedIn = Account.isLoggedIn();
             message.forEach(function (submessage) {
                 if (submessage.share && !isLoggedIn) {
@@ -88,8 +88,8 @@ function confirmShare(data) {
             }
         }
     }
-    dialog.webEventReceived.connect(onMessage);
-    dialog.raise();
+    tablet.webEventReceived.connect(onMessage);
+    HMD.openTablet();
 }
 
 function snapshotShared(errorMessage) {

From d0fc352d3bd644cba6a563d068f482c5fa28b3d0 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Mon, 27 Mar 2017 16:07:58 +1300
Subject: [PATCH 211/247] Address event bridge being shared with other scripts

---
 scripts/system/html/js/SnapshotReview.js | 45 ++++++++++++++++++------
 scripts/system/snapshot.js               | 16 ++++++---
 2 files changed, 46 insertions(+), 15 deletions(-)

diff --git a/scripts/system/html/js/SnapshotReview.js b/scripts/system/html/js/SnapshotReview.js
index a1bb350789..efe30196ee 100644
--- a/scripts/system/html/js/SnapshotReview.js
+++ b/scripts/system/html/js/SnapshotReview.js
@@ -43,7 +43,13 @@ function addImage(data) {
 function handleShareButtons(shareMsg) {
     var openFeed = document.getElementById('openFeed');
     openFeed.checked = shareMsg.openFeedAfterShare;
-    openFeed.onchange = function () { EventBridge.emitWebEvent(openFeed.checked ? 'setOpenFeedTrue' : 'setOpenFeedFalse'); };
+    openFeed.onchange = function () {
+        EventBridge.emitWebEvent(JSON.stringify({
+            type: "snapshot",
+            action: (openFeed.checked ? "setOpenFeedTrue" : "setOpenFeedFalse")
+        }));
+    };
+
     if (!shareMsg.canShare) {
         // this means you may or may not be logged in, but can't share
         // because you are not in a public place.
@@ -57,25 +63,42 @@ window.onload = function () {
     openEventBridge(function () {
         // Set up a handler for receiving the data, and tell the .js we are ready to receive it.
         EventBridge.scriptEventReceived.connect(function (message) {
+            message = JSON.parse(message);
+            if (message.type !== "snapshot") {
+                return;
+            }
+
             // last element of list contains a bool for whether or not we can share stuff
-            var shareMsg = message.pop();
+            var shareMsg = message.action.pop();
             handleShareButtons(shareMsg);
             
             // rest are image paths which we add
-            useCheckboxes = message.length > 1;
-            message.forEach(addImage);
+            useCheckboxes = message.action.length > 1;
+            message.action.forEach(addImage);
         });
-        EventBridge.emitWebEvent('ready');
+        EventBridge.emitWebEvent(JSON.stringify({
+            type: "snapshot",
+            action: "ready"
+        }));
     });
 
 };
 // beware of bug: Cannot send objects at top level. (Nested in arrays is fine.)
 function shareSelected() {
-    EventBridge.emitWebEvent(paths);
-};
+    EventBridge.emitWebEvent(JSON.stringify({
+        type: "snapshot",
+        action: paths
+    }));
+}
 function doNotShare() {
-    EventBridge.emitWebEvent([]);
-};
+    EventBridge.emitWebEvent(JSON.stringify({
+        type: "snapshot",
+        action: []
+    }));
+}
 function snapshotSettings() {
-    EventBridge.emitWebEvent("openSettings");
-};
+    EventBridge.emitWebEvent(JSON.stringify({
+        type: "snapshot",
+        action: "openSettings"
+    }));
+}
diff --git a/scripts/system/snapshot.js b/scripts/system/snapshot.js
index 8a48aeb0ff..d25a208417 100644
--- a/scripts/system/snapshot.js
+++ b/scripts/system/snapshot.js
@@ -47,11 +47,19 @@ function confirmShare(data) {
         // 2. Although we currently use a single image, we would like to take snapshot, a selfie, a 360 etc. all at the
         //    same time, show the user all of them, and have the user deselect any that they do not want to share.
         //    So we'll ultimately be receiving a set of objects, perhaps with different post processing for each.
+        message = JSON.parse(message);
+        if (message.type !== "snapshot") {
+            return;
+        }
+
         var isLoggedIn;
         var needsLogin = false;
-        switch (message) {
-        case 'ready':
-            tablet.emitScriptEvent(data); // Send it.
+        switch (message.action) {
+        case 'ready':  // Send it.
+            tablet.emitScriptEvent(JSON.stringify({
+                type: "snapshot",
+                action: data
+            })); 
             outstanding = 0;
             break;
         case 'openSettings':
@@ -67,7 +75,7 @@ function confirmShare(data) {
             tablet.webEventReceived.disconnect(onMessage);
             HMD.closeTablet();
             isLoggedIn = Account.isLoggedIn();
-            message.forEach(function (submessage) {
+            message.action.forEach(function (submessage) {
                 if (submessage.share && !isLoggedIn) {
                     needsLogin = true;
                     submessage.share = false;

From dc3095bfcdee91c4f521bb62c6fb7a69e5370cf0 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Mon, 27 Mar 2017 16:24:14 +1300
Subject: [PATCH 212/247] Fix "don't share" button not closing window

---
 scripts/system/snapshot.js | 1 +
 1 file changed, 1 insertion(+)

diff --git a/scripts/system/snapshot.js b/scripts/system/snapshot.js
index d25a208417..fa92e77420 100644
--- a/scripts/system/snapshot.js
+++ b/scripts/system/snapshot.js
@@ -74,6 +74,7 @@ function confirmShare(data) {
         default:
             tablet.webEventReceived.disconnect(onMessage);
             HMD.closeTablet();
+            tablet.gotoHomeScreen();
             isLoggedIn = Account.isLoggedIn();
             message.action.forEach(function (submessage) {
                 if (submessage.share && !isLoggedIn) {

From e58e3fbbf730220fff7dedde28798daa5b57ca67 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Mon, 27 Mar 2017 17:32:04 +1300
Subject: [PATCH 213/247] Disconnect snapshot event handler when tablet "home"
 button pressed

---
 scripts/system/snapshot.js | 57 +++++++++++++++++++++++---------------
 1 file changed, 35 insertions(+), 22 deletions(-)

diff --git a/scripts/system/snapshot.js b/scripts/system/snapshot.js
index fa92e77420..4c454dbc7b 100644
--- a/scripts/system/snapshot.js
+++ b/scripts/system/snapshot.js
@@ -36,30 +36,27 @@ function showFeedWindow() {
     DialogsManager.showFeed();
 }
 
-var SNAPSHOT_REVIEW_URL = Script.resolvePath("html/SnapshotReview.html");
-
 var outstanding;
-function confirmShare(data) {
-    tablet.gotoWebScreen(SNAPSHOT_REVIEW_URL);
-    function onMessage(message) {
-        // Receives message from the html dialog via the qwebchannel EventBridge. This is complicated by the following:
-        // 1. Although we can send POJOs, we cannot receive a toplevel object. (Arrays of POJOs are fine, though.)
-        // 2. Although we currently use a single image, we would like to take snapshot, a selfie, a 360 etc. all at the
-        //    same time, show the user all of them, and have the user deselect any that they do not want to share.
-        //    So we'll ultimately be receiving a set of objects, perhaps with different post processing for each.
-        message = JSON.parse(message);
-        if (message.type !== "snapshot") {
-            return;
-        }
+var readyData;
+function onMessage(message) {
+    // Receives message from the html dialog via the qwebchannel EventBridge. This is complicated by the following:
+    // 1. Although we can send POJOs, we cannot receive a toplevel object. (Arrays of POJOs are fine, though.)
+    // 2. Although we currently use a single image, we would like to take snapshot, a selfie, a 360 etc. all at the
+    //    same time, show the user all of them, and have the user deselect any that they do not want to share.
+    //    So we'll ultimately be receiving a set of objects, perhaps with different post processing for each.
+    message = JSON.parse(message);
+    if (message.type !== "snapshot") {
+        return;
+    }
 
-        var isLoggedIn;
-        var needsLogin = false;
-        switch (message.action) {
+    var isLoggedIn;
+    var needsLogin = false;
+    switch (message.action) {
         case 'ready':  // Send it.
             tablet.emitScriptEvent(JSON.stringify({
                 type: "snapshot",
-                action: data
-            })); 
+                action: readyData
+            }));
             outstanding = 0;
             break;
         case 'openSettings':
@@ -72,7 +69,7 @@ function confirmShare(data) {
             Settings.setValue('openFeedAfterShare', true);
             break;
         default:
-            tablet.webEventReceived.disconnect(onMessage);
+            //tablet.webEventReceived.disconnect(onMessage);  // <<< It's probably this that's missing?!
             HMD.closeTablet();
             tablet.gotoHomeScreen();
             isLoggedIn = Account.isLoggedIn();
@@ -90,15 +87,22 @@ function confirmShare(data) {
                 }
             });
             if (!outstanding && shouldOpenFeedAfterShare()) {
-                showFeedWindow();
+                //showFeedWindow();
             }
             if (needsLogin) { // after the possible feed, so that the login is on top
                 Account.checkAndSignalForAccessToken();
             }
-        }
     }
+}
+
+var SNAPSHOT_REVIEW_URL = Script.resolvePath("html/SnapshotReview.html");
+var isInSnapshotReview = false;
+function confirmShare(data) {
+    tablet.gotoWebScreen(SNAPSHOT_REVIEW_URL);
+    readyData = data;
     tablet.webEventReceived.connect(onMessage);
     HMD.openTablet();
+    isInSnapshotReview = true;
 }
 
 function snapshotShared(errorMessage) {
@@ -214,10 +218,18 @@ function processingGif() {
     }
 }
 
+function onTabletScreenChanged(type, url) {
+    if (isInSnapshotReview) {
+        tablet.webEventReceived.disconnect(onMessage);
+        isInSnapshotReview = false;
+    }
+}
+
 button.clicked.connect(onClicked);
 buttonConnected = true;
 Window.snapshotShared.connect(snapshotShared);
 Window.processingGif.connect(processingGif);
+tablet.screenChanged.connect(onTabletScreenChanged);
 
 Script.scriptEnding.connect(function () {
     if (buttonConnected) {
@@ -229,6 +241,7 @@ Script.scriptEnding.connect(function () {
     }
     Window.snapshotShared.disconnect(snapshotShared);
     Window.processingGif.disconnect(processingGif);
+    tablet.screenChanged.disconnect(onTabletScreenChanged);
 });
 
 }()); // END LOCAL_SCOPE

From 2682586c38eb554b804ff4e1de2e7c40f3af8056 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Mon, 27 Mar 2017 06:50:06 -0700
Subject: [PATCH 214/247] some clean-ups and a bug fix in PolyVox to mesh code

---
 .../src/RenderablePolyVoxEntityItem.cpp       | 30 +++++++++++++------
 libraries/fbx/src/OBJWriter.cpp               |  2 +-
 libraries/model/src/model/MeshProxy.cpp       |  6 ----
 3 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
index b7ca5b8e26..7b0146f5b7 100644
--- a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
+++ b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
@@ -690,6 +690,8 @@ bool RenderablePolyVoxEntityItem::updateDependents() {
             _voxelDataDirty = false;
         } else if (_volDataDirty) {
             _volDataDirty = false;
+        } else {
+            _meshReady = true;
         }
     });
     if (voxelDataDirty) {
@@ -707,7 +709,9 @@ void RenderablePolyVoxEntityItem::render(RenderArgs* args) {
     assert(getType() == EntityTypes::PolyVox);
     Q_ASSERT(args->_batch);
 
-    updateDependents();
+    if (_voxelDataDirty || _volDataDirty) {
+        updateDependents();
+    }
 
     model::MeshPointer mesh;
     glm::vec3 voxelVolumeSize;
@@ -769,6 +773,11 @@ void RenderablePolyVoxEntityItem::render(RenderArgs* args) {
                          0,
                          sizeof(PolyVox::PositionMaterialNormal));
 
+    // batch.setInputBuffer(gpu::Stream::NORMAL, mesh->getVertexBuffer()._buffer,
+    //                      12,
+    //                      sizeof(PolyVox::PositionMaterialNormal));
+
+
     batch.setIndexBuffer(gpu::UINT32, mesh->getIndexBuffer()._buffer, 0);
 
     if (!_xTextureURL.isEmpty() && !_xTexture) {
@@ -1287,23 +1296,26 @@ void RenderablePolyVoxEntityItem::recomputeMesh() {
         auto indexBuffer = std::make_shared<gpu::Buffer>(vecIndices.size() * sizeof(uint32_t),
                                                          (gpu::Byte*)vecIndices.data());
         auto indexBufferPtr = gpu::BufferPointer(indexBuffer);
-        gpu::BufferView indexBufferView(indexBufferPtr, gpu::Element(gpu::SCALAR, gpu::UINT32, gpu::RAW));
+        gpu::BufferView indexBufferView(indexBufferPtr, gpu::Element(gpu::SCALAR, gpu::UINT32, gpu::INDEX));
         mesh->setIndexBuffer(indexBufferView);
 
-        const std::vector<PolyVox::PositionMaterialNormal>& vecVertices = polyVoxMesh.getVertices();
+        const std::vector<PolyVox::PositionMaterialNormal>& vecVertices = polyVoxMesh.getRawVertexData();
         auto vertexBuffer = std::make_shared<gpu::Buffer>(vecVertices.size() * sizeof(PolyVox::PositionMaterialNormal),
                                                           (gpu::Byte*)vecVertices.data());
         auto vertexBufferPtr = gpu::BufferPointer(vertexBuffer);
         gpu::BufferView vertexBufferView(vertexBufferPtr, 0,
                                          vertexBufferPtr->getSize(),
                                          sizeof(PolyVox::PositionMaterialNormal),
-                                         gpu::Element(gpu::VEC3, gpu::FLOAT, gpu::RAW));
+                                         gpu::Element(gpu::VEC3, gpu::FLOAT, gpu::XYZ));
         mesh->setVertexBuffer(vertexBufferView);
+
+
         mesh->addAttribute(gpu::Stream::NORMAL,
-                           gpu::BufferView(vertexBufferPtr, sizeof(float) * 3,
-                                           vertexBufferPtr->getSize() ,
+                           gpu::BufferView(vertexBufferPtr,
+                                           sizeof(float) * 3, // polyvox mesh is packed: position, normal, material
+                                           vertexBufferPtr->getSize(),
                                            sizeof(PolyVox::PositionMaterialNormal),
-                                           gpu::Element(gpu::VEC3, gpu::FLOAT, gpu::RAW)));
+                                           gpu::Element(gpu::VEC3, gpu::FLOAT, gpu::XYZ)));
 
         std::vector<model::Mesh::Part> parts;
         parts.emplace_back(model::Mesh::Part((model::Index)0, // startIndex
@@ -1626,10 +1638,10 @@ bool RenderablePolyVoxEntityItem::getMeshes(MeshProxyList& result) {
             // the mesh will be in voxel-space.  transform it into object-space
             meshProxy = new MeshProxy(
                 _mesh->map([=](glm::vec3 position){ return glm::vec3(transform * glm::vec4(position, 1.0f)); },
-                           [=](glm::vec3 normal){ return glm::vec3(transform * glm::vec4(normal, 0.0f)); },
+                           [=](glm::vec3 normal){ return glm::normalize(glm::vec3(transform * glm::vec4(normal, 0.0f))); },
                            [&](uint32_t index){ return index; }));
             result << meshProxy;
         }
     });
-    return meshProxy;
+    return success;
 }
diff --git a/libraries/fbx/src/OBJWriter.cpp b/libraries/fbx/src/OBJWriter.cpp
index e236ecb0fa..034263eb53 100644
--- a/libraries/fbx/src/OBJWriter.cpp
+++ b/libraries/fbx/src/OBJWriter.cpp
@@ -73,7 +73,7 @@ bool writeOBJToTextStream(QTextStream& out, QList<MeshPointer> meshes) {
     foreach (const MeshPointer& mesh, meshes) {
         meshNormalStartOffset.append(currentNormalStartOffset);
         const gpu::BufferView& normalsBufferView = mesh->getAttributeBuffer(attributeTypeNormal);
-        gpu::BufferView::Index numNormals =  (gpu::BufferView::Index)normalsBufferView.getNumElements();
+        gpu::BufferView::Index numNormals = (gpu::BufferView::Index)normalsBufferView.getNumElements();
         for (gpu::BufferView::Index i = 0; i < numNormals; i++) {
             glm::vec3 normal = normalsBufferView.get<glm::vec3>(i);
             out << "vn ";
diff --git a/libraries/model/src/model/MeshProxy.cpp b/libraries/model/src/model/MeshProxy.cpp
index 01bafa086c..1b6fa43c82 100644
--- a/libraries/model/src/model/MeshProxy.cpp
+++ b/libraries/model/src/model/MeshProxy.cpp
@@ -26,14 +26,8 @@ QScriptValue meshesToScriptValue(QScriptEngine* engine, const MeshProxyList &in)
     QScriptValue result = engine->newArray();
     int i = 0;
     foreach (MeshProxy* const meshProxy, in) {
-        qDebug() << "meshesToScriptValue adding mesh: " << (void*)meshProxy;
-        // result.setProperty(i++, QScriptValue(engine, meshProxy));
         result.setProperty(i++, meshToScriptValue(engine, meshProxy));
-        // result.setProperty(QString::number(i++), QScriptValue(meshProxy));
-        // result[i] = QScriptValue(meshProxy);
-        // result << QScriptValue(meshProxy);
     }
-    // result.setProperty("length", i);
     return result;
 }
 

From 5ed0ff729b5f85de90d6bcdae84de54a2eca6f6c Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Mon, 27 Mar 2017 07:25:40 -0700
Subject: [PATCH 215/247] cleanups

---
 libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp | 2 +-
 libraries/entities/src/EntityScriptingInterface.cpp             | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
index 7b0146f5b7..5127739357 100644
--- a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
+++ b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
@@ -446,7 +446,6 @@ bool RenderablePolyVoxEntityItem::setSphere(glm::vec3 centerWorldCoords, float r
         }
     });
 
-
     if (result) {
         compressVolumeDataAndSendEditPacket();
     }
@@ -773,6 +772,7 @@ void RenderablePolyVoxEntityItem::render(RenderArgs* args) {
                          0,
                          sizeof(PolyVox::PositionMaterialNormal));
 
+    // TODO -- should we be setting this?
     // batch.setInputBuffer(gpu::Stream::NORMAL, mesh->getVertexBuffer()._buffer,
     //                      12,
     //                      sizeof(PolyVox::PositionMaterialNormal));
diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp
index 0888dd4fb9..4cf4bf8c67 100644
--- a/libraries/entities/src/EntityScriptingInterface.cpp
+++ b/libraries/entities/src/EntityScriptingInterface.cpp
@@ -1663,7 +1663,7 @@ void EntityScriptingInterface::getMeshes(QUuid entityID, QScriptValue callback)
     EntityItemPointer entity = static_cast<EntityItemPointer>(_entityTree->findEntityByEntityItemID(entityID));
     if (!entity) {
         qCDebug(entities) << "EntityScriptingInterface::getMeshes no entity with ID" << entityID;
-        QScriptValueList args { false, false };
+        QScriptValueList args { callback.engine()->undefinedValue(), false };
         callback.call(QScriptValue(), args);
         return;
     }

From b8eac7abef903c6f65206db6ff8106a74eb25620 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Mon, 27 Mar 2017 16:17:50 +0100
Subject: [PATCH 216/247] revoming useless code

---
 interface/resources/qml/hifi/Card.qml                       | 2 +-
 interface/resources/qml/hifi/TabletTextButton.qml           | 6 ------
 interface/resources/qml/hifi/tablet/TabletAddressDialog.qml | 2 +-
 3 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/interface/resources/qml/hifi/Card.qml b/interface/resources/qml/hifi/Card.qml
index 01a5441380..3d1ae0e64b 100644
--- a/interface/resources/qml/hifi/Card.qml
+++ b/interface/resources/qml/hifi/Card.qml
@@ -129,7 +129,7 @@ Rectangle {
     property int dropSamples: 9;
     property int dropSpread: 0;
     DropShadow {
-        visible: true;//showPlace && (desktop ? desktop.gradientsSupported : false)
+        visible: true;
         source: place;
         anchors.fill: place;
         horizontalOffset: dropHorizontalOffset;
diff --git a/interface/resources/qml/hifi/TabletTextButton.qml b/interface/resources/qml/hifi/TabletTextButton.qml
index 20f30f002c..12e53eb217 100644
--- a/interface/resources/qml/hifi/TabletTextButton.qml
+++ b/interface/resources/qml/hifi/TabletTextButton.qml
@@ -33,12 +33,6 @@ Rectangle {
         }
     }
 
-    /*Rectangle {
-        anchors.fill: parent
-        border.width: 3
-        border.color: clickArea.containMouse ? highlightColor : "transparent"
-        color: "transparent"
-    }*/
         
     Rectangle {
         id: indicator
diff --git a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
index e19f8ef72b..623054f233 100644
--- a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
@@ -45,7 +45,7 @@ StackView {
     Component.onDestruction: {
         root.parentChanged.disconnect(center);
     }
-    
+
     function center() {
         // Explicitly center in order to avoid warnings at shutdown
         anchors.centerIn = parent;

From f4255735a9fa1448af9690094ad25fca775dad89 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Mon, 27 Mar 2017 18:03:38 +0100
Subject: [PATCH 217/247] make login screen show up on the tablet on startup

---
 interface/src/ui/LoginDialog.cpp                   | 10 +++++-----
 .../script-engine/src/TabletScriptingInterface.cpp | 14 ++++++++++++++
 .../script-engine/src/TabletScriptingInterface.h   |  4 ++++
 3 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/interface/src/ui/LoginDialog.cpp b/interface/src/ui/LoginDialog.cpp
index dce76eb661..1fe09e7cec 100644
--- a/interface/src/ui/LoginDialog.cpp
+++ b/interface/src/ui/LoginDialog.cpp
@@ -47,11 +47,11 @@ void LoginDialog::showWithSelection()
     if (tablet->getToolbarMode()) {
         LoginDialog::show();
     } else {
-        if (!hmd->getShouldShowTablet() && !qApp->isHMDMode()) {
-            LoginDialog::show();
-        } else {
-            static const QUrl url("../../dialogs/TabletLoginDialog.qml");
-            tablet->pushOntoStack(url);
+        static const QUrl url("../../dialogs/TabletLoginDialog.qml");
+        qDebug() << "[DR] -> Push login onto the tablet";
+        tablet->initialScreen(url);
+        if (!hmd->getShouldShowTablet()) {
+            hmd->openTablet();
         }
     }
 }
diff --git a/libraries/script-engine/src/TabletScriptingInterface.cpp b/libraries/script-engine/src/TabletScriptingInterface.cpp
index 054cf83744..c287fbcfe7 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.cpp
+++ b/libraries/script-engine/src/TabletScriptingInterface.cpp
@@ -250,6 +250,15 @@ static QString getUsername() {
     }
 }
 
+void TabletProxy::initialScreen(const QVariant& url) {
+    if (getQmlTablet()) {
+        pushOntoStack(url);
+    } else {
+        _initialScreen = true;
+        _initialPath = url;
+    }
+}
+
 bool TabletProxy::isMessageDialogOpen() {
     if (_qmlTabletRoot) {
         QVariant result;
@@ -299,6 +308,11 @@ void TabletProxy::setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscr
                 QMetaObject::invokeMethod(_qmlTabletRoot, "setUsername", Q_ARG(const QVariant&, QVariant(getUsername())));
             }
         });
+
+        if (_initialScreen) {
+            pushOntoStack(_initialPath);
+            _initialScreen = false;
+        }
     } else {
         removeButtonsFromHomeScreen();
         _state = State::Uninitialized;
diff --git a/libraries/script-engine/src/TabletScriptingInterface.h b/libraries/script-engine/src/TabletScriptingInterface.h
index acc53653f8..2e7b91fa4c 100644
--- a/libraries/script-engine/src/TabletScriptingInterface.h
+++ b/libraries/script-engine/src/TabletScriptingInterface.h
@@ -97,6 +97,8 @@ public:
     bool getToolbarMode() const { return _toolbarMode; }
     void setToolbarMode(bool toolbarMode);
 
+    void initialScreen(const QVariant& url);
+
     /**jsdoc
      * transition to the home screen
      * @function TabletProxy#gotoHomeScreen
@@ -213,6 +215,8 @@ protected:
     void addButtonsToToolbar();
     void removeButtonsFromToolbar();
 
+    bool _initialScreen { false };
+    QVariant _initialPath { "" }; 
     QString _name;
     std::mutex _mutex;
     std::vector<QSharedPointer<TabletButtonProxy>> _tabletButtonProxies;

From 5796cbc898b3c82a02718339f6b25704e7d3af01 Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidelity.io>
Date: Mon, 27 Mar 2017 10:26:33 -0700
Subject: [PATCH 218/247] Bug-fix for touching deleted entities or overlays.

---
 .../system/controllers/handControllerGrab.js  | 51 ++++++++++++++-----
 1 file changed, 39 insertions(+), 12 deletions(-)

diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index c8b78b4d08..c93a721248 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -28,7 +28,7 @@ Script.include("/~/system/libraries/controllers.js");
 //
 
 var WANT_DEBUG = false;
-var WANT_DEBUG_STATE = true;
+var WANT_DEBUG_STATE = false;
 var WANT_DEBUG_SEARCH_NAME = null;
 
 var FORCE_IGNORE_IK = false;
@@ -670,12 +670,12 @@ function sendTouchMoveEventToStylusTarget(hand, stylusTarget) {
     }
 }
 
+// will return undefined if entity does not exist.
 function calculateStylusTargetFromEntity(stylusTip, entityID) {
     var props = entityPropertiesCache.getProps(entityID);
-
-    // entity could have been deleted.
-    if (props === undefined) {
-        return undefined;
+    if (props.rotation === undefined) {
+        // if rotation is missing from props object, then this entity has probably been deleted.
+        return;
     }
 
     // project stylus tip onto entity plane.
@@ -706,16 +706,18 @@ function calculateStylusTargetFromEntity(stylusTip, entityID) {
     };
 }
 
+// will return undefined if overlayID does not exist.
 function calculateStylusTargetFromOverlay(stylusTip, overlayID) {
     var overlayPosition = Overlays.getProperty(overlayID, "position");
-
-    // overlay could have been deleted.
     if (overlayPosition === undefined) {
-        return undefined;
+        return;
     }
 
     // project stylusTip onto overlay plane.
     var overlayRotation = Overlays.getProperty(overlayID, "rotation");
+    if (overlayRotation === undefined) {
+        return;
+    }
     var normal = Vec3.multiplyQbyV(overlayRotation, {x: 0, y: 0, z: 1});
     var distance = Vec3.dot(Vec3.subtract(stylusTip.position, overlayPosition), normal);
     var position = Vec3.subtract(stylusTip.position, Vec3.multiply(normal, distance));
@@ -724,16 +726,28 @@ function calculateStylusTargetFromOverlay(stylusTip, overlayID) {
     var invRot = Quat.inverse(overlayRotation);
     var localPos = Vec3.multiplyQbyV(invRot, Vec3.subtract(position, overlayPosition));
     var dpi = Overlays.getProperty(overlayID, "dpi");
+    if (dpi === undefined) {
+        return;
+    }
     var dimensions;
     if (dpi) {
         // Calculate physical dimensions for web3d overlay from resolution and dpi; "dimensions" property is used as a scale.
         var resolution = Overlays.getProperty(overlayID, "resolution");
+        if (resolution === undefined) {
+            return;
+        }
         resolution.z = 1;  // Circumvent divide-by-zero.
         var scale = Overlays.getProperty(overlayID, "dimensions");
+        if (scale === undefined) {
+            return;
+        }
         scale.z = 0.01;    // overlay dimensions are 2D, not 3D.
         dimensions = Vec3.multiplyVbyV(Vec3.multiply(resolution, INCHES_TO_METERS / dpi), scale);
     } else {
         dimensions = Overlays.getProperty(overlayID, "dimensions");
+        if (dimensions === undefined) {
+            return;
+        }
         if (!dimensions.z) {
             dimensions.z = 0.01;    // sometimes overlay dimensions are 2D, not 3D.
         }
@@ -1631,22 +1645,31 @@ function MyController(hand) {
         var stylusTargets = [];
         var candidateEntities = Entities.findEntities(tipPosition, WEB_DISPLAY_STYLUS_DISTANCE);
         entityPropertiesCache.addEntities(candidateEntities);
-        var i, props;
+        var i, props, stylusTarget;
         for (i = 0; i < candidateEntities.length; i++) {
             props = entityPropertiesCache.getProps(candidateEntities[i]);
             if (props && (props.type === "Web" || this.isTablet(candidateEntities[i]))) {
-                stylusTargets.push(calculateStylusTargetFromEntity(this.stylusTip, candidateEntities[i]));
+                stylusTarget = calculateStylusTargetFromEntity(this.stylusTip, candidateEntities[i]);
+                if (stylusTarget) {
+                    stylusTargets.push(stylusTarget);
+                }
             }
         }
 
         // add the tabletScreen, if it is valid
         if (HMD.tabletScreenID && HMD.tabletScreenID !== NULL_UUID && Overlays.getProperty(HMD.tabletScreenID, "visible")) {
-            stylusTargets.push(calculateStylusTargetFromOverlay(this.stylusTip, HMD.tabletScreenID));
+            stylusTarget = calculateStylusTargetFromOverlay(this.stylusTip, HMD.tabletScreenID);
+            if (stylusTarget) {
+                stylusTargets.push(stylusTarget);
+            }
         }
 
         // add the tablet home button.
         if (HMD.homeButtonID && HMD.homeButtonID !== NULL_UUID && Overlays.getProperty(HMD.homeButtonID, "visible")) {
-            stylusTargets.push(calculateStylusTargetFromOverlay(this.stylusTip, HMD.homeButtonID));
+            stylusTarget = calculateStylusTargetFromOverlay(this.stylusTip, HMD.homeButtonID);
+            if (stylusTarget) {
+                stylusTargets.push(stylusTarget);
+            }
         }
 
         var TABLET_MIN_HOVER_DISTANCE = 0.01;
@@ -3582,6 +3605,10 @@ function MyController(hand) {
 
     this.stylusTouchingExit = function () {
 
+        if (this.stylusTarget === undefined) {
+            return;
+        }
+
         // special case to handle home button.
         if (this.stylusTarget.overlayID === HMD.homeButtonID) {
             Messages.sendLocalMessage("home", this.stylusTarget.overlayID);

From cba7adf32a3f0f8a3f37740f2e7306b06bc56d29 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Mon, 27 Mar 2017 19:08:41 +0100
Subject: [PATCH 219/247] removed qDebug

---
 interface/src/ui/LoginDialog.cpp | 1 -
 1 file changed, 1 deletion(-)

diff --git a/interface/src/ui/LoginDialog.cpp b/interface/src/ui/LoginDialog.cpp
index 1fe09e7cec..10783afd23 100644
--- a/interface/src/ui/LoginDialog.cpp
+++ b/interface/src/ui/LoginDialog.cpp
@@ -48,7 +48,6 @@ void LoginDialog::showWithSelection()
         LoginDialog::show();
     } else {
         static const QUrl url("../../dialogs/TabletLoginDialog.qml");
-        qDebug() << "[DR] -> Push login onto the tablet";
         tablet->initialScreen(url);
         if (!hmd->getShouldShowTablet()) {
             hmd->openTablet();

From 35305b447660b260a394a2c379c7eaa1446496fe Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Tue, 28 Mar 2017 08:55:38 +1300
Subject: [PATCH 220/247] Make dialog single column with images above controls

---
 scripts/system/html/SnapshotReview.html    | 52 +++++++++++-----------
 scripts/system/html/css/SnapshotReview.css | 43 +-----------------
 2 files changed, 27 insertions(+), 68 deletions(-)

diff --git a/scripts/system/html/SnapshotReview.html b/scripts/system/html/SnapshotReview.html
index 68c91b8190..1ed9c0e223 100644
--- a/scripts/system/html/SnapshotReview.html
+++ b/scripts/system/html/SnapshotReview.html
@@ -9,38 +9,36 @@
 
 <body>
     <div class="snapshot-container">
-        <div class="snapshot-column-left">
-            <div class="snapsection">
-                <label class="title">Snapshot successfully saved!</label>
-            </div>
-            <hr />
-            <div class="snapsection">
-                <div id="sharing">
-                    <div class="prompt">Would you like to share your pics in the Snapshots feed?</div>
-                    <div class="button">
-                        <span class="compound-button">
-                            <input type="button" class="blue" id="share" value="Share in Feed" onclick="shareSelected()" />
-                            <span class="glyph"></span>
-                        </span>
-                    </div>
-                </div>
+        <div class="snapsection">
+            <label class="title">Snapshot successfully saved!</label>
+        </div>
+        <hr />
+        <div id="snapshot-images">
+        </div>
+        <div class="snapsection">
+            <div id="sharing">
+                <div class="prompt">Would you like to share your pics in the Snapshots feed?</div>
                 <div class="button">
-                    <input type="button" class="black" id="close" value="Don't Share" onclick="doNotShare()" />
+                    <span class="compound-button">
+                        <input type="button" class="blue" id="share" value="Share in Feed" onclick="shareSelected()" />
+                        <span class="glyph"></span>
+                    </span>
                 </div>
             </div>
-            <hr />
-            <div class="snapsection">
-                <span class="setting">
-                    <input type="button" class="glyph naked" id="snapshotSettings" value="@" onclick="snapshotSettings()" />
-                    <label for="snapshotSettings">Snapshot settings</label>
-                </span>
-                <span class="setting checkbox">
-                    <input id="openFeed" type="checkbox" checked />
-                    <label for="openFeed">Open feed after</label>
-                </span>
+            <div class="button">
+                <input type="button" class="black" id="close" value="Don't Share" onclick="doNotShare()" />
             </div>
         </div>
-        <div id="snapshot-images" class="snapshot-column-right">
+        <hr />
+        <div class="snapsection">
+            <span class="setting">
+                <input type="button" class="glyph naked" id="snapshotSettings" value="@" onclick="snapshotSettings()" />
+                <label for="snapshotSettings">Snapshot settings</label>
+            </span>
+            <span class="setting checkbox">
+                <input id="openFeed" type="checkbox" checked />
+                <label for="openFeed">Open feed after</label>
+            </span>
         </div>
     </div>
 </body>
diff --git a/scripts/system/html/css/SnapshotReview.css b/scripts/system/html/css/SnapshotReview.css
index c2965f92e1..cfc7dfc538 100644
--- a/scripts/system/html/css/SnapshotReview.css
+++ b/scripts/system/html/css/SnapshotReview.css
@@ -14,51 +14,12 @@
     padding-top: 3px;
 }
 
-.snapshot-column-left {
-    width: 320px;
-    position: absolute;
-    padding-top: 8px;
-}
-
-.snapshot-column-right {
-    margin-left: 342px;
-}
-
-.snapshot-column-right > div > img {
+#snapshot-images > img {
     width: 100%;
 }
 
-@media (max-width: 768px) {
-    .snapshot-column-left {
-        position: initial;
-        width: 100%;
-    }
-    .snapshot-column-right {
-        margin-left: 0;
-        width: 100%;
-    }
-    .snapshot-column-right > div > img {
-        margin-top: 18px !important;
-    }
-}
-
-.snapshot-column-right > div {
-    position: relative;
-    padding: 2px;
-}
-
-.snapshot-column-right > div > img {
-    border: 2px solid #575757;
-    margin: -2px;
-}
-
-hr {
-    padding-left: 0;
-    padding-right: 0;
-    margin: 21px 0;
-}
-
 .snapsection {
+    padding-top: 21px;
     text-align: center;
 }
 

From ead1f00bbf2c4d95e332238e6edeafa9122b60ed Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Tue, 28 Mar 2017 09:10:20 +1300
Subject: [PATCH 221/247] Title

---
 scripts/system/html/SnapshotReview.html    |  2 +-
 scripts/system/html/css/SnapshotReview.css | 14 +++++++++++---
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/scripts/system/html/SnapshotReview.html b/scripts/system/html/SnapshotReview.html
index 1ed9c0e223..089e223602 100644
--- a/scripts/system/html/SnapshotReview.html
+++ b/scripts/system/html/SnapshotReview.html
@@ -10,7 +10,7 @@
 <body>
     <div class="snapshot-container">
         <div class="snapsection">
-            <label class="title">Snapshot successfully saved!</label>
+            <label class="title">Snap</label>
         </div>
         <hr />
         <div id="snapshot-images">
diff --git a/scripts/system/html/css/SnapshotReview.css b/scripts/system/html/css/SnapshotReview.css
index cfc7dfc538..13fb119992 100644
--- a/scripts/system/html/css/SnapshotReview.css
+++ b/scripts/system/html/css/SnapshotReview.css
@@ -8,10 +8,12 @@
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
 */
 
+body {
+    padding-top: 0;
+}
 
 .snapshot-container {
     width: 100%;
-    padding-top: 3px;
 }
 
 #snapshot-images > img {
@@ -23,9 +25,15 @@
     text-align: center;
 }
 
+.snapsection:first-child {
+    padding-top: 0;
+    text-align: left;
+}
+
 .title {
-    text-transform: uppercase;
-    font-size: 12px;
+    font-size: 18px;
+    position: relative;
+    top: 12px;
 }
 
 .prompt {

From f764cd614b90f35e46167f73ee1c162a85e6db36 Mon Sep 17 00:00:00 2001
From: Bradley Austin Davis <bdavis@saintandreas.org>
Date: Mon, 27 Mar 2017 11:55:05 -0700
Subject: [PATCH 222/247] Don't hold KTX files open for longer than transfers
 require

---
 .../src/gpu/gl45/GL45BackendTexture.cpp       |  1 +
 .../gpu/gl45/GL45BackendVariableTexture.cpp   | 24 +++---
 libraries/gpu/src/gpu/Texture.cpp             | 10 +++
 libraries/gpu/src/gpu/Texture.h               | 18 +++-
 libraries/gpu/src/gpu/Texture_ktx.cpp         | 37 ++++----
 libraries/ktx/src/ktx/KTX.cpp                 | 84 ++++++++++++++-----
 libraries/ktx/src/ktx/KTX.h                   | 73 +++++++++++-----
 libraries/ktx/src/ktx/Reader.cpp              |  4 +-
 .../src/model-networking/TextureCache.cpp     |  7 +-
 tests/ktx/src/main.cpp                        | 58 ++++++-------
 10 files changed, 209 insertions(+), 107 deletions(-)

diff --git a/libraries/gpu-gl/src/gpu/gl45/GL45BackendTexture.cpp b/libraries/gpu-gl/src/gpu/gl45/GL45BackendTexture.cpp
index 36aaf75e81..7293c23052 100644
--- a/libraries/gpu-gl/src/gpu/gl45/GL45BackendTexture.cpp
+++ b/libraries/gpu-gl/src/gpu/gl45/GL45BackendTexture.cpp
@@ -222,6 +222,7 @@ GL45StrictResourceTexture::GL45StrictResourceTexture(const std::weak_ptr<GLBacke
             copyMipFaceFromTexture(sourceMip, targetMip, face);
         }
     }
+    _gpuObject.finishTransfer();
     if (texture.isAutogenerateMips()) {
         generateMips();
     }
diff --git a/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp b/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp
index d54ad1ea4b..3f6d1db268 100644
--- a/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp
+++ b/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp
@@ -85,14 +85,14 @@ TransferJob::TransferJob(const GL45VariableAllocationTexture& parent, uint16_t s
     auto transferDimensions = _parent._gpuObject.evalMipDimensions(sourceMip);
     GLenum format;
     GLenum type;
-    auto mipData = _parent._gpuObject.accessStoredMipFace(sourceMip, face);
     GLTexelFormat texelFormat = GLTexelFormat::evalGLTexelFormat(_parent._gpuObject.getTexelFormat(), _parent._gpuObject.getStoredMipFormat());
     format = texelFormat.format;
     type = texelFormat.type;
 
     if (0 == lines) {
-        _transferSize = mipData->getSize();
         _bufferingLambda = [=] {
+            auto mipData = _parent._gpuObject.accessStoredMipFace(sourceMip, face);
+            _transferSize = mipData->getSize();
             _buffer.resize(_transferSize);
             memcpy(&_buffer[0], mipData->readData(), _transferSize);
             _bufferingCompleted = true;
@@ -100,12 +100,13 @@ TransferJob::TransferJob(const GL45VariableAllocationTexture& parent, uint16_t s
 
     } else {
         transferDimensions.y = lines;
-        auto dimensions = _parent._gpuObject.evalMipDimensions(sourceMip);
-        auto mipSize = mipData->getSize();
-        auto bytesPerLine = (uint32_t)mipSize / dimensions.y;
-        _transferSize = bytesPerLine * lines;
-        auto sourceOffset = bytesPerLine * lineOffset;
         _bufferingLambda = [=] {
+            auto mipData = _parent._gpuObject.accessStoredMipFace(sourceMip, face);
+            auto dimensions = _parent._gpuObject.evalMipDimensions(sourceMip);
+            auto mipSize = mipData->getSize();
+            auto bytesPerLine = (uint32_t)mipSize / dimensions.y;
+            _transferSize = bytesPerLine * lines;
+            auto sourceOffset = bytesPerLine * lineOffset;
             _buffer.resize(_transferSize);
             memcpy(&_buffer[0], mipData->readData() + sourceOffset, _transferSize);
             _bufferingCompleted = true;
@@ -430,6 +431,7 @@ void GL45VariableAllocationTexture::executeNextTransfer(const TexturePointer& cu
         _currentTransferTexture = currentTexture;
         if (_pendingTransfers.front()->tryTransfer()) {
             _pendingTransfers.pop();
+            _currentTransferTexture->finishTransfer();
             _currentTransferTexture.reset();
         }
     }
@@ -454,7 +456,7 @@ GL45ResourceTexture::GL45ResourceTexture(const std::weak_ptr<GLBackend>& backend
     _memoryPressureStateStale = true;
     copyMipsFromTexture();
     syncSampler();
-
+	_gpuObject.finishTransfer();
 }
 
 void GL45ResourceTexture::allocateStorage(uint16 allocatedMip) {
@@ -585,10 +587,10 @@ void GL45ResourceTexture::populateTransferQueue() {
 
             // break down the transfers into chunks so that no single transfer is 
             // consuming more than X bandwidth
-            auto mipData = _gpuObject.accessStoredMipFace(sourceMip, face);
+            auto mipSize = _gpuObject.getStoredMipFaceSize(sourceMip, face);
             const auto lines = mipDimensions.y;
-            auto bytesPerLine = (uint32_t)mipData->getSize() / lines;
-            Q_ASSERT(0 == (mipData->getSize() % lines));
+            auto bytesPerLine = mipSize / lines;
+            Q_ASSERT(0 == (mipSize % lines));
             uint32_t linesPerTransfer = (uint32_t)(MAX_TRANSFER_SIZE / bytesPerLine);
             uint32_t lineOffset = 0;
             while (lineOffset < lines) {
diff --git a/libraries/gpu/src/gpu/Texture.cpp b/libraries/gpu/src/gpu/Texture.cpp
index 1f66b2900e..523d938854 100755
--- a/libraries/gpu/src/gpu/Texture.cpp
+++ b/libraries/gpu/src/gpu/Texture.cpp
@@ -149,6 +149,10 @@ PixelsPointer MemoryStorage::getMipFace(uint16 level, uint8 face) const {
     return PixelsPointer();
 }
 
+Size MemoryStorage::getMipFaceSize(uint16 level, uint8 face) const {
+    return getMipFace(level, face)->getSize();
+}
+
 bool MemoryStorage::isMipAvailable(uint16 level, uint8 face) const {
     PixelsPointer mipFace = getMipFace(level, face);
     return (mipFace && mipFace->getSize());
@@ -980,3 +984,9 @@ Texture::ExternalUpdates Texture::getUpdates() const {
 void Texture::setStorage(std::unique_ptr<Storage>& newStorage) {
     _storage.swap(newStorage);
 }
+
+void Texture::finishTransfer() const {
+    if (_storage) {
+        _storage->releaseTempResources();
+    }
+}
diff --git a/libraries/gpu/src/gpu/Texture.h b/libraries/gpu/src/gpu/Texture.h
index f7297b3280..f40e936578 100755
--- a/libraries/gpu/src/gpu/Texture.h
+++ b/libraries/gpu/src/gpu/Texture.h
@@ -25,6 +25,8 @@
 namespace ktx {
     class KTX;
     using KTXUniquePointer = std::unique_ptr<KTX>;
+    struct KTXDescriptor;
+    using KTXDescriptorPointer = std::unique_ptr<KTXDescriptor>;
     struct Header;
 }
 
@@ -261,9 +263,11 @@ public:
 
         virtual void reset() = 0;
         virtual PixelsPointer getMipFace(uint16 level, uint8 face = 0) const = 0;
+        virtual Size getMipFaceSize(uint16 level, uint8 face = 0) const = 0;
         virtual void assignMipData(uint16 level, const storage::StoragePointer& storage) = 0;
         virtual void assignMipFaceData(uint16 level, uint8 face, const storage::StoragePointer& storage) = 0;
         virtual bool isMipAvailable(uint16 level, uint8 face = 0) const = 0;
+        virtual void releaseTempResources() const {}
         Texture::Type getType() const { return _type; }
 
         Stamp getStamp() const { return _stamp; }
@@ -286,6 +290,7 @@ public:
     public:
         void reset() override;
         PixelsPointer getMipFace(uint16 level, uint8 face = 0) const override;
+        Size getMipFaceSize(uint16 level, uint8 face = 0) const override;
         void assignMipData(uint16 level, const storage::StoragePointer& storage) override;
         void assignMipFaceData(uint16 level, uint8 face, const storage::StoragePointer& storage) override;
         bool isMipAvailable(uint16 level, uint8 face = 0) const override;
@@ -297,8 +302,9 @@ public:
 
     class KtxStorage : public Storage {
     public:
-        KtxStorage(ktx::KTXUniquePointer& ktxData);
+        KtxStorage(const std::string& filename);
         PixelsPointer getMipFace(uint16 level, uint8 face = 0) const override;
+        Size getMipFaceSize(uint16 level, uint8 face = 0) const override;
         // By convention, all mip levels and faces MUST be populated when using KTX backing
         bool isMipAvailable(uint16 level, uint8 face = 0) const override { return true; }
 
@@ -310,9 +316,12 @@ public:
             throw std::runtime_error("Invalid call");
         }
         void reset() override { }
+        void releaseTempResources() const override { _ktxData.release(); }
 
     protected:
-        ktx::KTXUniquePointer _ktxData;
+        std::string _filename;
+        ktx::KTXDescriptorPointer _ktxDescriptor;
+        mutable ktx::KTXUniquePointer _ktxData;
         friend class Texture;
     };
 
@@ -478,9 +487,10 @@ public:
     // Access the the sub mips
     bool isStoredMipFaceAvailable(uint16 level, uint8 face = 0) const { return _storage->isMipAvailable(level, face); }
     const PixelsPointer accessStoredMipFace(uint16 level, uint8 face = 0) const { return _storage->getMipFace(level, face); }
+    Size getStoredMipFaceSize(uint16 level, uint8 face = 0) const { return _storage->getMipFaceSize(level, face); }
 
     void setStorage(std::unique_ptr<Storage>& newStorage);
-    void setKtxBacking(ktx::KTXUniquePointer& newBacking);
+    void setKtxBacking(const std::string& filename);
 
     // access sizes for the stored mips
     uint16 getStoredMipWidth(uint16 level) const;
@@ -516,6 +526,8 @@ public:
 
     ExternalUpdates getUpdates() const;
 
+    void finishTransfer() const;
+
     // Textures can be serialized directly to  ktx data file, here is how
     static ktx::KTXUniquePointer serialize(const Texture& texture);
     static Texture* unserialize(const ktx::KTXUniquePointer& srcData, TextureUsageType usageType = TextureUsageType::RESOURCE, Usage usage = Usage(), const Sampler::Desc& sampler = Sampler::Desc());
diff --git a/libraries/gpu/src/gpu/Texture_ktx.cpp b/libraries/gpu/src/gpu/Texture_ktx.cpp
index 5f0ededee7..ef96810251 100644
--- a/libraries/gpu/src/gpu/Texture_ktx.cpp
+++ b/libraries/gpu/src/gpu/Texture_ktx.cpp
@@ -42,30 +42,33 @@ struct GPUKTXPayload {
 
 std::string GPUKTXPayload::KEY { "hifi.gpu" };
 
-KtxStorage::KtxStorage(ktx::KTXUniquePointer& ktxData) {
-
-    // if the source ktx is valid let's config this KtxStorage correctly
-    if (ktxData && ktxData->getHeader()) {
-
-        // now that we know the ktx, let's get the header info to configure this Texture::Storage:
-        Format mipFormat = Format::COLOR_BGRA_32;
-        Format texelFormat = Format::COLOR_SRGBA_32;
-        if (Texture::evalTextureFormat(*ktxData->getHeader(), mipFormat, texelFormat)) {
-            _format = mipFormat;
-        }
-
+KtxStorage::KtxStorage(const std::string& filename) : _filename(filename) {
+    ktx::StoragePointer storage { new storage::FileStorage(_filename.c_str()) };
+    auto ktxPointer = ktx::KTX::create(storage);
+    _ktxDescriptor.reset(new ktx::KTXDescriptor(ktxPointer->toDescriptor()));
 
+    // now that we know the ktx, let's get the header info to configure this Texture::Storage:
+    Format mipFormat = Format::COLOR_BGRA_32;
+    Format texelFormat = Format::COLOR_SRGBA_32;
+    if (Texture::evalTextureFormat(_ktxDescriptor->header, mipFormat, texelFormat)) {
+        _format = mipFormat;
     }
-
-    _ktxData.reset(ktxData.release());
 }
 
 PixelsPointer KtxStorage::getMipFace(uint16 level, uint8 face) const {
+    if (!_ktxData) {
+        ktx::StoragePointer storage { new storage::FileStorage(_filename.c_str()) };
+        _ktxData = _ktxDescriptor->toKTX(storage);
+    }
     return _ktxData->getMipFaceTexelsData(level, face);
 }
 
-void Texture::setKtxBacking(ktx::KTXUniquePointer& ktxBacking) {
-    auto newBacking = std::unique_ptr<Storage>(new KtxStorage(ktxBacking));
+Size KtxStorage::getMipFaceSize(uint16 level, uint8 face) const {
+    return _ktxDescriptor->getMipFaceTexelsSize(level, face);
+}
+
+void Texture::setKtxBacking(const std::string& filename) {
+    auto newBacking = std::unique_ptr<Storage>(new KtxStorage(filename));
     setStorage(newBacking);
 }
 
@@ -181,7 +184,7 @@ Texture* Texture::unserialize(const ktx::KTXUniquePointer& srcData, TextureUsage
     if (!srcData) {
         return nullptr;
     }
-    const auto& header = *srcData->getHeader();
+    const auto& header = srcData->getHeader();
 
     Format mipFormat = Format::COLOR_BGRA_32;
     Format texelFormat = Format::COLOR_SRGBA_32;
diff --git a/libraries/ktx/src/ktx/KTX.cpp b/libraries/ktx/src/ktx/KTX.cpp
index bbd4e1bc86..90ca19d762 100644
--- a/libraries/ktx/src/ktx/KTX.cpp
+++ b/libraries/ktx/src/ktx/KTX.cpp
@@ -108,47 +108,39 @@ KTX::~KTX() {
 
 void KTX::resetStorage(const StoragePointer& storage) {
     _storage = storage;
+    if (_storage->size() >= sizeof(Header)) {
+        memcpy(&_header, _storage->data(), sizeof(Header));
+    }
 }
 
-const Header* KTX::getHeader() const {
-    if (!_storage) {
-        return nullptr;
-    } 
-    return reinterpret_cast<const Header*>(_storage->data());
+const Header& KTX::getHeader() const {
+    return _header;
 }
 
 
 size_t KTX::getKeyValueDataSize() const {
-    if (_storage) {
-        return getHeader()->bytesOfKeyValueData;
-    } else {
-        return 0;
-    }
+    return _header.bytesOfKeyValueData;
 }
 
 size_t KTX::getTexelsDataSize() const {
-    if (_storage) {
-        //return  _storage->size() - (sizeof(Header) + getKeyValueDataSize());
-        return  (_storage->data() + _storage->size()) - getTexelsData();
-    } else {
+    if (!_storage) {
         return 0;
     }
+    return  (_storage->data() + _storage->size()) - getTexelsData();
 }
 
 const Byte* KTX::getKeyValueData() const {
-    if (_storage) {
-        return (_storage->data() + sizeof(Header));
-    } else {
+    if (!_storage) {
         return nullptr;
     }
+    return (_storage->data() + sizeof(Header));
 }
 
 const Byte* KTX::getTexelsData() const {
-    if (_storage) {
-        return (_storage->data() + sizeof(Header) + getKeyValueDataSize());
-    } else {
+    if (!_storage) {
         return nullptr;
     }
+    return (_storage->data() + sizeof(Header) + getKeyValueDataSize());
 }
 
 storage::StoragePointer KTX::getMipFaceTexelsData(uint16_t mip, uint8_t face) const {
@@ -163,3 +155,55 @@ storage::StoragePointer KTX::getMipFaceTexelsData(uint16_t mip, uint8_t face) co
     }
     return result;
 }
+
+size_t KTXDescriptor::getMipFaceTexelsSize(uint16_t mip, uint8_t face) const {
+    size_t result { 0 };
+    if (mip < images.size()) {
+        const auto& faces = images[mip];
+        if (face < faces._numFaces) {
+            result = faces._faceSize;
+        }
+    }
+    return result;
+}
+
+ImageDescriptor Image::toImageDescriptor(const Byte* baseAddress) const {
+    FaceOffsets offsets;
+    offsets.resize(_faceBytes.size());
+    for (size_t face = 0; face < _numFaces; ++face) {
+        offsets[face] = _faceBytes[face] - baseAddress;
+    }
+    // Note, implicit cast of *this to const ImageHeader&
+    return ImageDescriptor(*this, offsets);
+}
+
+Image ImageDescriptor::toImage(const ktx::StoragePointer& storage) const {
+    FaceBytes faces;
+    faces.resize(_faceOffsets.size());
+    for (size_t face = 0; face < _numFaces; ++face) {
+        faces[face] = storage->data() + _faceOffsets[face];
+    }
+    // Note, implicit cast of *this to const ImageHeader&
+    return Image(*this, faces);
+}
+
+KTXDescriptor KTX::toDescriptor() const {
+    ImageDescriptors newDescriptors;
+    auto storageStart = _storage ? _storage->data() : nullptr;
+    for (size_t i = 0; i < _images.size(); ++i) {
+        newDescriptors.emplace_back(_images[i].toImageDescriptor(storageStart));
+    }
+    return { this->_header, this->_keyValues, newDescriptors };
+}
+
+std::unique_ptr<KTX> KTXDescriptor::toKTX(const ktx::StoragePointer& storage) const {
+    Images newImages;
+    for (size_t i = 0; i < images.size(); ++i) {
+        newImages.emplace_back(images[i].toImage(storage));
+    }
+
+    return std::unique_ptr<KTX>(new KTX { storage, header, keyValues, newImages });
+}
+
+KTX::KTX(const StoragePointer& storage, const Header& header, const KeyValues& keyValues, const Images& images)
+    : _storage(storage), _header(header), _keyValues(keyValues), _images(images) { }
\ No newline at end of file
diff --git a/libraries/ktx/src/ktx/KTX.h b/libraries/ktx/src/ktx/KTX.h
index 8e901b1105..c34127d357 100644
--- a/libraries/ktx/src/ktx/KTX.h
+++ b/libraries/ktx/src/ktx/KTX.h
@@ -407,43 +407,69 @@ namespace ktx {
     };
     using KeyValues = KeyValue::KeyValues;
 
-
-    struct Image {
+    struct ImageHeader {
+        using FaceOffsets = std::vector<size_t>;
         using FaceBytes = std::vector<const Byte*>;
-
-        uint32_t _numFaces{ 1 };
-        uint32_t _imageSize;
-        uint32_t _faceSize;
-        uint32_t _padding;
-        FaceBytes _faceBytes;
-        
-
-        Image(uint32_t imageSize, uint32_t padding, const Byte* bytes) :
-            _numFaces(1),
-            _imageSize(imageSize),
+        const uint32_t _numFaces;
+        const uint32_t _imageSize;
+        const uint32_t _faceSize;
+        const uint32_t _padding;
+        ImageHeader(bool cube, uint32_t imageSize, uint32_t padding) : 
+            _numFaces(cube ? NUM_CUBEMAPFACES : 1),
+            _imageSize(imageSize * _numFaces),
             _faceSize(imageSize),
-            _padding(padding),
-            _faceBytes(1, bytes) {}
+            _padding(padding) {
+        }
+    };
 
+    struct Image;
+
+    struct ImageDescriptor : public ImageHeader {
+        const FaceOffsets _faceOffsets;
+        ImageDescriptor(const ImageHeader& header, const FaceOffsets& offsets) : ImageHeader(header), _faceOffsets(offsets) {}
+        Image toImage(const ktx::StoragePointer& storage) const;
+    };
+
+    using ImageDescriptors = std::vector<ImageDescriptor>;
+
+    struct Image : public ImageHeader {
+        FaceBytes _faceBytes;
+        Image(const ImageHeader& header, const FaceBytes& faces) : ImageHeader(header), _faceBytes(faces) {}
+        Image(uint32_t imageSize, uint32_t padding, const Byte* bytes) :
+            ImageHeader(false, imageSize, padding),
+            _faceBytes(1, bytes) {}
         Image(uint32_t pageSize, uint32_t padding, const FaceBytes& cubeFaceBytes) :
-            _numFaces(NUM_CUBEMAPFACES),
-            _imageSize(pageSize * NUM_CUBEMAPFACES),
-            _faceSize(pageSize),
-            _padding(padding)
+            ImageHeader(true, pageSize, padding)
             {
                 if (cubeFaceBytes.size() == NUM_CUBEMAPFACES) {
                     _faceBytes = cubeFaceBytes;
                 }
             }
+
+        ImageDescriptor toImageDescriptor(const Byte* baseAddress) const;
     };
+
     using Images = std::vector<Image>;
 
+    class KTX;
+
+    // A KTX descriptor is a lightweight container for all the information about a serialized KTX file, but without the 
+    // actual image / face data available.
+    struct KTXDescriptor {
+        KTXDescriptor(const Header& header, const KeyValues& keyValues, const ImageDescriptors& imageDescriptors) : header(header), keyValues(keyValues), images(imageDescriptors) {}
+        const Header header;
+        const KeyValues keyValues;
+        const ImageDescriptors images;
+        size_t getMipFaceTexelsSize(uint16_t mip = 0, uint8_t face = 0) const;
+        std::unique_ptr<KTX> toKTX(const ktx::StoragePointer& storage) const;
+    };
+
     class KTX {
         void resetStorage(const StoragePointer& src);
 
         KTX();
+        KTX(const StoragePointer& storage, const Header& header, const KeyValues& keyValues, const Images& images);
     public:
-
         ~KTX();
 
         // Define a KTX object manually to write it somewhere (in a file on disk?)
@@ -475,18 +501,23 @@ namespace ktx {
         static Images parseImages(const Header& header, size_t srcSize, const Byte* srcBytes);
 
         // Access raw pointers to the main sections of the KTX
-        const Header* getHeader() const;
+        const Header& getHeader() const;
+
         const Byte* getKeyValueData() const;
         const Byte* getTexelsData() const;
         storage::StoragePointer getMipFaceTexelsData(uint16_t mip = 0, uint8_t face = 0) const;
         const StoragePointer& getStorage() const { return _storage; }
 
+        KTXDescriptor toDescriptor() const;
         size_t getKeyValueDataSize() const;
         size_t getTexelsDataSize() const;
 
+        Header _header;
         StoragePointer _storage;
         KeyValues _keyValues;
         Images _images;
+
+        friend struct KTXDescriptor;
     };
 
 }
diff --git a/libraries/ktx/src/ktx/Reader.cpp b/libraries/ktx/src/ktx/Reader.cpp
index 277ce42e69..bf72faeba5 100644
--- a/libraries/ktx/src/ktx/Reader.cpp
+++ b/libraries/ktx/src/ktx/Reader.cpp
@@ -185,10 +185,10 @@ namespace ktx {
         result->resetStorage(src);
 
         // read metadata
-        result->_keyValues = parseKeyValues(result->getHeader()->bytesOfKeyValueData, result->getKeyValueData());
+        result->_keyValues = parseKeyValues(result->getHeader().bytesOfKeyValueData, result->getKeyValueData());
 
         // populate image table
-        result->_images = parseImages(*result->getHeader(), result->getTexelsDataSize(), result->getTexelsData());
+        result->_images = parseImages(result->getHeader(), result->getTexelsDataSize(), result->getTexelsData());
 
         return result;
     }
diff --git a/libraries/model-networking/src/model-networking/TextureCache.cpp b/libraries/model-networking/src/model-networking/TextureCache.cpp
index 5dfaddd471..17cafaa5ad 100644
--- a/libraries/model-networking/src/model-networking/TextureCache.cpp
+++ b/libraries/model-networking/src/model-networking/TextureCache.cpp
@@ -444,7 +444,7 @@ void NetworkTexture::loadContent(const QByteArray& content) {
                     texture.reset(gpu::Texture::unserialize(ktx));
                     // Ensure that the texture population worked
                     if (texture) {
-                        texture->setKtxBacking(ktx);
+                        texture->setKtxBacking(ktxFile->getFilepath());
                         texture = textureCache->cacheTextureByHash(hash, texture);
                     }
                 }
@@ -586,10 +586,7 @@ void ImageReader::read() {
                 qCWarning(modelnetworking) << _url << "file cache failed";
             } else {
                 resource.staticCast<NetworkTexture>()->_file = file;
-                auto fileKtx = file->getKTX();
-                if (fileKtx) {
-                    texture->setKtxBacking(fileKtx);
-                }
+                texture->setKtxBacking(file->getFilepath());
             }
         }
 
diff --git a/tests/ktx/src/main.cpp b/tests/ktx/src/main.cpp
index aa6795e17b..3a6fcabf43 100644
--- a/tests/ktx/src/main.cpp
+++ b/tests/ktx/src/main.cpp
@@ -111,38 +111,40 @@ int main(int argc, char** argv) {
         outFile.close();
     }
 
-    auto ktxFile = ktx::KTX::create(std::shared_ptr<storage::Storage>(new storage::FileStorage(TEST_IMAGE_KTX)));
     {
-        const auto& memStorage = ktxMemory->getStorage();
-        const auto& fileStorage = ktxFile->getStorage();
-        Q_ASSERT(memStorage->size() == fileStorage->size());
-        Q_ASSERT(memStorage->data() != fileStorage->data());
-        Q_ASSERT(0 == memcmp(memStorage->data(), fileStorage->data(), memStorage->size()));
-        Q_ASSERT(ktxFile->_images.size() == ktxMemory->_images.size());
-        auto imageCount = ktxFile->_images.size();
-        auto startMemory = ktxMemory->_storage->data();
-        auto startFile = ktxFile->_storage->data();
-        for (size_t i = 0; i < imageCount; ++i) {
-            auto memImages = ktxMemory->_images[i];
-            auto fileImages = ktxFile->_images[i];
-            Q_ASSERT(memImages._padding == fileImages._padding);
-            Q_ASSERT(memImages._numFaces == fileImages._numFaces);
-            Q_ASSERT(memImages._imageSize == fileImages._imageSize);
-            Q_ASSERT(memImages._faceSize == fileImages._faceSize);
-            Q_ASSERT(memImages._faceBytes.size() == memImages._numFaces);
-            Q_ASSERT(fileImages._faceBytes.size() == fileImages._numFaces);
-            auto faceCount = fileImages._numFaces;
-            for (uint32_t face = 0; face < faceCount; ++face) {
-                auto memFace = memImages._faceBytes[face];
-                auto memOffset = memFace - startMemory;
-                auto fileFace = fileImages._faceBytes[face];
-                auto fileOffset = fileFace - startFile;
-                Q_ASSERT(memOffset % 4 == 0);
-                Q_ASSERT(memOffset == fileOffset);
+        auto ktxFile = ktx::KTX::create(std::shared_ptr<storage::Storage>(new storage::FileStorage(TEST_IMAGE_KTX)));
+        {
+            const auto& memStorage = ktxMemory->getStorage();
+            const auto& fileStorage = ktxFile->getStorage();
+            Q_ASSERT(memStorage->size() == fileStorage->size());
+            Q_ASSERT(memStorage->data() != fileStorage->data());
+            Q_ASSERT(0 == memcmp(memStorage->data(), fileStorage->data(), memStorage->size()));
+            Q_ASSERT(ktxFile->_images.size() == ktxMemory->_images.size());
+            auto imageCount = ktxFile->_images.size();
+            auto startMemory = ktxMemory->_storage->data();
+            auto startFile = ktxFile->_storage->data();
+            for (size_t i = 0; i < imageCount; ++i) {
+                auto memImages = ktxMemory->_images[i];
+                auto fileImages = ktxFile->_images[i];
+                Q_ASSERT(memImages._padding == fileImages._padding);
+                Q_ASSERT(memImages._numFaces == fileImages._numFaces);
+                Q_ASSERT(memImages._imageSize == fileImages._imageSize);
+                Q_ASSERT(memImages._faceSize == fileImages._faceSize);
+                Q_ASSERT(memImages._faceBytes.size() == memImages._numFaces);
+                Q_ASSERT(fileImages._faceBytes.size() == fileImages._numFaces);
+                auto faceCount = fileImages._numFaces;
+                for (uint32_t face = 0; face < faceCount; ++face) {
+                    auto memFace = memImages._faceBytes[face];
+                    auto memOffset = memFace - startMemory;
+                    auto fileFace = fileImages._faceBytes[face];
+                    auto fileOffset = fileFace - startFile;
+                    Q_ASSERT(memOffset % 4 == 0);
+                    Q_ASSERT(memOffset == fileOffset);
+                }
             }
         }
     }
-    testTexture->setKtxBacking(ktxFile);
+    testTexture->setKtxBacking(TEST_IMAGE_KTX.toStdString());
     return 0;
 }
 

From a0c42bacdba585c06423078ab1ab6e2649bda401 Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidelity.io>
Date: Mon, 27 Mar 2017 14:26:17 -0700
Subject: [PATCH 223/247] Fix problem with ContextMenu triggering on button up
 and button down.

This is fixed by clearing the ButtonPressedMap in the KeyboardMouseDevice every update.
Previously, this button would never be cleared, causing other controller actions mapped to the same button to have the incorrect state.
In this case, ContextMenu action would become 2 when pressed and 1 when released, anytime after the right mouse button was pressed.
---
 .../input-plugins/src/input-plugins/KeyboardMouseDevice.cpp   | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp
index ddb2f482a1..b5a2fc6b3c 100755
--- a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp
+++ b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.cpp
@@ -25,6 +25,7 @@ void KeyboardMouseDevice::pluginUpdate(float deltaTime, const controller::InputC
     auto userInputMapper = DependencyManager::get<controller::UserInputMapper>();
     userInputMapper->withLock([&, this]() {
         _inputDevice->update(deltaTime, inputCalibrationData);
+        eraseMouseClicked();
 
         _inputDevice->_axisStateMap[MOUSE_AXIS_X] = _lastCursor.x();
         _inputDevice->_axisStateMap[MOUSE_AXIS_Y] = _lastCursor.y();
@@ -78,8 +79,6 @@ void KeyboardMouseDevice::mousePressEvent(QMouseEvent* event) {
 
     _mousePressPos = event->pos();
     _clickDeadspotActive = true;
-
-    eraseMouseClicked();
 }
 
 void KeyboardMouseDevice::mouseReleaseEvent(QMouseEvent* event) {
@@ -122,7 +121,6 @@ void KeyboardMouseDevice::mouseMoveEvent(QMouseEvent* event) {
 
     const int CLICK_EVENT_DEADSPOT = 6; // pixels
     if (_clickDeadspotActive && (_mousePressPos - currentPos).manhattanLength() > CLICK_EVENT_DEADSPOT) {
-        eraseMouseClicked();
         _clickDeadspotActive = false;
     }
 }

From 018138f422bb639652fb492ced76e3cdf4edbada Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Mon, 27 Mar 2017 22:46:06 +0100
Subject: [PATCH 224/247] fixed some issues with tablet help

---
 .../resources/html/img/tablet-help-oculus.jpg | Bin 255457 -> 258949 bytes
 interface/resources/html/tabletHelp.html      |   2 +-
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/resources/html/img/tablet-help-oculus.jpg b/interface/resources/html/img/tablet-help-oculus.jpg
index 26f1672405322c1a6e0333be6b2a058575bcf0f2..b4f54396e08e01406ac844216590f765b2e1bb7f 100644
GIT binary patch
literal 258949
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%0A4dIb)95jh?i
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
UasV@hFWCu7sVlo874m%RKSoJE6#xJL

literal 255457
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%0A^hP_Ru|~;lQ8yV*
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
D%8dhA

diff --git a/interface/resources/html/tabletHelp.html b/interface/resources/html/tabletHelp.html
index 635c557de3..cbd7ffcfe7 100644
--- a/interface/resources/html/tabletHelp.html
+++ b/interface/resources/html/tabletHelp.html
@@ -70,7 +70,7 @@
                 switch (index) 
                 {
                     case 0:
-                        handControllerImageURL = "img/tablet-help-keyboard.jpg";
+                        handControllerImageURL = "img/tablet-help-oculus.jpg";
                         showHandControllers();
                         break;
                     case 1:

From 876dd4c8509befd5e9762e8c39fc9f9f66c3ea65 Mon Sep 17 00:00:00 2001
From: ZappoMan <brad@highfidelity.io>
Date: Tue, 24 Jan 2017 09:50:48 -0800
Subject: [PATCH 225/247] add the default environment variable name for the
 kinect plugin to the search hints

---
 cmake/modules/FindKinect.cmake | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/cmake/modules/FindKinect.cmake b/cmake/modules/FindKinect.cmake
index 7607de1f44..895c6ebe8a 100644
--- a/cmake/modules/FindKinect.cmake
+++ b/cmake/modules/FindKinect.cmake
@@ -21,7 +21,7 @@
 include("${MACRO_DIR}/HifiLibrarySearchHints.cmake")
 hifi_library_search_hints("kinect")
 
-find_path(KINECT_INCLUDE_DIRS Kinect.h PATH_SUFFIXES inc HINTS $ENV{KINECT_ROOT_DIR})
+find_path(KINECT_INCLUDE_DIRS Kinect.h PATH_SUFFIXES inc HINTS $ENV{KINECT_ROOT_DIR} $ENV{KINECTSDK20_DIR})
 
 if (WIN32)
 
@@ -35,7 +35,7 @@ if (WIN32)
         KINECT_LIBRARY_RELEASE Kinect20 
         PATH_SUFFIXES "Lib/${ARCH_DIR}" "lib" 
         HINTS ${KINECT_SEARCH_DIRS}
-        PATH $ENV{KINECT_ROOT_DIR})
+        PATHS $ENV{KINECT_ROOT_DIR} $ENV{KINECTSDK20_DIR})
 
   set(KINECT_LIBRARIES ${KINECT_LIBRARY})
 

From 02535722ba8916b0070eab46805a2484c4d6c876 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Mon, 27 Mar 2017 23:31:41 +0100
Subject: [PATCH 226/247] removed visible to others opition from general
 settings

---
 interface/src/ui/PreferencesDialog.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/interface/src/ui/PreferencesDialog.cpp b/interface/src/ui/PreferencesDialog.cpp
index c2caf91045..5c239f6e13 100644
--- a/interface/src/ui/PreferencesDialog.cpp
+++ b/interface/src/ui/PreferencesDialog.cpp
@@ -102,11 +102,12 @@ void setupPreferences() {
         auto setter = [](bool value) { qApp->setHmdTabletBecomesToolbarSetting(value); };
         preferences->addPreference(new CheckPreference(UI_CATEGORY, "HMD Tablet Becomes Toolbar", getter, setter));
     }
-    {
+    // TODO
+    /*{
         auto getter = []()->bool { return qApp->getTabletVisibleToOthersSetting(); };
         auto setter = [](bool value) { qApp->setTabletVisibleToOthersSetting(value); };
         preferences->addPreference(new CheckPreference(UI_CATEGORY, "Tablet Is Visible To Others", getter, setter));
-    }
+        }*/
     {
         auto getter = []()->bool { return qApp->getPreferAvatarFingerOverStylus(); };
         auto setter = [](bool value) { qApp->setPreferAvatarFingerOverStylus(value); };

From 7434cc5644c583e5489a9f047623d1df8e168aa6 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Tue, 28 Mar 2017 00:02:02 +0100
Subject: [PATCH 227/247] force vto to false on start up

---
 interface/src/Application.cpp          | 4 ++--
 interface/src/ui/PreferencesDialog.cpp | 1 +
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index a96ef7c5c6..32d2ee506b 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -2000,7 +2000,7 @@ void Application::initializeUi() {
     rootContext->setContextProperty("ScriptDiscoveryService", DependencyManager::get<ScriptEngines>().data());
     rootContext->setContextProperty("AudioDevice", AudioDeviceScriptingInterface::getInstance());
 
-    // Caches
+    
     rootContext->setContextProperty("AnimationCache", DependencyManager::get<AnimationCache>().data());
     rootContext->setContextProperty("TextureCache", DependencyManager::get<TextureCache>().data());
     rootContext->setContextProperty("ModelCache", DependencyManager::get<ModelCache>().data());
@@ -3788,7 +3788,7 @@ void Application::loadSettings() {
     }
 
     getMyAvatar()->loadData();
-
+    setTabletVisibleToOthersSetting(false);
     _settingsLoaded = true;
 }
 
diff --git a/interface/src/ui/PreferencesDialog.cpp b/interface/src/ui/PreferencesDialog.cpp
index 5c239f6e13..5983d7cc25 100644
--- a/interface/src/ui/PreferencesDialog.cpp
+++ b/interface/src/ui/PreferencesDialog.cpp
@@ -103,6 +103,7 @@ void setupPreferences() {
         preferences->addPreference(new CheckPreference(UI_CATEGORY, "HMD Tablet Becomes Toolbar", getter, setter));
     }
     // TODO
+    // Note: If this code is added back, you must remove the line "setTabletVisibleToOthersSetting(false)" from Application::loadSettings()
     /*{
         auto getter = []()->bool { return qApp->getTabletVisibleToOthersSetting(); };
         auto setter = [](bool value) { qApp->setTabletVisibleToOthersSetting(value); };

From 65be71fa69486bf9196f3f12fc89d2580d661f81 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Tue, 28 Mar 2017 00:05:02 +0100
Subject: [PATCH 228/247] min diff

---
 interface/src/Application.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 32d2ee506b..25a585ea34 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -2000,7 +2000,7 @@ void Application::initializeUi() {
     rootContext->setContextProperty("ScriptDiscoveryService", DependencyManager::get<ScriptEngines>().data());
     rootContext->setContextProperty("AudioDevice", AudioDeviceScriptingInterface::getInstance());
 
-    
+    // Caches
     rootContext->setContextProperty("AnimationCache", DependencyManager::get<AnimationCache>().data());
     rootContext->setContextProperty("TextureCache", DependencyManager::get<TextureCache>().data());
     rootContext->setContextProperty("ModelCache", DependencyManager::get<ModelCache>().data());

From 638364497ddf5d1cb37b19b1cbf73ff217fd198b Mon Sep 17 00:00:00 2001
From: Bradley Austin Davis <bdavis@saintandreas.org>
Date: Mon, 27 Mar 2017 16:17:09 -0700
Subject: [PATCH 229/247] Trying a different tactic to avoid multiple
 concurrent file access

---
 .../src/gpu/gl45/GL45BackendTexture.cpp       |  1 -
 .../gpu/gl45/GL45BackendVariableTexture.cpp   |  3 +-
 libraries/gpu/src/gpu/Texture.cpp             | 42 +++++++------------
 libraries/gpu/src/gpu/Texture.h               |  7 +---
 libraries/gpu/src/gpu/Texture_ktx.cpp         | 37 +++++++---------
 libraries/ktx/src/ktx/KTX.cpp                 | 20 +++++----
 libraries/ktx/src/ktx/KTX.h                   |  2 +-
 .../src/model-networking/KTXCache.cpp         |  7 ----
 .../src/model-networking/KTXCache.h           |  3 --
 .../src/model-networking/TextureCache.cpp     | 12 ++----
 10 files changed, 49 insertions(+), 85 deletions(-)

diff --git a/libraries/gpu-gl/src/gpu/gl45/GL45BackendTexture.cpp b/libraries/gpu-gl/src/gpu/gl45/GL45BackendTexture.cpp
index 7293c23052..36aaf75e81 100644
--- a/libraries/gpu-gl/src/gpu/gl45/GL45BackendTexture.cpp
+++ b/libraries/gpu-gl/src/gpu/gl45/GL45BackendTexture.cpp
@@ -222,7 +222,6 @@ GL45StrictResourceTexture::GL45StrictResourceTexture(const std::weak_ptr<GLBacke
             copyMipFaceFromTexture(sourceMip, targetMip, face);
         }
     }
-    _gpuObject.finishTransfer();
     if (texture.isAutogenerateMips()) {
         generateMips();
     }
diff --git a/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp b/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp
index 3f6d1db268..65be154666 100644
--- a/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp
+++ b/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp
@@ -431,7 +431,6 @@ void GL45VariableAllocationTexture::executeNextTransfer(const TexturePointer& cu
         _currentTransferTexture = currentTexture;
         if (_pendingTransfers.front()->tryTransfer()) {
             _pendingTransfers.pop();
-            _currentTransferTexture->finishTransfer();
             _currentTransferTexture.reset();
         }
     }
@@ -456,7 +455,7 @@ GL45ResourceTexture::GL45ResourceTexture(const std::weak_ptr<GLBackend>& backend
     _memoryPressureStateStale = true;
     copyMipsFromTexture();
     syncSampler();
-	_gpuObject.finishTransfer();
+
 }
 
 void GL45ResourceTexture::allocateStorage(uint16 allocatedMip) {
diff --git a/libraries/gpu/src/gpu/Texture.cpp b/libraries/gpu/src/gpu/Texture.cpp
index 523d938854..38019c5a03 100755
--- a/libraries/gpu/src/gpu/Texture.cpp
+++ b/libraries/gpu/src/gpu/Texture.cpp
@@ -482,43 +482,39 @@ uint16 Texture::autoGenerateMips(uint16 maxMip) {
 }
 
 uint16 Texture::getStoredMipWidth(uint16 level) const {
-    PixelsPointer mipFace = accessStoredMipFace(level);
-    if (mipFace && mipFace->getSize()) {
-        return evalMipWidth(level);
+    if (!isStoredMipFaceAvailable(level)) {
+        return 0;
     }
-    return 0;
+    return evalMipWidth(level);
 }
 
 uint16 Texture::getStoredMipHeight(uint16 level) const {
-    PixelsPointer mip = accessStoredMipFace(level);
-    if (mip && mip->getSize()) {
-        return evalMipHeight(level);
+    if (!isStoredMipFaceAvailable(level)) {
+        return 0;
     }
-    return 0;
+    return evalMipHeight(level);
 }
 
 uint16 Texture::getStoredMipDepth(uint16 level) const {
-    PixelsPointer mipFace = accessStoredMipFace(level);
-    if (mipFace && mipFace->getSize()) {
-        return evalMipDepth(level);
+    if (!isStoredMipFaceAvailable(level)) {
+        return 0;
     }
-    return 0;
+    return evalMipDepth(level);
 }
 
 uint32 Texture::getStoredMipNumTexels(uint16 level) const {
-    PixelsPointer mipFace = accessStoredMipFace(level);
-    if (mipFace && mipFace->getSize()) {
-        return evalMipWidth(level) * evalMipHeight(level) * evalMipDepth(level);
+    if (!isStoredMipFaceAvailable(level)) {
+        return 0;
     }
-    return 0;
+    return evalMipWidth(level) * evalMipHeight(level) * evalMipDepth(level);
 }
 
 uint32 Texture::getStoredMipSize(uint16 level) const {
-    PixelsPointer mipFace = accessStoredMipFace(level);
-    if (mipFace && mipFace->getSize()) {
-        return evalMipWidth(level) * evalMipHeight(level) * evalMipDepth(level) * getTexelFormat().getSize();
+    if (!isStoredMipFaceAvailable(level)) {
+        return 0;
     }
-    return 0;
+
+    return evalMipWidth(level) * evalMipHeight(level) * evalMipDepth(level) * getTexelFormat().getSize();
 }
 
 gpu::Resource::Size Texture::getStoredSize() const {
@@ -984,9 +980,3 @@ Texture::ExternalUpdates Texture::getUpdates() const {
 void Texture::setStorage(std::unique_ptr<Storage>& newStorage) {
     _storage.swap(newStorage);
 }
-
-void Texture::finishTransfer() const {
-    if (_storage) {
-        _storage->releaseTempResources();
-    }
-}
diff --git a/libraries/gpu/src/gpu/Texture.h b/libraries/gpu/src/gpu/Texture.h
index f40e936578..1bc21cc9b0 100755
--- a/libraries/gpu/src/gpu/Texture.h
+++ b/libraries/gpu/src/gpu/Texture.h
@@ -267,7 +267,6 @@ public:
         virtual void assignMipData(uint16 level, const storage::StoragePointer& storage) = 0;
         virtual void assignMipFaceData(uint16 level, uint8 face, const storage::StoragePointer& storage) = 0;
         virtual bool isMipAvailable(uint16 level, uint8 face = 0) const = 0;
-        virtual void releaseTempResources() const {}
         Texture::Type getType() const { return _type; }
 
         Stamp getStamp() const { return _stamp; }
@@ -316,12 +315,10 @@ public:
             throw std::runtime_error("Invalid call");
         }
         void reset() override { }
-        void releaseTempResources() const override { _ktxData.release(); }
 
     protected:
         std::string _filename;
         ktx::KTXDescriptorPointer _ktxDescriptor;
-        mutable ktx::KTXUniquePointer _ktxData;
         friend class Texture;
     };
 
@@ -526,11 +523,9 @@ public:
 
     ExternalUpdates getUpdates() const;
 
-    void finishTransfer() const;
-
     // Textures can be serialized directly to  ktx data file, here is how
     static ktx::KTXUniquePointer serialize(const Texture& texture);
-    static Texture* unserialize(const ktx::KTXUniquePointer& srcData, TextureUsageType usageType = TextureUsageType::RESOURCE, Usage usage = Usage(), const Sampler::Desc& sampler = Sampler::Desc());
+    static Texture* unserialize(const std::string& ktxFile, TextureUsageType usageType = TextureUsageType::RESOURCE, Usage usage = Usage(), const Sampler::Desc& sampler = Sampler::Desc());
     static bool evalKTXFormat(const Element& mipFormat, const Element& texelFormat, ktx::Header& header);
     static bool evalTextureFormat(const ktx::Header& header, Element& mipFormat, Element& texelFormat);
 
diff --git a/libraries/gpu/src/gpu/Texture_ktx.cpp b/libraries/gpu/src/gpu/Texture_ktx.cpp
index ef96810251..ba9213683c 100644
--- a/libraries/gpu/src/gpu/Texture_ktx.cpp
+++ b/libraries/gpu/src/gpu/Texture_ktx.cpp
@@ -43,9 +43,11 @@ struct GPUKTXPayload {
 std::string GPUKTXPayload::KEY { "hifi.gpu" };
 
 KtxStorage::KtxStorage(const std::string& filename) : _filename(filename) {
-    ktx::StoragePointer storage { new storage::FileStorage(_filename.c_str()) };
-    auto ktxPointer = ktx::KTX::create(storage);
-    _ktxDescriptor.reset(new ktx::KTXDescriptor(ktxPointer->toDescriptor()));
+    {
+        ktx::StoragePointer storage { new storage::FileStorage(_filename.c_str()) };
+        auto ktxPointer = ktx::KTX::create(storage);
+        _ktxDescriptor.reset(new ktx::KTXDescriptor(ktxPointer->toDescriptor()));
+    }
 
     // now that we know the ktx, let's get the header info to configure this Texture::Storage:
     Format mipFormat = Format::COLOR_BGRA_32;
@@ -56,11 +58,13 @@ KtxStorage::KtxStorage(const std::string& filename) : _filename(filename) {
 }
 
 PixelsPointer KtxStorage::getMipFace(uint16 level, uint8 face) const {
-    if (!_ktxData) {
-        ktx::StoragePointer storage { new storage::FileStorage(_filename.c_str()) };
-        _ktxData = _ktxDescriptor->toKTX(storage);
+    storage::StoragePointer result;
+    auto faceOffset = _ktxDescriptor->getMipFaceTexelsOffset(level, face);
+    auto faceSize = _ktxDescriptor->getMipFaceTexelsSize(level, face);
+    if (faceSize != 0 && faceOffset != 0) {
+        result = std::make_shared<storage::FileStorage>(_filename.c_str())->createView(faceSize, faceOffset)->toMemoryStorage();
     }
-    return _ktxData->getMipFaceTexelsData(level, face);
+    return result;
 }
 
 Size KtxStorage::getMipFaceSize(uint16 level, uint8 face) const {
@@ -180,11 +184,9 @@ ktx::KTXUniquePointer Texture::serialize(const Texture& texture) {
     return ktxBuffer;
 }
 
-Texture* Texture::unserialize(const ktx::KTXUniquePointer& srcData, TextureUsageType usageType, Usage usage, const Sampler::Desc& sampler) {
-    if (!srcData) {
-        return nullptr;
-    }
-    const auto& header = srcData->getHeader();
+Texture* Texture::unserialize(const std::string& ktxfile, TextureUsageType usageType, Usage usage, const Sampler::Desc& sampler) {
+    ktx::KTXDescriptor descriptor { ktx::KTX::create(ktx::StoragePointer { new storage::FileStorage(ktxfile.c_str()) })->toDescriptor() };
+    const auto& header = descriptor.header;
 
     Format mipFormat = Format::COLOR_BGRA_32;
     Format texelFormat = Format::COLOR_SRGBA_32;
@@ -212,7 +214,7 @@ Texture* Texture::unserialize(const ktx::KTXUniquePointer& srcData, TextureUsage
     
     // If found, use the 
     GPUKTXPayload gpuktxKeyValue;
-    bool isGPUKTXPayload = GPUKTXPayload::findInKeyValues(srcData->_keyValues, gpuktxKeyValue);
+    bool isGPUKTXPayload = GPUKTXPayload::findInKeyValues(descriptor.keyValues, gpuktxKeyValue);
 
     auto tex = Texture::create( (isGPUKTXPayload ? gpuktxKeyValue._usageType : usageType),
                                 type,
@@ -228,14 +230,7 @@ Texture* Texture::unserialize(const ktx::KTXUniquePointer& srcData, TextureUsage
 
     // Assing the mips availables
     tex->setStoredMipFormat(mipFormat);
-    uint16_t level = 0;
-    for (auto& image : srcData->_images) {
-        for (uint32_t face = 0; face < image._numFaces; face++) {
-            tex->assignStoredMipFace(level, face, image._faceSize, image._faceBytes[face]);
-        }
-        level++;
-    }
-
+    tex->setKtxBacking(ktxfile);
     return tex;
 }
 
diff --git a/libraries/ktx/src/ktx/KTX.cpp b/libraries/ktx/src/ktx/KTX.cpp
index 90ca19d762..f50062b873 100644
--- a/libraries/ktx/src/ktx/KTX.cpp
+++ b/libraries/ktx/src/ktx/KTX.cpp
@@ -167,6 +167,17 @@ size_t KTXDescriptor::getMipFaceTexelsSize(uint16_t mip, uint8_t face) const {
     return result;
 }
 
+size_t KTXDescriptor::getMipFaceTexelsOffset(uint16_t mip, uint8_t face) const {
+    size_t result { 0 };
+    if (mip < images.size()) {
+        const auto& faces = images[mip];
+        if (face < faces._numFaces) {
+            result = faces._faceOffsets[face];
+        }
+    }
+    return result;
+}
+
 ImageDescriptor Image::toImageDescriptor(const Byte* baseAddress) const {
     FaceOffsets offsets;
     offsets.resize(_faceBytes.size());
@@ -196,14 +207,5 @@ KTXDescriptor KTX::toDescriptor() const {
     return { this->_header, this->_keyValues, newDescriptors };
 }
 
-std::unique_ptr<KTX> KTXDescriptor::toKTX(const ktx::StoragePointer& storage) const {
-    Images newImages;
-    for (size_t i = 0; i < images.size(); ++i) {
-        newImages.emplace_back(images[i].toImage(storage));
-    }
-
-    return std::unique_ptr<KTX>(new KTX { storage, header, keyValues, newImages });
-}
-
 KTX::KTX(const StoragePointer& storage, const Header& header, const KeyValues& keyValues, const Images& images)
     : _storage(storage), _header(header), _keyValues(keyValues), _images(images) { }
\ No newline at end of file
diff --git a/libraries/ktx/src/ktx/KTX.h b/libraries/ktx/src/ktx/KTX.h
index c34127d357..f09986991a 100644
--- a/libraries/ktx/src/ktx/KTX.h
+++ b/libraries/ktx/src/ktx/KTX.h
@@ -461,7 +461,7 @@ namespace ktx {
         const KeyValues keyValues;
         const ImageDescriptors images;
         size_t getMipFaceTexelsSize(uint16_t mip = 0, uint8_t face = 0) const;
-        std::unique_ptr<KTX> toKTX(const ktx::StoragePointer& storage) const;
+        size_t getMipFaceTexelsOffset(uint16_t mip = 0, uint8_t face = 0) const;
     };
 
     class KTX {
diff --git a/libraries/model-networking/src/model-networking/KTXCache.cpp b/libraries/model-networking/src/model-networking/KTXCache.cpp
index 63d35fe4a4..8ec1c4e41c 100644
--- a/libraries/model-networking/src/model-networking/KTXCache.cpp
+++ b/libraries/model-networking/src/model-networking/KTXCache.cpp
@@ -38,10 +38,3 @@ std::unique_ptr<File> KTXCache::createFile(Metadata&& metadata, const std::strin
 KTXFile::KTXFile(Metadata&& metadata, const std::string& filepath) :
     cache::File(std::move(metadata), filepath) {}
 
-std::unique_ptr<ktx::KTX> KTXFile::getKTX() const {
-    ktx::StoragePointer storage = std::make_shared<storage::FileStorage>(getFilepath().c_str());
-    if (*storage) {
-        return ktx::KTX::create(storage);
-    }
-    return {};
-}
diff --git a/libraries/model-networking/src/model-networking/KTXCache.h b/libraries/model-networking/src/model-networking/KTXCache.h
index 4ef5e52721..bbf7ceadea 100644
--- a/libraries/model-networking/src/model-networking/KTXCache.h
+++ b/libraries/model-networking/src/model-networking/KTXCache.h
@@ -39,9 +39,6 @@ protected:
 class KTXFile : public cache::File {
     Q_OBJECT
 
-public:
-    std::unique_ptr<ktx::KTX> getKTX() const;
-
 protected:
     friend class KTXCache;
 
diff --git a/libraries/model-networking/src/model-networking/TextureCache.cpp b/libraries/model-networking/src/model-networking/TextureCache.cpp
index 17cafaa5ad..98b03eba1e 100644
--- a/libraries/model-networking/src/model-networking/TextureCache.cpp
+++ b/libraries/model-networking/src/model-networking/TextureCache.cpp
@@ -438,15 +438,9 @@ void NetworkTexture::loadContent(const QByteArray& content) {
         if (!texture) {
             KTXFilePointer ktxFile = textureCache->_ktxCache.getFile(hash);
             if (ktxFile) {
-                // Ensure that the KTX deserialization worked
-                auto ktx = ktxFile->getKTX();
-                if (ktx) {
-                    texture.reset(gpu::Texture::unserialize(ktx));
-                    // Ensure that the texture population worked
-                    if (texture) {
-                        texture->setKtxBacking(ktxFile->getFilepath());
-                        texture = textureCache->cacheTextureByHash(hash, texture);
-                    }
+                texture.reset(gpu::Texture::unserialize(ktxFile->getFilepath()));
+                if (texture) {
+                    texture = textureCache->cacheTextureByHash(hash, texture);
                 }
             }
         }

From 2cf7ba4119dae3fcdfbe0d77854aa6639c751eba Mon Sep 17 00:00:00 2001
From: Bradley Austin Davis <bdavis@saintandreas.org>
Date: Mon, 27 Mar 2017 16:34:08 -0700
Subject: [PATCH 230/247] Fixing pending transfer calculation

---
 .../src/gpu/gl45/GL45BackendVariableTexture.cpp     | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp b/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp
index 65be154666..1fbd7dc424 100644
--- a/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp
+++ b/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp
@@ -88,11 +88,13 @@ TransferJob::TransferJob(const GL45VariableAllocationTexture& parent, uint16_t s
     GLTexelFormat texelFormat = GLTexelFormat::evalGLTexelFormat(_parent._gpuObject.getTexelFormat(), _parent._gpuObject.getStoredMipFormat());
     format = texelFormat.format;
     type = texelFormat.type;
+    auto mipSize = _parent._gpuObject.getStoredMipFaceSize(sourceMip, face);
+
 
     if (0 == lines) {
+        _transferSize = mipSize;
         _bufferingLambda = [=] {
             auto mipData = _parent._gpuObject.accessStoredMipFace(sourceMip, face);
-            _transferSize = mipData->getSize();
             _buffer.resize(_transferSize);
             memcpy(&_buffer[0], mipData->readData(), _transferSize);
             _bufferingCompleted = true;
@@ -100,13 +102,12 @@ TransferJob::TransferJob(const GL45VariableAllocationTexture& parent, uint16_t s
 
     } else {
         transferDimensions.y = lines;
+        auto dimensions = _parent._gpuObject.evalMipDimensions(sourceMip);
+        auto bytesPerLine = (uint32_t)mipSize / dimensions.y;
+        auto sourceOffset = bytesPerLine * lineOffset;
+        _transferSize = bytesPerLine * lines;
         _bufferingLambda = [=] {
             auto mipData = _parent._gpuObject.accessStoredMipFace(sourceMip, face);
-            auto dimensions = _parent._gpuObject.evalMipDimensions(sourceMip);
-            auto mipSize = mipData->getSize();
-            auto bytesPerLine = (uint32_t)mipSize / dimensions.y;
-            _transferSize = bytesPerLine * lines;
-            auto sourceOffset = bytesPerLine * lineOffset;
             _buffer.resize(_transferSize);
             memcpy(&_buffer[0], mipData->readData() + sourceOffset, _transferSize);
             _bufferingCompleted = true;

From cdac011472f61e81a5ebadaf38a4c2a11cad443e Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Mon, 27 Mar 2017 18:21:00 -0700
Subject: [PATCH 231/247] fix home button

---
 scripts/system/controllers/handControllerGrab.js | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index c93a721248..95e3ba90ce 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -726,9 +726,7 @@ function calculateStylusTargetFromOverlay(stylusTip, overlayID) {
     var invRot = Quat.inverse(overlayRotation);
     var localPos = Vec3.multiplyQbyV(invRot, Vec3.subtract(position, overlayPosition));
     var dpi = Overlays.getProperty(overlayID, "dpi");
-    if (dpi === undefined) {
-        return;
-    }
+
     var dimensions;
     if (dpi) {
         // Calculate physical dimensions for web3d overlay from resolution and dpi; "dimensions" property is used as a scale.

From a6ef592353ca416054a8bc0f66a06f93288e57ae Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Tue, 28 Mar 2017 14:43:26 +1300
Subject: [PATCH 232/247] Non-scrolling window with images scaled to fit

---
 scripts/system/html/SnapshotReview.html    | 17 +++---
 scripts/system/html/css/SnapshotReview.css | 71 ++++++++++++++++++----
 scripts/system/html/js/SnapshotReview.js   | 18 ++++--
 3 files changed, 81 insertions(+), 25 deletions(-)

diff --git a/scripts/system/html/SnapshotReview.html b/scripts/system/html/SnapshotReview.html
index 089e223602..3a2262e308 100644
--- a/scripts/system/html/SnapshotReview.html
+++ b/scripts/system/html/SnapshotReview.html
@@ -8,16 +8,17 @@
 </head>
 
 <body>
-    <div class="snapshot-container">
-        <div class="snapsection">
-            <label class="title">Snap</label>
-        </div>
-        <hr />
+    <div class="snapsection title">
+        <label>Snap</label>
+    </div>
+    <hr />
+    <div id="snapshot-pane">
         <div id="snapshot-images">
         </div>
-        <div class="snapsection">
+    </div>
+    <div id="snapshot-controls">
+        <div class="snapsection" id="snap-buttons">
             <div id="sharing">
-                <div class="prompt">Would you like to share your pics in the Snapshots feed?</div>
                 <div class="button">
                     <span class="compound-button">
                         <input type="button" class="blue" id="share" value="Share in Feed" onclick="shareSelected()" />
@@ -30,7 +31,7 @@
             </div>
         </div>
         <hr />
-        <div class="snapsection">
+        <div class="snapsection" id="snap-settings">
             <span class="setting">
                 <input type="button" class="glyph naked" id="snapshotSettings" value="@" onclick="snapshotSettings()" />
                 <label for="snapshotSettings">Snapshot settings</label>
diff --git a/scripts/system/html/css/SnapshotReview.css b/scripts/system/html/css/SnapshotReview.css
index 13fb119992..34b690a021 100644
--- a/scripts/system/html/css/SnapshotReview.css
+++ b/scripts/system/html/css/SnapshotReview.css
@@ -10,32 +10,81 @@
 
 body {
     padding-top: 0;
-}
-
-.snapshot-container {
-    width: 100%;
-}
-
-#snapshot-images > img {
-    width: 100%;
+    padding-bottom: 14px;
 }
 
 .snapsection {
-    padding-top: 21px;
+    padding-top: 14px;
     text-align: center;
 }
 
-.snapsection:first-child {
+.snapsection.title {
     padding-top: 0;
     text-align: left;
 }
 
-.title {
+.title label {
     font-size: 18px;
     position: relative;
     top: 12px;
 }
 
+#snapshot-pane {
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    top: 0;
+    left: 0;
+    box-sizing: border-box;
+    padding-top: 56px;
+    padding-bottom: 175px;
+}
+
+#snapshot-images {
+    height: 100%;
+    width: 100%;
+    position: relative;
+}
+
+#snapshot-images > div {
+    position: relative;
+    text-align: center;
+}
+
+#snapshot-images img {
+    max-width: 100%;
+    max-height: 100%;
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    transform: translate(-50%, -50%);
+    vertical-align: middle;
+}
+
+#snapshot-images div.property {
+    margin-top: 0;
+    position: absolute;
+    top: 50%;
+    left: 7px;
+    transform: translate(0%, -50%);
+}
+
+#snapshot-images img {
+    box-sizing: border-box;
+    padding: 0 7px 0 7px;
+}
+
+#snapshot-images img.multiple {
+    padding-left: 28px;
+}
+
+#snapshot-controls {
+    width: 100%;
+    position: absolute;
+    left: 0;
+    bottom: 14px;
+}
+
 .prompt {
     font-family: Raleway-SemiBold;
     font-size: 14px;
diff --git a/scripts/system/html/js/SnapshotReview.js b/scripts/system/html/js/SnapshotReview.js
index efe30196ee..d97207384a 100644
--- a/scripts/system/html/js/SnapshotReview.js
+++ b/scripts/system/html/js/SnapshotReview.js
@@ -10,7 +10,7 @@
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
 //
 
-var paths = [], idCounter = 0, useCheckboxes;
+var paths = [], idCounter = 0, imageCount;
 function addImage(data) {
     if (!data.localPath) {
         return;
@@ -19,11 +19,16 @@ function addImage(data) {
         input = document.createElement("INPUT"),
         label = document.createElement("LABEL"),
         img = document.createElement("IMG"),
+        div2 = document.createElement("DIV"),
         id = "p" + idCounter++;
     function toggle() { data.share = input.checked; }
+    div.style.height = "" + Math.floor(100 / imageCount) + "%";
+    if (imageCount > 1) {
+        img.setAttribute("class", "multiple");
+    }
     img.src = data.localPath;
     div.appendChild(img);
-    if (useCheckboxes) { // I'd rather use css, but the included stylesheet is quite particular.
+    if (imageCount > 1) { // I'd rather use css, but the included stylesheet is quite particular.
         // Our stylesheet(?) requires input.id to match label.for. Otherwise input doesn't display the check state.
         label.setAttribute('for', id); // cannot do label.for =
         input.id = id;
@@ -31,9 +36,10 @@ function addImage(data) {
         input.checked = (id === "p0");
         data.share = input.checked;
         input.addEventListener('change', toggle);
-        div.class = "property checkbox";
-        div.appendChild(input);
-        div.appendChild(label);
+        div2.setAttribute("class", "property checkbox");
+        div2.appendChild(input);
+        div2.appendChild(label);
+        div.appendChild(div2);
     } else {
         data.share = true;
     }
@@ -73,7 +79,7 @@ window.onload = function () {
             handleShareButtons(shareMsg);
             
             // rest are image paths which we add
-            useCheckboxes = message.action.length > 1;
+            imageCount = message.action.length;
             message.action.forEach(addImage);
         });
         EventBridge.emitWebEvent(JSON.stringify({

From 6a3dea030e0f7a2e6710e020aedd7126da6a1361 Mon Sep 17 00:00:00 2001
From: David Rowe <david@ctrlaltstudio.com>
Date: Tue, 28 Mar 2017 15:15:33 +1300
Subject: [PATCH 233/247] Settings link

---
 scripts/system/html/SnapshotReview.html | 2 +-
 scripts/system/snapshot.js              | 7 ++++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/scripts/system/html/SnapshotReview.html b/scripts/system/html/SnapshotReview.html
index 3a2262e308..145cfb16a9 100644
--- a/scripts/system/html/SnapshotReview.html
+++ b/scripts/system/html/SnapshotReview.html
@@ -34,7 +34,7 @@
         <div class="snapsection" id="snap-settings">
             <span class="setting">
                 <input type="button" class="glyph naked" id="snapshotSettings" value="@" onclick="snapshotSettings()" />
-                <label for="snapshotSettings">Snapshot settings</label>
+                <label for="snapshotSettings">Settings</label>
             </span>
             <span class="setting checkbox">
                 <input id="openFeed" type="checkbox" checked />
diff --git a/scripts/system/snapshot.js b/scripts/system/snapshot.js
index 4c454dbc7b..010544a2c6 100644
--- a/scripts/system/snapshot.js
+++ b/scripts/system/snapshot.js
@@ -60,7 +60,12 @@ function onMessage(message) {
             outstanding = 0;
             break;
         case 'openSettings':
-            Desktop.show("hifi/dialogs/GeneralPreferencesDialog.qml", "GeneralPreferencesDialog");
+            if ((HMD.active && Settings.getValue("hmdTabletBecomesToolbar"))
+                    || (!HMD.active && Settings.getValue("desktopTabletBecomesToolbar"))) {
+                Desktop.show("hifi/dialogs/GeneralPreferencesDialog.qml", "General Preferences");
+            } else {
+                tablet.loadQMLSource("TabletGeneralPreferences.qml");
+            }
             break;
         case 'setOpenFeedFalse':
             Settings.setValue('openFeedAfterShare', false);

From 651d87dc2a2f138301c5a21286ad121b779a5aba Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Tue, 28 Mar 2017 07:53:25 -0700
Subject: [PATCH 234/247] move Qt-related stuff out of model and into
 model-networking

---
 libraries/entities/CMakeLists.txt                             | 2 +-
 libraries/entities/src/EntityScriptingInterface.cpp           | 2 +-
 .../src/model-networking}/MeshFace.cpp                        | 0
 .../src/model-networking}/MeshFace.h                          | 2 +-
 .../src/model-networking}/MeshProxy.cpp                       | 0
 .../src/model-networking}/MeshProxy.h                         | 2 +-
 libraries/script-engine/src/ModelScriptingInterface.cpp       | 2 +-
 libraries/script-engine/src/ModelScriptingInterface.h         | 4 ++--
 8 files changed, 7 insertions(+), 7 deletions(-)
 rename libraries/{model/src/model => model-networking/src/model-networking}/MeshFace.cpp (100%)
 rename libraries/{model/src/model => model-networking/src/model-networking}/MeshFace.h (97%)
 rename libraries/{model/src/model => model-networking/src/model-networking}/MeshProxy.cpp (100%)
 rename libraries/{model/src/model => model-networking/src/model-networking}/MeshProxy.h (98%)

diff --git a/libraries/entities/CMakeLists.txt b/libraries/entities/CMakeLists.txt
index 1230fe8146..b2ae0f0ab7 100644
--- a/libraries/entities/CMakeLists.txt
+++ b/libraries/entities/CMakeLists.txt
@@ -1,6 +1,6 @@
 set(TARGET_NAME entities)
 setup_hifi_library(Network Script)
-link_hifi_libraries(avatars shared audio octree model fbx networking animation)
+link_hifi_libraries(avatars shared audio octree model model-networking fbx networking animation)
 
 target_bullet()
 
diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp
index f66cf1e8f1..2c332e8d05 100644
--- a/libraries/entities/src/EntityScriptingInterface.cpp
+++ b/libraries/entities/src/EntityScriptingInterface.cpp
@@ -21,7 +21,7 @@
 #include <VariantMapToScriptValue.h>
 #include <SharedUtil.h>
 #include <SpatialParentFinder.h>
-#include <model/MeshProxy.h>
+#include <model-networking/MeshProxy.h>
 
 #include "EntitiesLogging.h"
 #include "EntityActionFactoryInterface.h"
diff --git a/libraries/model/src/model/MeshFace.cpp b/libraries/model-networking/src/model-networking/MeshFace.cpp
similarity index 100%
rename from libraries/model/src/model/MeshFace.cpp
rename to libraries/model-networking/src/model-networking/MeshFace.cpp
diff --git a/libraries/model/src/model/MeshFace.h b/libraries/model-networking/src/model-networking/MeshFace.h
similarity index 97%
rename from libraries/model/src/model/MeshFace.h
rename to libraries/model-networking/src/model-networking/MeshFace.h
index ef1e3a0b6b..3b81b372c3 100644
--- a/libraries/model/src/model/MeshFace.h
+++ b/libraries/model-networking/src/model-networking/MeshFace.h
@@ -16,7 +16,7 @@
 #include <QScriptValueIterator>
 #include <QtScript/QScriptValue>
 
-#include "Geometry.h"
+#include <model/Geometry.h>
 
 using MeshPointer = std::shared_ptr<model::Mesh>;
 
diff --git a/libraries/model/src/model/MeshProxy.cpp b/libraries/model-networking/src/model-networking/MeshProxy.cpp
similarity index 100%
rename from libraries/model/src/model/MeshProxy.cpp
rename to libraries/model-networking/src/model-networking/MeshProxy.cpp
diff --git a/libraries/model/src/model/MeshProxy.h b/libraries/model-networking/src/model-networking/MeshProxy.h
similarity index 98%
rename from libraries/model/src/model/MeshProxy.h
rename to libraries/model-networking/src/model-networking/MeshProxy.h
index fcd36e6e9c..c5b25b7895 100644
--- a/libraries/model/src/model/MeshProxy.h
+++ b/libraries/model-networking/src/model-networking/MeshProxy.h
@@ -16,7 +16,7 @@
 #include <QScriptValueIterator>
 #include <QtScript/QScriptValue>
 
-#include "Geometry.h"
+#include <model/Geometry.h>
 
 using MeshPointer = std::shared_ptr<model::Mesh>;
 
diff --git a/libraries/script-engine/src/ModelScriptingInterface.cpp b/libraries/script-engine/src/ModelScriptingInterface.cpp
index c02eb642a1..f56312568e 100644
--- a/libraries/script-engine/src/ModelScriptingInterface.cpp
+++ b/libraries/script-engine/src/ModelScriptingInterface.cpp
@@ -12,7 +12,7 @@
 #include <QScriptEngine>
 #include <QScriptValueIterator>
 #include <QtScript/QScriptValue>
-#include <model/MeshFace.h>
+#include <model-networking/MeshFace.h>
 #include "ScriptEngine.h"
 #include "ScriptEngineLogging.h"
 #include "ModelScriptingInterface.h"
diff --git a/libraries/script-engine/src/ModelScriptingInterface.h b/libraries/script-engine/src/ModelScriptingInterface.h
index e3d5b18b29..d899f532d8 100644
--- a/libraries/script-engine/src/ModelScriptingInterface.h
+++ b/libraries/script-engine/src/ModelScriptingInterface.h
@@ -17,8 +17,8 @@
 #include <QScriptValue>
 #include <OBJWriter.h>
 #include <model/Geometry.h>
-#include <model/MeshProxy.h>
-#include <model/MeshFace.h>
+#include <model-networking/MeshProxy.h>
+#include <model-networking/MeshFace.h>
 
 using MeshPointer = std::shared_ptr<model::Mesh>;
 class ScriptEngine;

From 29a159b90d6ba09adfeefbdb8d695ec8c4eeea88 Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidelity.io>
Date: Tue, 28 Mar 2017 09:27:13 -0700
Subject: [PATCH 235/247] WebTablet.js: Don't remove or add mouse callbacks
 onHMDChanged

This should prevent the exception on destroy, caused by disconnecting a signal that is not attached.
---
 scripts/system/libraries/WebTablet.js | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/scripts/system/libraries/WebTablet.js b/scripts/system/libraries/WebTablet.js
index 0b4186e39b..e2d2791536 100644
--- a/scripts/system/libraries/WebTablet.js
+++ b/scripts/system/libraries/WebTablet.js
@@ -429,16 +429,6 @@ WebTablet.prototype.calculateTabletAttachmentProperties = function (hand, useMou
 
 WebTablet.prototype.onHmdChanged = function () {
 
-    if (HMD.active) {
-        Controller.mousePressEvent.disconnect(this.myMousePressEvent);
-        Controller.mouseMoveEvent.disconnect(this.myMouseMoveEvent);
-        Controller.mouseReleaseEvent.disconnect(this.myMouseReleaseEvent);
-    } else {
-        Controller.mousePressEvent.connect(this.myMousePressEvent);
-        Controller.mouseMoveEvent.connect(this.myMouseMoveEvent);
-        Controller.mouseReleaseEvent.connect(this.myMouseReleaseEvent);
-    }
-
     var tabletProperties = {};
     // compute position, rotation & parentJointIndex of the tablet
     this.calculateTabletAttachmentProperties(NO_HANDS, false, tabletProperties);

From ec6ef0160089de37da5231183d72adb82ea9dc9b Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidelity.io>
Date: Tue, 28 Mar 2017 09:53:00 -0700
Subject: [PATCH 236/247] Mark the system TabletProxy object as Cpp ownership.

This should prevent the problem where the QML engine erroneously thinks the QObject has been collected/destroyed.
---
 interface/src/ui/overlays/Web3DOverlay.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp
index ae8755910b..36ad207521 100644
--- a/interface/src/ui/overlays/Web3DOverlay.cpp
+++ b/interface/src/ui/overlays/Web3DOverlay.cpp
@@ -17,6 +17,7 @@
 #include <QtGui/QOpenGLContext>
 #include <QtQuick/QQuickItem>
 #include <QtQml/QQmlContext>
+#include <QtQml/QQmlEngine>
 
 #include <AbstractViewStateInterface.h>
 #include <gpu/Batch.h>
@@ -197,6 +198,10 @@ void Web3DOverlay::loadSourceURL() {
             _webSurface->getRootContext()->setContextProperty("pathToFonts", "../../");
             tabletScriptingInterface->setQmlTabletRoot("com.highfidelity.interface.tablet.system", _webSurface->getRootItem(), _webSurface.data());
 
+            // mark the TabletProxy object as cpp ownership.
+            QObject* tablet = tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system");
+            _webSurface->getRootContext()->engine()->setObjectOwnership(tablet, QQmlEngine::CppOwnership);
+
             // Override min fps for tablet UI, for silky smooth scrolling
             setMaxFPS(90);
         }

From 9fc9253eeb5a46557d0254301efad870729d66e9 Mon Sep 17 00:00:00 2001
From: Bradley Austin Davis <bdavis@saintandreas.org>
Date: Tue, 28 Mar 2017 09:54:18 -0700
Subject: [PATCH 237/247] Fixing warnings

---
 libraries/ktx/src/ktx/KTX.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libraries/ktx/src/ktx/KTX.cpp b/libraries/ktx/src/ktx/KTX.cpp
index f50062b873..6fca39788b 100644
--- a/libraries/ktx/src/ktx/KTX.cpp
+++ b/libraries/ktx/src/ktx/KTX.cpp
@@ -208,4 +208,5 @@ KTXDescriptor KTX::toDescriptor() const {
 }
 
 KTX::KTX(const StoragePointer& storage, const Header& header, const KeyValues& keyValues, const Images& images)
-    : _storage(storage), _header(header), _keyValues(keyValues), _images(images) { }
\ No newline at end of file
+    : _header(header), _storage(storage), _keyValues(keyValues), _images(images) {
+}
\ No newline at end of file

From b0e437cc5ae06c7ad53a342fe438bf4745ed78d9 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Tue, 28 Mar 2017 18:14:05 +0100
Subject: [PATCH 238/247] remove help button from tablet when reloading scripts

---
 scripts/system/help.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/system/help.js b/scripts/system/help.js
index ac411a8622..a335b2ef9c 100644
--- a/scripts/system/help.js
+++ b/scripts/system/help.js
@@ -56,7 +56,7 @@
     }, POLL_RATE);
 
     Script.scriptEnding.connect(function () {
-        if (onUserScreen) {
+        if (onHelpScreen) {
             tablet.gotoHomeScreen();
         }
         button.clicked.disconnect(onClicked);

From 6f6343420c2d12ead6828af4b68643a0acf9bae7 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Tue, 28 Mar 2017 10:56:33 -0700
Subject: [PATCH 239/247] don't crash if entity dimensions somehow include a
 zero

---
 .../entities-renderer/src/RenderablePolyVoxEntityItem.cpp     | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
index 5127739357..419f32f897 100644
--- a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
+++ b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp
@@ -404,6 +404,9 @@ bool RenderablePolyVoxEntityItem::setSphere(glm::vec3 centerWorldCoords, float r
     float smallestDimensionSize = voxelSize.x;
     smallestDimensionSize = glm::min(smallestDimensionSize, voxelSize.y);
     smallestDimensionSize = glm::min(smallestDimensionSize, voxelSize.z);
+    if (smallestDimensionSize <= 0.0f) {
+        return false;
+    }
 
     glm::vec3 maxRadiusInVoxelCoords = glm::vec3(radiusWorldCoords / smallestDimensionSize);
     glm::vec3 centerInVoxelCoords = wtvMatrix * glm::vec4(centerWorldCoords, 1.0f);
@@ -1310,6 +1313,7 @@ void RenderablePolyVoxEntityItem::recomputeMesh() {
         mesh->setVertexBuffer(vertexBufferView);
 
 
+        // TODO -- use 3-byte normals rather than 3-float normals
         mesh->addAttribute(gpu::Stream::NORMAL,
                            gpu::BufferView(vertexBufferPtr,
                                            sizeof(float) * 3, // polyvox mesh is packed: position, normal, material

From 9789476a73e81e632a8f0a8a756dd02144cf7429 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Tue, 28 Mar 2017 10:57:03 -0700
Subject: [PATCH 240/247] handle case where AAEllipsoid is entirely inside the
 AABox

---
 libraries/shared/src/AABox.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/libraries/shared/src/AABox.cpp b/libraries/shared/src/AABox.cpp
index fa993856dd..b52deaa4ff 100644
--- a/libraries/shared/src/AABox.cpp
+++ b/libraries/shared/src/AABox.cpp
@@ -437,6 +437,7 @@ glm::vec3 AABox::getClosestPointOnFace(const glm::vec4& origin, const glm::vec4&
 }
 
 bool AABox::touchesAAEllipsoid(const glm::vec3& center, glm::vec3 radials) const {
+    // handle case where ellipsoid's alix-aligned box doesn't touch this AABox
     if (_corner.x - radials.x > center.x ||
         _corner.y - radials.y > center.y ||
         _corner.z - radials.z > center.z ||
@@ -446,6 +447,11 @@ bool AABox::touchesAAEllipsoid(const glm::vec3& center, glm::vec3 radials) const
         return false;
     }
 
+    // handle case where ellipsoid is entirely inside this AABox
+    if (contains(center)) {
+        return true;
+    }
+
     for (int i = 0; i < FACE_COUNT; i++) {
         glm::vec3 closest = getClosestPointOnFace(center, (BoxFace)i) - center;
         float x = closest.x;

From 1cf6945bf222dcbefd31f415521e602ea817eda1 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Tue, 28 Mar 2017 11:12:00 -0700
Subject: [PATCH 241/247] pass radials argument to AABox::touchesAAEllipsoid as
 const reference

---
 libraries/shared/src/AABox.cpp | 2 +-
 libraries/shared/src/AABox.h   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libraries/shared/src/AABox.cpp b/libraries/shared/src/AABox.cpp
index b52deaa4ff..3f3146cc04 100644
--- a/libraries/shared/src/AABox.cpp
+++ b/libraries/shared/src/AABox.cpp
@@ -436,7 +436,7 @@ glm::vec3 AABox::getClosestPointOnFace(const glm::vec4& origin, const glm::vec4&
     return getClosestPointOnFace(glm::vec3(origin), face);
 }
 
-bool AABox::touchesAAEllipsoid(const glm::vec3& center, glm::vec3 radials) const {
+bool AABox::touchesAAEllipsoid(const glm::vec3& center, const glm::vec3& radials) const {
     // handle case where ellipsoid's alix-aligned box doesn't touch this AABox
     if (_corner.x - radials.x > center.x ||
         _corner.y - radials.y > center.y ||
diff --git a/libraries/shared/src/AABox.h b/libraries/shared/src/AABox.h
index 022f1a6ff1..a53cc26163 100644
--- a/libraries/shared/src/AABox.h
+++ b/libraries/shared/src/AABox.h
@@ -70,7 +70,7 @@ public:
     bool findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, float& distance,
                                 BoxFace& face, glm::vec3& surfaceNormal) const;
     bool touchesSphere(const glm::vec3& center, float radius) const; // fast but may generate false positives
-    bool touchesAAEllipsoid(const glm::vec3& center, glm::vec3 radials) const;
+    bool touchesAAEllipsoid(const glm::vec3& center, const glm::vec3& radials) const;
     bool findSpherePenetration(const glm::vec3& center, float radius, glm::vec3& penetration) const;
     bool findCapsulePenetration(const glm::vec3& start, const glm::vec3& end, float radius, glm::vec3& penetration) const;
 

From 851ea7dabc3c9ba19e45b722ef958fea6e847a91 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Tue, 28 Mar 2017 11:41:51 -0700
Subject: [PATCH 242/247] fix initial finger/stylus setting

---
 scripts/system/controllers/handControllerGrab.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index 95e3ba90ce..830ca36cc2 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -1181,7 +1181,7 @@ function MyController(hand) {
 
         this.updateStylusTip();
 
-        var DEFAULT_USE_FINGER_AS_STYLUS = false;
+        var DEFAULT_USE_FINGER_AS_STYLUS = true;
         var USE_FINGER_AS_STYLUS = Settings.getValue("preferAvatarFingerOverStylus");
         if (USE_FINGER_AS_STYLUS === "") {
             USE_FINGER_AS_STYLUS = DEFAULT_USE_FINGER_AS_STYLUS;

From 08e1a2ba4cfc682c8f1016924d3562389acbc28c Mon Sep 17 00:00:00 2001
From: samcake <sam@highfidelity.io>
Date: Tue, 28 Mar 2017 14:06:09 -0700
Subject: [PATCH 243/247] Revert "Don't hold KTX files open for longer than
 transfers require"

---
 .../gpu/gl45/GL45BackendVariableTexture.cpp   | 16 ++--
 libraries/gpu/src/gpu/Texture.cpp             | 40 ++++-----
 libraries/gpu/src/gpu/Texture.h               | 15 +---
 libraries/gpu/src/gpu/Texture_ktx.cpp         | 60 ++++++-------
 libraries/ktx/src/ktx/KTX.cpp                 | 87 +++++--------------
 libraries/ktx/src/ktx/KTX.h                   | 69 ++++-----------
 libraries/ktx/src/ktx/Reader.cpp              |  4 +-
 .../src/model-networking/KTXCache.cpp         |  7 ++
 .../src/model-networking/KTXCache.h           |  3 +
 .../src/model-networking/TextureCache.cpp     | 17 +++-
 tests/ktx/src/main.cpp                        | 58 ++++++-------
 11 files changed, 154 insertions(+), 222 deletions(-)

diff --git a/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp b/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp
index 4083f09251..188fff9979 100644
--- a/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp
+++ b/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp
@@ -85,16 +85,14 @@ TransferJob::TransferJob(const GL45VariableAllocationTexture& parent, uint16_t s
     auto transferDimensions = _parent._gpuObject.evalMipDimensions(sourceMip);
     GLenum format;
     GLenum type;
+    auto mipData = _parent._gpuObject.accessStoredMipFace(sourceMip, face);
     GLTexelFormat texelFormat = GLTexelFormat::evalGLTexelFormat(_parent._gpuObject.getTexelFormat(), _parent._gpuObject.getStoredMipFormat());
     format = texelFormat.format;
     type = texelFormat.type;
-    auto mipSize = _parent._gpuObject.getStoredMipFaceSize(sourceMip, face);
-
 
     if (0 == lines) {
-        _transferSize = mipSize;
+        _transferSize = mipData->getSize();
         _bufferingLambda = [=] {
-            auto mipData = _parent._gpuObject.accessStoredMipFace(sourceMip, face);
             _buffer.resize(_transferSize);
             memcpy(&_buffer[0], mipData->readData(), _transferSize);
             _bufferingCompleted = true;
@@ -103,11 +101,11 @@ TransferJob::TransferJob(const GL45VariableAllocationTexture& parent, uint16_t s
     } else {
         transferDimensions.y = lines;
         auto dimensions = _parent._gpuObject.evalMipDimensions(sourceMip);
+        auto mipSize = mipData->getSize();
         auto bytesPerLine = (uint32_t)mipSize / dimensions.y;
-        auto sourceOffset = bytesPerLine * lineOffset;
         _transferSize = bytesPerLine * lines;
+        auto sourceOffset = bytesPerLine * lineOffset;
         _bufferingLambda = [=] {
-            auto mipData = _parent._gpuObject.accessStoredMipFace(sourceMip, face);
             _buffer.resize(_transferSize);
             memcpy(&_buffer[0], mipData->readData() + sourceOffset, _transferSize);
             _bufferingCompleted = true;
@@ -587,10 +585,10 @@ void GL45ResourceTexture::populateTransferQueue() {
 
             // break down the transfers into chunks so that no single transfer is 
             // consuming more than X bandwidth
-            auto mipSize = _gpuObject.getStoredMipFaceSize(sourceMip, face);
+            auto mipData = _gpuObject.accessStoredMipFace(sourceMip, face);
             const auto lines = mipDimensions.y;
-            auto bytesPerLine = mipSize / lines;
-            Q_ASSERT(0 == (mipSize % lines));
+            auto bytesPerLine = (uint32_t)mipData->getSize() / lines;
+            Q_ASSERT(0 == (mipData->getSize() % lines));
             uint32_t linesPerTransfer = (uint32_t)(MAX_TRANSFER_SIZE / bytesPerLine);
             uint32_t lineOffset = 0;
             while (lineOffset < lines) {
diff --git a/libraries/gpu/src/gpu/Texture.cpp b/libraries/gpu/src/gpu/Texture.cpp
index 38019c5a03..1f66b2900e 100755
--- a/libraries/gpu/src/gpu/Texture.cpp
+++ b/libraries/gpu/src/gpu/Texture.cpp
@@ -149,10 +149,6 @@ PixelsPointer MemoryStorage::getMipFace(uint16 level, uint8 face) const {
     return PixelsPointer();
 }
 
-Size MemoryStorage::getMipFaceSize(uint16 level, uint8 face) const {
-    return getMipFace(level, face)->getSize();
-}
-
 bool MemoryStorage::isMipAvailable(uint16 level, uint8 face) const {
     PixelsPointer mipFace = getMipFace(level, face);
     return (mipFace && mipFace->getSize());
@@ -482,39 +478,43 @@ uint16 Texture::autoGenerateMips(uint16 maxMip) {
 }
 
 uint16 Texture::getStoredMipWidth(uint16 level) const {
-    if (!isStoredMipFaceAvailable(level)) {
-        return 0;
+    PixelsPointer mipFace = accessStoredMipFace(level);
+    if (mipFace && mipFace->getSize()) {
+        return evalMipWidth(level);
     }
-    return evalMipWidth(level);
+    return 0;
 }
 
 uint16 Texture::getStoredMipHeight(uint16 level) const {
-    if (!isStoredMipFaceAvailable(level)) {
-        return 0;
+    PixelsPointer mip = accessStoredMipFace(level);
+    if (mip && mip->getSize()) {
+        return evalMipHeight(level);
     }
-    return evalMipHeight(level);
+    return 0;
 }
 
 uint16 Texture::getStoredMipDepth(uint16 level) const {
-    if (!isStoredMipFaceAvailable(level)) {
-        return 0;
+    PixelsPointer mipFace = accessStoredMipFace(level);
+    if (mipFace && mipFace->getSize()) {
+        return evalMipDepth(level);
     }
-    return evalMipDepth(level);
+    return 0;
 }
 
 uint32 Texture::getStoredMipNumTexels(uint16 level) const {
-    if (!isStoredMipFaceAvailable(level)) {
-        return 0;
+    PixelsPointer mipFace = accessStoredMipFace(level);
+    if (mipFace && mipFace->getSize()) {
+        return evalMipWidth(level) * evalMipHeight(level) * evalMipDepth(level);
     }
-    return evalMipWidth(level) * evalMipHeight(level) * evalMipDepth(level);
+    return 0;
 }
 
 uint32 Texture::getStoredMipSize(uint16 level) const {
-    if (!isStoredMipFaceAvailable(level)) {
-        return 0;
+    PixelsPointer mipFace = accessStoredMipFace(level);
+    if (mipFace && mipFace->getSize()) {
+        return evalMipWidth(level) * evalMipHeight(level) * evalMipDepth(level) * getTexelFormat().getSize();
     }
-
-    return evalMipWidth(level) * evalMipHeight(level) * evalMipDepth(level) * getTexelFormat().getSize();
+    return 0;
 }
 
 gpu::Resource::Size Texture::getStoredSize() const {
diff --git a/libraries/gpu/src/gpu/Texture.h b/libraries/gpu/src/gpu/Texture.h
index d6185df0d4..ce71b41b77 100755
--- a/libraries/gpu/src/gpu/Texture.h
+++ b/libraries/gpu/src/gpu/Texture.h
@@ -25,8 +25,6 @@
 namespace ktx {
     class KTX;
     using KTXUniquePointer = std::unique_ptr<KTX>;
-    struct KTXDescriptor;
-    using KTXDescriptorPointer = std::unique_ptr<KTXDescriptor>;
     struct Header;
 }
 
@@ -263,7 +261,6 @@ public:
 
         virtual void reset() = 0;
         virtual PixelsPointer getMipFace(uint16 level, uint8 face = 0) const = 0;
-        virtual Size getMipFaceSize(uint16 level, uint8 face = 0) const = 0;
         virtual void assignMipData(uint16 level, const storage::StoragePointer& storage) = 0;
         virtual void assignMipFaceData(uint16 level, uint8 face, const storage::StoragePointer& storage) = 0;
         virtual bool isMipAvailable(uint16 level, uint8 face = 0) const = 0;
@@ -289,7 +286,6 @@ public:
     public:
         void reset() override;
         PixelsPointer getMipFace(uint16 level, uint8 face = 0) const override;
-        Size getMipFaceSize(uint16 level, uint8 face = 0) const override;
         void assignMipData(uint16 level, const storage::StoragePointer& storage) override;
         void assignMipFaceData(uint16 level, uint8 face, const storage::StoragePointer& storage) override;
         bool isMipAvailable(uint16 level, uint8 face = 0) const override;
@@ -301,9 +297,8 @@ public:
 
     class KtxStorage : public Storage {
     public:
-        KtxStorage(const std::string& filename);
+        KtxStorage(ktx::KTXUniquePointer& ktxData);
         PixelsPointer getMipFace(uint16 level, uint8 face = 0) const override;
-        Size getMipFaceSize(uint16 level, uint8 face = 0) const override;
         // By convention, all mip levels and faces MUST be populated when using KTX backing
         bool isMipAvailable(uint16 level, uint8 face = 0) const override { return true; }
 
@@ -317,8 +312,7 @@ public:
         void reset() override { }
 
     protected:
-        std::string _filename;
-        ktx::KTXDescriptorPointer _ktxDescriptor;
+        ktx::KTXUniquePointer _ktxData;
         friend class Texture;
     };
 
@@ -481,10 +475,9 @@ public:
     // Access the the sub mips
     bool isStoredMipFaceAvailable(uint16 level, uint8 face = 0) const { return _storage->isMipAvailable(level, face); }
     const PixelsPointer accessStoredMipFace(uint16 level, uint8 face = 0) const { return _storage->getMipFace(level, face); }
-    Size getStoredMipFaceSize(uint16 level, uint8 face = 0) const { return _storage->getMipFaceSize(level, face); }
 
     void setStorage(std::unique_ptr<Storage>& newStorage);
-    void setKtxBacking(const std::string& filename);
+    void setKtxBacking(ktx::KTXUniquePointer& newBacking);
 
     // access sizes for the stored mips
     uint16 getStoredMipWidth(uint16 level) const;
@@ -522,7 +515,7 @@ public:
 
     // Textures can be serialized directly to  ktx data file, here is how
     static ktx::KTXUniquePointer serialize(const Texture& texture);
-    static Texture* unserialize(const std::string& ktxFile, TextureUsageType usageType = TextureUsageType::RESOURCE, Usage usage = Usage(), const Sampler::Desc& sampler = Sampler::Desc());
+    static Texture* unserialize(const ktx::KTXUniquePointer& srcData, TextureUsageType usageType = TextureUsageType::RESOURCE, Usage usage = Usage(), const Sampler::Desc& sampler = Sampler::Desc());
     static bool evalKTXFormat(const Element& mipFormat, const Element& texelFormat, ktx::Header& header);
     static bool evalTextureFormat(const ktx::Header& header, Element& mipFormat, Element& texelFormat);
 
diff --git a/libraries/gpu/src/gpu/Texture_ktx.cpp b/libraries/gpu/src/gpu/Texture_ktx.cpp
index 913ced8141..ab5be7475a 100644
--- a/libraries/gpu/src/gpu/Texture_ktx.cpp
+++ b/libraries/gpu/src/gpu/Texture_ktx.cpp
@@ -42,37 +42,30 @@ struct GPUKTXPayload {
 
 std::string GPUKTXPayload::KEY { "hifi.gpu" };
 
-KtxStorage::KtxStorage(const std::string& filename) : _filename(filename) {
-    {
-        ktx::StoragePointer storage { new storage::FileStorage(_filename.c_str()) };
-        auto ktxPointer = ktx::KTX::create(storage);
-        _ktxDescriptor.reset(new ktx::KTXDescriptor(ktxPointer->toDescriptor()));
+KtxStorage::KtxStorage(ktx::KTXUniquePointer& ktxData) {
+
+    // if the source ktx is valid let's config this KtxStorage correctly
+    if (ktxData && ktxData->getHeader()) {
+
+        // now that we know the ktx, let's get the header info to configure this Texture::Storage:
+        Format mipFormat = Format::COLOR_BGRA_32;
+        Format texelFormat = Format::COLOR_SRGBA_32;
+        if (Texture::evalTextureFormat(*ktxData->getHeader(), mipFormat, texelFormat)) {
+            _format = mipFormat;
+        }
+
+
     }
 
-    // now that we know the ktx, let's get the header info to configure this Texture::Storage:
-    Format mipFormat = Format::COLOR_BGRA_32;
-    Format texelFormat = Format::COLOR_SRGBA_32;
-    if (Texture::evalTextureFormat(_ktxDescriptor->header, mipFormat, texelFormat)) {
-        _format = mipFormat;
-    }
+    _ktxData.reset(ktxData.release());
 }
 
 PixelsPointer KtxStorage::getMipFace(uint16 level, uint8 face) const {
-    storage::StoragePointer result;
-    auto faceOffset = _ktxDescriptor->getMipFaceTexelsOffset(level, face);
-    auto faceSize = _ktxDescriptor->getMipFaceTexelsSize(level, face);
-    if (faceSize != 0 && faceOffset != 0) {
-        result = std::make_shared<storage::FileStorage>(_filename.c_str())->createView(faceSize, faceOffset)->toMemoryStorage();
-    }
-    return result;
+    return _ktxData->getMipFaceTexelsData(level, face);
 }
 
-Size KtxStorage::getMipFaceSize(uint16 level, uint8 face) const {
-    return _ktxDescriptor->getMipFaceTexelsSize(level, face);
-}
-
-void Texture::setKtxBacking(const std::string& filename) {
-    auto newBacking = std::unique_ptr<Storage>(new KtxStorage(filename));
+void Texture::setKtxBacking(ktx::KTXUniquePointer& ktxBacking) {
+    auto newBacking = std::unique_ptr<Storage>(new KtxStorage(ktxBacking));
     setStorage(newBacking);
 }
 
@@ -184,9 +177,11 @@ ktx::KTXUniquePointer Texture::serialize(const Texture& texture) {
     return ktxBuffer;
 }
 
-Texture* Texture::unserialize(const std::string& ktxfile, TextureUsageType usageType, Usage usage, const Sampler::Desc& sampler) {
-    ktx::KTXDescriptor descriptor { ktx::KTX::create(ktx::StoragePointer { new storage::FileStorage(ktxfile.c_str()) })->toDescriptor() };
-    const auto& header = descriptor.header;
+Texture* Texture::unserialize(const ktx::KTXUniquePointer& srcData, TextureUsageType usageType, Usage usage, const Sampler::Desc& sampler) {
+    if (!srcData) {
+        return nullptr;
+    }
+    const auto& header = *srcData->getHeader();
 
     Format mipFormat = Format::COLOR_BGRA_32;
     Format texelFormat = Format::COLOR_SRGBA_32;
@@ -214,7 +209,7 @@ Texture* Texture::unserialize(const std::string& ktxfile, TextureUsageType usage
     
     // If found, use the 
     GPUKTXPayload gpuktxKeyValue;
-    bool isGPUKTXPayload = GPUKTXPayload::findInKeyValues(descriptor.keyValues, gpuktxKeyValue);
+    bool isGPUKTXPayload = GPUKTXPayload::findInKeyValues(srcData->_keyValues, gpuktxKeyValue);
 
     auto tex = Texture::create( (isGPUKTXPayload ? gpuktxKeyValue._usageType : usageType),
                                 type,
@@ -230,7 +225,14 @@ Texture* Texture::unserialize(const std::string& ktxfile, TextureUsageType usage
 
     // Assing the mips availables
     tex->setStoredMipFormat(mipFormat);
-    tex->setKtxBacking(ktxfile);
+    uint16_t level = 0;
+    for (auto& image : srcData->_images) {
+        for (uint32_t face = 0; face < image._numFaces; face++) {
+            tex->assignStoredMipFace(level, face, image._faceSize, image._faceBytes[face]);
+        }
+        level++;
+    }
+
     return tex;
 }
 
diff --git a/libraries/ktx/src/ktx/KTX.cpp b/libraries/ktx/src/ktx/KTX.cpp
index 6fca39788b..bbd4e1bc86 100644
--- a/libraries/ktx/src/ktx/KTX.cpp
+++ b/libraries/ktx/src/ktx/KTX.cpp
@@ -108,39 +108,47 @@ KTX::~KTX() {
 
 void KTX::resetStorage(const StoragePointer& storage) {
     _storage = storage;
-    if (_storage->size() >= sizeof(Header)) {
-        memcpy(&_header, _storage->data(), sizeof(Header));
-    }
 }
 
-const Header& KTX::getHeader() const {
-    return _header;
+const Header* KTX::getHeader() const {
+    if (!_storage) {
+        return nullptr;
+    } 
+    return reinterpret_cast<const Header*>(_storage->data());
 }
 
 
 size_t KTX::getKeyValueDataSize() const {
-    return _header.bytesOfKeyValueData;
+    if (_storage) {
+        return getHeader()->bytesOfKeyValueData;
+    } else {
+        return 0;
+    }
 }
 
 size_t KTX::getTexelsDataSize() const {
-    if (!_storage) {
+    if (_storage) {
+        //return  _storage->size() - (sizeof(Header) + getKeyValueDataSize());
+        return  (_storage->data() + _storage->size()) - getTexelsData();
+    } else {
         return 0;
     }
-    return  (_storage->data() + _storage->size()) - getTexelsData();
 }
 
 const Byte* KTX::getKeyValueData() const {
-    if (!_storage) {
+    if (_storage) {
+        return (_storage->data() + sizeof(Header));
+    } else {
         return nullptr;
     }
-    return (_storage->data() + sizeof(Header));
 }
 
 const Byte* KTX::getTexelsData() const {
-    if (!_storage) {
+    if (_storage) {
+        return (_storage->data() + sizeof(Header) + getKeyValueDataSize());
+    } else {
         return nullptr;
     }
-    return (_storage->data() + sizeof(Header) + getKeyValueDataSize());
 }
 
 storage::StoragePointer KTX::getMipFaceTexelsData(uint16_t mip, uint8_t face) const {
@@ -155,58 +163,3 @@ storage::StoragePointer KTX::getMipFaceTexelsData(uint16_t mip, uint8_t face) co
     }
     return result;
 }
-
-size_t KTXDescriptor::getMipFaceTexelsSize(uint16_t mip, uint8_t face) const {
-    size_t result { 0 };
-    if (mip < images.size()) {
-        const auto& faces = images[mip];
-        if (face < faces._numFaces) {
-            result = faces._faceSize;
-        }
-    }
-    return result;
-}
-
-size_t KTXDescriptor::getMipFaceTexelsOffset(uint16_t mip, uint8_t face) const {
-    size_t result { 0 };
-    if (mip < images.size()) {
-        const auto& faces = images[mip];
-        if (face < faces._numFaces) {
-            result = faces._faceOffsets[face];
-        }
-    }
-    return result;
-}
-
-ImageDescriptor Image::toImageDescriptor(const Byte* baseAddress) const {
-    FaceOffsets offsets;
-    offsets.resize(_faceBytes.size());
-    for (size_t face = 0; face < _numFaces; ++face) {
-        offsets[face] = _faceBytes[face] - baseAddress;
-    }
-    // Note, implicit cast of *this to const ImageHeader&
-    return ImageDescriptor(*this, offsets);
-}
-
-Image ImageDescriptor::toImage(const ktx::StoragePointer& storage) const {
-    FaceBytes faces;
-    faces.resize(_faceOffsets.size());
-    for (size_t face = 0; face < _numFaces; ++face) {
-        faces[face] = storage->data() + _faceOffsets[face];
-    }
-    // Note, implicit cast of *this to const ImageHeader&
-    return Image(*this, faces);
-}
-
-KTXDescriptor KTX::toDescriptor() const {
-    ImageDescriptors newDescriptors;
-    auto storageStart = _storage ? _storage->data() : nullptr;
-    for (size_t i = 0; i < _images.size(); ++i) {
-        newDescriptors.emplace_back(_images[i].toImageDescriptor(storageStart));
-    }
-    return { this->_header, this->_keyValues, newDescriptors };
-}
-
-KTX::KTX(const StoragePointer& storage, const Header& header, const KeyValues& keyValues, const Images& images)
-    : _header(header), _storage(storage), _keyValues(keyValues), _images(images) {
-}
\ No newline at end of file
diff --git a/libraries/ktx/src/ktx/KTX.h b/libraries/ktx/src/ktx/KTX.h
index f09986991a..8e901b1105 100644
--- a/libraries/ktx/src/ktx/KTX.h
+++ b/libraries/ktx/src/ktx/KTX.h
@@ -407,69 +407,43 @@ namespace ktx {
     };
     using KeyValues = KeyValue::KeyValues;
 
-    struct ImageHeader {
-        using FaceOffsets = std::vector<size_t>;
+
+    struct Image {
         using FaceBytes = std::vector<const Byte*>;
-        const uint32_t _numFaces;
-        const uint32_t _imageSize;
-        const uint32_t _faceSize;
-        const uint32_t _padding;
-        ImageHeader(bool cube, uint32_t imageSize, uint32_t padding) : 
-            _numFaces(cube ? NUM_CUBEMAPFACES : 1),
-            _imageSize(imageSize * _numFaces),
-            _faceSize(imageSize),
-            _padding(padding) {
-        }
-    };
 
-    struct Image;
-
-    struct ImageDescriptor : public ImageHeader {
-        const FaceOffsets _faceOffsets;
-        ImageDescriptor(const ImageHeader& header, const FaceOffsets& offsets) : ImageHeader(header), _faceOffsets(offsets) {}
-        Image toImage(const ktx::StoragePointer& storage) const;
-    };
-
-    using ImageDescriptors = std::vector<ImageDescriptor>;
-
-    struct Image : public ImageHeader {
+        uint32_t _numFaces{ 1 };
+        uint32_t _imageSize;
+        uint32_t _faceSize;
+        uint32_t _padding;
         FaceBytes _faceBytes;
-        Image(const ImageHeader& header, const FaceBytes& faces) : ImageHeader(header), _faceBytes(faces) {}
+        
+
         Image(uint32_t imageSize, uint32_t padding, const Byte* bytes) :
-            ImageHeader(false, imageSize, padding),
+            _numFaces(1),
+            _imageSize(imageSize),
+            _faceSize(imageSize),
+            _padding(padding),
             _faceBytes(1, bytes) {}
+
         Image(uint32_t pageSize, uint32_t padding, const FaceBytes& cubeFaceBytes) :
-            ImageHeader(true, pageSize, padding)
+            _numFaces(NUM_CUBEMAPFACES),
+            _imageSize(pageSize * NUM_CUBEMAPFACES),
+            _faceSize(pageSize),
+            _padding(padding)
             {
                 if (cubeFaceBytes.size() == NUM_CUBEMAPFACES) {
                     _faceBytes = cubeFaceBytes;
                 }
             }
-
-        ImageDescriptor toImageDescriptor(const Byte* baseAddress) const;
     };
-
     using Images = std::vector<Image>;
 
-    class KTX;
-
-    // A KTX descriptor is a lightweight container for all the information about a serialized KTX file, but without the 
-    // actual image / face data available.
-    struct KTXDescriptor {
-        KTXDescriptor(const Header& header, const KeyValues& keyValues, const ImageDescriptors& imageDescriptors) : header(header), keyValues(keyValues), images(imageDescriptors) {}
-        const Header header;
-        const KeyValues keyValues;
-        const ImageDescriptors images;
-        size_t getMipFaceTexelsSize(uint16_t mip = 0, uint8_t face = 0) const;
-        size_t getMipFaceTexelsOffset(uint16_t mip = 0, uint8_t face = 0) const;
-    };
-
     class KTX {
         void resetStorage(const StoragePointer& src);
 
         KTX();
-        KTX(const StoragePointer& storage, const Header& header, const KeyValues& keyValues, const Images& images);
     public:
+
         ~KTX();
 
         // Define a KTX object manually to write it somewhere (in a file on disk?)
@@ -501,23 +475,18 @@ namespace ktx {
         static Images parseImages(const Header& header, size_t srcSize, const Byte* srcBytes);
 
         // Access raw pointers to the main sections of the KTX
-        const Header& getHeader() const;
-
+        const Header* getHeader() const;
         const Byte* getKeyValueData() const;
         const Byte* getTexelsData() const;
         storage::StoragePointer getMipFaceTexelsData(uint16_t mip = 0, uint8_t face = 0) const;
         const StoragePointer& getStorage() const { return _storage; }
 
-        KTXDescriptor toDescriptor() const;
         size_t getKeyValueDataSize() const;
         size_t getTexelsDataSize() const;
 
-        Header _header;
         StoragePointer _storage;
         KeyValues _keyValues;
         Images _images;
-
-        friend struct KTXDescriptor;
     };
 
 }
diff --git a/libraries/ktx/src/ktx/Reader.cpp b/libraries/ktx/src/ktx/Reader.cpp
index bf72faeba5..277ce42e69 100644
--- a/libraries/ktx/src/ktx/Reader.cpp
+++ b/libraries/ktx/src/ktx/Reader.cpp
@@ -185,10 +185,10 @@ namespace ktx {
         result->resetStorage(src);
 
         // read metadata
-        result->_keyValues = parseKeyValues(result->getHeader().bytesOfKeyValueData, result->getKeyValueData());
+        result->_keyValues = parseKeyValues(result->getHeader()->bytesOfKeyValueData, result->getKeyValueData());
 
         // populate image table
-        result->_images = parseImages(result->getHeader(), result->getTexelsDataSize(), result->getTexelsData());
+        result->_images = parseImages(*result->getHeader(), result->getTexelsDataSize(), result->getTexelsData());
 
         return result;
     }
diff --git a/libraries/model-networking/src/model-networking/KTXCache.cpp b/libraries/model-networking/src/model-networking/KTXCache.cpp
index 8ec1c4e41c..63d35fe4a4 100644
--- a/libraries/model-networking/src/model-networking/KTXCache.cpp
+++ b/libraries/model-networking/src/model-networking/KTXCache.cpp
@@ -38,3 +38,10 @@ std::unique_ptr<File> KTXCache::createFile(Metadata&& metadata, const std::strin
 KTXFile::KTXFile(Metadata&& metadata, const std::string& filepath) :
     cache::File(std::move(metadata), filepath) {}
 
+std::unique_ptr<ktx::KTX> KTXFile::getKTX() const {
+    ktx::StoragePointer storage = std::make_shared<storage::FileStorage>(getFilepath().c_str());
+    if (*storage) {
+        return ktx::KTX::create(storage);
+    }
+    return {};
+}
diff --git a/libraries/model-networking/src/model-networking/KTXCache.h b/libraries/model-networking/src/model-networking/KTXCache.h
index bbf7ceadea..4ef5e52721 100644
--- a/libraries/model-networking/src/model-networking/KTXCache.h
+++ b/libraries/model-networking/src/model-networking/KTXCache.h
@@ -39,6 +39,9 @@ protected:
 class KTXFile : public cache::File {
     Q_OBJECT
 
+public:
+    std::unique_ptr<ktx::KTX> getKTX() const;
+
 protected:
     friend class KTXCache;
 
diff --git a/libraries/model-networking/src/model-networking/TextureCache.cpp b/libraries/model-networking/src/model-networking/TextureCache.cpp
index 98b03eba1e..5dfaddd471 100644
--- a/libraries/model-networking/src/model-networking/TextureCache.cpp
+++ b/libraries/model-networking/src/model-networking/TextureCache.cpp
@@ -438,9 +438,15 @@ void NetworkTexture::loadContent(const QByteArray& content) {
         if (!texture) {
             KTXFilePointer ktxFile = textureCache->_ktxCache.getFile(hash);
             if (ktxFile) {
-                texture.reset(gpu::Texture::unserialize(ktxFile->getFilepath()));
-                if (texture) {
-                    texture = textureCache->cacheTextureByHash(hash, texture);
+                // Ensure that the KTX deserialization worked
+                auto ktx = ktxFile->getKTX();
+                if (ktx) {
+                    texture.reset(gpu::Texture::unserialize(ktx));
+                    // Ensure that the texture population worked
+                    if (texture) {
+                        texture->setKtxBacking(ktx);
+                        texture = textureCache->cacheTextureByHash(hash, texture);
+                    }
                 }
             }
         }
@@ -580,7 +586,10 @@ void ImageReader::read() {
                 qCWarning(modelnetworking) << _url << "file cache failed";
             } else {
                 resource.staticCast<NetworkTexture>()->_file = file;
-                texture->setKtxBacking(file->getFilepath());
+                auto fileKtx = file->getKTX();
+                if (fileKtx) {
+                    texture->setKtxBacking(fileKtx);
+                }
             }
         }
 
diff --git a/tests/ktx/src/main.cpp b/tests/ktx/src/main.cpp
index 3a6fcabf43..aa6795e17b 100644
--- a/tests/ktx/src/main.cpp
+++ b/tests/ktx/src/main.cpp
@@ -111,40 +111,38 @@ int main(int argc, char** argv) {
         outFile.close();
     }
 
+    auto ktxFile = ktx::KTX::create(std::shared_ptr<storage::Storage>(new storage::FileStorage(TEST_IMAGE_KTX)));
     {
-        auto ktxFile = ktx::KTX::create(std::shared_ptr<storage::Storage>(new storage::FileStorage(TEST_IMAGE_KTX)));
-        {
-            const auto& memStorage = ktxMemory->getStorage();
-            const auto& fileStorage = ktxFile->getStorage();
-            Q_ASSERT(memStorage->size() == fileStorage->size());
-            Q_ASSERT(memStorage->data() != fileStorage->data());
-            Q_ASSERT(0 == memcmp(memStorage->data(), fileStorage->data(), memStorage->size()));
-            Q_ASSERT(ktxFile->_images.size() == ktxMemory->_images.size());
-            auto imageCount = ktxFile->_images.size();
-            auto startMemory = ktxMemory->_storage->data();
-            auto startFile = ktxFile->_storage->data();
-            for (size_t i = 0; i < imageCount; ++i) {
-                auto memImages = ktxMemory->_images[i];
-                auto fileImages = ktxFile->_images[i];
-                Q_ASSERT(memImages._padding == fileImages._padding);
-                Q_ASSERT(memImages._numFaces == fileImages._numFaces);
-                Q_ASSERT(memImages._imageSize == fileImages._imageSize);
-                Q_ASSERT(memImages._faceSize == fileImages._faceSize);
-                Q_ASSERT(memImages._faceBytes.size() == memImages._numFaces);
-                Q_ASSERT(fileImages._faceBytes.size() == fileImages._numFaces);
-                auto faceCount = fileImages._numFaces;
-                for (uint32_t face = 0; face < faceCount; ++face) {
-                    auto memFace = memImages._faceBytes[face];
-                    auto memOffset = memFace - startMemory;
-                    auto fileFace = fileImages._faceBytes[face];
-                    auto fileOffset = fileFace - startFile;
-                    Q_ASSERT(memOffset % 4 == 0);
-                    Q_ASSERT(memOffset == fileOffset);
-                }
+        const auto& memStorage = ktxMemory->getStorage();
+        const auto& fileStorage = ktxFile->getStorage();
+        Q_ASSERT(memStorage->size() == fileStorage->size());
+        Q_ASSERT(memStorage->data() != fileStorage->data());
+        Q_ASSERT(0 == memcmp(memStorage->data(), fileStorage->data(), memStorage->size()));
+        Q_ASSERT(ktxFile->_images.size() == ktxMemory->_images.size());
+        auto imageCount = ktxFile->_images.size();
+        auto startMemory = ktxMemory->_storage->data();
+        auto startFile = ktxFile->_storage->data();
+        for (size_t i = 0; i < imageCount; ++i) {
+            auto memImages = ktxMemory->_images[i];
+            auto fileImages = ktxFile->_images[i];
+            Q_ASSERT(memImages._padding == fileImages._padding);
+            Q_ASSERT(memImages._numFaces == fileImages._numFaces);
+            Q_ASSERT(memImages._imageSize == fileImages._imageSize);
+            Q_ASSERT(memImages._faceSize == fileImages._faceSize);
+            Q_ASSERT(memImages._faceBytes.size() == memImages._numFaces);
+            Q_ASSERT(fileImages._faceBytes.size() == fileImages._numFaces);
+            auto faceCount = fileImages._numFaces;
+            for (uint32_t face = 0; face < faceCount; ++face) {
+                auto memFace = memImages._faceBytes[face];
+                auto memOffset = memFace - startMemory;
+                auto fileFace = fileImages._faceBytes[face];
+                auto fileOffset = fileFace - startFile;
+                Q_ASSERT(memOffset % 4 == 0);
+                Q_ASSERT(memOffset == fileOffset);
             }
         }
     }
-    testTexture->setKtxBacking(TEST_IMAGE_KTX.toStdString());
+    testTexture->setKtxBacking(ktxFile);
     return 0;
 }
 

From a76e5ef8d9f5b1a23c39668cb53457028dad2176 Mon Sep 17 00:00:00 2001
From: Dante Ruiz <dante@highfidelity.io>
Date: Tue, 28 Mar 2017 23:02:23 +0100
Subject: [PATCH 244/247] improve the design of the tablet goto

---
 interface/resources/qml/hifi/Card.qml         | 114 +++++++++++-------
 .../qml/hifi/tablet/TabletAddressDialog.qml   |   7 +-
 2 files changed, 72 insertions(+), 49 deletions(-)

diff --git a/interface/resources/qml/hifi/Card.qml b/interface/resources/qml/hifi/Card.qml
index 3d1ae0e64b..217cfec707 100644
--- a/interface/resources/qml/hifi/Card.qml
+++ b/interface/resources/qml/hifi/Card.qml
@@ -80,7 +80,7 @@ Rectangle {
         id: lobby;
         visible: !hasGif || (animation.status !== Image.Ready);
         width: parent.width - (isConcurrency ? 0 : (2 * smallMargin));
-        height: parent.height - messageHeight - (isConcurrency ? 0 : smallMargin);
+        height: parent.height - (isConcurrency ? 0 : smallMargin);
         source: thumbnail || defaultThumbnail;
         fillMode: Image.PreserveAspectCrop;
         anchors {
@@ -153,45 +153,57 @@ Rectangle {
             margins: textPadding;
         }
     }
+    Rectangle {
+        id: rectRow
+        z: 1
+        width: message.width + (users.visible ? users.width + bottomRow.spacing : 0)
+            + (icon.visible ? icon.width  + bottomRow.spacing: 0) + bottomRow.spacing;
+        height: messageHeight + 1;
+        radius: 25
 
-       Row {
-        FiraSansRegular {
-            id: users;
-            visible: isConcurrency;
-            text: onlineUsers;
-            size: textSize;
-            color: messageColor;
-            anchors.verticalCenter: message.verticalCenter;
+        anchors {
+            bottom: parent.bottom
+            left: parent.left
+            leftMargin: textPadding
+            bottomMargin: textPadding
         }
-        Image {
-            id: icon;
-            source: "../../images/snap-icon.svg"
-            width: 40;
-            height: 40;
-            visible: action === 'snapshot';
-        }
-        RalewayRegular {
-            id: message;
-            text: isConcurrency ? ((onlineUsers === 1) ? "person" : "people") : (drillDownToPlace ? "snapshots" : ("by " + userName));
-            size: textSizeSmall;
-            color: messageColor;
-            elide: Text.ElideRight; // requires a width to be specified`
-            width: root.width - textPadding
-                - (users.visible ? users.width + parent.spacing : 0)
-                - (icon.visible ? icon.width + parent.spacing : 0)
-                - (actionIcon.width + (2 * smallMargin));
+        
+        Row {
+            id: bottomRow
+            FiraSansRegular {
+                id: users;
+                visible: isConcurrency;
+                text: onlineUsers;
+                size: textSize;
+                color: messageColor;
+                anchors.verticalCenter: message.verticalCenter;
+            }
+            Image {
+                id: icon;
+                source: "../../images/snap-icon.svg"
+                width: 40;
+                height: 40;
+                visible: action === 'snapshot';
+            }
+            RalewayRegular {
+                id: message;
+                text: isConcurrency ? ((onlineUsers === 1) ? "person" : "people") : (drillDownToPlace ? "snapshots" : ("by " + userName));
+                size: textSizeSmall;
+                color: messageColor;
+                elide: Text.ElideRight; // requires a width to be specified`
+                anchors {
+                    bottom: parent.bottom;
+                    bottomMargin: parent.spacing;
+                }
+            }
+            spacing: textPadding;
+            height: messageHeight;
             anchors {
                 bottom: parent.bottom;
-                bottomMargin: parent.spacing;
+                left: parent.left;
+                leftMargin: 4
             }
         }
-        spacing: textPadding;
-        height: messageHeight;
-        anchors {
-            bottom: parent.bottom;
-            left: parent.left;
-            leftMargin: textPadding;
-        }
     }
     // These two can be supplied to provide hover behavior.
     // For example, AddressBarDialog provides functions that set the current list view item
@@ -206,15 +218,29 @@ Rectangle {
         onEntered: hoverThunk();
         onExited: unhoverThunk();
     }
-    StateImage {
-        id: actionIcon;
-        imageURL: "../../images/info-icon-2-state.svg";
-        size: 32;
-        buttonState: messageArea.containsMouse ? 1 : 0;
+    Rectangle {
+        id: rectIcon
+        z: 1
+        width: 32
+        height: 32
+        radius: 15
         anchors {
             bottom: parent.bottom;
             right: parent.right;
-            margins: smallMargin;
+            bottomMargin: textPadding;
+            rightMargin: textPadding;
+        }
+        
+        StateImage {
+            id: actionIcon;
+            imageURL: "../../images/info-icon-2-state.svg";
+            size: 32;
+            buttonState: messageArea.containsMouse ? 1 : 0;
+            anchors {
+                bottom: parent.bottom;
+                right: parent.right;
+                //margins: smallMargin;
+            }
         }
     }
     DropShadow {
@@ -225,11 +251,9 @@ Rectangle {
     }
     MouseArea {
         id: messageArea;
-        width: parent.width;
-        height: messageHeight;
-        anchors {
-            top: lobby.bottom;
-        }
+        width: rectIcon.width;
+        height: rectIcon.height;
+        anchors.fill: rectIcon
         acceptedButtons: Qt.LeftButton;
         onClicked: goFunction(drillDownToPlace ? ("/places/" + placeName) : ("/user_stories/" + storyId));
         hoverEnabled: true;
diff --git a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
index 623054f233..a5059b4b88 100644
--- a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
+++ b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml
@@ -137,12 +137,11 @@ StackView {
             id: addressBar
             width: 480
             height: 70
+            color: hifiStyleConstants.colors.white
             anchors {
                 top: navBar.bottom
                 right: parent.right
-                rightMargin: 16
                 left: parent.left
-                leftMargin: 16
             }
 
             property int inputAreaHeight: 70
@@ -174,8 +173,8 @@ StackView {
                     bottom: parent.bottom
                     left: parent.left
                     right: parent.right
-                    leftMargin: 0
-                    rightMargin: 0
+                    leftMargin: 16
+                    rightMargin: 16
                     topMargin: parent.inputAreaStep + (2 * hifi.layout.spacing)
                     bottomMargin: parent.inputAreaStep
                 }

From 6080c4782adb357547fbfa465c67e236803caf55 Mon Sep 17 00:00:00 2001
From: Seth Alves <seth.alves@gmail.com>
Date: Tue, 28 Mar 2017 16:44:31 -0700
Subject: [PATCH 245/247] fix polyvox shader

---
 libraries/entities-renderer/src/polyvox.slf | 1 -
 1 file changed, 1 deletion(-)

diff --git a/libraries/entities-renderer/src/polyvox.slf b/libraries/entities-renderer/src/polyvox.slf
index bebefa9434..56f6f31d71 100644
--- a/libraries/entities-renderer/src/polyvox.slf
+++ b/libraries/entities-renderer/src/polyvox.slf
@@ -11,7 +11,6 @@
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
 //
 
-<@include gpu/Inputs.slh@>
 <@include model/Material.slh@>
 <@include DeferredBufferWrite.slh@>
 

From ecc31802b821f9d864f9242152a5983b76d44be1 Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidelity.io>
Date: Tue, 28 Mar 2017 17:23:36 -0700
Subject: [PATCH 246/247] Added translation support to AC avatar animations.

---
 .../src/avatars/ScriptableAvatar.cpp          | 40 ++++++++++++++-----
 1 file changed, 31 insertions(+), 9 deletions(-)

diff --git a/assignment-client/src/avatars/ScriptableAvatar.cpp b/assignment-client/src/avatars/ScriptableAvatar.cpp
index 516bf7a1e3..7fb319031b 100644
--- a/assignment-client/src/avatars/ScriptableAvatar.cpp
+++ b/assignment-client/src/avatars/ScriptableAvatar.cpp
@@ -9,11 +9,15 @@
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
 //
 
+#include <QDebug>
 #include <QThread>
+#include <glm/gtx/transform.hpp>
 
 #include <GLMHelpers.h>
+#include <AnimUtil.h>
 #include "ScriptableAvatar.h"
 
+
 QByteArray ScriptableAvatar::toByteArrayStateful(AvatarDataDetail dataDetail) {
     _globalPosition = getPosition();
     return AvatarData::toByteArrayStateful(dataDetail);
@@ -57,6 +61,14 @@ void ScriptableAvatar::setSkeletonModelURL(const QUrl& skeletonModelURL) {
     _animSkeleton.reset();
     AvatarData::setSkeletonModelURL(skeletonModelURL);
 }
+
+static AnimPose composeAnimPose(const FBXJoint& fbxJoint, const glm::quat rotation, const glm::vec3 translation) {
+    glm::mat4 translationMat = glm::translate(translation);
+    glm::mat4 rotationMat = glm::mat4_cast(fbxJoint.preRotation * rotation * fbxJoint.postRotation);
+    glm::mat4 finalMat = translationMat * fbxJoint.preTransform * rotationMat * fbxJoint.postTransform;
+    return AnimPose(finalMat);
+}
+
 void ScriptableAvatar::update(float deltatime) {
     if (_bind.isNull() && !_skeletonFBXURL.isEmpty()) { // AvatarData will parse the .fst, but not get the .fbx skeleton.
         _bind = DependencyManager::get<AnimationCache>()->getAnimation(_skeletonFBXURL);
@@ -81,32 +93,42 @@ void ScriptableAvatar::update(float deltatime) {
             if (_jointData.size() != nJoints) {
                 _jointData.resize(nJoints);
             }
-            
+
             const int frameCount = _animation->getFrames().size();
             const FBXAnimationFrame& floorFrame = _animation->getFrames().at((int)glm::floor(currentFrame) % frameCount);
             const FBXAnimationFrame& ceilFrame = _animation->getFrames().at((int)glm::ceil(currentFrame) % frameCount);
             const float frameFraction = glm::fract(currentFrame);
             std::vector<AnimPose> poses = _animSkeleton->getRelativeDefaultPoses();
-            
+
+            float UNIT_SCALE = 0.01f;
+
             for (int i = 0; i < animationJointNames.size(); i++) {
                 const QString& name = animationJointNames[i];
                 // As long as we need the model preRotations anyway, let's get the jointIndex from the bind skeleton rather than
                 // trusting the .fst (which is sometimes not updated to match changes to .fbx).
                 int mapping = _bind->getGeometry().getJointIndex(name);
                 if (mapping != -1 && !_maskedJoints.contains(name)) {
-                    // Eventually, this should probably deal with post rotations and translations, too.
-                    poses[mapping].rot() = modelJoints[mapping].preRotation *
-                        safeMix(floorFrame.rotations.at(i), ceilFrame.rotations.at(i), frameFraction);;
+
+                    AnimPose floorPose = composeAnimPose(modelJoints[mapping], floorFrame.rotations[i], floorFrame.translations[i] * UNIT_SCALE);
+                    AnimPose ceilPose = composeAnimPose(modelJoints[mapping], ceilFrame.rotations[i], floorFrame.translations[i] * UNIT_SCALE);
+                    blend(1, &floorPose, &ceilPose, frameFraction, &poses[mapping]);
                  }
             }
-            _animSkeleton->convertRelativePosesToAbsolute(poses);
+
+            std::vector<AnimPose> absPoses = poses;
+            _animSkeleton->convertRelativePosesToAbsolute(absPoses);
             for (int i = 0; i < nJoints; i++) {
                 JointData& data = _jointData[i];
-                AnimPose& pose = poses[i];
-                if (data.rotation != pose.rot()) {
-                    data.rotation = pose.rot();
+                AnimPose& absPose = absPoses[i];
+                if (data.rotation != absPose.rot()) {
+                    data.rotation = absPose.rot();
                     data.rotationSet = true;
                 }
+                AnimPose& relPose = poses[i];
+                if (data.translation != relPose.trans()) {
+                    data.translation = relPose.trans();
+                    data.translationSet = true;
+                }
             }
 
         } else {

From e100e3d19b0d38a701122b0cb29584b8f8b813c6 Mon Sep 17 00:00:00 2001
From: "Anthony J. Thibault" <tony@highfidelity.io>
Date: Tue, 28 Mar 2017 17:34:15 -0700
Subject: [PATCH 247/247] made UNIT_SCALE const

---
 assignment-client/src/avatars/ScriptableAvatar.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/assignment-client/src/avatars/ScriptableAvatar.cpp b/assignment-client/src/avatars/ScriptableAvatar.cpp
index 7fb319031b..57456b00c3 100644
--- a/assignment-client/src/avatars/ScriptableAvatar.cpp
+++ b/assignment-client/src/avatars/ScriptableAvatar.cpp
@@ -100,7 +100,7 @@ void ScriptableAvatar::update(float deltatime) {
             const float frameFraction = glm::fract(currentFrame);
             std::vector<AnimPose> poses = _animSkeleton->getRelativeDefaultPoses();
 
-            float UNIT_SCALE = 0.01f;
+            const float UNIT_SCALE = 0.01f;
 
             for (int i = 0; i < animationJointNames.size(); i++) {
                 const QString& name = animationJointNames[i];