Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
CardDatabaseLoader Class Reference

Handles loading card databases from disk and saving custom tokens. More...

#include <card_database_loader.h>

Inheritance diagram for CardDatabaseLoader:
[legend]
Collaboration diagram for CardDatabaseLoader:
[legend]

Public Slots

LoadStatus loadCardDatabases ()
 Loads all configured card databases.
LoadStatus loadCardDatabase (const QString &path)
 Loads a single card database file.
bool saveCustomTokensToFile ()
 Saves custom tokens to the user-defined custom database path.

Signals

void loadingStarted ()
 Emitted when loading starts.
void loadingFinished ()
 Emitted when loading finishes successfully.
void loadingFailed ()
 Emitted when loading fails.
void newSetsFound (int numSets, const QStringList &setNames)
 Emitted when new sets are discovered during loading.
void allNewSetsEnabled ()
 Emitted when all newly discovered sets have been enabled.

Public Member Functions

 CardDatabaseLoader (QObject *parent, CardDatabase *db, ICardDatabasePathProvider *pathProvider, ICardPreferenceProvider *preferenceProvider)
 Constructs a CardDatabaseLoader.
 ~CardDatabaseLoader () override
 Destructor cleans up allocated parsers.

Private Member Functions

LoadStatus loadFromFile (const QString &fileName)
 Loads a database from a single file using the available parsers.
QStringList collectCustomDatabasePaths () const
 Collects custom card database paths recursively.

Private Attributes

CardDatabasedatabase
ICardDatabasePathProviderpathProvider
QList< ICardDatabaseParser * > availableParsers
QBasicMutex * loadFromFileMutex = new QBasicMutex()
QBasicMutex * reloadDatabaseMutex = new QBasicMutex()

Detailed Description

Handles loading card databases from disk and saving custom tokens.

This class is responsible for:

  • Discovering configured card database paths.
  • Loading main, token, spoiler, and custom databases.
  • Populating a CardDatabase instance using connected parsers.
  • Emitting signals about loading progress and new sets.

Constructor & Destructor Documentation

◆ CardDatabaseLoader()

CardDatabaseLoader::CardDatabaseLoader ( QObject * parent,
CardDatabase * db,
ICardDatabasePathProvider * pathProvider,
ICardPreferenceProvider * preferenceProvider )
explicit

Constructs a CardDatabaseLoader.

Parameters
parentQObject parent.
dbPointer to the CardDatabase to populate (non-owning).
pathProviderProvider for card database file paths.
preferenceProviderOptional card preference provider for pinned printings.
Here is the call graph for this function:

◆ ~CardDatabaseLoader()

CardDatabaseLoader::~CardDatabaseLoader ( )
override

Destructor cleans up allocated parsers.

Member Function Documentation

◆ allNewSetsEnabled

void CardDatabaseLoader::allNewSetsEnabled ( )
signal

Emitted when all newly discovered sets have been enabled.

Here is the caller graph for this function:

◆ collectCustomDatabasePaths()

QStringList CardDatabaseLoader::collectCustomDatabasePaths ( ) const
nodiscardprivate

Collects custom card database paths recursively.

Returns
Sorted list of file paths to custom databases.
Here is the caller graph for this function:

◆ loadCardDatabase

LoadStatus CardDatabaseLoader::loadCardDatabase ( const QString & path)
slot

Loads a single card database file.

Parameters
pathPath to the database file.
Returns
LoadStatus indicating success or failure.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ loadCardDatabases

LoadStatus CardDatabaseLoader::loadCardDatabases ( )
slot

Loads all configured card databases.

Returns
Status of the main database load.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ loadFromFile()

LoadStatus CardDatabaseLoader::loadFromFile ( const QString & fileName)
private

Loads a database from a single file using the available parsers.

Parameters
fileNamePath to the database file.
Returns
LoadStatus indicating success or failure.
Here is the caller graph for this function:

◆ loadingFailed

void CardDatabaseLoader::loadingFailed ( )
signal

Emitted when loading fails.

Here is the caller graph for this function:

◆ loadingFinished

void CardDatabaseLoader::loadingFinished ( )
signal

Emitted when loading finishes successfully.

Here is the caller graph for this function:

◆ loadingStarted

void CardDatabaseLoader::loadingStarted ( )
signal

Emitted when loading starts.

Here is the caller graph for this function:

◆ newSetsFound

void CardDatabaseLoader::newSetsFound ( int numSets,
const QStringList & setNames )
signal

Emitted when new sets are discovered during loading.

Parameters
numSetsNumber of new sets.
setNamesNames of the discovered sets.
Here is the caller graph for this function:

◆ saveCustomTokensToFile

bool CardDatabaseLoader::saveCustomTokensToFile ( )
slot

Saves custom tokens to the user-defined custom database path.

Returns
True if the save was successful.

Member Data Documentation

◆ availableParsers

QList<ICardDatabaseParser *> CardDatabaseLoader::availableParsers
private

List of available parsers for different formats.

◆ database

CardDatabase* CardDatabaseLoader::database
private

Non-owning pointer to the target CardDatabase.

◆ loadFromFileMutex

QBasicMutex* CardDatabaseLoader::loadFromFileMutex = new QBasicMutex()
private

Mutex for single-file loading.

◆ pathProvider

ICardDatabasePathProvider* CardDatabaseLoader::pathProvider
private

Pointer to the path provider.

◆ reloadDatabaseMutex

QBasicMutex* CardDatabaseLoader::reloadDatabaseMutex = new QBasicMutex()
private

Mutex for reloading entire database.


The documentation for this class was generated from the following files: