Cockatrice 2026-10-19-Development-3.1.2-beta.2
A 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>
8
9class CardInfo;
11
13
14class CardSet;
15
17
36class CardSet : public QList<CardInfoPtr>
37{
38public:
52
53 static const char *TOKENS_SETNAME;
54
55private:
57 QString shortName;
58 QString longName;
59 unsigned int sortKey;
61 QString setType;
63 bool enabled;
64 bool isknown;
65
66public:
78 const QString &_shortName = QString(),
79 const QString &_longName = QString(),
80 const QString &_setType = QString(),
81 const QDate &_releaseDate = QDate(),
82 const Priority _priority = PriorityFallback);
83
96 const QString &_shortName = QString(),
97 const QString &_longName = QString(),
98 const QString &_setType = QString(),
99 const QDate &_releaseDate = QDate(),
100 const Priority _priority = PriorityFallback);
101
110 [[nodiscard]] QString getCorrectedShortName() const;
111
113 [[nodiscard]] QString getShortName() const
114 {
115 return shortName;
116 }
117
119 [[nodiscard]] QString getLongName() const
120 {
121 return longName;
122 }
123
125 [[nodiscard]] QString getSetType() const
126 {
127 return setType;
128 }
129
131 [[nodiscard]] QDate getReleaseDate() const
132 {
133 return releaseDate;
134 }
135
137 [[nodiscard]] Priority getPriority() const
138 {
139 return priority;
140 }
141
146 void setLongName(const QString &_longName)
147 {
148 longName = _longName;
149 }
150
155 void setSetType(const QString &_setType)
156 {
157 setType = _setType;
158 }
159
164 void setReleaseDate(const QDate &_releaseDate)
165 {
166 releaseDate = _releaseDate;
167 }
168
173
174 void setPriority(const Priority _priority)
175 {
176 priority = _priority;
177 }
178
184 void loadSetOptions();
185
186 void setSortKeyInMemory(unsigned int _sortKey)
187 {
188 sortKey = _sortKey;
189 }
190 void setEnabledInMemory(bool _enabled)
191 {
192 enabled = _enabled;
193 }
194
196 [[nodiscard]] int getSortKey() const
197 {
198 return sortKey;
199 }
200
205 void setSortKey(unsigned int _sortKey);
206
208 [[nodiscard]] bool getEnabled() const
209 {
210 return enabled;
211 }
212
217 void setEnabled(bool _enabled);
218
220 [[nodiscard]] bool getIsKnown() const
221 {
222 return isknown;
223 }
224
229 void setIsKnown(bool _isknown);
230 void setIsKnownInMemory(bool _isknown)
231 {
232 isknown = _isknown;
233 }
234
240 [[nodiscard]] bool getIsKnownIgnored() const
241 {
242 return longName.length() + setType.length() + releaseDate.toString().length() == 0;
243 }
244};
245
246#endif // COCKATRICE_CARD_SET_H
QSharedPointer< CardInfo > CardInfoPtr
Definition card_info.cpp:15
QSharedPointer< CardSet > CardSetPtr
Definition card_info.h:30
QSharedPointer< CardSet > CardSetPtr
Definition card_set.h:16
Represents a card and its associated metadata, properties, and relationships.
Definition card_info.h:54
A collection of cards grouped under a common identifier.
Definition card_set.h:37
QString longName
Full name for the set.
Definition card_set.h:58
QString getCorrectedShortName() const
Returns a safe, sanitized version of the short name.
Definition card_set.cpp:34
void setSortKey(unsigned int _sortKey)
Assigns a new sort key to this set.
Definition card_set.cpp:53
Priority priority
Priority level for sorting and relevance.
Definition card_set.h:62
static const char * TOKENS_SETNAME
Reserved identifier for token-like sets.
Definition card_set.h:53
void setIsKnown(bool _isknown)
Marks the set as known or unknown.
Definition card_set.cpp:65
QString getSetType() const
Definition card_set.h:125
bool enabled
Whether the set is active/enabled.
Definition card_set.h:63
void setEnabledInMemory(bool _enabled)
Definition card_set.h:190
void setSortKeyInMemory(unsigned int _sortKey)
Definition card_set.h:186
unsigned int sortKey
Custom numeric sort key.
Definition card_set.h:59
bool getEnabled() const
Definition card_set.h:208
void setReleaseDate(const QDate &_releaseDate)
Sets the release date of the set.
Definition card_set.h:164
void setEnabled(bool _enabled)
Enables or disables the set.
Definition card_set.cpp:59
int getSortKey() const
Definition card_set.h:196
bool isknown
Whether the set is considered known.
Definition card_set.h:64
void setSetType(const QString &_setType)
Sets the category/type of the set.
Definition card_set.h:155
QString shortName
Short identifier for the set.
Definition card_set.h:57
void setIsKnownInMemory(bool _isknown)
Definition card_set.h:230
QString getLongName() const
Definition card_set.h:119
QString getShortName() const
Definition card_set.h:113
void loadSetOptions()
Loads state values (enabled, known, sort key) from configuration.
Definition card_set.cpp:45
ICardSetPriorityController * priorityController
Interface to the card set priority controller.
Definition card_set.h:56
bool getIsKnownIgnored() const
Determines whether the set has incomplete metadata and should be ignored.
Definition card_set.h:240
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:10
QDate getReleaseDate() const
Definition card_set.h:131
Priority
Defines relative ordering and importance of sets.
Definition card_set.h:44
@ PriorityPrimary
Primary, canonical set.
Definition card_set.h:46
@ PriorityFallback
Used when no other priority is defined.
Definition card_set.h:45
@ PriorityReprint
Duplicate or reprint category.
Definition card_set.h:48
@ PrioritySecondary
Secondary but relevant.
Definition card_set.h:47
@ PriorityLowest
Lowest sorting priority.
Definition card_set.h:50
@ PriorityOther
Miscellaneous grouping.
Definition card_set.h:49
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:22
bool getIsKnown() const
Definition card_set.h:220
QDate releaseDate
Release date, may be empty if unknown.
Definition card_set.h:60
void setPriority(const Priority _priority)
Updates the priority of the set.
Definition card_set.h:174
void setLongName(const QString &_longName)
Sets the full name of the set.
Definition card_set.h:146
Priority getPriority() const
Definition card_set.h:137
QString setType
Type/category label for the set.
Definition card_set.h:61
Definition interface_card_set_priority_controller.h:8
Definition remote_connection_controller.h:20
Definition arrow_registry.h:10