wait for chat room to receive Created state callback before selecting it #LINQT-2226

This commit is contained in:
Gaelle Braud 2025-11-27 10:08:18 +01:00
parent 96b20f42e2
commit 8ee8058065
10 changed files with 188 additions and 107 deletions

View file

@ -218,8 +218,8 @@ bool ChatList::addChatInList(QSharedPointer<ChatCore> chatCore) {
if (it == chatList.end()) {
connectItem(chatCore);
add(chatCore);
return true;
emit chatAdded();
return true;
}
return false;
}

View file

@ -68,11 +68,12 @@ int ChatProxy::findChatIndex(ChatGui *chatGui) {
return -1;
}
void ChatProxy::addChatInList(ChatGui *chatGui) {
bool ChatProxy::addChatInList(ChatGui *chatGui) {
auto chatList = dynamic_cast<ChatList *>(sourceModel());
if (chatList && chatGui) {
chatList->addChatInList(chatGui->mCore);
return chatList->addChatInList(chatGui->mCore);
}
return false;
}
bool ChatProxy::lessThan(const QModelIndex &sourceLeft, const QModelIndex &sourceRight) const {

View file

@ -40,7 +40,7 @@ public:
bool lessThan(const QModelIndex &sourceLeft, const QModelIndex &sourceRight) const override;
Q_INVOKABLE int findChatIndex(ChatGui *chatGui);
Q_INVOKABLE void addChatInList(ChatGui *chatGui);
Q_INVOKABLE bool addChatInList(ChatGui *chatGui);
signals:
void chatCreated(ChatGui *chatGui);

View file

@ -2099,65 +2099,65 @@
<context>
<name>ChatListView</name>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="257"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="264"/>
<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="259"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="266"/>
<source>chat_message_draft_sending_text</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="404"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="411"/>
<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="343"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="350"/>
<source>chat_room_mute</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="342"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="349"/>
<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="356"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="363"/>
<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="375"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="382"/>
<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="381"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="388"/>
<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="383"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="390"/>
<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="410"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="417"/>
<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="412"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="419"/>
<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>
@ -2512,74 +2512,91 @@ Error</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="73"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="46"/>
<source>info_popup_error_title</source>
<translation type="unfinished">Fehler</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="48"/>
<source>info_popup_chatroom_creation_failed</source>
<extracomment>Chat room creation failed !</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="42"/>
<source>loading_popup_chatroom_creation_pending_message</source>
<extracomment>Chat room is being created...</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="96"/>
<source>chat_dialog_delete_chat_title</source>
<extracomment>Supprimer la conversation ?</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="75"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="98"/>
<source>chat_dialog_delete_chat_message</source>
<extracomment>&quot;La conversation et tous ses messages seront supprimés.&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="108"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="131"/>
<source>chat_list_title</source>
<extracomment>&quot;Conversations&quot;</extracomment>
<translation>Konversationen</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="126"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="149"/>
<source>menu_mark_all_as_read</source>
<extracomment>&quot;mark all as read&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="156"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="179"/>
<source>chat_search_in_history</source>
<extracomment>&quot;Rechercher une conversation&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="179"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="202"/>
<source>list_filter_no_result_found</source>
<extracomment>&quot;Aucun résultat&quot;</extracomment>
<translation>Kein Ergebnis</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="181"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="204"/>
<source>chat_list_empty_history</source>
<extracomment>&quot;Aucune conversation dans votre historique&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="253"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="273"/>
<source>chat_action_start_new_chat</source>
<extracomment>&quot;New chat&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="291"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="311"/>
<source>chat_start_group_chat_title</source>
<extracomment>&quot;Nouveau groupe&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="293"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="313"/>
<source>chat_action_start_group_chat</source>
<extracomment>&quot;Créer&quot;</extracomment>
<translation>Erstellen</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="309"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="332"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="337"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="329"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="352"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="357"/>
<source>information_popup_error_title</source>
<translation>Fehler</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="311"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="331"/>
<source>information_popup_chat_creation_failed_message</source>
<extracomment>&quot;La création a échoué&quot;</extracomment>
<translation type="unfinished"></translation>
@ -2590,25 +2607,25 @@ Error</extracomment>
<translation type="obsolete">Der Codec konnte nicht installiert werden.</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="329"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="349"/>
<source>group_chat_error_must_have_name</source>
<extracomment>&quot;Un nom doit être donné au groupe</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="334"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="354"/>
<source>group_chat_error_no_participant</source>
<extracomment>&quot;Please select at least one participant</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="339"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="359"/>
<source>group_call_error_not_connected</source>
<extracomment>&quot;Vous n&apos;etes pas connecté&quot;</extracomment>
<translation>Sie sind nicht verbunden</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="345"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="365"/>
<source>chat_creation_in_progress</source>
<extracomment>Creation de la conversation en cours </extracomment>
<translation type="unfinished"></translation>
@ -4134,7 +4151,7 @@ Error</extracomment>
<context>
<name>LoadingPopup</name>
<message>
<location filename="../../view/Control/Popup/Loading/LoadingPopup.qml" line="40"/>
<location filename="../../view/Control/Popup/Loading/LoadingPopup.qml" line="42"/>
<source>cancel</source>
<translation>Abbrechen</translation>
</message>

View file

@ -2086,65 +2086,65 @@
<context>
<name>ChatListView</name>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="257"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="264"/>
<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="259"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="266"/>
<source>chat_message_draft_sending_text</source>
<translation>Draft : %1</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="404"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="411"/>
<source>chat_room_delete</source>
<extracomment>&quot;Delete&quot;</extracomment>
<translation>Delete</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="343"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="350"/>
<source>chat_room_mute</source>
<translation>Mute</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="342"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="349"/>
<source>chat_room_unmute</source>
<extracomment>&quot;Mute&quot;</extracomment>
<translation>Unmute</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="356"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="363"/>
<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="375"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="382"/>
<source>chat_room_leave</source>
<extracomment>&quot;leave&quot;</extracomment>
<translation>Leave</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="381"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="388"/>
<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="383"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="390"/>
<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="410"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="417"/>
<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="412"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="419"/>
<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>
@ -2496,98 +2496,115 @@ Only your correspondent can decrypt them.</translation>
<translation>No conversation</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="73"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="46"/>
<source>info_popup_error_title</source>
<translation>Error</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="48"/>
<source>info_popup_chatroom_creation_failed</source>
<extracomment>Chat room creation failed !</extracomment>
<translation>Chat room creation failed !</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="42"/>
<source>loading_popup_chatroom_creation_pending_message</source>
<extracomment>Chat room is being created...</extracomment>
<translation>Chat room is being created...</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="96"/>
<source>chat_dialog_delete_chat_title</source>
<extracomment>Supprimer la conversation ?</extracomment>
<translation>Delete conversation ?</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="75"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="98"/>
<source>chat_dialog_delete_chat_message</source>
<extracomment>&quot;La conversation et tous ses messages seront supprimés.&quot;</extracomment>
<translation>This conversation and all its messages will be deleted.</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="108"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="131"/>
<source>chat_list_title</source>
<extracomment>&quot;Conversations&quot;</extracomment>
<translation>Conversations</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="126"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="149"/>
<source>menu_mark_all_as_read</source>
<extracomment>&quot;mark all as read&quot;</extracomment>
<translation>Mark all as read</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="156"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="179"/>
<source>chat_search_in_history</source>
<extracomment>&quot;Rechercher une conversation&quot;</extracomment>
<translation>Search for a chat</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="179"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="202"/>
<source>list_filter_no_result_found</source>
<extracomment>&quot;Aucun résultat&quot;</extracomment>
<translation>No result</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="181"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="204"/>
<source>chat_list_empty_history</source>
<extracomment>&quot;Aucune conversation dans votre historique&quot;</extracomment>
<translation>No conversation in history</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="253"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="273"/>
<source>chat_action_start_new_chat</source>
<extracomment>&quot;New chat&quot;</extracomment>
<translation>New conversation</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="291"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="311"/>
<source>chat_start_group_chat_title</source>
<extracomment>&quot;Nouveau groupe&quot;</extracomment>
<translation>New group</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="293"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="313"/>
<source>chat_action_start_group_chat</source>
<extracomment>&quot;Créer&quot;</extracomment>
<translation>Create</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="309"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="332"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="337"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="329"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="352"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="357"/>
<source>information_popup_error_title</source>
<translation>Error</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="311"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="331"/>
<source>information_popup_chat_creation_failed_message</source>
<extracomment>&quot;La création a échoué&quot;</extracomment>
<translation>Creation failed</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="329"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="349"/>
<source>group_chat_error_must_have_name</source>
<extracomment>&quot;Un nom doit être donné au groupe</extracomment>
<translation>A name must be set for the group</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="334"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="354"/>
<source>group_chat_error_no_participant</source>
<extracomment>&quot;Please select at least one participant</extracomment>
<translation>Please select at least one participant</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="339"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="359"/>
<source>group_call_error_not_connected</source>
<extracomment>&quot;Vous n&apos;etes pas connecté&quot;</extracomment>
<translation>You are not connected</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="345"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="365"/>
<source>chat_creation_in_progress</source>
<extracomment>Creation de la conversation en cours </extracomment>
<translation>Chat creation pending</translation>
@ -4060,7 +4077,7 @@ Expiration : %1</translation>
<context>
<name>LoadingPopup</name>
<message>
<location filename="../../view/Control/Popup/Loading/LoadingPopup.qml" line="40"/>
<location filename="../../view/Control/Popup/Loading/LoadingPopup.qml" line="42"/>
<source>cancel</source>
<translation>Cancel</translation>
</message>

View file

@ -2086,65 +2086,65 @@
<context>
<name>ChatListView</name>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="257"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="264"/>
<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="259"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="266"/>
<source>chat_message_draft_sending_text</source>
<translation>Brouillon : %1</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="404"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="411"/>
<source>chat_room_delete</source>
<extracomment>&quot;Delete&quot;</extracomment>
<translation>Supprimer</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="343"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="350"/>
<source>chat_room_mute</source>
<translation>Mettre en sourdine</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="342"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="349"/>
<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="356"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="363"/>
<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="375"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="382"/>
<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="381"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="388"/>
<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="383"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="390"/>
<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="410"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="417"/>
<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="412"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="419"/>
<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>
@ -2496,98 +2496,115 @@ en bout. Seul votre correspondant peut les déchiffrer.</translation>
<translation>Aucune conversation</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="73"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="46"/>
<source>info_popup_error_title</source>
<translation>Erreur</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="48"/>
<source>info_popup_chatroom_creation_failed</source>
<extracomment>Chat room creation failed !</extracomment>
<translation>La création de la conversation a échoué !</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="42"/>
<source>loading_popup_chatroom_creation_pending_message</source>
<extracomment>Chat room is being created...</extracomment>
<translation>Création de la conversation en cours...</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="96"/>
<source>chat_dialog_delete_chat_title</source>
<extracomment>Supprimer la conversation ?</extracomment>
<translation>Supprimer la conversation ?</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="75"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="98"/>
<source>chat_dialog_delete_chat_message</source>
<extracomment>&quot;La conversation et tous ses messages seront supprimés.&quot;</extracomment>
<translation>La conversation et tous ses messages seront supprimés.</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="108"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="131"/>
<source>chat_list_title</source>
<extracomment>&quot;Conversations&quot;</extracomment>
<translation>Conversations</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="126"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="149"/>
<source>menu_mark_all_as_read</source>
<extracomment>&quot;mark all as read&quot;</extracomment>
<translation>Tout marquer comme lu</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="156"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="179"/>
<source>chat_search_in_history</source>
<extracomment>&quot;Rechercher une conversation&quot;</extracomment>
<translation>Rechercher une conversation</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="179"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="202"/>
<source>list_filter_no_result_found</source>
<extracomment>&quot;Aucun résultat&quot;</extracomment>
<translation>Aucun résultat</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="181"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="204"/>
<source>chat_list_empty_history</source>
<extracomment>&quot;Aucune conversation dans votre historique&quot;</extracomment>
<translation>Aucune conversation dans votre historique</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="253"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="273"/>
<source>chat_action_start_new_chat</source>
<extracomment>&quot;New chat&quot;</extracomment>
<translation>Nouvelle conversation</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="291"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="311"/>
<source>chat_start_group_chat_title</source>
<extracomment>&quot;Nouveau groupe&quot;</extracomment>
<translation>Nouveau groupe</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="293"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="313"/>
<source>chat_action_start_group_chat</source>
<extracomment>&quot;Créer&quot;</extracomment>
<translation>Créer</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="309"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="332"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="337"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="329"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="352"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="357"/>
<source>information_popup_error_title</source>
<translation>Erreur</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="311"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="331"/>
<source>information_popup_chat_creation_failed_message</source>
<extracomment>&quot;La création a échoué&quot;</extracomment>
<translation>La création a échoué</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="329"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="349"/>
<source>group_chat_error_must_have_name</source>
<extracomment>&quot;Un nom doit être donné au groupe</extracomment>
<translation>Un nom doit être donné au groupe</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="334"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="354"/>
<source>group_chat_error_no_participant</source>
<extracomment>&quot;Please select at least one participant</extracomment>
<translation>Veuillez sélectionner au moins un participant</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="339"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="359"/>
<source>group_call_error_not_connected</source>
<extracomment>&quot;Vous n&apos;etes pas connecté&quot;</extracomment>
<translation>Vous n&apos;êtes pas connecté</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="345"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="365"/>
<source>chat_creation_in_progress</source>
<extracomment>Creation de la conversation en cours </extracomment>
<translation>Création de la conversation en cours</translation>
@ -4060,7 +4077,7 @@ Expiration : %1</translation>
<context>
<name>LoadingPopup</name>
<message>
<location filename="../../view/Control/Popup/Loading/LoadingPopup.qml" line="40"/>
<location filename="../../view/Control/Popup/Loading/LoadingPopup.qml" line="42"/>
<source>cancel</source>
<translation>Annuler</translation>
</message>

View file

@ -23,7 +23,7 @@ Button {
: mainItem.hovered || mainItem.hasNavigationFocus
? mainItem.hoveredColor
: mainItem.color
border.color: mainItem.hovered ? mainItem.focusedBorderColor : mainItem.borderColor
border.color: mainItem.borderColor
}
contentItem: EffectImage {

View file

@ -18,12 +18,19 @@ ListView {
property real busyIndicatorSize: Utils.getSizeWithScreenRatio(60)
property ChatGui currentChatGui: model.getAt(currentIndex) || null
onCurrentIndexChanged: console.log("current index changed", currentIndex)
onCurrentChatGuiChanged: positionViewAtIndex(currentIndex, ListView.Center)
property ChatGui chatToSelect: null
property ChatGui chatToSelectLater: null
onChatToSelectChanged: {
selectChat(chatToSelect, true)
chatToSelect = null
if (chatToSelect) {
console.log("chat to select changed, select", (chatToSelect ? chatToSelect.core.title : "NULL"))
// first clear the chatToSelect property in case we need to
// force adding the chat to the list and the layout changes
var toselect = chatToSelect
chatToSelect = null
selectChat(toselect, true)
}
}
onChatClicked: (chat) => {selectChat(chat)}
@ -76,11 +83,11 @@ ListView {
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)
if (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

@ -23,8 +23,10 @@ Popup {
// height: childrenRect.height
BusyIndicator{
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: Utils.getSizeWithScreenRatio(33)
Layout.preferredHeight: Utils.getSizeWithScreenRatio(33)
width: Utils.getSizeWithScreenRatio(33)
height: width
Layout.preferredWidth: width
Layout.preferredHeight: width
}
Text {
id: contentText

View file

@ -30,8 +30,32 @@ AbstractMainPage {
onRemoteAddressChanged: console.log("ChatPage : remote address changed :", remoteAddress)
property var remoteChatObj: UtilsCpp.getChatForAddress(remoteAddress)
property var remoteChat: remoteChatObj ? remoteChatObj.value : null
signal openChatRequested(ChatGui chat)
Connections {
enabled: remoteChat !== null
target: remoteChat ? remoteChat.core : null
function onChatRoomStateChanged() {
if (remoteChat.core.state === LinphoneEnums.ChatRoomState.CreationPending) {
//: Chat room is being created...
mainWindow.showLoadingPopup(qsTr("loading_popup_chatroom_creation_pending_message"))
} else {
mainWindow.closeLoadingPopup()
if (remoteChat.core.state === LinphoneEnums.ChatRoomState.CreationFailed) {
UtilsCpp.showInformationPopup(qsTr("info_popup_error_title"),
//: Chat room creation failed !
qsTr("info_popup_chatroom_creation_failed"), false)
} else if (remoteChat.core.state === LinphoneEnums.ChatRoomState.Created) {
openChatRequested(remoteChat)
}
}
}
}
onRemoteChatChanged: {
if (remoteChat) selectedChatGui = remoteChat
if (remoteChat && remoteChat.core.state === LinphoneEnums.ChatRoomState.Created) {
openChatRequested(remoteChat)
}
}
onSelectedChatGuiChanged: {
@ -64,7 +88,6 @@ AbstractMainPage {
&& listStackView.currentItem.objectName != "newChatItem")
listStackView.push(newChatItem)
}
signal openChatRequested(ChatGui chat)
Dialog {
id: deleteChatPopup
@ -198,9 +221,6 @@ AbstractMainPage {
Connections {
target: mainItem
function onRemoteChatChanged() {
if (mainItem.remoteChat) chatListView.chatToSelect = mainItem.remoteChat
}
function onOpenChatRequested(chat) {
chatListView.chatToSelect = chat
}