From 35e22f9321e3057d255f629629726bef69beb222 Mon Sep 17 00:00:00 2001 From: Mathieu Pellerin Date: Tue, 19 Mar 2024 19:22:02 +0700 Subject: [PATCH 1/2] Add hard exit button. --- images/images.qrc | 1 + .../themes/qfield/nodpi/ic_shutdown_24dp.svg | 1 + src/qml/WelcomeScreen.qml | 18 ++++++++++++++++++ src/qml/qgismobileapp.qml | 8 ++++---- 4 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 images/themes/qfield/nodpi/ic_shutdown_24dp.svg diff --git a/images/images.qrc b/images/images.qrc index 5960127d7b..1b8f5788d2 100644 --- a/images/images.qrc +++ b/images/images.qrc @@ -541,5 +541,6 @@ themes/qfield/nodpi/ic_password_48dp.svg themes/qfield/nodpi/ic_arrow_drop_down_48dp.svg themes/qfield/nodpi/ic_arrow_drop_up_48dp.svg + themes/qfield/nodpi/ic_shutdown_24dp.svg diff --git a/images/themes/qfield/nodpi/ic_shutdown_24dp.svg b/images/themes/qfield/nodpi/ic_shutdown_24dp.svg new file mode 100644 index 0000000000..88e2b11352 --- /dev/null +++ b/images/themes/qfield/nodpi/ic_shutdown_24dp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/qml/WelcomeScreen.qml b/src/qml/WelcomeScreen.qml index f27bf31f5b..1e21576375 100644 --- a/src/qml/WelcomeScreen.qml +++ b/src/qml/WelcomeScreen.qml @@ -772,6 +772,23 @@ Page { } } + QfToolButton { + id: exitButton + visible: false + anchors { + top: parent.top + right: parent.right + topMargin: mainWindow.sceneTopMargin + } + iconSource: Theme.getThemeVectorIcon('ic_shutdown_24dp') + iconColor: Theme.mainTextColor + + onClicked: { + mainWindow.closeAlreadyRequested = true; + mainWindow.close(); + } + } + // Sparkles & unicorns Rectangle { anchors.fill: parent @@ -878,6 +895,7 @@ Page { if (visible) { const currentProjectButtonVisible = !!qgisProject.fileName; currentProjectButton.visible = currentProjectButtonVisible; + exitButton.visible = currentProjectButtonVisible; if (firstShown) { welcomeText.text = " "; } else { diff --git a/src/qml/qgismobileapp.qml b/src/qml/qgismobileapp.qml index e7dbc987ac..cc10226497 100644 --- a/src/qml/qgismobileapp.qml +++ b/src/qml/qgismobileapp.qml @@ -3847,7 +3847,7 @@ ApplicationWindow { state: iface.hasProjectOnLaunch() ? "visible" : "hidden" } - property bool alreadyCloseRequested: false + property bool closeAlreadyRequested: false onClosing: close => { if (screenLocker.enabled) { @@ -3855,9 +3855,9 @@ ApplicationWindow { displayToast(qsTr("Unlock the screen to to close project and app")); return; } - if (!alreadyCloseRequested) { + if (!closeAlreadyRequested) { close.accepted = false; - alreadyCloseRequested = true; + closeAlreadyRequested = true; displayToast(qsTr("Press back again to close project and app")); closingTimer.start(); } else { @@ -3869,7 +3869,7 @@ ApplicationWindow { id: closingTimer interval: 2000 onTriggered: { - alreadyCloseRequested = false; + closeAlreadyRequested = false; } } From 3a57a4b8861700a11a0e859688b2a03bdbfa98c4 Mon Sep 17 00:00:00 2001 From: Mohsen Date: Fri, 16 Aug 2024 13:49:08 +0330 Subject: [PATCH 2/2] Hard exit visible only on mobile platforms. --- src/qml/WelcomeScreen.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qml/WelcomeScreen.qml b/src/qml/WelcomeScreen.qml index 1e21576375..8bf1426b45 100644 --- a/src/qml/WelcomeScreen.qml +++ b/src/qml/WelcomeScreen.qml @@ -895,7 +895,7 @@ Page { if (visible) { const currentProjectButtonVisible = !!qgisProject.fileName; currentProjectButton.visible = currentProjectButtonVisible; - exitButton.visible = currentProjectButtonVisible; + exitButton.visible = currentProjectButtonVisible && (Qt.platform.os === "ios" || Qt.platform.os === "android"); if (firstShown) { welcomeText.text = " "; } else {