diff options
-rw-r--r-- | CHANGELOG.md | 1 | ||||
-rw-r--r-- | mobile-widgets/qml/CloudCredentials.qml | 2 | ||||
-rw-r--r-- | mobile-widgets/qml/main.qml | 3 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.cpp | 22 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.h | 7 |
5 files changed, 14 insertions, 21 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 11c9e80df..2269ea7a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,4 @@ +- Mobile: preserve manual/auto sync with cloud [#1725] - Performance: calculate full statistics only when needed - HTML export: write statistics of exported dives only - Desktop: fix calculation of surface interval in the case of overlappimg dives diff --git a/mobile-widgets/qml/CloudCredentials.qml b/mobile-widgets/qml/CloudCredentials.qml index 7b4ea12fb..02d66c86e 100644 --- a/mobile-widgets/qml/CloudCredentials.qml +++ b/mobile-widgets/qml/CloudCredentials.qml @@ -143,7 +143,7 @@ Item { id: toNoCloudMode text: qsTr("No cloud mode") onClicked: { - manager.syncToCloud = false + manager.setGitLocalOnly(true) PrefCloudStorage.cloud_auto_sync = false prefs.credentialStatus = CloudStatus.CS_NOCLOUD manager.saveCloudCredentials() diff --git a/mobile-widgets/qml/main.qml b/mobile-widgets/qml/main.qml index fb63ed0c3..4818d2a83 100644 --- a/mobile-widgets/qml/main.qml +++ b/mobile-widgets/qml/main.qml @@ -28,7 +28,6 @@ Kirigami.ApplicationWindow { } property alias oldStatus: prefs.oldStatus property alias notificationText: manager.notificationText - property alias syncToCloud: manager.syncToCloud property alias locationServiceEnabled: manager.locationServiceEnabled property alias pluggedInDeviceName: manager.pluggedInDeviceName property alias showPin: prefs.showPin @@ -279,7 +278,7 @@ Kirigami.ApplicationWindow { visible: prefs.credentialStatus !== CloudStatus.CS_NOCLOUD onTriggered: { PrefCloudStorage.cloud_auto_sync = !PrefCloudStorage.cloud_auto_sync - syncToCloud = PrefCloudStorage.cloud_auto_sync + manager.setGitLocalOnly(PrefCloudStorage.cloud_auto_sync) if (!PrefCloudStorage.cloud_auto_sync) { showPassiveNotification(qsTr("Turning off automatic sync to cloud causes all data to only be \ stored locally. This can be very useful in situations with limited or no network access. Please choose 'Manual sync with cloud' \ diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp index 8ee19e2d0..9254230f9 100644 --- a/mobile-widgets/qmlmanager.cpp +++ b/mobile-widgets/qmlmanager.cpp @@ -375,7 +375,7 @@ void QMLManager::finishSetup() // Initialize cloud credentials. QMLPrefs::instance()->setCloudUserName(qPrefCloudStorage::cloud_storage_email()); QMLPrefs::instance()->setCloudPassword(qPrefCloudStorage::cloud_storage_password()); - setSyncToCloud(!git_local_only); + git_local_only = !prefs.cloud_auto_sync; QMLPrefs::instance()->setCredentialStatus((qPrefCloudStorage::cloud_status) prefs.cloud_verification_status); // if the cloud credentials are valid, we should get the GPS Webservice ID as well QString url; @@ -679,9 +679,9 @@ successful_exit: noCloudToCloud = false; mark_divelist_changed(true); saveChangesLocal(); - if (m_syncToCloud == false) { + if (git_local_only == false) { appendTextToLog(QStringLiteral("taking things back offline now that storage is synced")); - git_local_only = m_syncToCloud; + git_local_only = true; } } // if we got here just for an initial connection to the cloud, reset to offline @@ -705,9 +705,9 @@ void QMLManager::revertToNoCloudIfNeeded() // and cloud data) failed - so let's delete the cloud credentials and go // back to CS_NOCLOUD mode in order to prevent us from losing the locally stored // dives - if (m_syncToCloud == false) { + if (git_local_only == true) { appendTextToLog(QStringLiteral("taking things back offline since sync with cloud failed")); - git_local_only = m_syncToCloud; + git_local_only = false; } free((void *)prefs.cloud_storage_email); prefs.cloud_storage_email = NULL; @@ -1492,13 +1492,6 @@ void QMLManager::setNotificationText(QString text) emit notificationTextChanged(); } -void QMLManager::setSyncToCloud(bool status) -{ - m_syncToCloud = status; - git_local_only = !status; - emit syncToCloudChanged(); -} - void QMLManager::setUpdateSelectedDive(int idx) { m_updateSelectedDive = idx; @@ -1764,6 +1757,11 @@ int QMLManager::getConnectionIndex(const QString &deviceSubstr) return connectionListModel.indexOf(deviceSubstr); } +void QMLManager::setGitLocalOnly(const bool &value) +{ + git_local_only = value; +} + void QMLManager::showDownloadPage(QString deviceString) { // we pass the indices for the three combo boxes for vendor, product, and connection diff --git a/mobile-widgets/qmlmanager.h b/mobile-widgets/qmlmanager.h index 674db311c..bd18edefa 100644 --- a/mobile-widgets/qmlmanager.h +++ b/mobile-widgets/qmlmanager.h @@ -28,7 +28,6 @@ class QMLManager : public QObject { Q_PROPERTY(QString startPageText MEMBER m_startPageText WRITE setStartPageText NOTIFY startPageTextChanged) Q_PROPERTY(bool verboseEnabled MEMBER m_verboseEnabled WRITE setVerboseEnabled NOTIFY verboseEnabledChanged) Q_PROPERTY(QString notificationText MEMBER m_notificationText WRITE setNotificationText NOTIFY notificationTextChanged) - Q_PROPERTY(bool syncToCloud MEMBER m_syncToCloud WRITE setSyncToCloud NOTIFY syncToCloudChanged) Q_PROPERTY(int updateSelectedDive MEMBER m_updateSelectedDive WRITE setUpdateSelectedDive NOTIFY updateSelectedDiveChanged) Q_PROPERTY(int selectedDiveTimestamp MEMBER m_selectedDiveTimestamp WRITE setSelectedDiveTimestamp NOTIFY selectedDiveTimestampChanged) Q_PROPERTY(QStringList suitList READ suitList NOTIFY suitListChanged) @@ -88,6 +87,7 @@ public: Q_INVOKABLE int getDetectedVendorIndex(); Q_INVOKABLE int getDetectedProductIndex(const QString ¤tVendorText); Q_INVOKABLE int getConnectionIndex(const QString &deviceSubstr); + Q_INVOKABLE void setGitLocalOnly(const bool &value); static QMLManager *instance(); Q_INVOKABLE void registerError(QString error); @@ -115,9 +115,6 @@ public: QString notificationText() const; void setNotificationText(QString text); - bool syncToCloud() const; - void setSyncToCloud(bool status); - int updateSelectedDive() const; void setUpdateSelectedDive(int idx); @@ -210,7 +207,6 @@ private: struct dive *deletedDive; struct dive_trip *deletedTrip; QString m_notificationText; - bool m_syncToCloud; int m_updateSelectedDive; int m_selectedDiveTimestamp; qreal m_lastDevicePixelRatio; @@ -241,7 +237,6 @@ signals: void loadFromCloudChanged(); void startPageTextChanged(); void notificationTextChanged(); - void syncToCloudChanged(); void updateSelectedDiveChanged(); void selectedDiveTimestampChanged(); void sendScreenChanged(QScreen *screen); |