Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qqmlsorterbase.cpp
Go to the documentation of this file.
1// Copyright (C) 2025 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#include <QtQmlModels/private/qqmlsorterbase_p.h>
5#include <QtQmlModels/private/qqmlsortfilterproxymodel_p.h>
6
7QT_BEGIN_NAMESPACE
8
9/*!
10 \qmltype Sorter
11 \inherits QtObject
12 \inqmlmodule QtQml.Models
13 \since 6.10
14 \preliminary
15 \brief Abstract base type providing functionality common to sorters.
16
17 Sorter provides a set of common properties for all the sorters that they
18 inherit from.
19*/
20
21QQmlSorterBase::QQmlSorterBase(QQmlSorterBasePrivate *privObj, QObject *parent)
22 : QObject (*privObj, parent)
23{
24}
25
26/*!
27 \qmlproperty bool Sorter::enabled
28
29 This property enables the \l SortFilterProxyModel to consider this sorter
30 while sorting the model data.
31
32 The default value is \c true.
33*/
34bool QQmlSorterBase::enabled() const
35{
36 Q_D(const QQmlSorterBase);
37 return d->m_enabled;
38
39}
40
41void QQmlSorterBase::setEnabled(const bool enabled)
42{
43 Q_D(QQmlSorterBase);
44 if (d->m_enabled == enabled)
45 return;
46 d->m_enabled = enabled;
47 invalidate(true);
48 emit enabledChanged();
49}
50
51/*!
52 \qmlproperty Qt::SortOrder Sorter::sortOrder
53
54 This property holds the order used by \l SortFilterProxyModel when sorting
55 the model data.
56
57 The default value is \c Qt::AscendingOrder.
58*/
59Qt::SortOrder QQmlSorterBase::sortOrder() const
60{
61 Q_D(const QQmlSorterBase);
62 return d->m_sortOrder;
63}
64
65void QQmlSorterBase::setSortOrder(const Qt::SortOrder sortOrder)
66{
67 Q_D(QQmlSorterBase);
68 if (d->m_sortOrder == sortOrder)
69 return;
70 d->m_sortOrder = sortOrder;
71 invalidate();
72 emit sortOrderChanged();
73}
74
75/*!
76 \qmlproperty int Sorter::priority
77
78 This property holds the priority that is given to this sorter compared to
79 other sorters. The lesser value results in a higher priority and the higher
80 value results in a lower priority.
81
82 The default value is \c -1.
83*/
84int QQmlSorterBase::priority() const
85{
86 Q_D(const QQmlSorterBase);
87 return d->m_sorterPriority;
88}
89
90void QQmlSorterBase::setPriority(const int priority)
91{
92 Q_D(QQmlSorterBase);
93 if (d->m_sorterPriority == priority)
94 return;
95 d->m_sorterPriority = priority;
96 invalidate(true);
97 emit priorityChanged();
98}
99
100/*!
101 \qmlproperty int Sorter::column
102
103 This property holds the column that this sorter is applied to.
104
105 The default value is \c 0.
106*/
107int QQmlSorterBase::column() const
108{
109 Q_D(const QQmlSorterBase);
110 return d->m_sortColumn;
111}
112
113void QQmlSorterBase::setColumn(const int column)
114{
115 Q_D(QQmlSorterBase);
116 if (d->m_sortColumn == column)
117 return;
118 d->m_sortColumn = column;
119 invalidate();
120 emit columnChanged();
121}
122
123/*!
124 \internal
125*/
126void QQmlSorterBase::invalidate(bool updateCache)
127{
128 // Update the cached filters and invalidate the model
129 if (updateCache)
130 emit invalidateCache(this);
131 emit invalidateModel();
132}
133
134QT_END_NAMESPACE
135
136#include "moc_qqmlsorterbase_p.cpp"