fix chat list view and really fix chat selection after filter reset #LINQT-2199

This commit is contained in:
Gaelle Braud 2025-11-25 09:52:44 +01:00
parent 04d2744bf2
commit 37db390d5c
8 changed files with 120 additions and 123 deletions

View file

@ -25,7 +25,7 @@
DEFINE_ABSTRACT_OBJECT(ChatProxy)
ChatProxy::ChatProxy(QObject *parent) : LimitProxy(parent) {
ChatProxy::ChatProxy(QObject *parent) {
mList = ChatList::create();
setSourceModel(mList.get());
setDynamicSortFilter(true);
@ -35,7 +35,7 @@ ChatProxy::~ChatProxy() {
}
void ChatProxy::setSourceModel(QAbstractItemModel *model) {
auto oldChatList = getListModel<ChatList>();
auto oldChatList = dynamic_cast<ChatList *>(sourceModel());
if (oldChatList) {
disconnect(this, &ChatProxy::filterTextChanged, oldChatList, nullptr);
disconnect(oldChatList, &ChatList::chatAdded, this, nullptr);
@ -52,20 +52,16 @@ void ChatProxy::setSourceModel(QAbstractItemModel *model) {
});
connect(newChatList, &ChatList::dataChanged, this, [this] { invalidate(); });
}
auto firstList = new SortFilterList(model, Qt::AscendingOrder);
firstList->setDynamicSortFilter(true);
setSourceModels(firstList);
QSortFilterProxyModel::setSourceModel(newChatList);
sort(0);
}
int ChatProxy::findChatIndex(ChatGui *chatGui) {
auto chatList = getListModel<ChatList>();
auto chatList = dynamic_cast<ChatList *>(sourceModel());
if (chatList) {
auto listIndex = chatList->findChatIndex(chatGui);
if (listIndex != -1) {
listIndex =
dynamic_cast<SortFilterList *>(sourceModel())->mapFromSource(chatList->index(listIndex, 0)).row();
if (mMaxDisplayItems <= listIndex) setMaxDisplayItems(listIndex + mDisplayItemsStep);
listIndex = mapFromSource(chatList->index(listIndex, 0)).row();
return listIndex;
}
}
@ -73,17 +69,13 @@ int ChatProxy::findChatIndex(ChatGui *chatGui) {
}
void ChatProxy::addChatInList(ChatGui *chatGui) {
auto chatList = getListModel<ChatList>();
auto chatList = dynamic_cast<ChatList *>(sourceModel());
if (chatList && chatGui) {
chatList->addChatInList(chatGui->mCore);
}
}
bool ChatProxy::SortFilterList::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const {
return true;
}
bool ChatProxy::SortFilterList::lessThan(const QModelIndex &sourceLeft, const QModelIndex &sourceRight) const {
bool ChatProxy::lessThan(const QModelIndex &sourceLeft, const QModelIndex &sourceRight) const {
if (!mFilterText.isEmpty()) return false;
auto l = getItemAtSource<ChatList, ChatCore>(sourceLeft.row());
auto r = getItemAtSource<ChatList, ChatCore>(sourceRight.row());

View file

@ -21,24 +21,24 @@
#ifndef CHAT_PROXY_H_
#define CHAT_PROXY_H_
#include "../proxy/LimitProxy.hpp"
#include "../proxy/SortFilterProxy.hpp"
#include "core/chat/ChatGui.hpp"
#include "core/chat/ChatList.hpp"
#include "tool/AbstractObject.hpp"
// =============================================================================
class ChatProxy : public LimitProxy, public AbstractObject {
class ChatProxy : public SortFilterProxy, public AbstractObject {
Q_OBJECT
public:
DECLARE_SORTFILTER_CLASS()
ChatProxy(QObject *parent = Q_NULLPTR);
~ChatProxy();
void setSourceModel(QAbstractItemModel *sourceModel) override;
bool lessThan(const QModelIndex &sourceLeft, const QModelIndex &sourceRight) const override;
Q_INVOKABLE int findChatIndex(ChatGui *chatGui);
Q_INVOKABLE void addChatInList(ChatGui *chatGui);
signals:

View file

@ -26,6 +26,9 @@ SortFilterProxy::SortFilterProxy(QAbstractItemModel *list) : QSortFilterProxyMod
setSourceModel(list);
}
SortFilterProxy::SortFilterProxy() {
}
SortFilterProxy::SortFilterProxy(QAbstractItemModel *list, Qt::SortOrder order) : SortFilterProxy(list) {
sort(0, order);
}

View file

@ -41,6 +41,7 @@ public:
Q_PROPERTY(int filterType READ getFilterType WRITE setFilterType NOTIFY filterTypeChanged)
Q_PROPERTY(QString filterText READ getFilterText WRITE setFilterText NOTIFY filterTextChanged)
SortFilterProxy();
SortFilterProxy(QAbstractItemModel *parent);
SortFilterProxy(QAbstractItemModel *parent, Qt::SortOrder order);
virtual ~SortFilterProxy();

View file

@ -2112,65 +2112,65 @@
<context>
<name>ChatListView</name>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="256"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="257"/>
<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="258"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="259"/>
<source>chat_message_draft_sending_text</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="403"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="404"/>
<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="342"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="343"/>
<source>chat_room_mute</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="341"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="342"/>
<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="355"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="356"/>
<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="374"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="375"/>
<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="380"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="381"/>
<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="382"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="383"/>
<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="409"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="410"/>
<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="411"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="412"/>
<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>
@ -2567,32 +2567,32 @@ Error</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="255"/>
<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="293"/>
<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="295"/>
<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="311"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="334"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="339"/>
<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="313"/>
<source>information_popup_chat_creation_failed_message</source>
<extracomment>&quot;La création a échoué&quot;</extracomment>
<translation type="unfinished"></translation>
@ -2603,25 +2603,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="331"/>
<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="336"/>
<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="341"/>
<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="347"/>
<source>chat_creation_in_progress</source>
<extracomment>Creation de la conversation en cours </extracomment>
<translation type="unfinished"></translation>
@ -3784,58 +3784,58 @@ Error</extracomment>
<context>
<name>EventLogCore</name>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="115"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="113"/>
<source>conference_created_event</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="123"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="119"/>
<source>conference_created_terminated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="127"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="123"/>
<source>conference_participant_added_event</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="131"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="127"/>
<source>conference_participant_removed_event</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="140"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="142"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="136"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="138"/>
<source>conference_security_event</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="149"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="145"/>
<source>conference_ephemeral_message_enabled_event</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="155"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="151"/>
<source>conference_ephemeral_message_lifetime_changed_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="156"/>
<source>conference_ephemeral_message_disabled_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="160"/>
<source>conference_subject_changed_event</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="172"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="168"/>
<source>conference_participant_unset_admin_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="164"/>
<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="256"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="257"/>
<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="258"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="259"/>
<source>chat_message_draft_sending_text</source>
<translation>Draft : %1</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="403"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="404"/>
<source>chat_room_delete</source>
<extracomment>&quot;Delete&quot;</extracomment>
<translation>Delete</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="342"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="343"/>
<source>chat_room_mute</source>
<translation>Mute</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="341"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="342"/>
<source>chat_room_unmute</source>
<extracomment>&quot;Mute&quot;</extracomment>
<translation>Unmute</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="355"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="356"/>
<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="374"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="375"/>
<source>chat_room_leave</source>
<extracomment>&quot;leave&quot;</extracomment>
<translation>Leave</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="380"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="381"/>
<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="382"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="383"/>
<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="409"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="410"/>
<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="411"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="412"/>
<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>
@ -2541,56 +2541,56 @@ Only your correspondent can decrypt them.</translation>
<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="255"/>
<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="293"/>
<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="295"/>
<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="311"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="334"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="339"/>
<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="313"/>
<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="331"/>
<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="336"/>
<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="341"/>
<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="347"/>
<source>chat_creation_in_progress</source>
<extracomment>Creation de la conversation en cours </extracomment>
<translation>Chat creation pending</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="115"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="113"/>
<source>conference_created_event</source>
<translation>You have joined the group</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="123"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="119"/>
<source>conference_created_terminated</source>
<translation>You have left the group</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="127"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="123"/>
<source>conference_participant_added_event</source>
<translation>%1 has joined</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="131"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="127"/>
<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="168"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="164"/>
<source>conference_participant_set_admin_event</source>
<translation>%1 is now an admin</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="172"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="168"/>
<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="140"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="142"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="136"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="138"/>
<source>conference_security_event</source>
<translation>Security level degraded by %1</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="149"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="145"/>
<source>conference_ephemeral_message_enabled_event</source>
<translation>Ephemeral messages enabled
Expiration : %1</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="160"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="156"/>
<source>conference_ephemeral_message_disabled_event</source>
<translation>Ephemeral messages disabled</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="164"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="160"/>
<source>conference_subject_changed_event</source>
<translation>New subject: %1</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="155"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="151"/>
<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="256"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="257"/>
<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="258"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="259"/>
<source>chat_message_draft_sending_text</source>
<translation>Brouillon : %1</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="403"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="404"/>
<source>chat_room_delete</source>
<extracomment>&quot;Delete&quot;</extracomment>
<translation>Supprimer</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="342"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="343"/>
<source>chat_room_mute</source>
<translation>Mettre en sourdine</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="341"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="342"/>
<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="355"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="356"/>
<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="374"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="375"/>
<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="380"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="381"/>
<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="382"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="383"/>
<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="409"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="410"/>
<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="411"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="412"/>
<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>
@ -2541,56 +2541,56 @@ en bout. Seul votre correspondant peut les déchiffrer.</translation>
<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="255"/>
<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="293"/>
<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="295"/>
<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="311"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="334"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="339"/>
<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="313"/>
<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="331"/>
<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="336"/>
<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="341"/>
<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="347"/>
<source>chat_creation_in_progress</source>
<extracomment>Creation de la conversation en cours </extracomment>
<translation>Création de la conversation en cours</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="115"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="113"/>
<source>conference_created_event</source>
<translation>Vous avez rejoint le groupe</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="123"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="119"/>
<source>conference_created_terminated</source>
<translation>Vous avez quitté le groupe</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="127"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="123"/>
<source>conference_participant_added_event</source>
<translation>%1 a rejoint le groupe</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="131"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="127"/>
<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="140"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="142"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="136"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="138"/>
<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="149"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="145"/>
<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="155"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="151"/>
<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="160"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="156"/>
<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="164"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="160"/>
<source>conference_subject_changed_event</source>
<translation>Nouveau sujet : %1</translation>
</message>
<message>
<location filename="../../core/chat/message/EventLogCore.cpp" line="172"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="168"/>
<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="168"/>
<location filename="../../core/chat/message/EventLogCore.cpp" line="164"/>
<source>conference_participant_set_admin_event</source>
<translation>%1 est maintenant admin</translation>
</message>

View file

@ -40,11 +40,12 @@ ListView {
onFilterTextChanged: {
chatToSelectLater = currentChatGui
}
initialDisplayItems: Math.max(20, Math.round(2 * mainItem.height / Utils.getSizeWithScreenRatio(56)))
displayItemsStep: 3 * initialDisplayItems / 2
onModelAboutToBeReset: {
loading = true
}
onModelReset: {
loading = false
}
onRowsRemoved: {
var index = mainItem.currentIndex
mainItem.currentIndex = -1