Eventviews

todoviewsortfilterproxymodel.h
1/*
2 This file is part of KOrganizer.
3
4 SPDX-FileCopyrightText: 2008 Thomas Thrainer <tom_t@gmx.at>
5
6 SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0
7*/
8
9#pragma once
10
11#include "prefs.h"
12
13#include <QSortFilterProxyModel>
14#include <QStringList>
15
16namespace KCalendarCore
17{
18class CalFilter;
19}
20
21class TodoViewSortFilterProxyModel : public QSortFilterProxyModel
22{
24
25public:
26 explicit TodoViewSortFilterProxyModel(const EventViews::PrefsPtr &prefs, QObject *parent = nullptr);
27
28 void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override;
29
30 [[nodiscard]] const QStringList &categories() const
31 {
32 return mCategories;
33 }
34
35 [[nodiscard]] const QStringList &priorities() const
36 {
37 return mPriorities;
38 }
39
40 [[nodiscard]] KCalendarCore::CalFilter *calFilter() const
41 {
42 return mCalFilter;
43 }
44
45protected:
46 bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override;
47 bool lessThan(const QModelIndex &left, const QModelIndex &right) const override;
48
49public Q_SLOTS:
50 void setCalFilter(KCalendarCore::CalFilter *filter);
51 void setCategoryFilter(const QStringList &categories);
52 void setPriorityFilter(const QStringList &priorities);
53
54private:
55 int compareStartDates(const QModelIndex &left, const QModelIndex &right) const;
56 int compareDueDates(const QModelIndex &left, const QModelIndex &right) const;
57 int compareCompletedDates(const QModelIndex &left, const QModelIndex &right) const;
58 int comparePriorities(const QModelIndex &left, const QModelIndex &right) const;
59 int compareCompletion(const QModelIndex &left, const QModelIndex &right) const;
60 QStringList mCategories;
61 QStringList mPriorities;
62 KCalendarCore::CalFilter *mCalFilter = nullptr;
64 EventViews::PrefsPtr mPreferences;
65};
Q_OBJECTQ_OBJECT
Q_SLOTSQ_SLOTS
QObject * parent() const const
SortOrder
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:12:29 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.