40 lines
924 B
C++
40 lines
924 B
C++
#ifndef RULESFILTERMODEL_H
|
|
#define RULESFILTERMODEL_H
|
|
|
|
#include <QSortFilterProxyModel>
|
|
#include <QUuid>
|
|
|
|
class Rules;
|
|
class Rule;
|
|
|
|
class RulesFilterModel : public QSortFilterProxyModel
|
|
{
|
|
Q_OBJECT
|
|
Q_PROPERTY(Rules* rules READ rules WRITE setRules NOTIFY rulesChanged)
|
|
Q_PROPERTY(QUuid filterDeviceId READ filterDeviceId WRITE setFilterDeviceId NOTIFY filterDeviceIdChanged)
|
|
|
|
public:
|
|
explicit RulesFilterModel(QObject *parent = nullptr);
|
|
|
|
Rules* rules() const;
|
|
void setRules(Rules* rules);
|
|
|
|
QUuid filterDeviceId() const;
|
|
void setFilterDeviceId(const QUuid &filterDeviceId);
|
|
|
|
Q_INVOKABLE Rule* get(int index) const;
|
|
|
|
signals:
|
|
void rulesChanged();
|
|
void filterDeviceIdChanged();
|
|
|
|
protected:
|
|
bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override;
|
|
|
|
private:
|
|
Rules *m_rules = nullptr;
|
|
QUuid m_filterDeviceId;
|
|
};
|
|
|
|
#endif // RULESFILTERMODEL_H
|