Merge pull request #1770 from CookiePLMonster/lock-login-button

Achievements Login: Lock "Login" button if credentials are not entered
pull/1773/head
Connor McLaughlin 4 years ago committed by GitHub
commit 31a9e1b049
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -16,11 +16,6 @@ void AchievementLoginDialog::loginClicked()
{
const std::string username(m_ui.userName->text().toStdString());
const std::string password(m_ui.password->text().toStdString());
if (username.empty() || password.empty())
{
QMessageBox::critical(this, tr("Login Error"), tr("A user name and password must be provided."));
return;
}
// TODO: Make cancellable.
m_ui.status->setText(tr("Logging in..."));
@ -52,6 +47,10 @@ void AchievementLoginDialog::connectUi()
{
connect(m_ui.login, &QPushButton::clicked, this, &AchievementLoginDialog::loginClicked);
connect(m_ui.cancel, &QPushButton::clicked, this, &AchievementLoginDialog::cancelClicked);
auto enableLoginButton = [this](const QString&) { m_ui.login->setEnabled(canEnableLoginButton()); };
connect(m_ui.userName, &QLineEdit::textChanged, enableLoginButton);
connect(m_ui.password, &QLineEdit::textChanged, enableLoginButton);
}
void AchievementLoginDialog::enableUI(bool enabled)
@ -59,5 +58,10 @@ void AchievementLoginDialog::enableUI(bool enabled)
m_ui.userName->setEnabled(enabled);
m_ui.password->setEnabled(enabled);
m_ui.cancel->setEnabled(enabled);
m_ui.login->setEnabled(enabled);
m_ui.login->setEnabled(enabled && canEnableLoginButton());
}
bool AchievementLoginDialog::canEnableLoginButton() const
{
return !m_ui.userName->text().isEmpty() && !m_ui.password->text().isEmpty();
}

@ -17,6 +17,7 @@ private Q_SLOTS:
private:
void connectUi();
void enableUI(bool enabled);
bool canEnableLoginButton() const;
Ui::AchievementLoginDialog m_ui;
};

@ -125,6 +125,9 @@
</item>
<item>
<widget class="QPushButton" name="login">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>&amp;Login</string>
</property>

Loading…
Cancel
Save