-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMySortFilterProxyModel.h
More file actions
41 lines (32 loc) · 1.17 KB
/
Copy pathMySortFilterProxyModel.h
File metadata and controls
41 lines (32 loc) · 1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#pragma once
#include <QDate>
#include <QSortFilterProxyModel>
class MySortFilterProxyModel : public QSortFilterProxyModel
{
Q_OBJECT
public:
MySortFilterProxyModel(QObject *parent = 0);
QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const {
if (role == Qt::TextAlignmentRole && RightAlignColumns.contains(index.column()))
return Qt::AlignRight; //maybe different result depending on column/row
else
return QSortFilterProxyModel::data(index, role);
}
QDate filterMinimumDate() const { return minDate; }
void setFilterMinimumDate(const QDate &date);
QDate filterMaximumDate() const { return maxDate; }
void setFilterMaximumDate(const QDate &date);
QList<int> getDateColumns();
public slots:
void clearFilter();
protected:
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
bool lessThan(const QModelIndex &left, const QModelIndex &right) const;
private:
bool dateInRange(const QDate &date) const;
QList<int> DateColumns;
QList<int> RightAlignColumns;
QList<int> SortNumberColumns;
QDate minDate;
QDate maxDate;
};