diff options
Diffstat (limited to 'mobile-widgets')
-rw-r--r-- | mobile-widgets/qml/main.qml | 2 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.cpp | 17 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.h | 6 |
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); |