From 1847a2e95c360cd6570fe722a2cdd6e2a5a3266e Mon Sep 17 00:00:00 2001 From: Camila Ayres Date: Tue, 29 Oct 2024 21:51:46 +0100 Subject: [PATCH] Diferentiate between display name and dav display name. Signed-off-by: Camila Ayres --- src/gui/accountmanager.cpp | 5 +++-- src/libsync/account.cpp | 18 ++++++++++++++---- src/libsync/account.h | 2 ++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/gui/accountmanager.cpp b/src/gui/accountmanager.cpp index 0c86f16a0..67927066a 100644 --- a/src/gui/accountmanager.cpp +++ b/src/gui/accountmanager.cpp @@ -334,7 +334,7 @@ void AccountManager::saveAccountHelper(Account *acc, QSettings &settings, bool s settings.setValue(QLatin1String(versionC), maxAccountVersion); settings.setValue(QLatin1String(urlC), acc->_url.toString()); settings.setValue(QLatin1String(davUserC), acc->_davUser); - settings.setValue(QLatin1String(displayNameC), acc->_displayName); + settings.setValue(QLatin1String(displayNameC), acc->davDisplayName()); settings.setValue(QLatin1String(serverVersionC), acc->_serverVersion); settings.setValue(QLatin1String(serverColorC), acc->_serverColor); settings.setValue(QLatin1String(serverTextColorC), acc->_serverTextColor); @@ -498,7 +498,7 @@ AccountPtr AccountManager::loadAccountHelper(QSettings &settings) acc->_davUser = settings.value(QLatin1String(davUserC)).toString(); acc->_settingsMap.insert(QLatin1String(userC), settings.value(userC)); - acc->_displayName = settings.value(QLatin1String(displayNameC), "").toString(); + acc->setDavDisplayName(settings.value(QLatin1String(displayNameC), "").toString()); const QString authTypePrefix = authType + "_"; const auto settingsChildKeys = settings.childKeys(); for (const auto &key : settingsChildKeys) { @@ -509,6 +509,7 @@ AccountPtr AccountManager::loadAccountHelper(QSettings &settings) } acc->setCredentials(CredentialsFactory::create(authType)); + acc->setDisplayName(acc->credentials()->user()); acc->setNetworkProxySetting(settings.value(networkProxySettingC).value()); acc->setProxyType(settings.value(networkProxyTypeC).value()); diff --git a/src/libsync/account.cpp b/src/libsync/account.cpp index 4d64876d5..855eab03e 100644 --- a/src/libsync/account.cpp +++ b/src/libsync/account.cpp @@ -156,13 +156,23 @@ void Account::setAvatar(const QImage &img) QString Account::displayName() const { - auto displayName = QString("%1@%2").arg(credentials() ? credentials()->user() : "", _url.host()); + return _displayName; +} + +void Account::setDisplayName(const QString &username) +{ + auto displayName = QString("%1@%2").arg(username, _url.host()); const auto port = url().port(); if (port > 0 && port != 80 && port != 443) { displayName.append(QLatin1Char(':')); displayName.append(QString::number(port)); } - return displayName; + + if (displayName == _displayName) { + return; + } + + _displayName = displayName; } QString Account::userIdAtHostWithPort() const @@ -178,12 +188,12 @@ QString Account::userIdAtHostWithPort() const QString Account::davDisplayName() const { - return _displayName; + return _davDisplayName; } void Account::setDavDisplayName(const QString &newDisplayName) { - _displayName = newDisplayName; + _davDisplayName = newDisplayName; emit accountChangedDisplayName(); emit prettyNameChanged(); } diff --git a/src/libsync/account.h b/src/libsync/account.h index 6333164ad..b280a767b 100644 --- a/src/libsync/account.h +++ b/src/libsync/account.h @@ -146,6 +146,7 @@ public: /// The name of the account as shown in the toolbar [[nodiscard]] QString displayName() const; + void setDisplayName(const QString &username); /// User id in a form 'user@example.de, optionally port is added (if it is not 80 or 443) [[nodiscard]] QString userIdAtHostWithPort() const; @@ -493,6 +494,7 @@ private: QWeakPointer _sharedThis; QString _id; QString _davUser; + QString _davDisplayName; QString _displayName; QTimer _pushNotificationsReconnectTimer; #ifndef TOKEN_AUTH_ONLY -- 2.30.2