From 598da954fc748517a4e42b97b6f5e772f69dafe6 Mon Sep 17 00:00:00 2001 From: RickyRister Date: Thu, 26 Mar 2026 09:59:38 -0700 Subject: [PATCH] [CardDatabase] Store querier not as pointer --- .../libcockatrice/card/database/card_database.cpp | 5 ++--- .../libcockatrice/card/database/card_database.h | 5 ++--- .../libcockatrice/card/database/card_database_manager.cpp | 2 +- .../libcockatrice/card/database/card_database_manager.h | 2 +- .../libcockatrice/card/database/card_database_querier.cpp | 6 ++---- .../libcockatrice/card/database/card_database_querier.h | 6 ++---- 6 files changed, 10 insertions(+), 16 deletions(-) diff --git a/libcockatrice_card/libcockatrice/card/database/card_database.cpp b/libcockatrice_card/libcockatrice/card/database/card_database.cpp index ed097ef3b..5362a65ea 100644 --- a/libcockatrice_card/libcockatrice/card/database/card_database.cpp +++ b/libcockatrice_card/libcockatrice/card/database/card_database.cpp @@ -27,7 +27,8 @@ CardDatabase::CardDatabase(QObject *parent, ICardPreferenceProvider *prefs, ICardDatabasePathProvider *pathProvider, ICardSetPriorityController *_setPriorityController) - : QObject(parent), setPriorityController(_setPriorityController), loadStatus(NotLoaded) + : QObject(parent), setPriorityController(_setPriorityController), loadStatus(NotLoaded), + querier(this, prefs) { qRegisterMetaType("CardInfoPtr"); qRegisterMetaType("CardSetPtr"); @@ -44,8 +45,6 @@ CardDatabase::CardDatabase(QObject *parent, // that cross-thread loads are delivered via the event loop while same-thread/ // synchronous callers get the swap immediately. connect(loader, &CardDatabaseLoader::databaseDataReady, this, &CardDatabase::swapInDatabaseData); - - querier = new CardDatabaseQuerier(this, this, prefs); } CardDatabase::~CardDatabase() diff --git a/libcockatrice_card/libcockatrice/card/database/card_database.h b/libcockatrice_card/libcockatrice/card/database/card_database.h index 5c1cb43c1..5c764d10f 100644 --- a/libcockatrice_card/libcockatrice/card/database/card_database.h +++ b/libcockatrice_card/libcockatrice/card/database/card_database.h @@ -60,9 +60,8 @@ protected: LoadStatus loadStatus; /** @brief Querier for higher-level card lookups. */ - CardDatabaseQuerier *querier; + CardDatabaseQuerier querier; -private: /** * @brief Refreshes the cached reverse-related cards for all cards. */ @@ -143,7 +142,7 @@ public: } /** @brief Returns the querier for performing card lookups. */ - [[nodiscard]] CardDatabaseQuerier *query() const + [[nodiscard]] CardDatabaseQuerier const &query() const { return querier; } diff --git a/libcockatrice_card/libcockatrice/card/database/card_database_manager.cpp b/libcockatrice_card/libcockatrice/card/database/card_database_manager.cpp index b06c258fa..8a7179e33 100644 --- a/libcockatrice_card/libcockatrice/card/database/card_database_manager.cpp +++ b/libcockatrice_card/libcockatrice/card/database/card_database_manager.cpp @@ -36,7 +36,7 @@ CardDatabase *CardDatabaseManager::getInstance() return &instance; } -CardDatabaseQuerier *CardDatabaseManager::query() +CardDatabaseQuerier const &CardDatabaseManager::query() { return getInstance()->query(); } \ No newline at end of file diff --git a/libcockatrice_card/libcockatrice/card/database/card_database_manager.h b/libcockatrice_card/libcockatrice/card/database/card_database_manager.h index 074154a41..a269b2e54 100644 --- a/libcockatrice_card/libcockatrice/card/database/card_database_manager.h +++ b/libcockatrice_card/libcockatrice/card/database/card_database_manager.h @@ -63,7 +63,7 @@ public: * @brief Returns the CardDatabaseQuerier of the singleton database. * @return Pointer to CardDatabaseQuerier. */ - static CardDatabaseQuerier *query(); + static CardDatabaseQuerier const &query(); private: /** @brief Private default constructor to enforce singleton. */ diff --git a/libcockatrice_card/libcockatrice/card/database/card_database_querier.cpp b/libcockatrice_card/libcockatrice/card/database/card_database_querier.cpp index 8df0d2e20..43112db6b 100644 --- a/libcockatrice_card/libcockatrice/card/database/card_database_querier.cpp +++ b/libcockatrice_card/libcockatrice/card/database/card_database_querier.cpp @@ -15,10 +15,8 @@ #include #include -CardDatabaseQuerier::CardDatabaseQuerier(QObject *_parent, - const CardDatabase *_db, - const ICardPreferenceProvider *prefs) - : QObject(_parent), db(_db), prefs(prefs) +CardDatabaseQuerier::CardDatabaseQuerier(const CardDatabase *_db, const ICardPreferenceProvider *prefs) + : db(_db), prefs(prefs) { // Invalidate the cached count maps whenever the database contents change. connect(db, &CardDatabase::cardAdded, this, &CardDatabaseQuerier::invalidateCaches); diff --git a/libcockatrice_card/libcockatrice/card/database/card_database_querier.h b/libcockatrice_card/libcockatrice/card/database/card_database_querier.h index a1409b3cc..e6741dc05 100644 --- a/libcockatrice_card/libcockatrice/card/database/card_database_querier.h +++ b/libcockatrice_card/libcockatrice/card/database/card_database_querier.h @@ -25,19 +25,17 @@ struct CardRef; * (e.g., CardInfoPtr, ExactCard, and PrintingInfo) from a CardDatabase. It also applies user * printing preferences via ICardPreferenceProvider when determining preferred printings. */ -class CardDatabaseQuerier : public QObject +class CardDatabaseQuerier { - Q_OBJECT public: /** * @brief Constructs a CardDatabaseQuerier. * - * @param parent Parent QObject. * @param db Pointer to the CardDatabase used for lookups. * @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.