diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2019-10-05 13:47:11 -0400 |
|---|---|---|
| committer | isanae <14251494+isanae@users.noreply.github.com> | 2019-10-05 13:47:11 -0400 |
| commit | e7cc4774e1a7d03fb0710875f6a91ec703b0005e (patch) | |
| tree | 3f9e70411c528986ba2a814ff86f78f95a818c63 /src/nxmaccessmanager.cpp | |
| parent | 8269ac1b489d30ca6065ec2b97542ddbb22298b3 (diff) | |
don't show the progress dialog on startup until after the first failure
Diffstat (limited to 'src/nxmaccessmanager.cpp')
| -rw-r--r-- | src/nxmaccessmanager.cpp | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/src/nxmaccessmanager.cpp b/src/nxmaccessmanager.cpp index 99b93048..5d8b8b9e 100644 --- a/src/nxmaccessmanager.cpp +++ b/src/nxmaccessmanager.cpp @@ -702,13 +702,21 @@ bool NexusKeyValidator::nextTry() } void NexusKeyValidator::onAttemptSuccess( - const ValidationAttempt&, const APIUserAccount& u) + const ValidationAttempt& a, const APIUserAccount& u) { + if (attemptFinished) { + attemptFinished(a); + } + setFinished(ValidationAttempt::Success, "", u); } void NexusKeyValidator::onAttemptFailure(const ValidationAttempt& a) { + if (attemptFinished) { + attemptFinished(a); + } + switch (a.result()) { case ValidationAttempt::SoftError: @@ -755,6 +763,10 @@ NXMAccessManager::NXMAccessManager(QObject *parent, const QString &moVersion) onValidatorFinished(r, m, u); }; + m_validator.attemptFinished = [&](auto&& a) { + onValidatorAttemptFinished(a); + }; + setCookieJar(new PersistentCookieJar(QDir::fromNativeSeparators( Settings::instance().paths().cache() + "/nexus_cookies.dat"))); @@ -820,7 +832,12 @@ void NXMAccessManager::startValidationCheck(const QString& key) { m_validationState = NotChecked; m_validator.start(key, NexusKeyValidator::Retry); - startProgress(); + + if (m_ProgressDialog) { + // don't show the progress dialog on startup for the first attempt; the + // dialog will be shown in onValidatorAttemptFinished() if it failed + startProgress(); + } } void NXMAccessManager::onValidatorFinished( @@ -843,6 +860,30 @@ void NXMAccessManager::onValidatorFinished( } } +void NXMAccessManager::onValidatorAttemptFinished(const ValidationAttempt& a) +{ + if (!m_ProgressDialog) { + switch (a.result()) + { + case ValidationAttempt::SoftError: + case ValidationAttempt::HardError: + { + startProgress(); + break; + } + + case ValidationAttempt::None: + case ValidationAttempt::Success: + case ValidationAttempt::Cancelled: + default: + { + // don't show the dialog + break; + } + } + } +} + bool NXMAccessManager::validated() const { if (m_validator.isActive()) { |
