Trying to add in a back button

This commit is contained in:
Elisa Lupin-Jimenez 2017-08-10 16:34:37 -07:00
parent 28476960bb
commit da5bb03187
5 changed files with 19 additions and 5 deletions

View file

@ -93,6 +93,11 @@ Item {
loader.source = ""; loader.source = "";
loader.source = "TabletWebView.qml"; loader.source = "TabletWebView.qml";
} }
function loadTabletWebBase() {
loader.source = "";
loader.source = "../../controls/TabletWebView.qml";
}
function returnToPreviousApp() { function returnToPreviousApp() {
tabletApps.remove(currentApp); tabletApps.remove(currentApp);

View file

@ -42,6 +42,11 @@ Windows.ScrollingWindow {
loader.source = "WindowWebView.qml"; loader.source = "WindowWebView.qml";
} }
function loadTabletWebBase() {
loader.source = "";
loader.source = "../../controls/TabletWebView.qml";
}
function loadWebUrl(url, injectedJavaScriptUrl) { function loadWebUrl(url, injectedJavaScriptUrl) {
loader.item.url = url; loader.item.url = url;
loader.item.scriptURL = injectedJavaScriptUrl; loader.item.scriptURL = injectedJavaScriptUrl;

View file

@ -604,7 +604,7 @@ void TabletProxy::loadWebScreenOnTop(const QVariant& url, const QString& injectJ
_state = State::Web; _state = State::Web;
} }
void TabletProxy::gotoWebScreen(const QString& url, const QString& injectedJavaScriptUrl) { void TabletProxy::gotoWebScreen(const QString& url, const QString& injectedJavaScriptUrl, bool loadOtherBase) {
if (QThread::currentThread() != thread()) { if (QThread::currentThread() != thread()) {
QMetaObject::invokeMethod(this, "gotoWebScreen", Q_ARG(QString, url), Q_ARG(QString, injectedJavaScriptUrl)); QMetaObject::invokeMethod(this, "gotoWebScreen", Q_ARG(QString, url), Q_ARG(QString, injectedJavaScriptUrl));
return; return;
@ -619,7 +619,11 @@ void TabletProxy::gotoWebScreen(const QString& url, const QString& injectedJavaS
if (root) { if (root) {
removeButtonsFromHomeScreen(); removeButtonsFromHomeScreen();
QMetaObject::invokeMethod(root, "loadWebBase"); if (loadOtherBase) {
QMetaObject::invokeMethod(root, "loadTabletWebBase");
} else {
QMetaObject::invokeMethod(root, "loadWebBase");
}
QMetaObject::invokeMethod(root, "setShown", Q_ARG(const QVariant&, QVariant(true))); QMetaObject::invokeMethod(root, "setShown", Q_ARG(const QVariant&, QVariant(true)));
QMetaObject::invokeMethod(root, "loadWebUrl", Q_ARG(const QVariant&, QVariant(url)), Q_ARG(const QVariant&, QVariant(injectedJavaScriptUrl))); QMetaObject::invokeMethod(root, "loadWebUrl", Q_ARG(const QVariant&, QVariant(url)), Q_ARG(const QVariant&, QVariant(injectedJavaScriptUrl)));
} }

View file

@ -122,7 +122,7 @@ public:
* @param [injectedJavaScriptUrl] {string} optional url to an additional JS script to inject into the web page. * @param [injectedJavaScriptUrl] {string} optional url to an additional JS script to inject into the web page.
*/ */
Q_INVOKABLE void gotoWebScreen(const QString& url); Q_INVOKABLE void gotoWebScreen(const QString& url);
Q_INVOKABLE void gotoWebScreen(const QString& url, const QString& injectedJavaScriptUrl); Q_INVOKABLE void gotoWebScreen(const QString& url, const QString& injectedJavaScriptUrl, bool loadOtherBase = false);
Q_INVOKABLE void loadQMLSource(const QVariant& path); Q_INVOKABLE void loadQMLSource(const QVariant& path);
// FIXME: This currently relies on a script initializing the tablet (hence the bool denoting success); // FIXME: This currently relies on a script initializing the tablet (hence the bool denoting success);

View file

@ -10,7 +10,7 @@
}); });
function onClicked() { function onClicked() {
tablet.gotoWebScreen(APP_URL); tablet.gotoWebScreen(APP_URL, "", true);
} }
button.clicked.connect(onClicked); button.clicked.connect(onClicked);
@ -19,4 +19,4 @@
} }
Script.scriptEnding.connect(cleanup); Script.scriptEnding.connect(cleanup);
}()); }());