digiKam
Loading...
Searching...
No Matches
dcategorizedsortfilterproxymodel.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2010-01-16
7 * Description : categorize item view based on DCategorizedView
8 *
9 * SPDX-FileCopyrightText: 2007 by Rafael Fernández López <ereslibre at kde dot org>
10 * SPDX-FileCopyrightText: 2007 by John Tapsell <tapsell at kde dot org>
11 * SPDX-FileCopyrightText: 2009-2012 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
12 * SPDX-FileCopyrightText: 2011-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
13 *
14 * SPDX-License-Identifier: GPL-2.0-or-later
15 *
16 * ============================================================ */
17
18#pragma once
19
20// Qt includes
21
22#include <QSortFilterProxyModel>
23
24// Local includes
25
26#include "digikam_export.h"
27
28class QItemSelection;
29
30namespace Digikam
31{
32
42class DIGIKAM_EXPORT DCategorizedSortFilterProxyModel : public QSortFilterProxyModel
43{
44 Q_OBJECT
45
46public:
47
49 {
58 CategoryDisplayRole = 0x17CE990A,
59
68 CategorySortRole = 0x27857E60
69 };
70
71 explicit DCategorizedSortFilterProxyModel(QObject* const parent = nullptr);
73
78 void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override;
79
83 bool isCategorizedModel() const;
84
90 void setCategorizedModel(bool categorizedModel);
91
95 int sortColumn() const;
96
100 Qt::SortOrder sortOrder() const;
101
109 void setSortCategoriesByNaturalComparison(bool sortCategoriesByNaturalComparison);
110
114 bool sortCategoriesByNaturalComparison() const;
115
116protected:
130 bool lessThan(const QModelIndex& left, const QModelIndex& right) const override;
131
138 virtual bool subSortLessThan(const QModelIndex& left, const QModelIndex& right) const;
139
175 virtual int compareCategories(const QModelIndex& left, const QModelIndex& right) const;
176
177private:
178
179 class Private;
180 Private* const d = nullptr;
181};
182
183// -----------------------------------------------------------------------------------------------------------------------
184
186{
187 Q_OBJECT
188
189public:
190
191 explicit ActionSortFilterProxyModel(QObject* const parent = nullptr);
192
193protected:
194
195 bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const override;
196};
197
198} // namespace Digikam
Definition dcategorizedsortfilterproxymodel.h:186
Definition dcategorizedsortfilterproxymodel.h:43
AdditionalRoles
Definition dcategorizedsortfilterproxymodel.h:49
Definition datefolderview.cpp:34