Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
card_database_model.h
Go to the documentation of this file.
1
6
7#ifndef CARDDATABASEMODEL_H
8#define CARDDATABASEMODEL_H
9
10#include <QAbstractListModel>
11#include <QList>
12#include <QSet>
14
15class CardDatabaseModel : public QAbstractListModel
16{
17 Q_OBJECT
18public:
28 enum Role
29 {
30 SortRole = Qt::UserRole
31 };
32 CardDatabaseModel(CardDatabase *_db, bool _showOnlyCardsFromEnabledSets, QObject *parent = nullptr);
34 [[nodiscard]] int rowCount(const QModelIndex &parent = QModelIndex()) const override;
35 [[nodiscard]] int columnCount(const QModelIndex &parent = QModelIndex()) const override;
36 [[nodiscard]] QVariant data(const QModelIndex &index, int role) const override;
37 [[nodiscard]] QVariant
38 headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
39 [[nodiscard]] CardDatabase *getDatabase() const
40 {
41 return db;
42 }
43 [[nodiscard]] CardInfoPtr getCard(int index) const
44 {
45 return cardList[index];
46 }
47
48private:
49 QList<CardInfoPtr> cardList;
50 QSet<CardInfoPtr> cardListSet; // Supports faster lookups in cardDatabaseEnabledSetsChanged()
53
55private slots:
56 void cardAdded(CardInfoPtr card);
57 void cardRemoved(CardInfoPtr card);
60};
61
62#endif
QSharedPointer< CardInfo > CardInfoPtr
Definition card_info.cpp:20
QList< CardInfoPtr > cardList
Definition card_database_model.h:49
QSet< CardInfoPtr > cardListSet
Definition card_database_model.h:50
Role
Definition card_database_model.h:29
@ SortRole
Definition card_database_model.h:30
CardDatabase * db
Definition card_database_model.h:51
CardDatabase * getDatabase() const
Definition card_database_model.h:39
CardInfoPtr getCard(int index) const
Definition card_database_model.h:43
bool checkCardHasAtLeastOneEnabledSet(CardInfoPtr card)
Definition card_database_model.cpp:90
bool showOnlyCardsFromEnabledSets
Definition card_database_model.h:52
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition card_database_model.cpp:21
CardDatabaseModel(CardDatabase *_db, bool _showOnlyCardsFromEnabledSets, QObject *parent=nullptr)
Definition card_database_model.cpp:8
Columns
Definition card_database_model.h:20
@ SetListColumn
Definition card_database_model.h:22
@ CardTypeColumn
Definition card_database_model.h:25
@ ManaCostColumn
Definition card_database_model.h:23
@ NameColumn
Definition card_database_model.h:21
@ ColorColumn
Definition card_database_model.h:26
@ PTColumn
Definition card_database_model.h:24
void cardRemoved(CardInfoPtr card)
Definition card_database_model.cpp:134
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
Definition card_database_model.cpp:57
void cardInfoChanged(CardInfoPtr card)
Definition card_database_model.cpp:81
void cardAdded(CardInfoPtr card)
Definition card_database_model.cpp:122
~CardDatabaseModel() override
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Definition card_database_model.cpp:26
void cardDatabaseEnabledSetsChanged()
Definition card_database_model.cpp:105
QVariant data(const QModelIndex &index, int role) const override
Definition card_database_model.cpp:31
Core in-memory container for card and set data.
Definition card_database.h:29