From 7167ce41b61d2ba2cdb526777a4233eb84a3b66a Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Sat, 6 Dec 2014 17:33:25 -0500 Subject: Imported Upstream version 2.99.6 --- .../dialogs/bugreportlogindialog.cpp | 94 ++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 SQLiteStudio3/guiSQLiteStudio/dialogs/bugreportlogindialog.cpp (limited to 'SQLiteStudio3/guiSQLiteStudio/dialogs/bugreportlogindialog.cpp') diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/bugreportlogindialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/bugreportlogindialog.cpp new file mode 100644 index 0000000..19727fe --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/bugreportlogindialog.cpp @@ -0,0 +1,94 @@ +#include "bugreportlogindialog.h" +#include "ui_bugreportlogindialog.h" +#include "uiutils.h" +#include "services/bugreporter.h" +#include "iconmanager.h" +#include "common/widgetcover.h" +#include + +BugReportLoginDialog::BugReportLoginDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::BugReportLoginDialog) +{ + init(); +} + +BugReportLoginDialog::~BugReportLoginDialog() +{ + delete ui; +} + +bool BugReportLoginDialog::isValid() const +{ + return validCredentials; +} + +QString BugReportLoginDialog::getLogin() const +{ + return ui->loginEdit->text(); +} + +QString BugReportLoginDialog::getPassword() const +{ + return ui->passwordEdit->text(); +} + +void BugReportLoginDialog::init() +{ + ui->setupUi(this); + connect(ui->loginEdit, SIGNAL(textChanged(QString)), this, SLOT(credentialsChanged())); + connect(ui->passwordEdit, SIGNAL(textChanged(QString)), this, SLOT(credentialsChanged())); + connect(ui->validationButton, SIGNAL(clicked()), this, SLOT(remoteValidation())); + connect(BUGS, SIGNAL(credentialsValidationResult(bool,QString)), this, SLOT(remoteValidationResult(bool,QString))); + + widgetCover = new WidgetCover(this); + widgetCover->initWithInterruptContainer(tr("Abort")); + connect(widgetCover, SIGNAL(cancelClicked()), this, SLOT(abortRemoteValidation())); + + validate(); +} + +void BugReportLoginDialog::credentialsChanged() +{ + validCredentials = false; + validate(); +} + +void BugReportLoginDialog::validate() +{ + QString login = ui->loginEdit->text(); + QString pass = ui->passwordEdit->text(); + + bool loginOk = login.size() >= 2; + bool passOk = pass.size() >= 5; + + setValidState(ui->loginEdit, loginOk, tr("A login must be at least 2 characters long.")); + setValidState(ui->passwordEdit, passOk, tr("A password must be at least 5 characters long.")); + + bool credentialsOk = loginOk && passOk; + ui->validationButton->setEnabled(credentialsOk); + ui->validationLabel->setEnabled(credentialsOk); + + bool valid = credentialsOk && validCredentials; + ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(valid); +} + +void BugReportLoginDialog::abortRemoteValidation() +{ + BUGS->abortCredentialsValidation(); +} + +void BugReportLoginDialog::remoteValidation() +{ + widgetCover->show(); + BUGS->validateBugReportCredentials(ui->loginEdit->text(), ui->passwordEdit->text()); +} + +void BugReportLoginDialog::remoteValidationResult(bool success, const QString& errorMessage) +{ + validCredentials = success; + ui->validationButton->setIcon(success ? ICONS.TEST_CONN_OK : ICONS.TEST_CONN_ERROR); + ui->validationLabel->setText(success ? tr("Valid") : errorMessage); + validate(); + widgetCover->hide(); +} -- cgit v1.2.3