fix force adding chat to list when creating it

This commit is contained in:
Gaelle Braud 2025-11-24 19:40:13 +01:00
parent a7ba374b8f
commit 04d2744bf2
6 changed files with 79 additions and 77 deletions

View file

@ -64,7 +64,6 @@ public:
Q_PROPERTY(
int ephemeralLifetime READ getEphemeralLifetime WRITE lSetEphemeralLifetime NOTIFY ephemeralLifetimeChanged)
Q_PROPERTY(bool muted READ isMuted WRITE lSetMuted NOTIFY mutedChanged)
Q_PROPERTY(bool conferenceJoined MEMBER mConferenceJoined NOTIFY conferenceJoined)
Q_PROPERTY(bool meAdmin READ getMeAdmin WRITE setMeAdmin NOTIFY meAdminChanged)
Q_PROPERTY(QVariantList participants READ getParticipantsGui NOTIFY participantsChanged)
Q_PROPERTY(QStringList participantsAddresses READ getParticipantsAddresses WRITE lSetParticipantsAddresses NOTIFY

View file

@ -2112,65 +2112,65 @@
<context>
<name>ChatListView</name>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="253"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="256"/>
<source>chat_message_is_writing_info</source>
<extracomment>%1 is writing</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="255"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="258"/>
<source>chat_message_draft_sending_text</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="400"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="403"/>
<source>chat_room_delete</source>
<extracomment>&quot;Delete&quot;</extracomment>
<translation>Löschen</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="339"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="342"/>
<source>chat_room_mute</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="338"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="341"/>
<source>chat_room_unmute</source>
<extracomment>&quot;Mute&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="352"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="355"/>
<source>chat_room_mark_as_read</source>
<extracomment>&quot;Mark as read&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="371"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="374"/>
<source>chat_room_leave</source>
<extracomment>&quot;leave&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="377"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="380"/>
<source>chat_list_leave_chat_popup_title</source>
<extracomment>leave the conversation ?</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="379"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="382"/>
<source>chat_list_leave_chat_popup_message</source>
<extracomment>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="406"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="409"/>
<source>chat_list_delete_chat_popup_title</source>
<extracomment>Delete the conversation ?</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="408"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="411"/>
<source>chat_list_delete_chat_popup_message</source>
<extracomment>This conversation and all its messages will be deleted. Do You want to continue ?</extracomment>
<translation type="unfinished"></translation>
@ -3784,58 +3784,58 @@ Error</extracomment>
<context>
<name>EventLogCore</name>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="113"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="115"/>
<source>conference_created_event</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="119"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="123"/>
<source>conference_created_terminated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="123"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="127"/>
<source>conference_participant_added_event</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="127"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="131"/>
<source>conference_participant_removed_event</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="136"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="138"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="140"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="142"/>
<source>conference_security_event</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="145"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="149"/>
<source>conference_ephemeral_message_enabled_event</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="151"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="155"/>
<source>conference_ephemeral_message_lifetime_changed_event</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="156"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="160"/>
<source>conference_ephemeral_message_disabled_event</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="160"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="164"/>
<source>conference_subject_changed_event</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="168"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="172"/>
<source>conference_participant_unset_admin_event</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="164"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="168"/>
<source>conference_participant_set_admin_event</source>
<translation type="unfinished"></translation>
</message>

View file

@ -2089,65 +2089,65 @@
<context>
<name>ChatListView</name>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="253"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="256"/>
<source>chat_message_is_writing_info</source>
<extracomment>%1 is writing</extracomment>
<translation>%1 is writing</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="255"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="258"/>
<source>chat_message_draft_sending_text</source>
<translation>Draft : %1</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="400"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="403"/>
<source>chat_room_delete</source>
<extracomment>&quot;Delete&quot;</extracomment>
<translation>Delete</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="339"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="342"/>
<source>chat_room_mute</source>
<translation>Mute</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="338"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="341"/>
<source>chat_room_unmute</source>
<extracomment>&quot;Mute&quot;</extracomment>
<translation>Unmute</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="352"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="355"/>
<source>chat_room_mark_as_read</source>
<extracomment>&quot;Mark as read&quot;</extracomment>
<translation>Mark as read</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="371"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="374"/>
<source>chat_room_leave</source>
<extracomment>&quot;leave&quot;</extracomment>
<translation>Leave</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="377"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="380"/>
<source>chat_list_leave_chat_popup_title</source>
<extracomment>leave the conversation ?</extracomment>
<translation>Leave the conversation ?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="379"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="382"/>
<source>chat_list_leave_chat_popup_message</source>
<extracomment>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</extracomment>
<translation>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="406"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="409"/>
<source>chat_list_delete_chat_popup_title</source>
<extracomment>Delete the conversation ?</extracomment>
<translation>Delete the conversation ?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="408"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="411"/>
<source>chat_list_delete_chat_popup_message</source>
<extracomment>This conversation and all its messages will be deleted. Do You want to continue ?</extracomment>
<translation>This conversation and all its messages will be deleted. Do You want to continue ?</translation>
@ -3703,59 +3703,59 @@ Only your correspondent can decrypt them.</translation>
<context>
<name>EventLogCore</name>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="113"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="115"/>
<source>conference_created_event</source>
<translation>You have joined the group</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="119"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="123"/>
<source>conference_created_terminated</source>
<translation>You have left the group</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="123"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="127"/>
<source>conference_participant_added_event</source>
<translation>%1 has joined</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="127"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="131"/>
<source>conference_participant_removed_event</source>
<translation>%1 is no longer in the conversation</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="164"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="168"/>
<source>conference_participant_set_admin_event</source>
<translation>%1 is now an admin</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="168"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="172"/>
<source>conference_participant_unset_admin_event</source>
<translation>%1 is no longer an admin</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="136"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="138"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="140"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="142"/>
<source>conference_security_event</source>
<translation>Security level degraded by %1</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="145"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="149"/>
<source>conference_ephemeral_message_enabled_event</source>
<translation>Ephemeral messages enabled
Expiration : %1</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="156"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="160"/>
<source>conference_ephemeral_message_disabled_event</source>
<translation>Ephemeral messages disabled</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="160"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="164"/>
<source>conference_subject_changed_event</source>
<translation>New subject: %1</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="151"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="155"/>
<source>conference_ephemeral_message_lifetime_changed_event</source>
<translation>Ephemeral messages updated
Expiration : %1</translation>

View file

@ -2089,65 +2089,65 @@
<context>
<name>ChatListView</name>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="253"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="256"/>
<source>chat_message_is_writing_info</source>
<extracomment>%1 is writing</extracomment>
<translation>%1 est en train d&apos;écrire</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="255"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="258"/>
<source>chat_message_draft_sending_text</source>
<translation>Brouillon : %1</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="400"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="403"/>
<source>chat_room_delete</source>
<extracomment>&quot;Delete&quot;</extracomment>
<translation>Supprimer</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="339"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="342"/>
<source>chat_room_mute</source>
<translation>Mettre en sourdine</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="338"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="341"/>
<source>chat_room_unmute</source>
<extracomment>&quot;Mute&quot;</extracomment>
<translation>Enlever la sourdine </translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="352"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="355"/>
<source>chat_room_mark_as_read</source>
<extracomment>&quot;Mark as read&quot;</extracomment>
<translation>Marquer comme lu</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="371"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="374"/>
<source>chat_room_leave</source>
<extracomment>&quot;leave&quot;</extracomment>
<translation>Quitter la conversation</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="377"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="380"/>
<source>chat_list_leave_chat_popup_title</source>
<extracomment>leave the conversation ?</extracomment>
<translation>Quitter la conversation ?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="379"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="382"/>
<source>chat_list_leave_chat_popup_message</source>
<extracomment>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</extracomment>
<translation>Vous ne pourrez plus envoyer ou recevoir de messages dans cette conversation. Souhaitez-vous continuer ?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="406"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="409"/>
<source>chat_list_delete_chat_popup_title</source>
<extracomment>Delete the conversation ?</extracomment>
<translation>Supprimer la conversation ?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="408"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="411"/>
<source>chat_list_delete_chat_popup_message</source>
<extracomment>This conversation and all its messages will be deleted. Do You want to continue ?</extracomment>
<translation>La conversation et tous ses messages seront supprimés. Souhaitez-vous continuer ?</translation>
@ -3703,60 +3703,60 @@ en bout. Seul votre correspondant peut les déchiffrer.</translation>
<context>
<name>EventLogCore</name>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="113"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="115"/>
<source>conference_created_event</source>
<translation>Vous avez rejoint le groupe</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="119"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="123"/>
<source>conference_created_terminated</source>
<translation>Vous avez quitté le groupe</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="123"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="127"/>
<source>conference_participant_added_event</source>
<translation>%1 a rejoint le groupe</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="127"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="131"/>
<source>conference_participant_removed_event</source>
<translation>%1 ne fait plus partie du groupe</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="136"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="138"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="140"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="142"/>
<source>conference_security_event</source>
<translation>Niveau de sécurité dégradé par %1</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="145"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="149"/>
<source>conference_ephemeral_message_enabled_event</source>
<translation>Messages éphémères activés
Expiration : %1</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="151"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="155"/>
<source>conference_ephemeral_message_lifetime_changed_event</source>
<translation>Messages éphémères mis à jour
Expiration : %1</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="156"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="160"/>
<source>conference_ephemeral_message_disabled_event</source>
<translation>Messages éphémères désactivés</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="160"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="164"/>
<source>conference_subject_changed_event</source>
<translation>Nouveau sujet : %1</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="168"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="172"/>
<source>conference_participant_unset_admin_event</source>
<translation>%1 n&apos;est plus admin</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="164"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="168"/>
<source>conference_participant_set_admin_event</source>
<translation>%1 est maintenant admin</translation>
</message>

View file

@ -22,11 +22,8 @@ ListView {
property ChatGui chatToSelect: null
property ChatGui chatToSelectLater: null
onChatToSelectChanged: {
var index = chatProxy.findChatIndex(chatToSelect)
if (index != -1) {
currentIndex = index
chatToSelect = null
}
selectChat(chatToSelect, true)
chatToSelect = null
}
onChatClicked: (chat) => {selectChat(chat)}
@ -74,9 +71,15 @@ ListView {
// flickDeceleration: 10000
spacing: Utils.getSizeWithScreenRatio(10)
function selectChat(chatGui) {
function selectChat(chatGui, force) {
var index = chatProxy.findChatIndex(chatGui)
// force adding chat to list if not in list for now
if (index === -1 && force === true && chatGui) {
chatProxy.addChatInList(chatGui)
var index = chatProxy.findChatIndex(chatGui)
}
mainItem.currentIndex = index
}
Component.onCompleted: cacheBuffer = Math.max(contentHeight, 0) //contentHeight>0 ? contentHeight : 0// cache all items

View file

@ -368,7 +368,7 @@ AbstractMainPage {
}
SelectedChatView {
id: selectedChatView
visible: chat != undefined //&& (chat.core.isBasic || chat.core.conferenceJoined)
visible: chat != undefined
anchors.fill: parent
chat: mainItem.selectedChatGui ? mainItem.selectedChatGui : null