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(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") {