Warning, file /network/ruqola/src/core/model/listmessagesfilterproxymodel.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "listmessagesfilterproxymodel.h" 0008 #include <KLocalizedString> 0009 0010 ListMessagesFilterProxyModel::ListMessagesFilterProxyModel(ListMessagesModel *model, QObject *parent) 0011 : QSortFilterProxyModel(parent) 0012 , mModel(model) 0013 { 0014 setSourceModel(mModel); 0015 0016 setFilterCaseSensitivity(Qt::CaseInsensitive); 0017 setFilterRole(ListMessagesModel::OriginalMessage); 0018 sort(0, Qt::DescendingOrder); 0019 connect(mModel, &ListMessagesModel::hasFullListChanged, this, &ListMessagesFilterProxyModel::hasFullListChanged); 0020 connect(mModel, &ListMessagesModel::listMessageTypeChanged, this, &ListMessagesFilterProxyModel::listMessageTypeChanged); 0021 connect(mModel, &ListMessagesModel::totalChanged, this, &ListMessagesFilterProxyModel::totalChanged); 0022 connect(mModel, &ListMessagesModel::loadingInProgressChanged, this, &ListMessagesFilterProxyModel::loadingInProgressChanged); 0023 } 0024 0025 ListMessagesFilterProxyModel::~ListMessagesFilterProxyModel() = default; 0026 0027 int ListMessagesFilterProxyModel::total() const 0028 { 0029 return mModel->total(); 0030 } 0031 0032 void ListMessagesFilterProxyModel::setFilterString(const QString &string) 0033 { 0034 setFilterFixedString(string); 0035 } 0036 0037 QString ListMessagesFilterProxyModel::title() const 0038 { 0039 switch (listMessageType()) { 0040 case ListMessagesModel::Unknown: 0041 return {}; 0042 case ListMessagesModel::StarredMessages: 0043 return i18n("Starred Messages"); 0044 case ListMessagesModel::PinnedMessages: 0045 return i18n("Pinned Messages"); 0046 case ListMessagesModel::MentionsMessages: 0047 return i18n("Mentions Messages"); 0048 case ListMessagesModel::ThreadsMessages: 0049 return i18n("Threads Messages"); 0050 case ListMessagesModel::UnreadThreadsMessages: 0051 return i18n("Unread Threads Messages"); 0052 } 0053 return {}; 0054 } 0055 0056 ListMessagesModel::ListMessageType ListMessagesFilterProxyModel::listMessageType() const 0057 { 0058 return mModel->listMessageType(); 0059 } 0060 0061 ListMessagesModel *ListMessagesFilterProxyModel::listMessageModel() const 0062 { 0063 return mModel; 0064 } 0065 0066 bool ListMessagesFilterProxyModel::hasFullList() const 0067 { 0068 return mModel->hasFullList(); 0069 } 0070 0071 bool ListMessagesFilterProxyModel::loadMoreListMessagesInProgress() const 0072 { 0073 return mModel->loadMoreListMessagesInProgress(); 0074 } 0075 0076 int ListMessagesFilterProxyModel::numberOfMessages() const 0077 { 0078 return mModel->rowCount(); 0079 } 0080 0081 void ListMessagesFilterProxyModel::clear() 0082 { 0083 mModel->clear(); 0084 } 0085 0086 #include "moc_listmessagesfilterproxymodel.cpp"