mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
Improve UX for cloud email/password checking
State requirements for email address and password format within cloud preferences UI If email address or password entered in cloud preferences, raise a warning within a QMessageBox instead of the less-visible report_error method Signed-off-by: Jon Massey <jon.massey@thedatalab.org>
This commit is contained in:
parent
50ff94eb8f
commit
10b4cc9149
2 changed files with 7 additions and 5 deletions
|
@ -6,6 +6,7 @@
|
||||||
#include "core/errorhelper.h"
|
#include "core/errorhelper.h"
|
||||||
#include "core/settings/qPrefCloudStorage.h"
|
#include "core/settings/qPrefCloudStorage.h"
|
||||||
#include <QRegularExpression>
|
#include <QRegularExpression>
|
||||||
|
#include <QMessageBox>
|
||||||
|
|
||||||
PreferencesCloud::PreferencesCloud() : AbstractPreferencesWidget(tr("Cloud"),QIcon(":preferences-cloud-icon"), 9), ui(new Ui::PreferencesCloud())
|
PreferencesCloud::PreferencesCloud() : AbstractPreferencesWidget(tr("Cloud"),QIcon(":preferences-cloud-icon"), 9), ui(new Ui::PreferencesCloud())
|
||||||
{
|
{
|
||||||
|
@ -36,6 +37,7 @@ void PreferencesCloud::syncSettings()
|
||||||
QString email = ui->cloud_storage_email->text().toLower();
|
QString email = ui->cloud_storage_email->text().toLower();
|
||||||
QString password = ui->cloud_storage_password->text();
|
QString password = ui->cloud_storage_password->text();
|
||||||
QString newpassword = ui->cloud_storage_new_passwd->text();
|
QString newpassword = ui->cloud_storage_new_passwd->text();
|
||||||
|
QString emailpasswordformatwarning = "Change ignored. Cloud storage email and new password can only consist of letters, numbers, and '.', '-', '_', and '+'.";
|
||||||
|
|
||||||
//TODO: Change this to the Cloud Storage Stuff, not preferences.
|
//TODO: Change this to the Cloud Storage Stuff, not preferences.
|
||||||
if (prefs.cloud_verification_status == qPrefCloudStorage::CS_VERIFIED && !newpassword.isEmpty()) {
|
if (prefs.cloud_verification_status == qPrefCloudStorage::CS_VERIFIED && !newpassword.isEmpty()) {
|
||||||
|
@ -44,11 +46,11 @@ void PreferencesCloud::syncSettings()
|
||||||
// connect to backend server to check / create credentials
|
// connect to backend server to check / create credentials
|
||||||
QRegularExpression reg("^[a-zA-Z0-9@.+_-]+$");
|
QRegularExpression reg("^[a-zA-Z0-9@.+_-]+$");
|
||||||
if (!reg.match(email).hasMatch() || (!password.isEmpty() && !reg.match(password).hasMatch())) {
|
if (!reg.match(email).hasMatch() || (!password.isEmpty() && !reg.match(password).hasMatch())) {
|
||||||
report_error(qPrintable(tr("Change ignored. Cloud storage email and password can only consist of letters, numbers, and '.', '-', '_', and '+'.")));
|
QMessageBox::warning(this, tr("Warning"), emailpasswordformatwarning);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!reg.match(email).hasMatch() || (!newpassword.isEmpty() && !reg.match(newpassword).hasMatch())) {
|
if (!reg.match(email).hasMatch() || (!newpassword.isEmpty() && !reg.match(newpassword).hasMatch())) {
|
||||||
report_error(qPrintable(tr("Change ignored. Cloud storage email and new password can only consist of letters, numbers, and '.', '-', '_', and '+'.")));
|
QMessageBox::warning(this, tr("Warning"), emailpasswordformatwarning);
|
||||||
ui->cloud_storage_new_passwd->setText("");
|
ui->cloud_storage_new_passwd->setText("");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -70,7 +72,7 @@ void PreferencesCloud::syncSettings()
|
||||||
// connect to backend server to check / create credentials
|
// connect to backend server to check / create credentials
|
||||||
QRegularExpression reg("^[a-zA-Z0-9@.+_-]+$");
|
QRegularExpression reg("^[a-zA-Z0-9@.+_-]+$");
|
||||||
if (!reg.match(email).hasMatch() || (!password.isEmpty() && !reg.match(password).hasMatch())) {
|
if (!reg.match(email).hasMatch() || (!password.isEmpty() && !reg.match(password).hasMatch())) {
|
||||||
report_error(qPrintable(tr("Cloud storage email and password can only consist of letters, numbers, and '.', '-', '_', and '+'.")));
|
QMessageBox::warning(this, tr("Warning"), emailpasswordformatwarning);
|
||||||
cloud->set_cloud_verification_status(oldVerificationStatus);
|
cloud->set_cloud_verification_status(oldVerificationStatus);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -84,7 +86,7 @@ void PreferencesCloud::syncSettings()
|
||||||
// connect to backend server to check / create credentials
|
// connect to backend server to check / create credentials
|
||||||
QRegularExpression reg("^[a-zA-Z0-9@.+_-]+$");
|
QRegularExpression reg("^[a-zA-Z0-9@.+_-]+$");
|
||||||
if (!reg.match(email).hasMatch() || !reg.match(password).hasMatch()) {
|
if (!reg.match(email).hasMatch() || !reg.match(password).hasMatch()) {
|
||||||
report_error(qPrintable(tr("Cloud storage email and password can only consist of letters, numbers, and '.', '-', '_', and '+'.")));
|
QMessageBox::warning(this, tr("Warning"), emailpasswordformatwarning);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
CloudStorageAuthenticate *cloudAuth = new CloudStorageAuthenticate(this);
|
CloudStorageAuthenticate *cloudAuth = new CloudStorageAuthenticate(this);
|
||||||
|
|
|
@ -117,7 +117,7 @@
|
||||||
<string extracomment="Help info 1"/>
|
<string extracomment="Help info 1"/>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>1) Enter an email address and a novel password that Subsurface will use to initialise the dive log in the cloud. Click Apply to send the above email address and password to the (remote) cloud server.</string>
|
<string>1) Enter an email address and a novel password that Subsurface will use to initialise the dive log in the cloud. Click Apply to send the above email address and password to the (remote) cloud server. Cloud storage email and password can only consist of letters, numbers, and '.','-','_', and '+'.</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
Loading…
Reference in a new issue