12#include <QLoggingCategory>
Q_LOGGING_CATEGORY(CardDatabaseLog, "card_database")
LoadStatus
Represents the result of attempting to load a card database.
Definition card_database_loader.h:21
QSharedPointer< CardInfo > CardInfoPtr
Definition card_info.cpp:20
QSharedPointer< CardSet > CardSetPtr
Definition card_info.h:24
QHash< QString, CardSetPtr > SetNameMap
Definition card_info.h:28
QHash< QString, CardInfoPtr > CardNameMap
Definition card_info.h:27
LoadStatus getLoadStatus() const
Returns the current load status.
Definition card_database.h:111
SetNameMap sets
Sets indexed by short name.
Definition card_database.h:43
void cardDatabaseAllNewSetsEnabled()
Emitted when all new sets have been enabled.
const CardNameMap & getCardList() const
Returns the map of cards by name.
Definition card_database.h:95
bool saveCustomTokensToFile()
Saves custom tokens to file.
Definition card_database.cpp:63
QBasicMutex * addCardMutex
Definition card_database.h:66
void cardDatabaseNewSetsFound(int numUnknownSets, QStringList unknownSetsNames)
Emitted when new sets are found.
QBasicMutex * removeCardMutex
Definition card_database.h:67
void markAllSetsAsKnown()
Marks all sets as known.
Definition card_database.cpp:186
void cardDatabaseLoadingFinished()
Emitted when the card database has finished loading successfully.
void refreshCachedReverseRelatedCards()
Refreshes the cached reverse-related cards for all cards.
Definition card_database.cpp:68
void enableAllUnknownSets()
Enables all unknown sets in the database.
Definition card_database.cpp:180
void cardDatabaseLoadingFailed()
Emitted when the card database fails to load.
void cardDatabaseEnabledSetsChanged()
Emitted when enabled sets have changed.
void loadCardDatabases()
Loads card databases from configured paths.
Definition card_database.cpp:58
friend class CardDatabaseLoader
Definition card_database.h:178
void notifyEnabledSetsChanged()
Notifies listeners that enabled sets changed.
Definition card_database.cpp:192
void checkUnknownSets()
Check for sets that are unknown and emit signals if needed.
Definition card_database.cpp:156
CardSetList getSetList() const
Returns a list of all sets in the database.
Definition card_database.cpp:147
CardNameMap cards
Cards indexed by exact name.
Definition card_database.h:37
ICardSetPriorityController * setPriorityController
Controller to determine set priority when choosing preferred printings.
Definition card_database.h:34
void cardRemoved(CardInfoPtr card)
Emitted when a card is removed.
void clear()
Clears all cards, sets, and internal state.
Definition card_database.cpp:39
CardNameMap simpleNameCards
Cards indexed by simplified name (normalized)
Definition card_database.h:40
CardDatabaseQuerier * querier
Querier for higher-level card lookups.
Definition card_database.h:52
CardSetPtr getSet(const QString &setName)
Retrieves a set by short name, creating a new one if missing.
Definition card_database.cpp:136
void addSet(CardSetPtr set)
Adds a set to the database.
Definition card_database.cpp:131
LoadStatus loadStatus
Current load status of the database.
Definition card_database.h:49
friend class CardDatabaseQuerier
Definition card_database.h:179
~CardDatabase() override
Destructor clears all internal data.
Definition card_database.cpp:34
void removeCard(CardInfoPtr card)
Removes a card from the database.
Definition card_database.cpp:109
CardDatabaseLoader * loader
Loader responsible for file discovery and parsing.
Definition card_database.h:46
CardDatabase(QObject *parent=nullptr, ICardPreferenceProvider *prefs=nullptr, ICardDatabasePathProvider *pathProvider=nullptr, ICardSetPriorityController *setPriorityController=nullptr)
Constructs a new CardDatabase instance.
Definition card_database.cpp:14
void cardAdded(CardInfoPtr card)
Emitted when a new card is added.
QBasicMutex * clearDatabaseMutex
Mutexes for thread safety.
Definition card_database.h:66
void addCard(CardInfoPtr card)
Adds a card to the database.
Definition card_database.cpp:85
CardDatabaseQuerier * query() const
Returns the querier for performing card lookups.
Definition card_database.h:117
A list-like container for CardSet objects with extended management methods.
Definition card_set_list.h:20
Definition interface_card_database_path_provider.h:6
Definition interface_card_preference_provider.h:7
Definition interface_card_set_priority_controller.h:5