From 06c889630cb9834a5060286b2a2dac2c3bbbb881 Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Fri, 15 May 2015 12:26:23 +0200 Subject: [PATCH] AccountState: Run only a single validator, allow error message overriding #3236 #3153 --- src/gui/accountstate.cpp | 10 ++++++++-- src/gui/accountstate.h | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/gui/accountstate.cpp b/src/gui/accountstate.cpp index a2c9cf63e..05ee53a7f 100644 --- a/src/gui/accountstate.cpp +++ b/src/gui/accountstate.cpp @@ -114,9 +114,10 @@ void AccountState::setState(State state) } else if (oldState == SignedOut && _state == Disconnected) { checkConnectivity(); } - - emit stateChanged(_state); } + + // might not have changed but the underlying _connectionErrors might have + emit stateChanged(_state); } QString AccountState::stateString(State state) @@ -174,7 +175,12 @@ void AccountState::checkConnectivity() return; } + if (_connectionValidator) { + qDebug() << "ConnectionValidator already running, ignoring"; + return; + } ConnectionValidator * conValidator = new ConnectionValidator(account()); + _connectionValidator = conValidator; connect(conValidator, SIGNAL(connectionResult(ConnectionValidator::Status,QStringList)), SLOT(slotConnectionValidatorResult(ConnectionValidator::Status,QStringList))); if (isConnected()) { diff --git a/src/gui/accountstate.h b/src/gui/accountstate.h index c21b25ead..97bca8fe3 100644 --- a/src/gui/accountstate.h +++ b/src/gui/accountstate.h @@ -16,6 +16,7 @@ #define ACCOUNTINFO_H #include +#include #include "utility.h" #include "connectionvalidator.h" @@ -128,6 +129,7 @@ private: ConnectionStatus _connectionStatus; QStringList _connectionErrors; bool _waitingForNewCredentials; + QPointer _connectionValidator; }; }