summaryrefslogtreecommitdiffstats
path: root/src/control/controlsortfiltermodel.h
blob: 4a8d4f870c4158a1235546bf1fa19ec8ef85590d (plain)
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
#pragma once

#include <QSortFilterProxyModel>
#include <QString>
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
#include <QtQml>
#else
#define QML_ELEMENT
#endif

#include "control/controlmodel.h"

class ControlSortFilterModel : public QSortFilterProxyModel {
    Q_OBJECT
    Q_PROPERTY(int sortColumn READ sortColumn NOTIFY sortColumnChanged)
    Q_PROPERTY(bool sortDescending READ sortDescending NOTIFY sortDescendingChanged)
    QML_ELEMENT
  public:
    ControlSortFilterModel(QObject* pParent = nullptr);
    virtual ~ControlSortFilterModel();

    bool sortDescending() const;

    Q_INVOKABLE void sortByColumn(int sortColumn, bool sortDescending);

  signals:
    void sortColumnChanged(int sortColumn);
    void sortDescendingChanged(bool sortDescending);

  private:
    ControlModel* m_pModel;
};