Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
card_set.h
Go to the documentation of this file.
1#ifndef COCKATRICE_CARD_SET_H
2#define COCKATRICE_CARD_SET_H
3
4#include <QDate>
5#include <QList>
6#include <QSharedPointer>
7#include <QString>
9
10class CardInfo;
11using CardInfoPtr = QSharedPointer<CardInfo>;
12
13class CardSet;
14using CardSetPtr = QSharedPointer<CardSet>;
15
34class CardSet : public QList<CardInfoPtr>
35{
36public:
50
51 static const char *TOKENS_SETNAME;
52
53private:
55 QString shortName;
56 QString longName;
57 unsigned int sortKey;
59 QString setType;
61 bool enabled;
62 bool isknown;
63
64public:
76 const QString &_shortName = QString(),
77 const QString &_longName = QString(),
78 const QString &_setType = QString(),
79 const QDate &_releaseDate = QDate(),
80 const Priority _priority = PriorityFallback);
81
94 const QString &_shortName = QString(),
95 const QString &_longName = QString(),
96 const QString &_setType = QString(),
97 const QDate &_releaseDate = QDate(),
98 const Priority _priority = PriorityFallback);
99
108 [[nodiscard]] QString getCorrectedShortName() const;
109
111 [[nodiscard]] QString getShortName() const
112 {
113 return shortName;
114 }
115
117 [[nodiscard]] QString getLongName() const
118 {
119 return longName;
120 }
121
123 [[nodiscard]] QString getSetType() const
124 {
125 return setType;
126 }
127
129 [[nodiscard]] QDate getReleaseDate() const
130 {
131 return releaseDate;
132 }
133
135 [[nodiscard]] Priority getPriority() const
136 {
137 return priority;
138 }
139
144 void setLongName(const QString &_longName)
145 {
146 longName = _longName;
147 }
148
153 void setSetType(const QString &_setType)
154 {
155 setType = _setType;
156 }
157
162 void setReleaseDate(const QDate &_releaseDate)
163 {
164 releaseDate = _releaseDate;
165 }
166
171
172 void setPriority(const Priority _priority)
173 {
174 priority = _priority;
175 }
176
182 void loadSetOptions();
183
185 [[nodiscard]] int getSortKey() const
186 {
187 return sortKey;
188 }
189
194 void setSortKey(unsigned int _sortKey);
195
197 [[nodiscard]] bool getEnabled() const
198 {
199 return enabled;
200 }
201
206 void setEnabled(bool _enabled);
207
209 [[nodiscard]] bool getIsKnown() const
210 {
211 return isknown;
212 }
213
218 void setIsKnown(bool _isknown);
219
225 [[nodiscard]] bool getIsKnownIgnored() const
226 {
227 return longName.length() + setType.length() + releaseDate.toString().length() == 0;
228 }
229};
230
231#endif // COCKATRICE_CARD_SET_H
QSharedPointer< CardInfo > CardInfoPtr
Definition card_info.cpp:20
QSharedPointer< CardSet > CardSetPtr
Definition card_info.h:24
QSharedPointer< CardSet > CardSetPtr
Definition card_set.h:14
Represents a card and its associated metadata, properties, and relationships.
Definition card_info.h:46
A collection of cards grouped under a common identifier.
Definition card_set.h:35
QString longName
Full name for the set.
Definition card_set.h:56
QString getCorrectedShortName() const
Returns a safe, sanitized version of the short name.
Definition card_set.cpp:32
void setSortKey(unsigned int _sortKey)
Assigns a new sort key to this set.
Definition card_set.cpp:69
Priority priority
Priority level for sorting and relevance.
Definition card_set.h:60
static const char * TOKENS_SETNAME
Reserved identifier for token-like sets.
Definition card_set.h:51
void setIsKnown(bool _isknown)
Marks the set as known or unknown.
Definition card_set.cpp:81
QString getSetType() const
Definition card_set.h:123
bool enabled
Whether the set is active/enabled.
Definition card_set.h:61
unsigned int sortKey
Custom numeric sort key.
Definition card_set.h:57
bool getEnabled() const
Definition card_set.h:197
void setReleaseDate(const QDate &_releaseDate)
Sets the release date of the set.
Definition card_set.h:162
void setEnabled(bool _enabled)
Enables or disables the set.
Definition card_set.cpp:75
int getSortKey() const
Definition card_set.h:185
bool isknown
Whether the set is considered known.
Definition card_set.h:62
void setSetType(const QString &_setType)
Sets the category/type of the set.
Definition card_set.h:153
QString shortName
Short identifier for the set.
Definition card_set.h:55
QString getLongName() const
Definition card_set.h:117
QString getShortName() const
Definition card_set.h:111
void loadSetOptions()
Loads state values (enabled, known, sort key) from configuration.
Definition card_set.cpp:62
ICardSetPriorityController * priorityController
Interface to the card set priority controller.
Definition card_set.h:54
bool getIsKnownIgnored() const
Determines whether the set has incomplete metadata and should be ignored.
Definition card_set.h:225
CardSet(ICardSetPriorityController *priorityController, const QString &_shortName=QString(), const QString &_longName=QString(), const QString &_setType=QString(), const QDate &_releaseDate=QDate(), const Priority _priority=PriorityFallback)
Constructs a CardSet.
Definition card_set.cpp:8
QDate getReleaseDate() const
Definition card_set.h:129
Priority
Defines relative ordering and importance of sets.
Definition card_set.h:42
@ PriorityPrimary
Primary, canonical set.
Definition card_set.h:44
@ PriorityFallback
Used when no other priority is defined.
Definition card_set.h:43
@ PriorityReprint
Duplicate or reprint category.
Definition card_set.h:46
@ PrioritySecondary
Secondary but relevant.
Definition card_set.h:45
@ PriorityLowest
Lowest sorting priority.
Definition card_set.h:48
@ PriorityOther
Miscellaneous grouping.
Definition card_set.h:47
static CardSetPtr newInstance(ICardSetPriorityController *priorityController, const QString &_shortName=QString(), const QString &_longName=QString(), const QString &_setType=QString(), const QDate &_releaseDate=QDate(), const Priority _priority=PriorityFallback)
Creates and returns a new shared CardSet instance.
Definition card_set.cpp:20
bool getIsKnown() const
Definition card_set.h:209
QDate releaseDate
Release date, may be empty if unknown.
Definition card_set.h:58
void setPriority(const Priority _priority)
Updates the priority of the set.
Definition card_set.h:172
void setLongName(const QString &_longName)
Sets the full name of the set.
Definition card_set.h:144
Priority getPriority() const
Definition card_set.h:135
QString setType
Type/category label for the set.
Definition card_set.h:59
Definition interface_card_set_priority_controller.h:5