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 = "TabletWebView.qml";
}
function loadTabletWebBase() {
loader.source = "";
loader.source = "../../controls/TabletWebView.qml";
}
function returnToPreviousApp() {
tabletApps.remove(currentApp);

View file

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

View file

@ -604,7 +604,7 @@ void TabletProxy::loadWebScreenOnTop(const QVariant& url, const QString& injectJ
_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()) {
QMetaObject::invokeMethod(this, "gotoWebScreen", Q_ARG(QString, url), Q_ARG(QString, injectedJavaScriptUrl));
return;
@ -619,7 +619,11 @@ void TabletProxy::gotoWebScreen(const QString& url, const QString& injectedJavaS
if (root) {
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, "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.
*/
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);
// FIXME: This currently relies on a script initializing the tablet (hence the bool denoting success);

View file

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