diff --git a/src/libclient/accountmodel.cpp b/src/libclient/accountmodel.cpp index fa796210..e70c38a1 100644 --- a/src/libclient/accountmodel.cpp +++ b/src/libclient/accountmodel.cpp @@ -270,7 +270,12 @@ AccountModel::setAccountConfig(const QString& accountId, finalCred.append(credMap); } - ConfigurationManager::instance().setCredentials(accountId, finalCred); + VectorMapStringString oldCredentials = ConfigurationManager::instance().getCredentials(accountId); + if (oldCredentials.empty() || finalCred.empty() || + oldCredentials[0][ConfProperties::PASSWORD] != finalCred[0][ConfProperties::PASSWORD] || + oldCredentials[0][ConfProperties::REALM] != finalCred[0][ConfProperties::REALM] || + oldCredentials[0][ConfProperties::USERNAME] != finalCred[0][ConfProperties::USERNAME]) + ConfigurationManager::instance().setCredentials(accountId, finalCred); details[ConfProperties::USERNAME] = confProperties.username; accountInfo.confProperties.credentials.swap(credentialsVec); }