diff --git a/src/bugzillaintegration/reportassistantpages_bugzilla.h b/src/bugzillaintegration/reportassistantpages_bugzilla.h --- a/src/bugzillaintegration/reportassistantpages_bugzilla.h +++ b/src/bugzillaintegration/reportassistantpages_bugzilla.h @@ -47,6 +47,8 @@ private Q_SLOTS: void bugzillaVersionFound(); void loginClicked(); + bool canLogin() const; + void login(); void loginFinished(bool); void loginError(const QString &, const QString &); diff --git a/src/bugzillaintegration/reportassistantpages_bugzilla.cpp b/src/bugzillaintegration/reportassistantpages_bugzilla.cpp --- a/src/bugzillaintegration/reportassistantpages_bugzilla.cpp +++ b/src/bugzillaintegration/reportassistantpages_bugzilla.cpp @@ -228,6 +228,10 @@ } } + + if (canLogin()) { + loginClicked(); + } } } @@ -297,7 +301,7 @@ void BugzillaLoginPage::loginClicked() { - if (!(ui.m_userEdit->text().isEmpty() || ui.m_passwordEdit->password().isEmpty())) { + if (canLogin()) { if ((bugzillaManager()->securityMethod() == BugzillaManager::UseCookies) && (!canSetCookies())) { @@ -333,16 +337,29 @@ } } - ui.m_statusWidget->setBusy(i18nc("@info:status '1' is a url, '2' the username", - "Performing login at %1 as %2...", - QLatin1String(KDE_BUGZILLA_SHORT_URL), ui.m_userEdit->text())); - - bugzillaManager()->tryLogin(ui.m_userEdit->text(), ui.m_passwordEdit->password()); + login(); } else { loginFinished(false); } } +bool BugzillaLoginPage::canLogin() const +{ + return (!(ui.m_userEdit->text().isEmpty() || ui.m_passwordEdit->password().isEmpty())); +} + +void BugzillaLoginPage::login() +{ + Q_ASSERT(canLogin()); + + ui.m_statusWidget->setBusy(i18nc("@info:status '1' is a url, '2' the username", + "Performing login at %1 as %2...", + QLatin1String(KDE_BUGZILLA_SHORT_URL), + ui.m_userEdit->text())); + + bugzillaManager()->tryLogin(ui.m_userEdit->text(), ui.m_passwordEdit->password()); +} + void BugzillaLoginPage::updateWidget(bool enabled) { ui.m_loginButton->setEnabled(enabled);