From 34106a8008ad8fc681943689443068b08859261f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABlle=20Braud?= Date: Thu, 17 Jul 2025 15:42:14 +0000 Subject: [PATCH] fix #LINQT-1833 select chat when one result in chat list after research \ fix notify account when not sender \ display security settings ui \ rename hide_sip_addresses flag \ fix #LINQT-1843 disconnect old chatroom properly to avoid having message from another chatroom in the new one selected --- Linphone/core/chat/ChatList.cpp | 1 + Linphone/core/chat/message/EventLogList.cpp | 6 ++++-- Linphone/core/notifier/Notifier.cpp | 4 +++- Linphone/core/setting/SettingsCore.cpp | 12 ++++++------ Linphone/core/setting/SettingsCore.hpp | 2 +- Linphone/model/setting/SettingsModel.cpp | 8 ++++---- Linphone/model/setting/SettingsModel.hpp | 2 +- .../Control/Container/Call/CallHistoryLayout.qml | 2 +- Linphone/view/Control/Display/Contact/Avatar.qml | 2 +- .../view/Control/Display/Contact/ContactListItem.qml | 2 +- Linphone/view/Control/Display/Sticker.qml | 4 ++-- .../view/Page/Form/Contact/ContactDescription.qml | 2 +- Linphone/view/Page/Form/Contact/ContactEdition.qml | 2 +- Linphone/view/Page/Form/Settings/SettingsPage.qml | 2 ++ .../Page/Layout/Settings/SecuritySettingsLayout.qml | 1 - Linphone/view/Page/Main/Chat/ChatPage.qml | 5 +++-- Linphone/view/Page/Main/Contact/ContactPage.qml | 2 +- Linphone/view/Page/Window/AbstractWindow.qml | 2 +- 18 files changed, 34 insertions(+), 27 deletions(-) diff --git a/Linphone/core/chat/ChatList.cpp b/Linphone/core/chat/ChatList.cpp index 09a94028..c4bf71ae 100644 --- a/Linphone/core/chat/ChatList.cpp +++ b/Linphone/core/chat/ChatList.cpp @@ -55,6 +55,7 @@ ChatList::~ChatList() { void ChatList::connectItem(QSharedPointer chat) { connect(chat.get(), &ChatCore::deleted, this, [this, chat] { + disconnect(chat.get()); remove(chat); // We cannot use countChanged here because it is called before mList // really has removed the item, then emit specific signal diff --git a/Linphone/core/chat/message/EventLogList.cpp b/Linphone/core/chat/message/EventLogList.cpp index 87db0ad9..a8de6d11 100644 --- a/Linphone/core/chat/message/EventLogList.cpp +++ b/Linphone/core/chat/message/EventLogList.cpp @@ -76,9 +76,10 @@ void EventLogList::connectItem(const QSharedPointer item) { void EventLogList::setChatCore(QSharedPointer core) { if (mChatCore != core) { if (mChatCore) disconnect(mChatCore.get(), &ChatCore::eventListChanged, this, nullptr); + if (mChatCore) disconnect(mChatCore.get(), &ChatCore::eventsInserted, this, nullptr); mChatCore = core; - if (mChatCore) connect(mChatCore.get(), &ChatCore::eventListChanged, this, &EventLogList::lUpdate); - if (mChatCore) + if (mChatCore) { + connect(mChatCore.get(), &ChatCore::eventListChanged, this, &EventLogList::lUpdate); connect(mChatCore.get(), &ChatCore::eventsInserted, this, [this](QList> list) { auto eventsList = getSharedList(); for (auto &event : list) { @@ -92,6 +93,7 @@ void EventLogList::setChatCore(QSharedPointer core) { } } }); + } emit eventChanged(); lUpdate(); } diff --git a/Linphone/core/notifier/Notifier.cpp b/Linphone/core/notifier/Notifier.cpp index dbb81ec8..794f9600 100644 --- a/Linphone/core/notifier/Notifier.cpp +++ b/Linphone/core/notifier/Notifier.cpp @@ -326,7 +326,9 @@ void Notifier::notifyReceivedMessages(const std::shared_ptr auto receiverAccount = ToolModel::findAccount(message->getToAddress()); if (receiverAccount) { auto senderAccount = ToolModel::findAccount(message->getFromAddress()); - if (senderAccount) { + auto currentAccount = CoreModel::getInstance()->getCore()->getDefaultAccount(); + if (senderAccount && senderAccount->getContactAddress()->weakEqual(currentAccount->getContactAddress())) { + qDebug() << "sender is current account, return"; return; } auto accountModel = Utils::makeQObject_ptr(receiverAccount); diff --git a/Linphone/core/setting/SettingsCore.cpp b/Linphone/core/setting/SettingsCore.cpp index e3665771..437eb780 100644 --- a/Linphone/core/setting/SettingsCore.cpp +++ b/Linphone/core/setting/SettingsCore.cpp @@ -111,7 +111,7 @@ SettingsCore::SettingsCore(QObject *parent) : QObject(parent) { INIT_CORE_MEMBER(AssistantDisableQrCode, settingsModel) INIT_CORE_MEMBER(AssistantHideThirdPartyAccount, settingsModel) - INIT_CORE_MEMBER(OnlyDisplaySipUriUsername, settingsModel) + INIT_CORE_MEMBER(HideSipAddresses, settingsModel) INIT_CORE_MEMBER(DarkModeAllowed, settingsModel) INIT_CORE_MEMBER(MaxAccount, settingsModel) INIT_CORE_MEMBER(AssistantGoDirectlyToThirdPartySipAccountLogin, settingsModel) @@ -189,7 +189,7 @@ SettingsCore::SettingsCore(const SettingsCore &settingsCore) { mAssistantDisableQrCode = settingsCore.mAssistantDisableQrCode; mAssistantHideThirdPartyAccount = settingsCore.mAssistantHideThirdPartyAccount; - mOnlyDisplaySipUriUsername = settingsCore.mOnlyDisplaySipUriUsername; + mHideSipAddresses = settingsCore.mHideSipAddresses; mDarkModeAllowed = settingsCore.mDarkModeAllowed; mMaxAccount = settingsCore.mMaxAccount; mAssistantGoDirectlyToThirdPartySipAccountLogin = settingsCore.mAssistantGoDirectlyToThirdPartySipAccountLogin; @@ -398,7 +398,7 @@ void SettingsCore::setSelf(QSharedPointer me) { DEFINE_CORE_GETSET_CONNECT(mSettingsModelConnection, SettingsCore, SettingsModel, settingsModel, bool, assistantHideThirdPartyAccount, AssistantHideThirdPartyAccount) DEFINE_CORE_GETSET_CONNECT(mSettingsModelConnection, SettingsCore, SettingsModel, settingsModel, bool, - onlyDisplaySipUriUsername, OnlyDisplaySipUriUsername) + hideSipAddresses, HideSipAddresses) DEFINE_CORE_GETSET_CONNECT(mSettingsModelConnection, SettingsCore, SettingsModel, settingsModel, bool, darkModeAllowed, DarkModeAllowed) DEFINE_CORE_GETSET_CONNECT(mSettingsModelConnection, SettingsCore, SettingsModel, settingsModel, int, maxAccount, @@ -515,7 +515,7 @@ void SettingsCore::reset(const SettingsCore &settingsCore) { setAssistantDisableQrCode(settingsCore.mAssistantDisableQrCode); setAssistantHideThirdPartyAccount(settingsCore.mAssistantHideThirdPartyAccount); - setOnlyDisplaySipUriUsername(settingsCore.mOnlyDisplaySipUriUsername); + setHideSipAddresses(settingsCore.mHideSipAddresses); setDarkModeAllowed(settingsCore.mDarkModeAllowed); setMaxAccount(settingsCore.mMaxAccount); setAssistantGoDirectlyToThirdPartySipAccountLogin(settingsCore.mAssistantGoDirectlyToThirdPartySipAccountLogin); @@ -1017,7 +1017,7 @@ void SettingsCore::writeIntoModel(std::shared_ptr model) const { model->setAssistantDisableQrCode(mAssistantDisableQrCode); model->setAssistantHideThirdPartyAccount(mAssistantHideThirdPartyAccount); - model->setOnlyDisplaySipUriUsername(mOnlyDisplaySipUriUsername); + model->setHideSipAddresses(mHideSipAddresses); model->setDarkModeAllowed(mDarkModeAllowed); model->setMaxAccount(mMaxAccount); model->setAssistantGoDirectlyToThirdPartySipAccountLogin(mAssistantGoDirectlyToThirdPartySipAccountLogin); @@ -1086,7 +1086,7 @@ void SettingsCore::writeFromModel(const std::shared_ptr &model) { mAssistantDisableQrCode = model->getAssistantDisableQrCode(); mAssistantHideThirdPartyAccount = model->getAssistantHideThirdPartyAccount(); - mOnlyDisplaySipUriUsername = model->getOnlyDisplaySipUriUsername(); + mHideSipAddresses = model->getHideSipAddresses(); mDarkModeAllowed = model->getDarkModeAllowed(); mMaxAccount = model->getMaxAccount(); mAssistantGoDirectlyToThirdPartySipAccountLogin = model->getAssistantGoDirectlyToThirdPartySipAccountLogin(); diff --git a/Linphone/core/setting/SettingsCore.hpp b/Linphone/core/setting/SettingsCore.hpp index aa940137..a14e7d1e 100644 --- a/Linphone/core/setting/SettingsCore.hpp +++ b/Linphone/core/setting/SettingsCore.hpp @@ -221,7 +221,7 @@ public: DECLARE_CORE_GETSET_MEMBER(bool, assistantHideCreateAccount, AssistantHideCreateAccount) DECLARE_CORE_GETSET_MEMBER(bool, assistantDisableQrCode, AssistantDisableQrCode) DECLARE_CORE_GETSET_MEMBER(bool, assistantHideThirdPartyAccount, AssistantHideThirdPartyAccount) - DECLARE_CORE_GETSET_MEMBER(bool, onlyDisplaySipUriUsername, OnlyDisplaySipUriUsername) + DECLARE_CORE_GETSET_MEMBER(bool, hideSipAddresses, HideSipAddresses) DECLARE_CORE_GETSET_MEMBER(bool, darkModeAllowed, DarkModeAllowed) DECLARE_CORE_GETSET_MEMBER(int, maxAccount, MaxAccount) DECLARE_CORE_GETSET_MEMBER(bool, diff --git a/Linphone/model/setting/SettingsModel.cpp b/Linphone/model/setting/SettingsModel.cpp index a0427041..0ac7fffe 100644 --- a/Linphone/model/setting/SettingsModel.cpp +++ b/Linphone/model/setting/SettingsModel.cpp @@ -807,7 +807,7 @@ void SettingsModel::notifyConfigReady(){ DEFINE_NOTIFY_CONFIG_READY(assistantHideCreateAccount, AssistantHideCreateAccount) DEFINE_NOTIFY_CONFIG_READY(assistantDisableQrCode, AssistantDisableQrCode) DEFINE_NOTIFY_CONFIG_READY(assistantHideThirdPartyAccount, AssistantHideThirdPartyAccount) - DEFINE_NOTIFY_CONFIG_READY(onlyDisplaySipUriUsername, OnlyDisplaySipUriUsername) + DEFINE_NOTIFY_CONFIG_READY(hideSipAddresses, HideSipAddresses) DEFINE_NOTIFY_CONFIG_READY(darkModeAllowed, DarkModeAllowed) DEFINE_NOTIFY_CONFIG_READY(assistantGoDirectlyToThirdPartySipAccountLogin, AssistantGoDirectlyToThirdPartySipAccountLogin) @@ -871,9 +871,9 @@ DEFINE_GETSET_CONFIG(SettingsModel, DEFINE_GETSET_CONFIG(SettingsModel, bool, Bool, - onlyDisplaySipUriUsername, - OnlyDisplaySipUriUsername, - "only_display_sip_uri_username", + hideSipAddresses, + HideSipAddresses, + "hide_sip_addresses", false) DEFINE_GETSET_CONFIG(SettingsModel, bool, diff --git a/Linphone/model/setting/SettingsModel.hpp b/Linphone/model/setting/SettingsModel.hpp index ea1cb0eb..5dedc5fe 100644 --- a/Linphone/model/setting/SettingsModel.hpp +++ b/Linphone/model/setting/SettingsModel.hpp @@ -178,7 +178,7 @@ public: DECLARE_GETSET(bool, assistantHideCreateAccount, AssistantHideCreateAccount) DECLARE_GETSET(bool, assistantDisableQrCode, AssistantDisableQrCode) DECLARE_GETSET(bool, assistantHideThirdPartyAccount, AssistantHideThirdPartyAccount) - DECLARE_GETSET(bool, onlyDisplaySipUriUsername, OnlyDisplaySipUriUsername) + DECLARE_GETSET(bool, hideSipAddresses, HideSipAddresses) DECLARE_GETSET(bool, darkModeAllowed, DarkModeAllowed) DECLARE_GETSET(int, maxAccount, MaxAccount) DECLARE_GETSET(bool, assistantGoDirectlyToThirdPartySipAccountLogin, AssistantGoDirectlyToThirdPartySipAccountLogin) diff --git a/Linphone/view/Control/Container/Call/CallHistoryLayout.qml b/Linphone/view/Control/Container/Call/CallHistoryLayout.qml index e201a125..71645715 100644 --- a/Linphone/view/Control/Container/Call/CallHistoryLayout.qml +++ b/Linphone/view/Control/Container/Call/CallHistoryLayout.qml @@ -82,7 +82,7 @@ ColumnLayout { Layout.fillWidth: true horizontalAlignment: Text.AlignHCenter visible: mainItem.specificAddress != "" - text: SettingsCpp.onlyDisplaySipUriUsername ? UtilsCpp.getUsername(mainItem.specificAddress) : mainItem.specificAddress + text: SettingsCpp.hideSipAddresses ? UtilsCpp.getUsername(mainItem.specificAddress) : mainItem.specificAddress elide: Text.ElideMiddle maximumLineCount: 1 font { diff --git a/Linphone/view/Control/Display/Contact/Avatar.qml b/Linphone/view/Control/Display/Contact/Avatar.qml index bdfdf059..ba6a9259 100644 --- a/Linphone/view/Control/Display/Contact/Avatar.qml +++ b/Linphone/view/Control/Display/Contact/Avatar.qml @@ -24,7 +24,7 @@ Loader{ : contact ? contact.core.defaultAddress : '' - readonly property string address: SettingsCpp.onlyDisplaySipUriUsername ? UtilsCpp.getUsername(_address) : _address + readonly property string address: SettingsCpp.hideSipAddresses ? UtilsCpp.getUsername(_address) : _address property var displayNameObj: UtilsCpp.getDisplayName(_address) property var displayNameVal: account && account.core.displayName ? account.core.displayName diff --git a/Linphone/view/Control/Display/Contact/ContactListItem.qml b/Linphone/view/Control/Display/Contact/ContactListItem.qml index b2ddd832..b28a3557 100644 --- a/Linphone/view/Control/Display/Contact/ContactListItem.qml +++ b/Linphone/view/Control/Display/Contact/ContactListItem.qml @@ -91,7 +91,7 @@ FocusScope { Layout.topMargin: Math.round(2 * DefaultStyle.dp) Layout.fillWidth: true visible: mainItem.showDefaultAddress - property string address: SettingsCpp.onlyDisplaySipUriUsername + property string address: SettingsCpp.hideSipAddresses ? UtilsCpp.getUsername(mainItem.addressFromFilter) : mainItem.addressFromFilter text: UtilsCpp.boldTextPart(address, mainItem.highlightText) diff --git a/Linphone/view/Control/Display/Sticker.qml b/Linphone/view/Control/Display/Sticker.qml index 6b637c73..4bcaba63 100644 --- a/Linphone/view/Control/Display/Sticker.qml +++ b/Linphone/view/Control/Display/Sticker.qml @@ -187,7 +187,7 @@ Item { Layout.fillWidth: true horizontalAlignment: Text.AlignHCenter property string _text: mainItem.call && mainItem.call.core.remoteAddress - text: SettingsCpp.onlyDisplaySipUriUsername ? UtilsCpp.getUsername(_text) : _text + text: SettingsCpp.hideSipAddresses ? UtilsCpp.getUsername(_text) : _text color: DefaultStyle.grey_0 font { pixelSize: Math.round(14 * DefaultStyle.dp) @@ -264,7 +264,7 @@ Item { : mainItem.account && mainItem.identityAddress ? mainItem.identityAddress.value : "" - text: SettingsCpp.onlyDisplaySipUriUsername ? UtilsCpp.getUsername(_text) : _text + text: SettingsCpp.hideSipAddresses ? UtilsCpp.getUsername(_text) : _text color: DefaultStyle.grey_0 font { pixelSize: Math.round(14 * DefaultStyle.dp) diff --git a/Linphone/view/Page/Form/Contact/ContactDescription.qml b/Linphone/view/Page/Form/Contact/ContactDescription.qml index 0cc4dfcb..3259d301 100644 --- a/Linphone/view/Page/Form/Contact/ContactDescription.qml +++ b/Linphone/view/Page/Form/Contact/ContactDescription.qml @@ -10,7 +10,7 @@ ColumnLayout{ id: mainItem property AccountGui account: null property string topText: account ? account.core.displayName : "" - property string bottomText: account ? SettingsCpp.onlyDisplaySipUriUsername ? UtilsCpp.getUsername(account.core.identityAddress) : account.core.identityAddress : "" + property string bottomText: account ? SettingsCpp.hideSipAddresses ? UtilsCpp.getUsername(account.core.identityAddress) : account.core.identityAddress : "" spacing: 0 width: topTextItem.implicitWidth Text { diff --git a/Linphone/view/Page/Form/Contact/ContactEdition.qml b/Linphone/view/Page/Form/Contact/ContactEdition.qml index 152a2c5d..57561d12 100644 --- a/Linphone/view/Page/Form/Contact/ContactEdition.qml +++ b/Linphone/view/Page/Form/Contact/ContactEdition.qml @@ -300,7 +300,7 @@ MainRightPanel { if (text.length != 0) mainItem.contact.core.setAddressAt(index, label, text) } property string _initialText: modelData.address - initialText: SettingsCpp.onlyDisplaySipUriUsername ? UtilsCpp.getUsername(_initialText) : _initialText + initialText: SettingsCpp.hideSipAddresses ? UtilsCpp.getUsername(_initialText) : _initialText backgroundColor: DefaultStyle.grey_0 focus: true KeyNavigation.right: removeAddressButton diff --git a/Linphone/view/Page/Form/Settings/SettingsPage.qml b/Linphone/view/Page/Form/Settings/SettingsPage.qml index 886d50ba..9f46fa25 100644 --- a/Linphone/view/Page/Form/Settings/SettingsPage.qml +++ b/Linphone/view/Page/Form/Settings/SettingsPage.qml @@ -23,6 +23,8 @@ AbstractSettingsMenu { {title: qsTr("settings_meetings_title"), layout: "MeetingsSettingsLayout", visible: !SettingsCpp.disableMeetingsFeature}, //: "Affichage" //{title: qsTr("settings_user_interface_title"), layout: "DisplaySettingsLayout"}, + //: "Security" + {title: qsTr("settings_security_title"), layout: "SecuritySettingsLayout"}, //: "Réseau" {title: qsTr("settings_network_title"), layout: "NetworkSettingsLayout"}, //: "Paramètres avancés" diff --git a/Linphone/view/Page/Layout/Settings/SecuritySettingsLayout.qml b/Linphone/view/Page/Layout/Settings/SecuritySettingsLayout.qml index 5b681919..5a0710f7 100644 --- a/Linphone/view/Page/Layout/Settings/SecuritySettingsLayout.qml +++ b/Linphone/view/Page/Layout/Settings/SecuritySettingsLayout.qml @@ -4,7 +4,6 @@ import QtQuick.Layouts import QtQuick.Controls.Basic as Control import SettingsCpp 1.0 import Linphone -import UtilsCpp AbstractSettingsLayout { width: parent?.width diff --git a/Linphone/view/Page/Main/Chat/ChatPage.qml b/Linphone/view/Page/Main/Chat/ChatPage.qml index af2e02be..6d1eec42 100644 --- a/Linphone/view/Page/Main/Chat/ChatPage.qml +++ b/Linphone/view/Page/Main/Chat/ChatPage.qml @@ -187,8 +187,9 @@ AbstractMainPage { searchBar: searchBar Control.ScrollBar.vertical: scrollbar - onCurrentIndexChanged: { - mainItem.selectedChatGui = model.getAt(currentIndex) + onChatClicked: (chat) => { + console.log("chat clicked") + mainItem.selectedChatGui = chat } Connections { diff --git a/Linphone/view/Page/Main/Contact/ContactPage.qml b/Linphone/view/Page/Main/Contact/ContactPage.qml index 2ef904f4..8b70e1f2 100644 --- a/Linphone/view/Page/Main/Contact/ContactPage.qml +++ b/Linphone/view/Page/Main/Contact/ContactPage.qml @@ -517,7 +517,7 @@ FriendGui{ Text { Layout.fillWidth: true property string _text: listViewModelData.address - text: SettingsCpp.onlyDisplaySipUriUsername ? UtilsCpp.getUsername(_text) : _text + text: SettingsCpp.hideSipAddresses ? UtilsCpp.getUsername(_text) : _text font { pixelSize: Typography.p1.pixelSize weight: Typography.p1.weight diff --git a/Linphone/view/Page/Window/AbstractWindow.qml b/Linphone/view/Page/Window/AbstractWindow.qml index db466f86..b2e38dae 100644 --- a/Linphone/view/Page/Window/AbstractWindow.qml +++ b/Linphone/view/Page/Window/AbstractWindow.qml @@ -119,7 +119,7 @@ ApplicationWindow { } Text { Layout.leftMargin: Math.round(5 * DefaultStyle.dp) - text: SettingsCpp.onlyDisplaySipUriUsername ? UtilsCpp.getUsername(modelData.address) : modelData.address + text: SettingsCpp.hideSipAddresses ? UtilsCpp.getUsername(modelData.address) : modelData.address font { pixelSize: Typography.p1.pixelSize weight: Typography.p1.weight