diff options
author | jan Iversen <jan@casacondor.com> | 2019-12-29 12:29:05 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-12-29 12:20:19 -0800 |
commit | 3d6d71aa9f6318497ba5f26ea628b3596b4c3552 (patch) | |
tree | 3757a45c758da51aaa471499ca65657960e8585a /mobile-widgets | |
parent | 25e17443f9b8986dd2106975d7d2d307e506e447 (diff) | |
download | subsurface-3d6d71aa9f6318497ba5f26ea628b3596b4c3552.tar.gz |
mobile-widgets: add oldStatus variable to qmlmanager
oldStatus() is kept in qmlPrefs during the login process to allow
for a couple of special cases:
- if a user have added dives in NO_CLOUD mode and changes to use the
cloud these dives are copied to the Cloud, instead of being lost.
- if a user does a bailout from the login process (this should not
happen anymore) the old status is restored.
The pure solution would be to have oldStatus at the top level (e.g.
a property in qml) and only change it when actually being in the
login process, however due to way the qmlmanager is written it proved
very difficult and not worth the effort.
In order to be able to remove qmlPrefs, oldStatus are moved to
qmlManager.
This commit only contain the creation of the variable and the supporting
code.
Signed-off-by: Jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'mobile-widgets')
-rw-r--r-- | mobile-widgets/qmlmanager.cpp | 15 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.h | 8 |
2 files changed, 22 insertions, 1 deletions
diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp index b935a5bd8..01d9c0196 100644 --- a/mobile-widgets/qmlmanager.cpp +++ b/mobile-widgets/qmlmanager.cpp @@ -154,7 +154,8 @@ QMLManager::QMLManager() : m_locationServiceEnabled(false), m_selectedDiveTimestamp(0), alreadySaving(false), m_pluggedInDeviceName(""), - m_showNonDiveComputers(false) + m_showNonDiveComputers(false), + m_oldStatus(qPrefCloudStorage::CS_UNKNOWN) { m_instance = this; m_lastDevicePixelRatio = qApp->devicePixelRatio(); @@ -2196,3 +2197,15 @@ void QMLManager::uploadFinishSlot(bool success, const QString &text, const QByte emit uploadFinish(success, text); } +qPrefCloudStorage::cloud_status QMLManager::oldStatus() const +{ + return m_oldStatus; +} + +void QMLManager::setOldStatus(const qPrefCloudStorage::cloud_status value) +{ + if (m_oldStatus != value) { + m_oldStatus = value; + emit oldStatusChanged(); + } +} diff --git a/mobile-widgets/qmlmanager.h b/mobile-widgets/qmlmanager.h index 281d20778..a3fce0576 100644 --- a/mobile-widgets/qmlmanager.h +++ b/mobile-widgets/qmlmanager.h @@ -16,6 +16,7 @@ #include "qt-models/divelistmodel.h" #include "qt-models/completionmodels.h" #include "qt-models/divelocationmodel.h" +#include "core/settings/qPrefCloudStorage.h" #define NOCLOUD_LOCALSTORAGE format_string("%s/cloudstorage/localrepo[master]", system_default_directory()) @@ -49,6 +50,8 @@ class QMLManager : public QObject { Q_PROPERTY(int DC_deviceId READ DC_deviceId WRITE DC_setDeviceId) Q_PROPERTY(QString pluggedInDeviceName MEMBER m_pluggedInDeviceName NOTIFY pluggedInDeviceNameChanged) Q_PROPERTY(bool showNonDiveComputers MEMBER m_showNonDiveComputers WRITE setShowNonDiveComputers NOTIFY showNonDiveComputersChanged) + Q_PROPERTY(qPrefCloudStorage::cloud_status oldStatus MEMBER m_oldStatus WRITE setOldStatus NOTIFY oldStatusChanged) + public: QMLManager(); ~QMLManager(); @@ -163,6 +166,8 @@ public: #if defined(Q_OS_ANDROID) || defined(Q_OS_IOS) void writeToAppLogFile(QString logText); #endif + qPrefCloudStorage::cloud_status oldStatus() const; + void setOldStatus(const qPrefCloudStorage::cloud_status value); public slots: void appInitialized(); @@ -273,6 +278,7 @@ private: QFile appLogFile; bool appLogFileOpen; #endif + qPrefCloudStorage::cloud_status m_oldStatus; signals: void locationServiceEnabledChanged(); @@ -295,11 +301,13 @@ signals: void pluggedInDeviceNameChanged(); void showNonDiveComputersChanged(); void DC_ForceDownloadChanged(); + void oldStatusChanged(); // From upload process void uploadFinish(bool success, const QString &text); void uploadProgress(qreal percentage); + private slots: void uploadFinishSlot(bool success, const QString &text, const QByteArray &html); }; |