Rename to querier and promote to QObject

Took 39 minutes
This commit is contained in:
Lukas Brübach 2025-09-26 20:01:24 +02:00
parent 7e4a6563ec
commit 78a09da5a5
9 changed files with 43 additions and 40 deletions

View file

@ -24,7 +24,7 @@ set(cockatrice_SOURCES
src/database/card_database.cpp src/database/card_database.cpp
src/database/card_database_loader.cpp src/database/card_database_loader.cpp
src/database/card_database_manager.cpp src/database/card_database_manager.cpp
src/database/card_database_queries.cpp src/database/card_database_querier.cpp
src/database/model/card_database_model.cpp src/database/model/card_database_model.cpp
src/database/model/card_database_display_model.cpp src/database/model/card_database_display_model.cpp
src/database/model/card/card_completer_proxy_model.cpp src/database/model/card/card_completer_proxy_model.cpp

View file

@ -28,7 +28,7 @@ CardDatabase::CardDatabase(QObject *parent) : QObject(parent), loadStatus(NotLoa
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);
queries = new CardDatabaseQueries(this); querier = new CardDatabaseQuerier(this, this);
} }
CardDatabase::~CardDatabase() CardDatabase::~CardDatabase()

View file

@ -4,7 +4,7 @@
#include "../card/exact_card.h" #include "../card/exact_card.h"
#include "../common/card_ref.h" #include "../common/card_ref.h"
#include "card_database_loader.h" #include "card_database_loader.h"
#include "card_database_queries.h" #include "card_database_querier.h"
#include <QBasicMutex> #include <QBasicMutex>
#include <QDate> #include <QDate>
@ -41,7 +41,7 @@ protected:
LoadStatus loadStatus; LoadStatus loadStatus;
CardDatabaseQueries *queries; CardDatabaseQuerier *querier;
private: private:
void checkUnknownSets(); void checkUnknownSets();
@ -67,9 +67,9 @@ public:
{ {
return loadStatus; return loadStatus;
} }
CardDatabaseQueries *query() const CardDatabaseQuerier *query() const
{ {
return queries; return querier;
} }
void enableAllUnknownSets(); void enableAllUnknownSets();
void markAllSetsAsKnown(); void markAllSetsAsKnown();
@ -90,7 +90,7 @@ signals:
void cardRemoved(CardInfoPtr card); void cardRemoved(CardInfoPtr card);
friend class CardDatabaseLoader; friend class CardDatabaseLoader;
friend class CardDatabaseQueries; friend class CardDatabaseQuerier;
}; };
#endif #endif

View file

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

View file

@ -1,4 +1,3 @@
#ifndef CARD_DATABASE_ACCESSOR_H #ifndef CARD_DATABASE_ACCESSOR_H
#define CARD_DATABASE_ACCESSOR_H #define CARD_DATABASE_ACCESSOR_H
@ -14,7 +13,7 @@ public:
// Static method to access the singleton instance // Static method to access the singleton instance
static CardDatabase *getInstance(); static CardDatabase *getInstance();
static CardDatabaseQueries *query(); static CardDatabaseQuerier *query();
private: private:
CardDatabaseManager() = default; // Private constructor CardDatabaseManager() = default; // Private constructor

View file

@ -1,11 +1,11 @@
#include "card_database_queries.h" #include "card_database_querier.h"
#include "../utility/card_set_comparator.h" #include "../utility/card_set_comparator.h"
#include "card_database.h" #include "card_database.h"
#include <qrandom.h> #include <qrandom.h>
CardDatabaseQueries::CardDatabaseQueries(const CardDatabase *_db) : db(_db) CardDatabaseQuerier::CardDatabaseQuerier(QObject *_parent, const CardDatabase *_db) : QObject(_parent), db(_db)
{ {
} }
@ -15,7 +15,7 @@ CardDatabaseQueries::CardDatabaseQueries(const CardDatabase *_db) : db(_db)
* @param cardName The card name to look up * @param cardName The card name to look up
* @return A CardInfoPtr, or null if not corresponding CardInfo is found. * @return A CardInfoPtr, or null if not corresponding CardInfo is found.
*/ */
CardInfoPtr CardDatabaseQueries::getCardInfo(const QString &cardName) const CardInfoPtr CardDatabaseQuerier::getCardInfo(const QString &cardName) const
{ {
return db->cards.value(cardName); return db->cards.value(cardName);
} }
@ -26,7 +26,7 @@ CardInfoPtr CardDatabaseQueries::getCardInfo(const QString &cardName) const
* @param cardNames The card names to look up * @param cardNames The card names to look up
* @return A List of CardInfoPtr. Any failed lookups will be ignored and dropped from the resulting list * @return A List of CardInfoPtr. Any failed lookups will be ignored and dropped from the resulting list
*/ */
QList<CardInfoPtr> CardDatabaseQueries::getCardInfos(const QStringList &cardNames) const QList<CardInfoPtr> CardDatabaseQuerier::getCardInfos(const QStringList &cardNames) const
{ {
QList<CardInfoPtr> cardInfos; QList<CardInfoPtr> cardInfos;
for (const QString &cardName : cardNames) { for (const QString &cardName : cardNames) {
@ -38,12 +38,12 @@ QList<CardInfoPtr> CardDatabaseQueries::getCardInfos(const QStringList &cardName
return cardInfos; return cardInfos;
} }
CardInfoPtr CardDatabaseQueries::getCardBySimpleName(const QString &cardName) const CardInfoPtr CardDatabaseQuerier::getCardBySimpleName(const QString &cardName) const
{ {
return db->simpleNameCards.value(CardInfo::simplifyName(cardName)); return db->simpleNameCards.value(CardInfo::simplifyName(cardName));
} }
CardInfoPtr CardDatabaseQueries::lookupCardByName(const QString &name) const CardInfoPtr CardDatabaseQuerier::lookupCardByName(const QString &name) const
{ {
if (auto info = getCardInfo(name)) if (auto info = getCardInfo(name))
return info; return info;
@ -61,7 +61,7 @@ CardInfoPtr CardDatabaseQueries::lookupCardByName(const QString &name) const
* that entry. If providerId is given but not found, the PrintingInfo will be empty for that entry. * that entry. If providerId is given but not found, the PrintingInfo will be empty for that entry.
* @return A list of cards. Any failed lookups will be ignored and dropped from the resulting list. * @return A list of cards. Any failed lookups will be ignored and dropped from the resulting list.
*/ */
QList<ExactCard> CardDatabaseQueries::getCards(const QList<CardRef> &cardRefs) const QList<ExactCard> CardDatabaseQuerier::getCards(const QList<CardRef> &cardRefs) const
{ {
QList<ExactCard> cards; QList<ExactCard> cards;
for (const auto &cardRef : cardRefs) { for (const auto &cardRef : cardRefs) {
@ -81,7 +81,7 @@ QList<ExactCard> CardDatabaseQueries::getCards(const QList<CardRef> &cardRefs) c
* @param cardRef The card to look up. * @param cardRef The card to look up.
* @return A specific printing of a card, or empty if not found. * @return A specific printing of a card, or empty if not found.
*/ */
ExactCard CardDatabaseQueries::getCard(const CardRef &cardRef) const ExactCard CardDatabaseQuerier::getCard(const CardRef &cardRef) const
{ {
auto info = getCardInfo(cardRef.name); auto info = getCardInfo(cardRef.name);
if (info.isNull()) { if (info.isNull()) {
@ -103,7 +103,7 @@ ExactCard CardDatabaseQueries::getCard(const CardRef &cardRef) const
* @param cardRef The card to look up. * @param cardRef The card to look up.
* @return A specific printing of a card, or empty if not found. * @return A specific printing of a card, or empty if not found.
*/ */
ExactCard CardDatabaseQueries::guessCard(const CardRef &cardRef) const ExactCard CardDatabaseQuerier::guessCard(const CardRef &cardRef) const
{ {
auto card = lookupCardByName(cardRef.name); auto card = lookupCardByName(cardRef.name);
auto printing = auto printing =
@ -112,7 +112,7 @@ ExactCard CardDatabaseQueries::guessCard(const CardRef &cardRef) const
return ExactCard(card, printing); return ExactCard(card, printing);
} }
ExactCard CardDatabaseQueries::getRandomCard() const ExactCard CardDatabaseQuerier::getRandomCard() const
{ {
if (db->cards.isEmpty()) if (db->cards.isEmpty())
return {}; return {};
@ -125,7 +125,7 @@ ExactCard CardDatabaseQueries::getRandomCard() const
return ExactCard{randomCard, getPreferredPrinting(randomCard)}; return ExactCard{randomCard, getPreferredPrinting(randomCard)};
} }
ExactCard CardDatabaseQueries::getCardFromSameSet(const QString &cardName, const PrintingInfo &otherPrinting) const ExactCard CardDatabaseQuerier::getCardFromSameSet(const QString &cardName, const PrintingInfo &otherPrinting) const
{ {
// The source card does not have a printing defined, which means we can't get a card from the same set. // The source card does not have a printing defined, which means we can't get a card from the same set.
if (otherPrinting == PrintingInfo()) { if (otherPrinting == PrintingInfo()) {
@ -147,7 +147,7 @@ ExactCard CardDatabaseQueries::getCardFromSameSet(const QString &cardName, const
* @param providerId The uuid to look for * @param providerId The uuid to look for
* @return The PrintingInfo, or a default-constructed PrintingInfo if not found. * @return The PrintingInfo, or a default-constructed PrintingInfo if not found.
*/ */
PrintingInfo CardDatabaseQueries::findPrintingWithId(const CardInfoPtr &cardInfo, const QString &providerId) const PrintingInfo CardDatabaseQuerier::findPrintingWithId(const CardInfoPtr &cardInfo, const QString &providerId) const
{ {
for (const auto &printings : cardInfo->getSets()) { for (const auto &printings : cardInfo->getSets()) {
for (const auto &printing : printings) { for (const auto &printing : printings) {
@ -160,7 +160,7 @@ PrintingInfo CardDatabaseQueries::findPrintingWithId(const CardInfoPtr &cardInfo
return PrintingInfo(); return PrintingInfo();
} }
PrintingInfo CardDatabaseQueries::getSpecificPrinting(const CardRef &cardRef) const PrintingInfo CardDatabaseQuerier::getSpecificPrinting(const CardRef &cardRef) const
{ {
CardInfoPtr cardInfo = getCardInfo(cardRef.name); CardInfoPtr cardInfo = getCardInfo(cardRef.name);
if (!cardInfo) { if (!cardInfo) {
@ -170,7 +170,7 @@ PrintingInfo CardDatabaseQueries::getSpecificPrinting(const CardRef &cardRef) co
return findPrintingWithId(cardInfo, cardRef.providerId); return findPrintingWithId(cardInfo, cardRef.providerId);
} }
PrintingInfo CardDatabaseQueries::getSpecificPrinting(const QString &cardName, PrintingInfo CardDatabaseQuerier::getSpecificPrinting(const QString &cardName,
const QString &setShortName, const QString &setShortName,
const QString &collectorNumber) const const QString &collectorNumber) const
{ {
@ -208,12 +208,12 @@ PrintingInfo CardDatabaseQueries::getSpecificPrinting(const QString &cardName,
* @param cardInfo The cardInfo to find the preferred printing for * @param cardInfo The cardInfo to find the preferred printing for
* @return A specific printing of a card * @return A specific printing of a card
*/ */
ExactCard CardDatabaseQueries::getPreferredCard(const CardInfoPtr &cardInfo) const ExactCard CardDatabaseQuerier::getPreferredCard(const CardInfoPtr &cardInfo) const
{ {
return ExactCard(cardInfo, getPreferredPrinting(cardInfo)); return ExactCard(cardInfo, getPreferredPrinting(cardInfo));
} }
bool CardDatabaseQueries::isPreferredPrinting(const CardRef &cardRef) const bool CardDatabaseQuerier::isPreferredPrinting(const CardRef &cardRef) const
{ {
if (cardRef.providerId.startsWith("card_")) { if (cardRef.providerId.startsWith("card_")) {
return cardRef.providerId == return cardRef.providerId ==
@ -222,13 +222,13 @@ bool CardDatabaseQueries::isPreferredPrinting(const CardRef &cardRef) const
return cardRef.providerId == getPreferredPrintingProviderId(cardRef.name); return cardRef.providerId == getPreferredPrintingProviderId(cardRef.name);
} }
PrintingInfo CardDatabaseQueries::getPreferredPrinting(const QString &cardName) const PrintingInfo CardDatabaseQuerier::getPreferredPrinting(const QString &cardName) const
{ {
CardInfoPtr cardInfo = getCardInfo(cardName); CardInfoPtr cardInfo = getCardInfo(cardName);
return getPreferredPrinting(cardInfo); return getPreferredPrinting(cardInfo);
} }
PrintingInfo CardDatabaseQueries::getPreferredPrinting(const CardInfoPtr &cardInfo) const PrintingInfo CardDatabaseQuerier::getPreferredPrinting(const CardInfoPtr &cardInfo) const
{ {
if (!cardInfo) { if (!cardInfo) {
return PrintingInfo(nullptr); return PrintingInfo(nullptr);
@ -260,7 +260,7 @@ PrintingInfo CardDatabaseQueries::getPreferredPrinting(const CardInfoPtr &cardIn
return PrintingInfo(nullptr); return PrintingInfo(nullptr);
} }
QString CardDatabaseQueries::getPreferredPrintingProviderId(const QString &cardName) const QString CardDatabaseQuerier::getPreferredPrintingProviderId(const QString &cardName) const
{ {
PrintingInfo preferredPrinting = getPreferredPrinting(cardName); PrintingInfo preferredPrinting = getPreferredPrinting(cardName);
QString uuid = preferredPrinting.getUuid(); QString uuid = preferredPrinting.getUuid();
@ -275,7 +275,7 @@ QString CardDatabaseQueries::getPreferredPrintingProviderId(const QString &cardN
return defaultCardInfo->getName(); return defaultCardInfo->getName();
} }
QStringList CardDatabaseQueries::getAllMainCardTypes() const QStringList CardDatabaseQuerier::getAllMainCardTypes() const
{ {
QSet<QString> types; QSet<QString> types;
for (const auto &card : db->cards.values()) { for (const auto &card : db->cards.values()) {
@ -284,7 +284,7 @@ QStringList CardDatabaseQueries::getAllMainCardTypes() const
return types.values(); return types.values();
} }
QMap<QString, int> CardDatabaseQueries::getAllMainCardTypesWithCount() const QMap<QString, int> CardDatabaseQuerier::getAllMainCardTypesWithCount() const
{ {
QMap<QString, int> typeCounts; QMap<QString, int> typeCounts;
@ -296,7 +296,7 @@ QMap<QString, int> CardDatabaseQueries::getAllMainCardTypesWithCount() const
return typeCounts; return typeCounts;
} }
QMap<QString, int> CardDatabaseQueries::getAllSubCardTypesWithCount() const QMap<QString, int> CardDatabaseQuerier::getAllSubCardTypesWithCount() const
{ {
QMap<QString, int> typeCounts; QMap<QString, int> typeCounts;

View file

@ -1,14 +1,18 @@
#ifndef COCKATRICE_CARD_DATABASE_QUERIES_H #ifndef COCKATRICE_CARD_DATABASE_QUERIER_H
#define COCKATRICE_CARD_DATABASE_QUERIES_H #define COCKATRICE_CARD_DATABASE_QUERIER_H
#include "../card/exact_card.h" #include "../card/exact_card.h"
#include "../common/card_ref.h" #include "../common/card_ref.h"
#include <QObject>
class CardDatabase; class CardDatabase;
class CardDatabaseQueries class CardDatabaseQuerier : public QObject
{ {
Q_OBJECT
public: public:
explicit CardDatabaseQueries(const CardDatabase *db); explicit CardDatabaseQuerier(QObject *parent, const CardDatabase *db);
[[nodiscard]] CardInfoPtr getCardInfo(const QString &cardName) const; [[nodiscard]] CardInfoPtr getCardInfo(const QString &cardName) const;
[[nodiscard]] QList<CardInfoPtr> getCardInfos(const QStringList &cardNames) const; [[nodiscard]] QList<CardInfoPtr> getCardInfos(const QStringList &cardNames) const;
@ -47,4 +51,4 @@ private:
CardInfoPtr lookupCardByName(const QString &name) const; CardInfoPtr lookupCardByName(const QString &name) const;
}; };
#endif // COCKATRICE_CARD_DATABASE_QUERIES_H #endif // COCKATRICE_CARD_DATABASE_QUERIER_H

View file

@ -9,7 +9,7 @@ set(dbconverter_SOURCES
../cockatrice/src/card/exact_card.cpp ../cockatrice/src/card/exact_card.cpp
../cockatrice/src/database/card_database.cpp ../cockatrice/src/database/card_database.cpp
../cockatrice/src/database/card_database_loader.cpp ../cockatrice/src/database/card_database_loader.cpp
../cockatrice/src/database/card_database_queries.cpp ../cockatrice/src/database/card_database_querier.cpp
../cockatrice/src/database/parser/card_database_parser.cpp ../cockatrice/src/database/parser/card_database_parser.cpp
../cockatrice/src/database/parser/cockatrice_xml_3.cpp ../cockatrice/src/database/parser/cockatrice_xml_3.cpp
../cockatrice/src/database/parser/cockatrice_xml_4.cpp ../cockatrice/src/database/parser/cockatrice_xml_4.cpp

View file

@ -22,7 +22,7 @@ add_executable(
../../cockatrice/src/card/exact_card.cpp ../../cockatrice/src/card/exact_card.cpp
../../cockatrice/src/database/card_database.cpp ../../cockatrice/src/database/card_database.cpp
../../cockatrice/src/database/card_database_loader.cpp ../../cockatrice/src/database/card_database_loader.cpp
../../cockatrice/src/database/card_database_queries.cpp ../../cockatrice/src/database/card_database_querier.cpp
../../cockatrice/src/database/parser/card_database_parser.cpp ../../cockatrice/src/database/parser/card_database_parser.cpp
../../cockatrice/src/database/parser/cockatrice_xml_3.cpp ../../cockatrice/src/database/parser/cockatrice_xml_3.cpp
../../cockatrice/src/database/parser/cockatrice_xml_4.cpp ../../cockatrice/src/database/parser/cockatrice_xml_4.cpp
@ -38,7 +38,7 @@ add_executable(
../../cockatrice/src/card/exact_card.cpp ../../cockatrice/src/card/exact_card.cpp
../../cockatrice/src/database/card_database.cpp ../../cockatrice/src/database/card_database.cpp
../../cockatrice/src/database/card_database_loader.cpp ../../cockatrice/src/database/card_database_loader.cpp
../../cockatrice/src/database/card_database_queries.cpp ../../cockatrice/src/database/card_database_querier.cpp
../../cockatrice/src/database/card_database_manager.cpp ../../cockatrice/src/database/card_database_manager.cpp
../../cockatrice/src/database/parser/card_database_parser.cpp ../../cockatrice/src/database/parser/card_database_parser.cpp
../../cockatrice/src/database/parser/cockatrice_xml_3.cpp ../../cockatrice/src/database/parser/cockatrice_xml_3.cpp