Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
filter_tree_model.h
Go to the documentation of this file.
1
6
7#ifndef FILTERTREEMODEL_H
8#define FILTERTREEMODEL_H
9
10#include <QAbstractItemModel>
12
13class FilterTree;
14class CardFilter;
15class FilterTreeNode;
16
17class FilterTreeModel : public QAbstractItemModel
18{
19 Q_OBJECT
20private:
22
23public slots:
24 void addFilter(const CardFilter *f);
25 void removeFilter(const CardFilter *f);
26 void clearFiltersOfType(CardFilter::Attr filterType);
27 [[nodiscard]] QList<const CardFilter *> getFiltersOfType(CardFilter::Attr filterType) const;
28 [[nodiscard]] QList<const CardFilter *> allFilters() const;
29
30private slots:
31 void proxyBeginInsertRow(const FilterTreeNode *, int);
32 void proxyEndInsertRow(const FilterTreeNode *, int);
33 void proxyBeginRemoveRow(const FilterTreeNode *, int);
34 void proxyEndRemoveRow(const FilterTreeNode *, int);
35
36private:
37 [[nodiscard]] FilterTreeNode *indexToNode(const QModelIndex &idx) const;
38 QModelIndex nodeIndex(const FilterTreeNode *node, int row, int column) const;
39
40public:
41 FilterTreeModel(QObject *parent = nullptr);
42 ~FilterTreeModel() override;
43 [[nodiscard]] FilterTree *filterTree() const
44 {
45 return fTree;
46 }
47 [[nodiscard]] int rowCount(const QModelIndex &parent = QModelIndex()) const override;
48 [[nodiscard]] int columnCount(const QModelIndex & /*parent*/ = QModelIndex()) const override;
49 [[nodiscard]] QVariant data(const QModelIndex &index, int role) const override;
50 bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
51 [[nodiscard]] Qt::ItemFlags flags(const QModelIndex &index) const override;
52 [[nodiscard]] QModelIndex parent(const QModelIndex &ind) const override;
53 [[nodiscard]] QModelIndex index(int row, int column, const QModelIndex &parent) const override;
54 bool removeRows(int row, int count, const QModelIndex &parent) override;
55 void clear();
56};
57
58#endif
Definition filter_card.h:14
Attr
Definition filter_card.h:30
FilterTreeModel(QObject *parent=nullptr)
Definition filter_tree_model.cpp:7
void proxyEndRemoveRow(const FilterTreeNode *, int)
Definition filter_tree_model.cpp:48
void clearFiltersOfType(CardFilter::Attr filterType)
Definition filter_tree_model.cpp:87
void proxyEndInsertRow(const FilterTreeNode *, int)
Definition filter_tree_model.cpp:30
QModelIndex nodeIndex(const FilterTreeNode *node, int row, int column) const
Definition filter_tree_model.cpp:251
QList< const CardFilter * > getFiltersOfType(CardFilter::Attr filterType) const
Definition filter_tree_model.cpp:97
QVariant data(const QModelIndex &index, int role) const override
Definition filter_tree_model.cpp:165
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
Definition filter_tree_model.cpp:204
bool removeRows(int row, int count, const QModelIndex &parent) override
Definition filter_tree_model.cpp:301
QModelIndex index(int row, int column, const QModelIndex &parent) const override
Definition filter_tree_model.cpp:262
void removeFilter(const CardFilter *f)
Definition filter_tree_model.cpp:80
void proxyBeginRemoveRow(const FilterTreeNode *, int)
Definition filter_tree_model.cpp:39
Qt::ItemFlags flags(const QModelIndex &index) const override
Definition filter_tree_model.cpp:229
void clear()
Definition filter_tree_model.cpp:323
QModelIndex parent(const QModelIndex &ind) const override
Definition filter_tree_model.cpp:276
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition filter_tree_model.cpp:143
FilterTree * filterTree() const
Definition filter_tree_model.h:43
FilterTreeNode * indexToNode(const QModelIndex &idx) const
Definition filter_tree_model.cpp:57
~FilterTreeModel() override
Definition filter_tree_model.cpp:16
QList< const CardFilter * > allFilters() const
Definition filter_tree_model.cpp:121
int columnCount(const QModelIndex &=QModelIndex()) const override
Definition filter_tree_model.cpp:160
void addFilter(const CardFilter *f)
Definition filter_tree_model.cpp:73
void proxyBeginInsertRow(const FilterTreeNode *, int)
Definition filter_tree_model.cpp:21
FilterTree * fTree
Definition filter_tree_model.h:21
Definition filter_tree.h:18
Definition filter_tree.h:223
TODO: Document this.