From b78bae37beb196f1e8b819a4d51d209d5fd60c40 Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Tue, 25 Apr 2017 23:22:27 +0100 Subject: [PATCH 1/2] added keyboard for tabletWebview --- .../resources/qml/controls/TabletWebView.qml | 44 ++++++++++++++++--- .../qml/hifi/tablet/TabletAddressDialog.qml | 1 + 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/interface/resources/qml/controls/TabletWebView.qml b/interface/resources/qml/controls/TabletWebView.qml index 9a08e8b866..7396395fdb 100644 --- a/interface/resources/qml/controls/TabletWebView.qml +++ b/interface/resources/qml/controls/TabletWebView.qml @@ -23,6 +23,8 @@ Item { property bool keyboardRaised: false property bool punctuationMode: false property bool isDesktop: false + property bool removingPage: false + property bool loadingPage: false property int currentPage: -1 // used as a model for repeater @@ -94,10 +96,14 @@ Item { } function goBack() { - if (webview.canGoBack) { - pagesModel.remove(currentPage); + if (webview.canGoBack && !isUrlLoaded(webview.url)) { + if (currentPage > 0) { + removingPage = true; + pagesModel.remove(currentPage); + } webview.goBack(); } else if (currentPage > 0) { + removingPage = true; pagesModel.remove(currentPage); } } @@ -121,6 +127,10 @@ Item { urlAppend(url) } + function isUrlLoaded(url) { + return (pagesModel.get(currentPage).webUrl === url); + } + function reloadPage() { view.reloadAndBypassCache() view.setActiveFocusOnPress(true); @@ -128,6 +138,10 @@ Item { } function urlAppend(url) { + if (removingPage) { + removingPage = false; + return; + } var lurl = decodeURIComponent(url) if (lurl[lurl.length - 1] !== "/") { lurl = lurl + "/" @@ -140,6 +154,7 @@ Item { onCurrentPageChanged: { if (currentPage >= 0 && currentPage < pagesModel.count) { + timer.start(); webview.url = pagesModel.get(currentPage).webUrl; web.url = webview.url; web.address = webview.url; @@ -158,7 +173,7 @@ Item { Timer { id: timer - interval: 100 + interval: 200 running: false repeat: false onTriggered: timer.stop(); @@ -227,13 +242,13 @@ Item { } onLoadingChanged: { - keyboardRaised = false; - punctuationMode = false; + //keyboardRaised = false; + //punctuationMode = false; keyboard.resetShiftMode(false); - // Required to support clicking on "hifi://" links if (WebEngineView.LoadStartedStatus == loadRequest.status) { - urlAppend(loadRequest.url.toString()) + urlAppend(loadRequest.url.toString()); + loadingPage = true; var url = loadRequest.url.toString(); if (urlHandler.canHandleUrl(url)) { if (urlHandler.handleUrl(url)) { @@ -241,12 +256,27 @@ Item { } } } + + if (WebEngineView.LoadFailedStatus == loadRequest.status) { + console.log(" Tablet WebEngineView failed to laod url: " + loadRequest.url.toString()); + } } onNewViewRequested: { request.openIn(webview); } } + + HiFiControls.Keyboard { + id: keyboard + raised: parent.keyboardEnabled && parent.keyboardRaised + + anchors { + left: parent.left + right: parent.right + bottom: parent.bottom + } + } Component.onCompleted: { web.isDesktop = (typeof desktop !== "undefined"); diff --git a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml index bed1f82ac2..b78254a4a0 100644 --- a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml +++ b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml @@ -65,6 +65,7 @@ StackView { var card = tabletWebView.createObject(); card.url = addressBarDialog.metaverseServerUrl + targetString; card.parentStackItem = root; + card.eventBridge = root.eventBridge; root.push(card); return; } From 851eece0e49f5d5908e3780d3ffe0441d251eb71 Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Tue, 25 Apr 2017 23:26:16 +0100 Subject: [PATCH 2/2] removed comments --- interface/resources/qml/controls/TabletWebView.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/resources/qml/controls/TabletWebView.qml b/interface/resources/qml/controls/TabletWebView.qml index 7396395fdb..41cea625e2 100644 --- a/interface/resources/qml/controls/TabletWebView.qml +++ b/interface/resources/qml/controls/TabletWebView.qml @@ -242,8 +242,8 @@ Item { } onLoadingChanged: { - //keyboardRaised = false; - //punctuationMode = false; + keyboardRaised = false; + punctuationMode = false; keyboard.resetShiftMode(false); // Required to support clicking on "hifi://" links if (WebEngineView.LoadStartedStatus == loadRequest.status) {