diff --git a/Linphone/core/friend/FriendCore.cpp b/Linphone/core/friend/FriendCore.cpp index a4f362a3e..0fd5631ac 100644 --- a/Linphone/core/friend/FriendCore.cpp +++ b/Linphone/core/friend/FriendCore.cpp @@ -232,6 +232,7 @@ void FriendCore::reset(const FriendCore &contact) { resetAddresses(contact.getAddresses()); resetPhoneNumbers(contact.getPhoneNumbers()); setDefaultAddress(contact.getDefaultAddress()); + setDisplayName(contact.getDisplayName()); setGivenName(contact.getGivenName()); setFamilyName(contact.getFamilyName()); setOrganization(contact.getOrganization()); @@ -244,6 +245,14 @@ QString FriendCore::getDisplayName() const { return !mFullName.isEmpty() ? mFullName : mGivenName + " " + mFamilyName; } +void FriendCore::setDisplayName(const QString &name) { + if (mFullName != name) { + mFullName = name; + emit displayNameChanged(); + setIsSaved(false); + } +} + QString FriendCore::getGivenName() const { return mGivenName; } diff --git a/Linphone/core/friend/FriendCore.hpp b/Linphone/core/friend/FriendCore.hpp index a0636cd9e..f267f7823 100644 --- a/Linphone/core/friend/FriendCore.hpp +++ b/Linphone/core/friend/FriendCore.hpp @@ -57,7 +57,7 @@ class FriendCore : public QObject, public AbstractObject { Q_PROPERTY(int verifiedDeviceCount MEMBER mVerifiedDeviceCount NOTIFY verifiedDevicesChanged) Q_PROPERTY(QString givenName READ getGivenName WRITE setGivenName NOTIFY givenNameChanged) Q_PROPERTY(QString familyName READ getFamilyName WRITE setFamilyName NOTIFY familyNameChanged) - Q_PROPERTY(QString displayName READ getDisplayName NOTIFY displayNameChanged) + Q_PROPERTY(QString displayName READ getDisplayName WRITE setDisplayName NOTIFY displayNameChanged) Q_PROPERTY(QString organization READ getOrganization WRITE setOrganization NOTIFY organizationChanged) Q_PROPERTY(QString job READ getJob WRITE setJob NOTIFY jobChanged) Q_PROPERTY(QString defaultAddress READ getDefaultAddress WRITE setDefaultAddress NOTIFY defaultAddressChanged) @@ -81,6 +81,7 @@ public: void reset(const FriendCore &contact); QString getDisplayName() const; + void setDisplayName(const QString &name); QString getFamilyName() const; void setFamilyName(const QString &name); diff --git a/Linphone/core/search/MagicSearchList.cpp b/Linphone/core/search/MagicSearchList.cpp index 8542ca8ab..b4c7fb100 100644 --- a/Linphone/core/search/MagicSearchList.cpp +++ b/Linphone/core/search/MagicSearchList.cpp @@ -112,7 +112,8 @@ void MagicSearchList::setSelf(QSharedPointer me) { } else if (auto address = it->getAddress()) { auto linphoneFriend = CoreModel::getInstance()->getCore()->createFriend(); contact = FriendCore::create(linphoneFriend); - contact->setGivenName(Utils::coreStringToAppString(address->asStringUriOnly())); + contact->setDisplayName(Utils::coreStringToAppString(address->getDisplayName())); + contact->setGivenName(Utils::coreStringToAppString(address->getUsername())); contact->appendAddress(Utils::coreStringToAppString(address->asStringUriOnly())); contacts->append(contact); } else if (!it->getPhoneNumber().empty()) { diff --git a/Linphone/view/Control/Container/Call/CallHistoryLayout.qml b/Linphone/view/Control/Container/Call/CallHistoryLayout.qml index c2c8eaec8..86e7aca8e 100644 --- a/Linphone/view/Control/Container/Call/CallHistoryLayout.qml +++ b/Linphone/view/Control/Container/Call/CallHistoryLayout.qml @@ -109,7 +109,7 @@ ColumnLayout { Layout.fillWidth: true horizontalAlignment: Text.AlignHCenter visible: mainItem.specificAddress != "" - text: mainItem.specificAddress + text: SettingsCpp.onlyDisplaySipUriUsername ? UtilsCpp.getUsername(mainItem.specificAddress) : mainItem.specificAddress elide: Text.ElideMiddle maximumLineCount: 1 font { diff --git a/Linphone/view/Control/Display/Contact/ContactListView.qml b/Linphone/view/Control/Display/Contact/ContactListView.qml index 9728a9c01..5387dbfe4 100644 --- a/Linphone/view/Control/Display/Contact/ContactListView.qml +++ b/Linphone/view/Control/Display/Contact/ContactListView.qml @@ -199,7 +199,7 @@ ListView { Text { Layout.topMargin: 2 * DefaultStyle.dp visible: mainItem.showDefaultAddress - text: modelData.core.defaultAddress + text: SettingsCpp.onlyDisplaySipUriUsername ? UtilsCpp.getUsername(modelData.core.defaultAddress) : modelData.core.defaultAddress font { weight: 300 * DefaultStyle.dp pixelSize: 12 * DefaultStyle.dp diff --git a/Linphone/view/Page/Layout/Main/MainLayout.qml b/Linphone/view/Page/Layout/Main/MainLayout.qml index 5ba9c270f..abdedacc2 100644 --- a/Linphone/view/Page/Layout/Main/MainLayout.qml +++ b/Linphone/view/Page/Layout/Main/MainLayout.qml @@ -324,7 +324,7 @@ Item { } Text { property var urlObj: UtilsCpp.interpretUrl(magicSearchBar.text) - text: urlObj?.value + text: SettingsCpp.onlyDisplaySipUriUsername ? UtilsCpp.getUsername(urlObj?.value) : urlObj?.value font { pixelSize: 12 * DefaultStyle.dp weight: 300 * DefaultStyle.dp