[CardDatabase] Store querier not as pointer

This commit is contained in:
RickyRister 2026-03-26 09:59:38 -07:00
parent 3ec9ae9772
commit 97c763f45c
6 changed files with 10 additions and 17 deletions

View file

@ -15,7 +15,8 @@ CardDatabase::CardDatabase(QObject *parent,
ICardPreferenceProvider *prefs, ICardPreferenceProvider *prefs,
ICardDatabasePathProvider *pathProvider, ICardDatabasePathProvider *pathProvider,
ICardSetPriorityController *_setPriorityController) ICardSetPriorityController *_setPriorityController)
: QObject(parent), setPriorityController(_setPriorityController), loadStatus(NotLoaded) : QObject(parent), setPriorityController(_setPriorityController), loadStatus(NotLoaded),
querier(CardDatabaseQuerier(this, prefs))
{ {
qRegisterMetaType<CardInfoPtr>("CardInfoPtr"); qRegisterMetaType<CardInfoPtr>("CardInfoPtr");
qRegisterMetaType<CardInfoPtr>("CardSetPtr"); qRegisterMetaType<CardInfoPtr>("CardSetPtr");
@ -27,8 +28,6 @@ CardDatabase::CardDatabase(QObject *parent,
connect(loader, &CardDatabaseLoader::loadingFailed, this, &CardDatabase::cardDatabaseLoadingFailed); connect(loader, &CardDatabaseLoader::loadingFailed, this, &CardDatabase::cardDatabaseLoadingFailed);
connect(loader, &CardDatabaseLoader::newSetsFound, this, &CardDatabase::cardDatabaseNewSetsFound); connect(loader, &CardDatabaseLoader::newSetsFound, this, &CardDatabase::cardDatabaseNewSetsFound);
connect(loader, &CardDatabaseLoader::allNewSetsEnabled, this, &CardDatabase::cardDatabaseAllNewSetsEnabled); connect(loader, &CardDatabaseLoader::allNewSetsEnabled, this, &CardDatabase::cardDatabaseAllNewSetsEnabled);
querier = new CardDatabaseQuerier(this, this, prefs);
} }
CardDatabase::~CardDatabase() CardDatabase::~CardDatabase()

View file

@ -29,7 +29,6 @@ class CardDatabase : public QObject
{ {
Q_OBJECT Q_OBJECT
protected:
/// Controller to determine set priority when choosing preferred printings. /// Controller to determine set priority when choosing preferred printings.
ICardSetPriorityController *setPriorityController; ICardSetPriorityController *setPriorityController;
@ -51,9 +50,8 @@ protected:
LoadStatus loadStatus; LoadStatus loadStatus;
/// Querier for higher-level card lookups /// Querier for higher-level card lookups
CardDatabaseQuerier *querier; CardDatabaseQuerier querier;
private:
/** /**
* @brief Check for sets that are unknown and emit signals if needed. * @brief Check for sets that are unknown and emit signals if needed.
*/ */
@ -116,7 +114,7 @@ public:
} }
/** @brief Returns the querier for performing card lookups. */ /** @brief Returns the querier for performing card lookups. */
[[nodiscard]] CardDatabaseQuerier *query() const [[nodiscard]] CardDatabaseQuerier const &query() const
{ {
return querier; return querier;
} }

View file

@ -29,7 +29,7 @@ CardDatabase *CardDatabaseManager::getInstance()
return &instance; return &instance;
} }
CardDatabaseQuerier *CardDatabaseManager::query() CardDatabaseQuerier const &CardDatabaseManager::query()
{ {
return getInstance()->query(); return getInstance()->query();
} }

View file

@ -58,7 +58,7 @@ public:
* @brief Returns the CardDatabaseQuerier of the singleton database. * @brief Returns the CardDatabaseQuerier of the singleton database.
* @return Pointer to CardDatabaseQuerier. * @return Pointer to CardDatabaseQuerier.
*/ */
static CardDatabaseQuerier *query(); static CardDatabaseQuerier const &query();
private: private:
/** @brief Private default constructor to enforce singleton. */ /** @brief Private default constructor to enforce singleton. */

View file

@ -7,10 +7,8 @@
#include <qrandom.h> #include <qrandom.h>
CardDatabaseQuerier::CardDatabaseQuerier(QObject *_parent, CardDatabaseQuerier::CardDatabaseQuerier(const CardDatabase *_db, const ICardPreferenceProvider *prefs)
const CardDatabase *_db, : db(_db), prefs(prefs)
const ICardPreferenceProvider *prefs)
: QObject(_parent), db(_db), prefs(prefs)
{ {
} }

View file

@ -19,19 +19,17 @@ class CardDatabase;
* (e.g., CardInfoPtr, ExactCard, and PrintingInfo) from a CardDatabase. It also applies user * (e.g., CardInfoPtr, ExactCard, and PrintingInfo) from a CardDatabase. It also applies user
* printing preferences via ICardPreferenceProvider when determining preferred printings. * printing preferences via ICardPreferenceProvider when determining preferred printings.
*/ */
class CardDatabaseQuerier : public QObject class CardDatabaseQuerier
{ {
Q_OBJECT
public: public:
/** /**
* @brief Constructs a CardDatabaseQuerier. * @brief Constructs a CardDatabaseQuerier.
* *
* @param parent Parent QObject.
* @param db Pointer to the CardDatabase used for lookups. * @param db Pointer to the CardDatabase used for lookups.
* @param prefs Pointer to card preference provider which supplies user-preference for printings. * @param prefs Pointer to card preference provider which supplies user-preference for printings.
*/ */
explicit CardDatabaseQuerier(QObject *parent, const CardDatabase *db, const ICardPreferenceProvider *prefs); explicit CardDatabaseQuerier(const CardDatabase *db, const ICardPreferenceProvider *prefs);
/** /**
* @brief Retrieves a card by its exact name. * @brief Retrieves a card by its exact name.