summaryrefslogtreecommitdiffstats
path: root/mobile-widgets
diff options
context:
space:
mode:
Diffstat (limited to 'mobile-widgets')
-rw-r--r--mobile-widgets/qml/main.qml2
-rw-r--r--mobile-widgets/qmlmanager.cpp17
-rw-r--r--mobile-widgets/qmlmanager.h6
3 files changed, 24 insertions, 1 deletions
diff --git a/mobile-widgets/qml/main.qml b/mobile-widgets/qml/main.qml
index 2bc62dbe3..36c225ef8 100644
--- a/mobile-widgets/qml/main.qml
+++ b/mobile-widgets/qml/main.qml
@@ -16,7 +16,7 @@ Kirigami.ApplicationWindow {
header.preferredHeight: Kirigami.Units.gridUnit * (Qt.platform.os == "ios" ? 2 : 1)
header.maximumHeight: Kirigami.Units.gridUnit * 2
property bool fullscreen: true
- property int oldStatus: -1
+ property alias oldStatus: manager.oldStatus
property alias accessingCloud: manager.accessingCloud
property QtObject notification: null
property bool showingDiveList: false
diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp
index d030f5a72..3d478178d 100644
--- a/mobile-widgets/qmlmanager.cpp
+++ b/mobile-widgets/qmlmanager.cpp
@@ -213,6 +213,10 @@ void QMLManager::saveCloudCredentials()
cloudCredentialsChanged |= !same_string(prefs.cloud_storage_password, qPrintable(cloudPassword()));
+ if (!cloudCredentialsChanged) {
+ // just go back to the dive list
+ setCredentialStatus(oldStatus());
+ }
if (!same_string(prefs.cloud_storage_password, qPrintable(cloudPassword()))) {
free(prefs.cloud_storage_password);
prefs.cloud_storage_password = strdup(qPrintable(cloudPassword()));
@@ -1014,6 +1018,19 @@ void QMLManager::setCredentialStatus(const credentialStatus_t value)
}
}
+QMLManager::credentialStatus_t QMLManager::oldStatus() const
+{
+ return m_oldStatus;
+}
+
+void QMLManager::setOldStatus(const credentialStatus_t value)
+{
+ if (m_oldStatus != value) {
+ m_oldStatus = value;
+ emit oldStatusChanged();
+ }
+}
+
// where in the QML dive list is that dive?
int QMLManager::getIndex(const QString &diveId)
{
diff --git a/mobile-widgets/qmlmanager.h b/mobile-widgets/qmlmanager.h
index bd55f68e4..ba37c4f58 100644
--- a/mobile-widgets/qmlmanager.h
+++ b/mobile-widgets/qmlmanager.h
@@ -22,6 +22,7 @@ class QMLManager : public QObject {
Q_PROPERTY(QString startPageText READ startPageText WRITE setStartPageText NOTIFY startPageTextChanged)
Q_PROPERTY(bool verboseEnabled READ verboseEnabled WRITE setVerboseEnabled NOTIFY verboseEnabledChanged)
Q_PROPERTY(credentialStatus_t credentialStatus READ credentialStatus WRITE setCredentialStatus NOTIFY credentialStatusChanged)
+ Q_PROPERTY(credentialStatus_t oldStatus READ oldStatus WRITE setOldStatus NOTIFY oldStatusChanged)
Q_PROPERTY(int accessingCloud READ accessingCloud WRITE setAccessingCloud NOTIFY accessingCloudChanged)
Q_PROPERTY(bool syncToCloud READ syncToCloud WRITE setSyncToCloud NOTIFY syncToCloudChanged)
@@ -67,6 +68,9 @@ public:
credentialStatus_t credentialStatus() const;
void setCredentialStatus(const credentialStatus_t value);
+ credentialStatus_t oldStatus() const;
+ void setOldStatus(const credentialStatus_t value);
+
QString logText() const;
void setLogText(const QString &logText);
@@ -139,6 +143,7 @@ private:
int m_accessingCloud;
bool m_syncToCloud;
credentialStatus_t m_credentialStatus;
+ credentialStatus_t m_oldStatus;
qreal m_lastDevicePixelRatio;
QElapsedTimer timer;
bool alreadySaving;
@@ -154,6 +159,7 @@ signals:
void loadFromCloudChanged();
void startPageTextChanged();
void credentialStatusChanged();
+ void oldStatusChanged();
void accessingCloudChanged();
void syncToCloudChanged();
void sendScreenChanged(QScreen *screen);