diff options
Diffstat (limited to 'mobile-widgets')
-rw-r--r-- | mobile-widgets/qml/CloudCredentials.qml | 2 | ||||
-rw-r--r-- | mobile-widgets/qml/DiveList.qml | 12 | ||||
-rw-r--r-- | mobile-widgets/qml/Settings.qml | 2 | ||||
-rw-r--r-- | mobile-widgets/qml/main.qml | 18 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.cpp | 44 | ||||
-rw-r--r-- | mobile-widgets/qmlprefs.cpp | 16 | ||||
-rw-r--r-- | mobile-widgets/qmlprefs.h | 25 |
7 files changed, 55 insertions, 64 deletions
diff --git a/mobile-widgets/qml/CloudCredentials.qml b/mobile-widgets/qml/CloudCredentials.qml index f148e9922..7869303e7 100644 --- a/mobile-widgets/qml/CloudCredentials.qml +++ b/mobile-widgets/qml/CloudCredentials.qml @@ -144,7 +144,7 @@ Item { text: qsTr("No cloud mode") onClicked: { manager.syncToCloud = false - prefs.credentialStatus = QMLPrefs.CS_NOCLOUD + prefs.credentialStatus = SsrfPrefs.CS_NOCLOUD manager.saveCloudCredentials() manager.openNoCloudRepo() } diff --git a/mobile-widgets/qml/DiveList.qml b/mobile-widgets/qml/DiveList.qml index 36929951a..af7537064 100644 --- a/mobile-widgets/qml/DiveList.qml +++ b/mobile-widgets/qml/DiveList.qml @@ -23,7 +23,7 @@ Kirigami.ScrollablePage { supportsRefreshing: true onRefreshingChanged: { if (refreshing) { - if (prefs.credentialStatus === QMLPrefs.CS_VERIFIED) { + if (prefs.credentialStatus === SsrfPrefs.CS_VERIFIED) { console.log("User pulled down dive list - syncing with cloud storage") detailsWindow.endEditMode() manager.saveChangesCloud(true) @@ -339,8 +339,8 @@ Kirigami.ScrollablePage { StartPage { id: startPage anchors.fill: parent - opacity: credentialStatus === QMLPrefs.CS_NOCLOUD || - (credentialStatus === QMLPrefs.CS_VERIFIED) ? 0 : 1 + opacity: credentialStatus === SsrfPrefs.CS_NOCLOUD || + (credentialStatus === SsrfPrefs.CS_VERIFIED) ? 0 : 1 visible: opacity > 0 Behavior on opacity { NumberAnimation { duration: Kirigami.Units.shortDuration } } function setupActions() { @@ -348,8 +348,8 @@ Kirigami.ScrollablePage { page.actions.main = null page.actions.right = null page.title = qsTr("Cloud credentials") - } else if (prefs.credentialStatus === QMLPrefs.CS_VERIFIED || - prefs.credentialStatus === QMLPrefs.CS_NOCLOUD) { + } else if (prefs.credentialStatus === SsrfPrefs.CS_VERIFIED || + prefs.credentialStatus === SsrfPrefs.CS_NOCLOUD) { page.actions.main = page.downloadFromDCAction page.actions.right = page.addDiveAction page.title = qsTr("Dive list") @@ -427,7 +427,7 @@ Kirigami.ScrollablePage { onBackRequested: { if (startPage.visible && diveListView.count > 0 && - prefs.credentialStatus !== QMLPrefs.CS_INCORRECT_USER_PASSWD) { + prefs.credentialStatus !== SsrfPrefs.CS_INCORRECT_USER_PASSWD) { prefs.credentialStatus = oldStatus event.accepted = true; } diff --git a/mobile-widgets/qml/Settings.qml b/mobile-widgets/qml/Settings.qml index cb268f423..d7a857f6f 100644 --- a/mobile-widgets/qml/Settings.qml +++ b/mobile-widgets/qml/Settings.qml @@ -42,7 +42,7 @@ Kirigami.ScrollablePage { Layout.preferredHeight: Kirigami.Units.gridUnit * 2 } Controls.Label { - text: prefs.credentialStatus === QMLPrefs.CS_NOCLOUD ? qsTr("Not applicable") : prefs.cloudUserName + text: prefs.credentialStatus === SsrfPrefs.CS_NOCLOUD ? qsTr("Not applicable") : prefs.cloudUserName Layout.alignment: Qt.AlignRight Layout.preferredWidth: gridWidth * 0.60 Layout.preferredHeight: Kirigami.Units.gridUnit * 2 diff --git a/mobile-widgets/qml/main.qml b/mobile-widgets/qml/main.qml index 1ccab80e5..03d7238c3 100644 --- a/mobile-widgets/qml/main.qml +++ b/mobile-widgets/qml/main.qml @@ -186,10 +186,10 @@ Kirigami.ApplicationWindow { text: qsTr("Dive list") onTriggered: { manager.appendTextToLog("requested dive list with credential status " + prefs.credentialStatus) - if (prefs.credentialStatus == QMLPrefs.CS_UNKNOWN) { + if (prefs.credentialStatus == SsrfPrefs.CS_UNKNOWN) { // the user has asked to change credentials - if the credentials before that // were valid, go back to dive list - if (oldStatus == QMLPrefs.CS_VERIFIED) { + if (oldStatus == SsrfPrefs.CS_VERIFIED) { prefs.credentialStatus = oldStatus } } @@ -216,8 +216,8 @@ Kirigami.ApplicationWindow { name: ":/icons/ic_add.svg" } text: qsTr("Add dive manually") - enabled: prefs.credentialStatus === QMLPrefs.CS_VERIFIED || - prefs.credentialStatus === QMLPrefs.CS_NOCLOUD + enabled: prefs.credentialStatus === SsrfPrefs.CS_VERIFIED || + prefs.credentialStatus === SsrfPrefs.CS_NOCLOUD onTriggered: { globalDrawer.close() returnTopPage() // otherwise odd things happen with the page stack @@ -251,14 +251,14 @@ Kirigami.ApplicationWindow { name: ":/icons/cloud_sync.svg" } text: qsTr("Manual sync with cloud") - enabled: prefs.credentialStatus === QMLPrefs.CS_VERIFIED || - prefs.credentialStatus === QMLPrefs.CS_NOCLOUD + enabled: prefs.credentialStatus === SsrfPrefs.CS_VERIFIED || + prefs.credentialStatus === SsrfPrefs.CS_NOCLOUD onTriggered: { - if (prefs.credentialStatus === QMLPrefs.CS_NOCLOUD) { + if (prefs.credentialStatus === SsrfPrefs.CS_NOCLOUD) { returnTopPage() oldStatus = prefs.credentialStatus manager.startPageText = "Enter valid cloud storage credentials" - prefs.credentialStatus = QMLPrefs.CS_UNKNOWN + prefs.credentialStatus = SsrfPrefs.CS_UNKNOWN globalDrawer.close() } else { globalDrawer.close() @@ -273,7 +273,7 @@ Kirigami.ApplicationWindow { name: syncToCloud ? ":/icons/ic_cloud_off.svg" : ":/icons/ic_cloud_done.svg" } text: syncToCloud ? qsTr("Disable auto cloud sync") : qsTr("Enable auto cloud sync") - enabled: prefs.credentialStatus !== QMLPrefs.CS_NOCLOUD + enabled: prefs.credentialStatus !== SsrfPrefs.CS_NOCLOUD onTriggered: { syncToCloud = !syncToCloud if (!syncToCloud) { diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp index 600c24d08..82d94eb70 100644 --- a/mobile-widgets/qmlmanager.cpp +++ b/mobile-widgets/qmlmanager.cpp @@ -269,12 +269,12 @@ void QMLManager::openLocalThenRemote(QString url) * no cloud repo solves this. */ - if (QMLPrefs::instance()->credentialStatus() != QMLPrefs::CS_NOCLOUD) - QMLPrefs::instance()->setCredentialStatus(QMLPrefs::CS_NEED_TO_VERIFY); + if (QMLPrefs::instance()->credentialStatus() != qPref::CS_NOCLOUD) + QMLPrefs::instance()->setCredentialStatus(qPref::CS_NEED_TO_VERIFY); } else { // if we can load from the cache, we know that we have a valid cloud account - if (QMLPrefs::instance()->credentialStatus() == QMLPrefs::CS_UNKNOWN) - QMLPrefs::instance()->setCredentialStatus(QMLPrefs::CS_VERIFIED); + if (QMLPrefs::instance()->credentialStatus() == qPref::CS_UNKNOWN) + QMLPrefs::instance()->setCredentialStatus(qPref::CS_VERIFIED); prefs.unit_system = git_prefs.unit_system; if (git_prefs.unit_system == IMPERIAL) git_prefs.units = IMPERIAL_units; @@ -292,11 +292,11 @@ void QMLManager::openLocalThenRemote(QString url) appendTextToLog(QStringLiteral("%1 dives loaded from cache").arg(dive_table.nr)); setNotificationText(tr("%1 dives loaded from local dive data file").arg(dive_table.nr)); } - if (QMLPrefs::instance()->credentialStatus() == QMLPrefs::CS_NEED_TO_VERIFY) { + if (QMLPrefs::instance()->credentialStatus() == qPref::CS_NEED_TO_VERIFY) { appendTextToLog(QStringLiteral("have cloud credentials, but still needs PIN")); QMLPrefs::instance()->setShowPin(true); } - if (QMLPrefs::instance()->oldStatus() == QMLPrefs::CS_NOCLOUD) { + if (QMLPrefs::instance()->oldStatus() == qPref::CS_NOCLOUD) { // if we switch to credentials from CS_NOCLOUD, we take things online temporarily prefs.git_local_only = false; appendTextToLog(QStringLiteral("taking things online to be able to switch to cloud account")); @@ -373,7 +373,7 @@ void QMLManager::finishSetup() QMLPrefs::instance()->setCloudUserName(prefs.cloud_storage_email); QMLPrefs::instance()->setCloudPassword(prefs.cloud_storage_password); setSyncToCloud(!prefs.git_local_only); - QMLPrefs::instance()->setCredentialStatus((QMLPrefs::cloud_status) prefs.cloud_verification_status); + QMLPrefs::instance()->setCredentialStatus((qPref::cloud_status) prefs.cloud_verification_status); // if the cloud credentials are valid, we should get the GPS Webservice ID as well QString url; if (!QMLPrefs::instance()->cloudUserName().isEmpty() && @@ -384,8 +384,8 @@ void QMLManager::finishSetup() alreadySaving = true; openLocalThenRemote(url); } else if (!empty_string(existing_filename) && - QMLPrefs::instance()->credentialStatus() != QMLPrefs::CS_UNKNOWN) { - QMLPrefs::instance()->setCredentialStatus(QMLPrefs::CS_NOCLOUD); + QMLPrefs::instance()->credentialStatus() != qPref::CS_UNKNOWN) { + QMLPrefs::instance()->setCredentialStatus(qPref::CS_NOCLOUD); saveCloudCredentials(); appendTextToLog(tr("working in no-cloud mode")); int error = parse_file(existing_filename); @@ -399,7 +399,7 @@ void QMLManager::finishSetup() appendTextToLog(QString("working in no-cloud mode, finished loading %1 dives from %2").arg(dive_table.nr).arg(existing_filename)); } } else { - QMLPrefs::instance()->setCredentialStatus(QMLPrefs::CS_UNKNOWN); + QMLPrefs::instance()->setCredentialStatus(qPref::CS_UNKNOWN); appendTextToLog(tr("no cloud credentials")); setStartPageText(RED_FONT + tr("Please enter valid cloud credentials.") + END_FONT); } @@ -437,7 +437,7 @@ void QMLManager::saveCloudCredentials() bool cloudCredentialsChanged = false; // make sure we only have letters, numbers, and +-_. in password and email address QRegularExpression regExp("^[a-zA-Z0-9@.+_-]+$"); - if (QMLPrefs::instance()->credentialStatus() != QMLPrefs::CS_NOCLOUD) { + if (QMLPrefs::instance()->credentialStatus() != qPref::CS_NOCLOUD) { // in case of NO_CLOUD, the email address + passwd do not care, so do not check it. if (QMLPrefs::instance()->cloudPassword().isEmpty() || !regExp.match(QMLPrefs::instance()->cloudPassword()).hasMatch() || @@ -467,7 +467,7 @@ void QMLManager::saveCloudCredentials() cloudCredentialsChanged |= !same_string(prefs.cloud_storage_password, qPrintable(QMLPrefs::instance()->cloudPassword())); - if (QMLPrefs::instance()->credentialStatus() != QMLPrefs::CS_NOCLOUD && + if (QMLPrefs::instance()->credentialStatus() != qPref::CS_NOCLOUD && !cloudCredentialsChanged) { // just go back to the dive list QMLPrefs::instance()->setCredentialStatus(QMLPrefs::instance()->oldStatus()); @@ -478,7 +478,7 @@ void QMLManager::saveCloudCredentials() free((void *)prefs.cloud_storage_password); prefs.cloud_storage_password = copy_qstring(QMLPrefs::instance()->cloudPassword()); } - if (QMLPrefs::instance()->oldStatus() == QMLPrefs::CS_NOCLOUD && cloudCredentialsChanged && dive_table.nr) { + if (QMLPrefs::instance()->oldStatus() == qPref::CS_NOCLOUD && cloudCredentialsChanged && dive_table.nr) { // we came from NOCLOUD and are connecting to a cloud account; // since we already have dives in the table, let's remember that so we can keep them noCloudToCloud = true; @@ -508,7 +508,7 @@ void QMLManager::saveCloudCredentials() currentGitLocalOnly = prefs.git_local_only; prefs.git_local_only = false; openLocalThenRemote(url); - } else if (prefs.cloud_verification_status == QMLPrefs::CS_NEED_TO_VERIFY && + } else if (prefs.cloud_verification_status == qPref::CS_NEED_TO_VERIFY && !QMLPrefs::instance()->cloudPin().isEmpty()) { // the user entered a PIN? tryRetrieveDataFromBackend(); @@ -542,12 +542,12 @@ void QMLManager::tryRetrieveDataFromBackend() } myTimer.stop(); QMLPrefs::instance()->setCloudPin(""); - if (prefs.cloud_verification_status == QMLPrefs::CS_INCORRECT_USER_PASSWD) { + if (prefs.cloud_verification_status == qPref::CS_INCORRECT_USER_PASSWD) { appendTextToLog(QStringLiteral("Incorrect cloud credentials")); setStartPageText(RED_FONT + tr("Incorrect cloud credentials") + END_FONT); revertToNoCloudIfNeeded(); return; - } else if (prefs.cloud_verification_status != QMLPrefs::CS_VERIFIED) { + } else if (prefs.cloud_verification_status != qPref::CS_VERIFIED) { // here we need to enter the PIN appendTextToLog(QStringLiteral("Need to verify the email address - enter PIN")); setStartPageText(RED_FONT + tr("Cannot connect to cloud storage - cloud account not verified") + END_FONT); @@ -578,7 +578,7 @@ void QMLManager::provideAuth(QNetworkReply *reply, QAuthenticator *auth) // OK, credentials have been tried and didn't work, so they are invalid appendTextToLog("Cloud credentials are invalid"); setStartPageText(RED_FONT + tr("Cloud credentials are invalid") + END_FONT); - QMLPrefs::instance()->setCredentialStatus(QMLPrefs::CS_INCORRECT_USER_PASSWD); + QMLPrefs::instance()->setCredentialStatus(qPref::CS_INCORRECT_USER_PASSWD); reply->disconnect(); reply->abort(); reply->deleteLater(); @@ -622,7 +622,7 @@ void QMLManager::retrieveUserid() revertToNoCloudIfNeeded(); return; } - QMLPrefs::instance()->setCredentialStatus(QMLPrefs::CS_VERIFIED); + QMLPrefs::instance()->setCredentialStatus(qPref::CS_VERIFIED); QString userid(prefs.userid); if (userid.isEmpty()) { if (empty_string(prefs.cloud_storage_email) || empty_string(prefs.cloud_storage_password)) { @@ -641,7 +641,7 @@ void QMLManager::retrieveUserid() s.setValue("subsurface_webservice_uid", prefs.userid); s.sync(); } - QMLPrefs::instance()->setCredentialStatus(QMLPrefs::CS_VERIFIED); + QMLPrefs::instance()->setCredentialStatus(qPref::CS_VERIFIED); setStartPageText(tr("Cloud credentials valid, loading dives...")); // this only gets called with "alreadySaving" already locked loadDivesWithValidCredentials(); @@ -726,7 +726,7 @@ void QMLManager::revertToNoCloudIfNeeded() currentGitLocalOnly = false; prefs.git_local_only = true; } - if (QMLPrefs::instance()->oldStatus() == QMLPrefs::CS_NOCLOUD) { + if (QMLPrefs::instance()->oldStatus() == qPref::CS_NOCLOUD) { // we tried to switch to a cloud account and had previously used local data, // but connecting to the cloud account (and subsequently merging the local // and cloud data) failed - so let's delete the cloud credentials and go @@ -742,7 +742,7 @@ void QMLManager::revertToNoCloudIfNeeded() prefs.cloud_storage_password = NULL; QMLPrefs::instance()->setCloudUserName(""); QMLPrefs::instance()->setCloudPassword(""); - QMLPrefs::instance()->setCredentialStatus(QMLPrefs::CS_NOCLOUD); + QMLPrefs::instance()->setCredentialStatus(qPref::CS_NOCLOUD); set_filename(NOCLOUD_LOCALSTORAGE); setStartPageText(RED_FONT + tr("Failed to connect to cloud server, reverting to no cloud status") + END_FONT); } @@ -1202,7 +1202,7 @@ void QMLManager::openNoCloudRepo() void QMLManager::saveChangesLocal() { if (unsaved_changes()) { - if (QMLPrefs::instance()->credentialStatus() == QMLPrefs::CS_NOCLOUD) { + if (QMLPrefs::instance()->credentialStatus() == qPref::CS_NOCLOUD) { if (empty_string(existing_filename)) { char *filename = NOCLOUD_LOCALSTORAGE; git_create_local_repo(filename); diff --git a/mobile-widgets/qmlprefs.cpp b/mobile-widgets/qmlprefs.cpp index 4330597ce..03f51f765 100644 --- a/mobile-widgets/qmlprefs.cpp +++ b/mobile-widgets/qmlprefs.cpp @@ -11,10 +11,10 @@ QMLPrefs *QMLPrefs::m_instance = NULL; QMLPrefs::QMLPrefs() : - m_credentialStatus(QMLPrefs::CS_UNKNOWN), + m_credentialStatus(qPref::CS_UNKNOWN), m_developer(false), m_distanceThreshold(1000), - m_oldStatus(QMLPrefs::CS_UNKNOWN), + m_oldStatus(qPref::CS_UNKNOWN), m_showPin(false), m_timeThreshold(60) { @@ -69,16 +69,16 @@ void QMLPrefs::setCloudUserName(const QString &cloudUserName) emit cloudUserNameChanged(); } -QMLPrefs::cloud_status QMLPrefs::credentialStatus() const +qPref::cloud_status QMLPrefs::credentialStatus() const { return m_credentialStatus; } -void QMLPrefs::setCredentialStatus(const QMLPrefs::cloud_status value) +void QMLPrefs::setCredentialStatus(const qPref::cloud_status value) { if (m_credentialStatus != value) { setOldStatus(m_credentialStatus); - if (value == QMLPrefs::CS_NOCLOUD) { + if (value == qPref::CS_NOCLOUD) { QMLManager::instance()->appendTextToLog("Switching to no cloud mode"); set_filename(NOCLOUD_LOCALSTORAGE); clearCredentials(); @@ -105,12 +105,12 @@ void QMLPrefs::setDistanceThreshold(int distance) emit distanceThresholdChanged(); } -QMLPrefs::cloud_status QMLPrefs::oldStatus() const +qPref::cloud_status QMLPrefs::oldStatus() const { return m_oldStatus; } -void QMLPrefs::setOldStatus(const QMLPrefs::cloud_status value) +void QMLPrefs::setOldStatus(const qPref::cloud_status value) { if (m_oldStatus != value) { m_oldStatus = value; @@ -177,7 +177,7 @@ void QMLPrefs::cancelCredentialsPinSetup() */ QSettings s; - setCredentialStatus(QMLPrefs::CS_UNKNOWN); + setCredentialStatus(qPref::CS_UNKNOWN); s.beginGroup("CloudStorage"); s.setValue("email", m_cloudUserName); s.setValue("password", m_cloudPassword); diff --git a/mobile-widgets/qmlprefs.h b/mobile-widgets/qmlprefs.h index 90b4c290f..b628ef3fe 100644 --- a/mobile-widgets/qmlprefs.h +++ b/mobile-widgets/qmlprefs.h @@ -8,7 +8,6 @@ class QMLPrefs : public QObject { Q_OBJECT - Q_ENUM(cloud_status) Q_PROPERTY(QString cloudPassword MEMBER m_cloudPassword WRITE setCloudPassword @@ -21,7 +20,7 @@ class QMLPrefs : public QObject { MEMBER m_cloudUserName WRITE setCloudUserName NOTIFY cloudUserNameChanged) - Q_PROPERTY(cloud_status credentialStatus + Q_PROPERTY(qPref::cloud_status credentialStatus MEMBER m_credentialStatus WRITE setCredentialStatus NOTIFY credentialStatusChanged) @@ -37,7 +36,7 @@ class QMLPrefs : public QObject { MEMBER m_showPin WRITE setShowPin NOTIFY showPinChanged) - Q_PROPERTY(cloud_status oldStatus + Q_PROPERTY(qPref::cloud_status oldStatus MEMBER m_oldStatus WRITE setOldStatus NOTIFY oldStatusChanged) @@ -51,14 +50,6 @@ class QMLPrefs : public QObject { NOTIFY timeThresholdChanged) public: - enum cloud_status { - CS_UNKNOWN, - CS_INCORRECT_USER_PASSWD, - CS_NEED_TO_VERIFY, - CS_VERIFIED, - CS_NOCLOUD - }; - QMLPrefs(); ~QMLPrefs(); @@ -73,16 +64,16 @@ public: const QString cloudUserName() const; void setCloudUserName(const QString &cloudUserName); - cloud_status credentialStatus() const; - void setCredentialStatus(const cloud_status value); + qPref::cloud_status credentialStatus() const; + void setCredentialStatus(const qPref::cloud_status value); void setDeveloper(bool value); int distanceThreshold() const; void setDistanceThreshold(int distance); - cloud_status oldStatus() const; - void setOldStatus(const cloud_status value); + qPref::cloud_status oldStatus() const; + void setOldStatus(const qPref::cloud_status value); bool showPin() const; void setShowPin(bool enable); @@ -101,11 +92,11 @@ private: QString m_cloudPassword; QString m_cloudPin; QString m_cloudUserName; - cloud_status m_credentialStatus; + qPref::cloud_status m_credentialStatus; bool m_developer; int m_distanceThreshold; static QMLPrefs *m_instance; - cloud_status m_oldStatus; + qPref::cloud_status m_oldStatus; bool m_showPin; int m_timeThreshold; |