From 6272db42dafc2cbc0171f81d21eb80bffb817584 Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Mon, 29 Aug 2016 13:53:08 -0700 Subject: [PATCH 1/6] restore onNewViewRequested --- interface/resources/qml/controls-uit/WebView.qml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/interface/resources/qml/controls-uit/WebView.qml b/interface/resources/qml/controls-uit/WebView.qml index faf7f746a2..04c8ef873d 100644 --- a/interface/resources/qml/controls-uit/WebView.qml +++ b/interface/resources/qml/controls-uit/WebView.qml @@ -61,6 +61,11 @@ WebEngineView { } } + onNewViewRequested:{ + var component = Qt.createComponent("../Browser.qml"); + var newWindow = component.createObject(desktop); + request.openIn(newWindow.webView) + } // This breaks the webchannel used for passing messages. Fixed in Qt 5.6 // See https://bugreports.qt.io/browse/QTBUG-49521 From 11f00ed46cf2d571cf6bc2f3e72f0efb107a8069 Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Mon, 29 Aug 2016 14:44:48 -0700 Subject: [PATCH 2/6] add a hook so that clients can gain access to the new component, window, and request --- interface/resources/qml/controls-uit/WebView.qml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/interface/resources/qml/controls-uit/WebView.qml b/interface/resources/qml/controls-uit/WebView.qml index 04c8ef873d..8c46aabcae 100644 --- a/interface/resources/qml/controls-uit/WebView.qml +++ b/interface/resources/qml/controls-uit/WebView.qml @@ -61,10 +61,12 @@ WebEngineView { } } + property var newWindowHook: function (component, newWindow, request) { }; // override if you need to onNewViewRequested:{ - var component = Qt.createComponent("../Browser.qml"); - var newWindow = component.createObject(desktop); - request.openIn(newWindow.webView) + var component = Qt.createComponent("../Browser.qml"); + var newWindow = component.createObject(desktop); + request.openIn(newWindow.webView) + newWindowHook(component, newWindow, request); } // This breaks the webchannel used for passing messages. Fixed in Qt 5.6 From c5b998a2a8e7472ebcbf5dffe3a272308be5eb9a Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Tue, 30 Aug 2016 12:18:03 -0700 Subject: [PATCH 3/6] use new hook in marketplace code --- interface/resources/qml/MarketplaceComboBox.qml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/interface/resources/qml/MarketplaceComboBox.qml b/interface/resources/qml/MarketplaceComboBox.qml index f7f224485b..66d9b92ea2 100644 --- a/interface/resources/qml/MarketplaceComboBox.qml +++ b/interface/resources/qml/MarketplaceComboBox.qml @@ -48,15 +48,12 @@ Rectangle { property var autoCancel: 'var element = $("a.btn.cancel"); element.click();' - onNewViewRequested: { - var component = Qt.createComponent("Browser.qml"); - var newWindow = component.createObject(desktop); - request.openIn(newWindow.webView); + newWindowHook: function (component, newWindow) { if (File.isZippedFbx(desktop.currentUrl)) { + runJavaScript(autoCancel); zipTimer.handler = function() { newWindow.destroy(); - runJavaScript(autoCancel); - } + }; zipTimer.start(); } } From 232ac74b267342dbdb7ab25d6174fe13c25581f2 Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Tue, 30 Aug 2016 14:06:20 -0700 Subject: [PATCH 4/6] back to master version --- interface/resources/qml/MarketplaceComboBox.qml | 11 +++++++---- interface/resources/qml/controls-uit/WebView.qml | 7 ------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/interface/resources/qml/MarketplaceComboBox.qml b/interface/resources/qml/MarketplaceComboBox.qml index 66d9b92ea2..fec151d755 100644 --- a/interface/resources/qml/MarketplaceComboBox.qml +++ b/interface/resources/qml/MarketplaceComboBox.qml @@ -28,7 +28,7 @@ Rectangle { color: hifi.colors.baseGrayShadow property var currentUrl: "https://metaverse.highfidelity.com/marketplace" - Controls.WebView { + Controls.BaseWebView { id: webview url: currentUrl anchors.top: switchMarketView.bottom @@ -48,12 +48,15 @@ Rectangle { property var autoCancel: 'var element = $("a.btn.cancel"); element.click();' - newWindowHook: function (component, newWindow) { + onNewViewRequested: { + var component = Qt.createComponent("Browser.qml"); + var newWindow = component.createObject(desktop); + request.openIn(newWindow.webView); if (File.isZippedFbx(desktop.currentUrl)) { - runJavaScript(autoCancel); zipTimer.handler = function() { newWindow.destroy(); - }; + runJavaScript(autoCancel); + } zipTimer.start(); } } diff --git a/interface/resources/qml/controls-uit/WebView.qml b/interface/resources/qml/controls-uit/WebView.qml index 8c46aabcae..faf7f746a2 100644 --- a/interface/resources/qml/controls-uit/WebView.qml +++ b/interface/resources/qml/controls-uit/WebView.qml @@ -61,13 +61,6 @@ WebEngineView { } } - property var newWindowHook: function (component, newWindow, request) { }; // override if you need to - onNewViewRequested:{ - var component = Qt.createComponent("../Browser.qml"); - var newWindow = component.createObject(desktop); - request.openIn(newWindow.webView) - newWindowHook(component, newWindow, request); - } // This breaks the webchannel used for passing messages. Fixed in Qt 5.6 // See https://bugreports.qt.io/browse/QTBUG-49521 From 564769f7d3f1234d64e3e6edc7c577ff2a0a6869 Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Tue, 30 Aug 2016 14:07:34 -0700 Subject: [PATCH 5/6] move WebView.qml to baseWebView.qml --- .../resources/qml/controls-uit/{WebView.qml => BaseWebView.qml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename interface/resources/qml/controls-uit/{WebView.qml => BaseWebView.qml} (100%) diff --git a/interface/resources/qml/controls-uit/WebView.qml b/interface/resources/qml/controls-uit/BaseWebView.qml similarity index 100% rename from interface/resources/qml/controls-uit/WebView.qml rename to interface/resources/qml/controls-uit/BaseWebView.qml From 88245075233464e1d860e977a428652ea0aea53f Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Tue, 30 Aug 2016 14:37:08 -0700 Subject: [PATCH 6/6] new smaller WebView.qml --- .../resources/qml/controls-uit/WebView.qml | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 interface/resources/qml/controls-uit/WebView.qml diff --git a/interface/resources/qml/controls-uit/WebView.qml b/interface/resources/qml/controls-uit/WebView.qml new file mode 100644 index 0000000000..2ce007c42a --- /dev/null +++ b/interface/resources/qml/controls-uit/WebView.qml @@ -0,0 +1,20 @@ +// +// WebView.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 "." + +BaseWebView { + onNewViewRequested: { + var component = Qt.createComponent("../Browser.qml"); + var newWindow = component.createObject(desktop); + request.openIn(newWindow.webView) + } +}