KTextAddons

textautogeneratechatsortfilterproxymodel.cpp
1/*
2 SPDX-FileCopyrightText: 2025 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#include "textautogeneratechatsortfilterproxymodel.h"
8#include "textautogeneratechatmodel.h"
9
10using namespace TextAutogenerateText;
11TextAutoGenerateChatSortFilterProxyModel::TextAutoGenerateChatSortFilterProxyModel(QObject *parent)
12 : QSortFilterProxyModel{parent}
13{
14 setFilterRole(TextAutoGenerateChatModel::DateTimeRole);
15}
16
17TextAutoGenerateChatSortFilterProxyModel::~TextAutoGenerateChatSortFilterProxyModel() = default;
18
19bool TextAutoGenerateChatSortFilterProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
20{
21 switch (mMessageType) {
22 case MessageType::Unknown:
23 case MessageType::All:
24 return QSortFilterProxyModel::filterAcceptsRow(source_row, source_parent);
25 case MessageType::Archived: {
26 const bool archived = sourceModel()->index(source_row, 0).data(TextAutoGenerateChatModel::ArchivedRole).toBool();
27 return archived;
28 }
29 case MessageType::Active: {
30 const bool archived = sourceModel()->index(source_row, 0).data(TextAutoGenerateChatModel::ArchivedRole).toBool();
31 return !archived;
32 }
33 }
34 return QSortFilterProxyModel::filterAcceptsRow(source_row, source_parent);
35}
36
37TextAutoGenerateChatSortFilterProxyModel::MessageType TextAutoGenerateChatSortFilterProxyModel::messageType() const
38{
39 return mMessageType;
40}
41
42void TextAutoGenerateChatSortFilterProxyModel::setMessageType(MessageType newMessageType)
43{
44 if (mMessageType != newMessageType) {
45 mMessageType = newMessageType;
47 }
48}
49
50#include "moc_textautogeneratechatsortfilterproxymodel.cpp"
virtual bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri May 2 2025 12:06:03 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.