summaryrefslogtreecommitdiff
path: root/src/nxmaccessmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/nxmaccessmanager.cpp')
-rw-r--r--src/nxmaccessmanager.cpp45
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()) {