feat: add initial filtering function

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
This commit is contained in:
Sefa Eyeoglu
2022-10-03 23:07:00 +02:00
parent b6c35491d5
commit b7bda70fb3
6 changed files with 95 additions and 8 deletions

View File

@ -15,18 +15,29 @@
#pragma once
#include "InstanceList.h"
#include <QCollator>
#include <QSortFilterProxyModel>
typedef std::pair<InstanceList::Column, QString> InstanceFilterQuery;
class InstanceTableProxyModel : public QSortFilterProxyModel {
Q_OBJECT
public:
InstanceTableProxyModel(QObject* parent = 0);
void setFilterQuery(const QString query);
void setFilterQuery(const QList<InstanceFilterQuery> query);
static QList<InstanceFilterQuery> parseFilterQuery(const QString query);
protected:
QVariant data(const QModelIndex& index, int role) const override;
bool filterAcceptsRow(int sourceRow, const QModelIndex& sourceParent) const;
private:
QCollator m_naturalSort;
QList<InstanceFilterQuery> m_filter;
};