From 46f6c9f8882a8943b5f85b845291060e1dc01d02 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Tue, 17 Mar 2015 09:06:31 -0700 Subject: [PATCH 1/5] Add WebWindow::setURL --- interface/src/scripting/WebWindowClass.cpp | 8 ++++++++ interface/src/scripting/WebWindowClass.h | 1 + 2 files changed, 9 insertions(+) diff --git a/interface/src/scripting/WebWindowClass.cpp b/interface/src/scripting/WebWindowClass.cpp index ae0e327cb1..01e5f07ca9 100644 --- a/interface/src/scripting/WebWindowClass.cpp +++ b/interface/src/scripting/WebWindowClass.cpp @@ -96,6 +96,14 @@ void WebWindowClass::setVisible(bool visible) { QMetaObject::invokeMethod(_windowWidget, "setVisible", Qt::BlockingQueuedConnection, Q_ARG(bool, visible)); } +void WebWindowClass::setURL(const QString& url) { + if (QThread::currentThread() != thread()) { + QMetaObject::invokeMethod(this, "setURL", Qt::BlockingQueuedConnection, Q_ARG(QString, url)); + return; + } + _webView->setUrl(url); +} + QScriptValue WebWindowClass::constructor(QScriptContext* context, QScriptEngine* engine) { WebWindowClass* retVal; QString file = context->argument(0).toString(); diff --git a/interface/src/scripting/WebWindowClass.h b/interface/src/scripting/WebWindowClass.h index c923fdd748..08d9a42478 100644 --- a/interface/src/scripting/WebWindowClass.h +++ b/interface/src/scripting/WebWindowClass.h @@ -42,6 +42,7 @@ public: public slots: void setVisible(bool visible); + void setURL(const QString& url); ScriptEventBridge* getEventBridge() const { return _eventBridge; } void addEventBridgeToWindowObject(); From 8088b0135622487454df0f9a0b387718dad6ad28 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Tue, 17 Mar 2015 09:06:48 -0700 Subject: [PATCH 2/5] Add WebWindow::raise --- interface/src/scripting/WebWindowClass.cpp | 4 ++++ interface/src/scripting/WebWindowClass.h | 1 + 2 files changed, 5 insertions(+) diff --git a/interface/src/scripting/WebWindowClass.cpp b/interface/src/scripting/WebWindowClass.cpp index 01e5f07ca9..c3a3dada73 100644 --- a/interface/src/scripting/WebWindowClass.cpp +++ b/interface/src/scripting/WebWindowClass.cpp @@ -104,6 +104,10 @@ void WebWindowClass::setURL(const QString& url) { _webView->setUrl(url); } +void WebWindowClass::raise() { + QMetaObject::invokeMethod(_windowWidget, "raise", Qt::BlockingQueuedConnection); +} + QScriptValue WebWindowClass::constructor(QScriptContext* context, QScriptEngine* engine) { WebWindowClass* retVal; QString file = context->argument(0).toString(); diff --git a/interface/src/scripting/WebWindowClass.h b/interface/src/scripting/WebWindowClass.h index 08d9a42478..60732acf67 100644 --- a/interface/src/scripting/WebWindowClass.h +++ b/interface/src/scripting/WebWindowClass.h @@ -43,6 +43,7 @@ public: public slots: void setVisible(bool visible); void setURL(const QString& url); + void raise(); ScriptEventBridge* getEventBridge() const { return _eventBridge; } void addEventBridgeToWindowObject(); From 1e1c60847bf5d2f415eadde65f6f8c6753c1331f Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Tue, 17 Mar 2015 09:07:01 -0700 Subject: [PATCH 3/5] Add WebWindow::getURL --- interface/src/scripting/WebWindowClass.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/interface/src/scripting/WebWindowClass.h b/interface/src/scripting/WebWindowClass.h index 60732acf67..429b054966 100644 --- a/interface/src/scripting/WebWindowClass.h +++ b/interface/src/scripting/WebWindowClass.h @@ -34,6 +34,7 @@ signals: class WebWindowClass : public QObject { Q_OBJECT Q_PROPERTY(QObject* eventBridge READ getEventBridge) + Q_PROPERTY(QString url READ getURL) public: WebWindowClass(const QString& title, const QString& url, int width, int height, bool isToolWindow = false); ~WebWindowClass(); @@ -42,6 +43,7 @@ public: public slots: void setVisible(bool visible); + QString getURL() const { return _webView->url().url(); } void setURL(const QString& url); void raise(); ScriptEventBridge* getEventBridge() const { return _eventBridge; } From 66517fa1c0bb4f51a62e3f4991ff75092a846194 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Tue, 17 Mar 2015 09:07:33 -0700 Subject: [PATCH 4/5] Add ability to show marketplace url from edit properties --- examples/edit.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/examples/edit.js b/examples/edit.js index 72938e5ed4..03137310b6 100644 --- a/examples/edit.js +++ b/examples/edit.js @@ -338,7 +338,11 @@ var toolBar = (function () { return true; } if (browseModelsButton === toolBar.clicked(clickedOverlay)) { + if (marketplaceWindow.url != MARKETPLACE_URL) { + marketplaceWindow.setURL(MARKETPLACE_URL); + } marketplaceWindow.setVisible(true); + marketplaceWindow.raise(); return true; } @@ -1143,6 +1147,10 @@ PropertiesTool = function(opts) { } pushCommandForSelections(); selectionManager._update(); + } else if (data.type = "showMarketplace") { + if (marketplaceWindow.url != data.url) { + marketplaceWindow.setURL(data.url); + } } else if (data.type == "action") { if (data.action == "moveSelectionToGrid") { if (selectionManager.hasSelection()) { From d097b4409e79dcba8b500fe655f293069606c7ce Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Tue, 17 Mar 2015 10:40:51 -0700 Subject: [PATCH 5/5] Add title to non-toolbar WebWindows --- interface/src/scripting/WebWindowClass.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/interface/src/scripting/WebWindowClass.cpp b/interface/src/scripting/WebWindowClass.cpp index c3a3dada73..61b3ce225f 100644 --- a/interface/src/scripting/WebWindowClass.cpp +++ b/interface/src/scripting/WebWindowClass.cpp @@ -55,6 +55,7 @@ WebWindowClass::WebWindowClass(const QString& title, const QString& url, int wid _windowWidget = dockWidget; } else { _windowWidget = new QWidget(Application::getInstance()->getWindow(), Qt::Window); + _windowWidget->setWindowTitle(title); _windowWidget->setMinimumSize(width, height); auto layout = new QVBoxLayout(_windowWidget);