Cockatrice 2026-10-19-Development-3.1.2-beta.2
A 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>
11#include <QList>
12#include <QModelIndex>
14#include <qnamespace.h>
15#include <qtmetamacros.h>
16
17class FilterTree;
18class FilterTreeNode;
19class QObject;
20
21class FilterTreeModel : public QAbstractItemModel
22{
23 Q_OBJECT
24private:
26
27public slots:
28 void addFilter(const CardFilter *f);
29 void removeFilter(const CardFilter *f);
30 void clearFiltersOfType(CardFilter::Attr filterType);
31 [[nodiscard]] QList<const CardFilter *> getFiltersOfType(CardFilter::Attr filterType) const;
32 [[nodiscard]] QList<const CardFilter *> allFilters() const;
33
34private slots:
35 void proxyBeginInsertRow(const FilterTreeNode *, int);
36 void proxyEndInsertRow(const FilterTreeNode *, int);
37 void proxyBeginRemoveRow(const FilterTreeNode *, int);
38 void proxyEndRemoveRow(const FilterTreeNode *, int);
39
40private:
41 [[nodiscard]] FilterTreeNode *indexToNode(const QModelIndex &idx) const;
42 QModelIndex nodeIndex(const FilterTreeNode *node, int row, int column) const;
43
44public:
45 FilterTreeModel(QObject *parent = nullptr);
46 ~FilterTreeModel() override;
47 [[nodiscard]] FilterTree *filterTree() const
48 {
49 return fTree;
50 }
51 [[nodiscard]] int rowCount(const QModelIndex &parent = QModelIndex()) const override;
52 [[nodiscard]] int columnCount(const QModelIndex & /*parent*/ = QModelIndex()) const override;
53 [[nodiscard]] QVariant data(const QModelIndex &index, int role) const override;
54 bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
55 [[nodiscard]] Qt::ItemFlags flags(const QModelIndex &index) const override;
56 [[nodiscard]] QModelIndex parent(const QModelIndex &ind) const override;
57 [[nodiscard]] QModelIndex index(int row, int column, const QModelIndex &parent) const override;
58 bool removeRows(int row, int count, const QModelIndex &parent) override;
59 void clear();
60};
61
62#endif
Definition filter_card.h:16
Attr
Definition filter_card.h:32
FilterTreeModel(QObject *parent=nullptr)
Definition filter_tree_model.cpp:14
void proxyEndRemoveRow(const FilterTreeNode *, int)
Definition filter_tree_model.cpp:58
void clearFiltersOfType(CardFilter::Attr filterType)
Definition filter_tree_model.cpp:100
void proxyEndInsertRow(const FilterTreeNode *, int)
Definition filter_tree_model.cpp:38
QModelIndex nodeIndex(const FilterTreeNode *node, int row, int column) const
Definition filter_tree_model.cpp:278
QList< const CardFilter * > getFiltersOfType(CardFilter::Attr filterType) const
Definition filter_tree_model.cpp:110
QVariant data(const QModelIndex &index, int role) const override
Definition filter_tree_model.cpp:180
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
Definition filter_tree_model.cpp:223
bool removeRows(int row, int count, const QModelIndex &parent) override
Definition filter_tree_model.cpp:334
QModelIndex index(int row, int column, const QModelIndex &parent) const override
Definition filter_tree_model.cpp:290
void removeFilter(const CardFilter *f)
Definition filter_tree_model.cpp:93
void proxyBeginRemoveRow(const FilterTreeNode *, int)
Definition filter_tree_model.cpp:48
Qt::ItemFlags flags(const QModelIndex &index) const override
Definition filter_tree_model.cpp:253
void clear()
Definition filter_tree_model.cpp:360
QModelIndex parent(const QModelIndex &ind) const override
Definition filter_tree_model.cpp:306
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition filter_tree_model.cpp:156
FilterTree * filterTree() const
Definition filter_tree_model.h:47
FilterTreeNode * indexToNode(const QModelIndex &idx) const
Definition filter_tree_model.cpp:68
QList< const CardFilter * > allFilters() const
Definition filter_tree_model.cpp:134
int columnCount(const QModelIndex &=QModelIndex()) const override
Definition filter_tree_model.cpp:175
void addFilter(const CardFilter *f)
Definition filter_tree_model.cpp:86
void proxyBeginInsertRow(const FilterTreeNode *, int)
Definition filter_tree_model.cpp:28
FilterTree * fTree
Definition filter_tree_model.h:25
Definition filter_tree.h:22
Definition filter_tree.h:240
Definition remote_connection_controller.h:20