diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2020-06-13 13:52:04 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2020-06-14 13:35:33 -0700 |
commit | 3a409c51ea2aaec5077e6ba4367390fbd286145b (patch) | |
tree | 3ec2466cb58e21161ddea9070cc95e16b11b474e /mobile-widgets/qmlmanager.cpp | |
parent | 01de67a5a6f62f0c7d0b5b381c053e6db16f4e96 (diff) | |
download | subsurface-3a409c51ea2aaec5077e6ba4367390fbd286145b.tar.gz |
mobile: add status text for cloud sync state
This allows the mobile UI to reflect the three states that the dive list can be
in:
- changes that haven't been written to local storage
- there potentially are changes in local storage that were not synced with the cloud
- dive list is in sync with cloud storage
The last state could be misleading if the user access the cloud from a
different device and makes changes to the cloud storage from there, but from
the point of view of this device, the states are consistent.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'mobile-widgets/qmlmanager.cpp')
-rw-r--r-- | mobile-widgets/qmlmanager.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp index be4dc4ec3..6e5357cdc 100644 --- a/mobile-widgets/qmlmanager.cpp +++ b/mobile-widgets/qmlmanager.cpp @@ -733,6 +733,7 @@ void QMLManager::loadDivesWithValidCredentials() appendTextToLog(QStringLiteral("%1 dives loaded after importing nocloud local storage").arg(dive_table.nr)); noCloudToCloud = false; mark_divelist_changed(true); + emit syncStateChanged(); saveChangesLocal(); if (git_local_only == false) { appendTextToLog(QStringLiteral("taking things back offline now that storage is synced")); @@ -1292,6 +1293,7 @@ void QMLManager::changesNeedSaving() // on iOS // on all other platforms we just save the changes and be done with it mark_divelist_changed(true); + emit syncStateChanged(); #if defined(Q_OS_IOS) saveChangesLocal(); #else @@ -2251,4 +2253,15 @@ QStringList QMLManager::cloudCacheList() const void QMLManager::updateHaveLocalChanges(bool status) { localChanges = status; + emit syncStateChanged(); +} + +// show the state of the dive list +QString QMLManager::getSyncState() const +{ + if (unsavedChanges()) + return tr("(unsaved changes in memory)"); + if (localChanges) + return tr("(changes synced locally)"); + return tr("(synced with cloud)"); } |