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
This commit is contained in:
Gaëlle Braud 2025-07-17 15:42:14 +00:00
parent 98d9179419
commit 34106a8008
18 changed files with 34 additions and 27 deletions

View file

@ -55,6 +55,7 @@ ChatList::~ChatList() {
void ChatList::connectItem(QSharedPointer<ChatCore> 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

View file

@ -76,9 +76,10 @@ void EventLogList::connectItem(const QSharedPointer<EventLogCore> item) {
void EventLogList::setChatCore(QSharedPointer<ChatCore> 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<QSharedPointer<EventLogCore>> list) {
auto eventsList = getSharedList<EventLogCore>();
for (auto &event : list) {
@ -92,6 +93,7 @@ void EventLogList::setChatCore(QSharedPointer<ChatCore> core) {
}
}
});
}
emit eventChanged();
lUpdate();
}

View file

@ -326,7 +326,9 @@ void Notifier::notifyReceivedMessages(const std::shared_ptr<linphone::ChatRoom>
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<AccountModel>(receiverAccount);

View file

@ -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<SettingsCore> 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<SettingsModel> 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<SettingsModel> &model) {
mAssistantDisableQrCode = model->getAssistantDisableQrCode();
mAssistantHideThirdPartyAccount = model->getAssistantHideThirdPartyAccount();
mOnlyDisplaySipUriUsername = model->getOnlyDisplaySipUriUsername();
mHideSipAddresses = model->getHideSipAddresses();
mDarkModeAllowed = model->getDarkModeAllowed();
mMaxAccount = model->getMaxAccount();
mAssistantGoDirectlyToThirdPartySipAccountLogin = model->getAssistantGoDirectlyToThirdPartySipAccountLogin();

View file

@ -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,

View file

@ -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,

View file

@ -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)

View file

@ -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 {

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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 {

View file

@ -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

View file

@ -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"

View file

@ -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

View file

@ -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 {

View file

@ -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

View file

@ -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