Messagelib

dkimmanagerkeyproxymodel.cpp
1/*
2 SPDX-FileCopyrightText: 2023-2025 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5*/
6
7#include "dkimmanagerkeyproxymodel.h"
8#include "dkimmanagerkeymodel.h"
9using namespace MessageViewer;
10DKIMManagerKeyProxyModel::DKIMManagerKeyProxyModel(QObject *parent)
11 : QSortFilterProxyModel{parent}
12{
13}
14
15DKIMManagerKeyProxyModel::~DKIMManagerKeyProxyModel() = default;
16
17bool DKIMManagerKeyProxyModel::lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const
18{
19 const int leftColumn{source_left.column()};
20 if (leftColumn == MessageViewer::DKIMManagerKeyModel::StoredAtDateTimeRoleStr) {
21 const QModelIndex leftMessageModelIndex = sourceModel()->index(source_left.row(), MessageViewer::DKIMManagerKeyModel::StoredAtDateTimeRole);
22 const QModelIndex rightMessageModelIndex = sourceModel()->index(source_right.row(), MessageViewer::DKIMManagerKeyModel::StoredAtDateTimeRole);
23 return QSortFilterProxyModel::lessThan(leftMessageModelIndex, rightMessageModelIndex);
24 }
25 if (leftColumn == MessageViewer::DKIMManagerKeyModel::LastUsedDateTimeRoleStr) {
26 const QModelIndex leftMessageModelIndex = sourceModel()->index(source_left.row(), MessageViewer::DKIMManagerKeyModel::LastUsedDateTimeRole);
27 const QModelIndex rightMessageModelIndex = sourceModel()->index(source_right.row(), MessageViewer::DKIMManagerKeyModel::LastUsedDateTimeRole);
28 return QSortFilterProxyModel::lessThan(leftMessageModelIndex, rightMessageModelIndex);
29 }
30 return QSortFilterProxyModel::lessThan(source_left, source_right);
31}
32
33bool DKIMManagerKeyProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
34{
35 if (mFilterText.isEmpty()) {
36 return true;
37 }
38 if (sourceModel()->index(source_row, MessageViewer::DKIMManagerKeyModel::DomainRole, source_parent).data().toString().contains(mFilterText)
39 || sourceModel()->index(source_row, MessageViewer::DKIMManagerKeyModel::SelectorRole, source_parent).data().toString().contains(mFilterText)
40 || sourceModel()->index(source_row, MessageViewer::DKIMManagerKeyModel::KeyRole, source_parent).data().toString().contains(mFilterText)) {
41 return true;
42 }
43 return false;
44}
45
46QString DKIMManagerKeyProxyModel::filterText() const
47{
48 return mFilterText;
49}
50
51void DKIMManagerKeyProxyModel::setFilterText(const QString &newFilterText)
52{
53 if (mFilterText != newFilterText) {
54 mFilterText = newFilterText;
56 }
57}
char * toString(const EngineQuery &query)
int column() const const
int row() const const
virtual QVariant data(const QModelIndex &index, int role) const const override
virtual QModelIndex index(int row, int column, const QModelIndex &parent) const const override
virtual bool lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Feb 28 2025 11:50:07 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.