QML UI: Implement saving of cloud password

If the user ticks the 'Save Password' box, then we save the password
for future use.

Signed-off-by: Grace Karanja <gracie.karanja89@gmail.com>
This commit is contained in:
Grace Karanja 2015-07-21 11:57:10 +03:00
parent b28517b9b0
commit ea11eff279
3 changed files with 30 additions and 4 deletions

View file

@ -50,6 +50,7 @@ Item {
} }
CheckBox { CheckBox {
checked: manager.saveCloudPassword
id: savePassword id: savePassword
} }
@ -63,6 +64,7 @@ Item {
onClicked: { onClicked: {
manager.cloudUserName = login.text manager.cloudUserName = login.text
manager.cloudPassword = password.text manager.cloudPassword = password.text
manager.saveCloudPassword = savePassword.checked
manager.savePreferences() manager.savePreferences()
stackView.pop() stackView.pop()
} }

View file

@ -20,6 +20,7 @@ QMLManager::QMLManager()
//Initialize cloud credentials. //Initialize cloud credentials.
setCloudUserName(prefs.cloud_storage_email); setCloudUserName(prefs.cloud_storage_email);
setCloudPassword(prefs.cloud_storage_password); setCloudPassword(prefs.cloud_storage_password);
setSaveCloudPassword(prefs.save_password_local);
} }
QMLManager::~QMLManager() QMLManager::~QMLManager()
@ -31,16 +32,23 @@ void QMLManager::savePreferences()
QSettings s; QSettings s;
s.beginGroup("CloudStorage"); s.beginGroup("CloudStorage");
s.setValue("email", cloudUserName()); s.setValue("email", cloudUserName());
s.setValue("save_password_local", saveCloudPassword());
if (saveCloudPassword())
s.setValue("password", cloudPassword()); s.setValue("password", cloudPassword());
s.sync(); s.sync();
if (!same_string(prefs.cloud_storage_email, qPrintable(cloudUserName()))) { if (!same_string(prefs.cloud_storage_email, qPrintable(cloudUserName()))) {
free(prefs.cloud_storage_email); free(prefs.cloud_storage_email);
prefs.cloud_storage_email = strdup(qPrintable(cloudUserName())); prefs.cloud_storage_email = strdup(qPrintable(cloudUserName()));
} }
if (saveCloudPassword() != prefs.save_password_local) {
prefs.save_password_local = saveCloudPassword();
}
if (saveCloudPassword()) {
if (!same_string(prefs.cloud_storage_password, qPrintable(cloudPassword()))) { if (!same_string(prefs.cloud_storage_password, qPrintable(cloudPassword()))) {
free(prefs.cloud_storage_password); free(prefs.cloud_storage_password);
prefs.cloud_storage_password = strdup(qPrintable(cloudPassword())); prefs.cloud_storage_password = strdup(qPrintable(cloudPassword()));
} }
}
} }
void QMLManager::loadDives() void QMLManager::loadDives()
@ -114,6 +122,16 @@ void QMLManager::saveChanges()
set_filename(fileName.toUtf8().data(), true); set_filename(fileName.toUtf8().data(), true);
mark_divelist_changed(false); mark_divelist_changed(false);
} }
bool QMLManager::saveCloudPassword() const
{
return m_saveCloudPassword;
}
void QMLManager::setSaveCloudPassword(bool saveCloudPassword)
{
m_saveCloudPassword = saveCloudPassword;
}
QString QMLManager::cloudPassword() const QString QMLManager::cloudPassword() const
{ {

View file

@ -9,6 +9,7 @@ class QMLManager : public QObject
Q_OBJECT Q_OBJECT
Q_PROPERTY(QString cloudUserName READ cloudUserName WRITE setCloudUserName NOTIFY cloudUserNameChanged) Q_PROPERTY(QString cloudUserName READ cloudUserName WRITE setCloudUserName NOTIFY cloudUserNameChanged)
Q_PROPERTY(QString cloudPassword READ cloudPassword WRITE setCloudPassword NOTIFY cloudPasswordChanged) Q_PROPERTY(QString cloudPassword READ cloudPassword WRITE setCloudPassword NOTIFY cloudPasswordChanged)
Q_PROPERTY(bool saveCloudPassword READ saveCloudPassword WRITE setSaveCloudPassword NOTIFY saveCloudPasswordChanged)
public: public:
QMLManager(); QMLManager();
~QMLManager(); ~QMLManager();
@ -19,6 +20,9 @@ public:
QString cloudPassword() const; QString cloudPassword() const;
void setCloudPassword(const QString &cloudPassword); void setCloudPassword(const QString &cloudPassword);
bool saveCloudPassword() const;
void setSaveCloudPassword(bool saveCloudPassword);
public slots: public slots:
void savePreferences(); void savePreferences();
void loadDives(); void loadDives();
@ -27,10 +31,12 @@ public slots:
private: private:
QString m_cloudUserName; QString m_cloudUserName;
QString m_cloudPassword; QString m_cloudPassword;
bool m_saveCloudPassword;
signals: signals:
void cloudUserNameChanged(); void cloudUserNameChanged();
void cloudPasswordChanged(); void cloudPasswordChanged();
void saveCloudPasswordChanged();
}; };
#endif #endif