mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	core: remove double definition of enum cloud_storage_status
Remove cloud_storage_status from qmlprefs.h. usage to qPref:: enum cloud_storage_status is not used from C, but only from C++, and having the same structure defined multiple times is a maintenance challenge. Signed-off-by: Jan Iversen <jani@apache.org>
This commit is contained in:
		
							parent
							
								
									d02a03983d
								
							
						
					
					
						commit
						2f95141330
					
				
					 8 changed files with 45 additions and 52 deletions
				
			
		|  | @ -2,6 +2,7 @@ | |||
| #include "cloudstorage.h" | ||||
| #include "pref.h" | ||||
| #include "qthelper.h" | ||||
| #include "settings/qPref.h" | ||||
| #include "core/subsurface-qt/SettingsObjectWrapper.h" | ||||
| #include <QApplication> | ||||
| 
 | ||||
|  |  | |||
|  | @ -2,17 +2,16 @@ | |||
| #include "qPref_private.h" | ||||
| #include "qPref.h" | ||||
| 
 | ||||
| 
 | ||||
| qPref *qPref::m_instance = NULL; | ||||
| qPref::qPref(QObject *parent) :  | ||||
| 	QObject(parent) | ||||
| { | ||||
| } | ||||
| qPref *qPref::instance() | ||||
| { | ||||
| 	if (!m_instance) | ||||
| 		m_instance = new qPref; | ||||
| 	return m_instance; | ||||
| static qPref *self = new qPref; | ||||
| 	return self; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| void qPref::loadSync(bool doSync) | ||||
| { | ||||
| } | ||||
|  |  | |||
|  | @ -7,10 +7,10 @@ | |||
| 
 | ||||
| class qPref : public QObject { | ||||
| 	Q_OBJECT | ||||
| 	Q_ENUMS(cloud_status); | ||||
| 
 | ||||
| public: | ||||
| 	qPref(QObject *parent = NULL) : QObject(parent) {}; | ||||
| 	~qPref() {}; | ||||
| 	qPref(QObject *parent = NULL); | ||||
| 	static qPref *instance(); | ||||
| 
 | ||||
| 	// Load/Sync local settings (disk) and struct preference
 | ||||
|  | @ -19,7 +19,6 @@ public: | |||
| public: | ||||
| 
 | ||||
| private: | ||||
| 	static qPref *m_instance; | ||||
| }; | ||||
| 
 | ||||
| #endif | ||||
|  |  | |||
|  | @ -47,6 +47,7 @@ | |||
| #include "core/windowtitleupdate.h" | ||||
| #include "desktop-widgets/locationinformation.h" | ||||
| #include "preferences/preferencesdialog.h" | ||||
| #include "core/settings/qPref.h" | ||||
| 
 | ||||
| #ifndef NO_USERMANUAL | ||||
| #include "usermanual.h" | ||||
|  |  | |||
|  | @ -2,8 +2,8 @@ | |||
| #include "preferences_network.h" | ||||
| #include "ui_preferences_network.h" | ||||
| #include "subsurfacewebservices.h" | ||||
| #include "core/dive.h" | ||||
| #include "core/cloudstorage.h" | ||||
| #include "core/dive.h" | ||||
| #include "core/subsurface-qt/SettingsObjectWrapper.h" | ||||
| #include <QNetworkProxy> | ||||
| 
 | ||||
|  |  | |||
|  | @ -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() != CS_NOCLOUD) | ||||
| 			QMLPrefs::instance()->setCredentialStatus(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() == CS_UNKNOWN) | ||||
| 			QMLPrefs::instance()->setCredentialStatus(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() == 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() == 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_qml) prefs.cloud_verification_status); | ||||
| 	QMLPrefs::instance()->setCredentialStatus((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() != CS_UNKNOWN) { | ||||
| 		QMLPrefs::instance()->setCredentialStatus(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(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() != 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() != 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() == 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 == CS_NEED_TO_VERIFY && | ||||
| 				!QMLPrefs::instance()->cloudPin().isEmpty()) { | ||||
| 		// the user entered a PIN?
 | ||||
| 		tryRetrieveDataFromBackend(); | ||||
|  | @ -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(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(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(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() == 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(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() == CS_NOCLOUD) { | ||||
| 			if (empty_string(existing_filename)) { | ||||
| 				char *filename = NOCLOUD_LOCALSTORAGE; | ||||
| 				git_create_local_repo(filename); | ||||
|  |  | |||
|  | @ -69,12 +69,12 @@ void QMLPrefs::setCloudUserName(const QString &cloudUserName) | |||
| 	emit cloudUserNameChanged(); | ||||
| } | ||||
| 
 | ||||
| QMLPrefs::cloud_status_qml QMLPrefs::credentialStatus() const | ||||
| cloud_status QMLPrefs::credentialStatus() const | ||||
| { | ||||
| 	return m_credentialStatus; | ||||
| } | ||||
| 
 | ||||
| void QMLPrefs::setCredentialStatus(const cloud_status_qml value) | ||||
| void QMLPrefs::setCredentialStatus(const cloud_status value) | ||||
| { | ||||
| 	if (m_credentialStatus != value) { | ||||
| 		setOldStatus(m_credentialStatus); | ||||
|  | @ -105,12 +105,12 @@ void QMLPrefs::setDistanceThreshold(int distance) | |||
| 	emit distanceThresholdChanged(); | ||||
| } | ||||
| 
 | ||||
| QMLPrefs::cloud_status_qml QMLPrefs::oldStatus() const | ||||
| cloud_status QMLPrefs::oldStatus() const | ||||
| { | ||||
| 	return m_oldStatus; | ||||
| } | ||||
| 
 | ||||
| void QMLPrefs::setOldStatus(const cloud_status_qml value) | ||||
| void QMLPrefs::setOldStatus(const cloud_status value) | ||||
| { | ||||
| 	if (m_oldStatus != value) { | ||||
| 		m_oldStatus = value; | ||||
|  |  | |||
|  | @ -3,11 +3,12 @@ | |||
| #define QMLPREFS_H | ||||
| 
 | ||||
| #include <QObject> | ||||
| #include "core/settings/qPref.h" | ||||
| 
 | ||||
| 
 | ||||
| class QMLPrefs : public QObject { | ||||
| 	Q_OBJECT | ||||
| 	Q_ENUMS(cloud_status_qml) | ||||
| 	Q_ENUMS(cloud_status) | ||||
| 	Q_PROPERTY(QString cloudPassword | ||||
| 				MEMBER m_cloudPassword | ||||
| 				WRITE setCloudPassword | ||||
|  | @ -20,7 +21,7 @@ class QMLPrefs : public QObject { | |||
| 				MEMBER m_cloudUserName | ||||
| 				WRITE setCloudUserName | ||||
| 				NOTIFY cloudUserNameChanged) | ||||
| 	Q_PROPERTY(cloud_status_qml credentialStatus | ||||
| 	Q_PROPERTY(cloud_status credentialStatus | ||||
| 				MEMBER m_credentialStatus | ||||
| 				WRITE setCredentialStatus | ||||
| 				NOTIFY credentialStatusChanged) | ||||
|  | @ -36,7 +37,7 @@ class QMLPrefs : public QObject { | |||
| 				MEMBER m_showPin | ||||
| 				WRITE setShowPin | ||||
| 				NOTIFY showPinChanged) | ||||
| 	Q_PROPERTY(cloud_status_qml oldStatus | ||||
| 	Q_PROPERTY(cloud_status oldStatus | ||||
| 				MEMBER m_oldStatus | ||||
| 				WRITE setOldStatus | ||||
| 				NOTIFY oldStatusChanged) | ||||
|  | @ -55,14 +56,6 @@ public: | |||
| 
 | ||||
| 	static QMLPrefs *instance(); | ||||
| 
 | ||||
| 	enum cloud_status_qml { | ||||
| 		CS_UNKNOWN, | ||||
| 		CS_INCORRECT_USER_PASSWD, | ||||
| 		CS_NEED_TO_VERIFY, | ||||
| 		CS_VERIFIED, | ||||
| 		CS_NOCLOUD | ||||
| 	}; | ||||
| 
 | ||||
| 	const QString cloudPassword() const; | ||||
| 	void setCloudPassword(const QString &cloudPassword); | ||||
| 
 | ||||
|  | @ -72,16 +65,16 @@ public: | |||
| 	const QString cloudUserName() const; | ||||
| 	void setCloudUserName(const QString &cloudUserName); | ||||
| 
 | ||||
| 	cloud_status_qml credentialStatus() const; | ||||
| 	void setCredentialStatus(const cloud_status_qml value); | ||||
| 	cloud_status credentialStatus() const; | ||||
| 	void setCredentialStatus(const cloud_status value); | ||||
| 
 | ||||
| 	void setDeveloper(bool value); | ||||
| 
 | ||||
| 	int distanceThreshold() const; | ||||
| 	void setDistanceThreshold(int distance); | ||||
| 
 | ||||
| 	cloud_status_qml oldStatus() const; | ||||
| 	void setOldStatus(const cloud_status_qml value); | ||||
| 	cloud_status oldStatus() const; | ||||
| 	void setOldStatus(const cloud_status value); | ||||
| 
 | ||||
| 	bool showPin() const; | ||||
| 	void setShowPin(bool enable); | ||||
|  | @ -100,11 +93,11 @@ private: | |||
| 	QString m_cloudPassword; | ||||
| 	QString m_cloudPin; | ||||
| 	QString m_cloudUserName; | ||||
| 	cloud_status_qml m_credentialStatus; | ||||
| 	cloud_status m_credentialStatus; | ||||
| 	bool m_developer; | ||||
| 	int m_distanceThreshold; | ||||
| 	static QMLPrefs *m_instance; | ||||
| 	cloud_status_qml m_oldStatus; | ||||
| 	cloud_status m_oldStatus; | ||||
| 	bool m_showPin; | ||||
| 	int m_timeThreshold; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue