From a9684f67cccf3e895d6878e618823bc9fb6f4846 Mon Sep 17 00:00:00 2001 From: RickyRister <42636155+RickyRister@users.noreply.github.com> Date: Mon, 7 Jul 2025 20:41:19 -0700 Subject: [PATCH] Refactor: rename CardInfoPerSet to PrintingInfo (#6024) * remove unnecessary consts * removed unused * rename class * rename variables and methods * rename again * rename variables again * rename field * run formatter --- .../ui/picture_loader/picture_to_load.cpp | 14 +-- .../deck_editor_deck_dock_widget.cpp | 6 +- .../all_zones_card_amount_widget.cpp | 10 +- .../all_zones_card_amount_widget.h | 4 +- .../printing_selector/card_amount_widget.cpp | 22 ++--- .../printing_selector/card_amount_widget.h | 4 +- .../printing_selector/printing_selector.cpp | 22 ++--- .../printing_selector_card_display_widget.cpp | 12 +-- .../printing_selector_card_display_widget.h | 4 +- .../printing_selector_card_overlay_widget.cpp | 12 +-- .../printing_selector_card_overlay_widget.h | 4 +- .../printing_selector_card_sorting_widget.cpp | 96 +++++++++---------- .../printing_selector_card_sorting_widget.h | 12 +-- .../visual_database_display_widget.cpp | 12 +-- cockatrice/src/deck/deck_list_model.cpp | 17 ++-- cockatrice/src/deck/deck_list_model.h | 2 +- cockatrice/src/deck/deck_loader.cpp | 10 +- cockatrice/src/dialogs/dlg_edit_tokens.cpp | 4 +- .../src/dialogs/dlg_select_set_for_cards.cpp | 16 ++-- .../src/game/board/abstract_card_item.cpp | 2 +- cockatrice/src/game/cards/card_database.cpp | 90 ++++++++--------- cockatrice/src/game/cards/card_database.h | 10 +- .../src/game/cards/card_database_model.cpp | 6 +- .../card_database_parser/cockatrice_xml_3.cpp | 12 +-- .../card_database_parser/cockatrice_xml_4.cpp | 16 ++-- cockatrice/src/game/cards/card_info.cpp | 30 +++--- cockatrice/src/game/cards/card_info.h | 52 +++++----- cockatrice/src/game/filters/filter_string.cpp | 10 +- cockatrice/src/game/filters/filter_tree.cpp | 14 +-- cockatrice/src/utility/card_set_comparator.h | 8 +- oracle/src/oracleimporter.cpp | 32 +++---- oracle/src/oracleimporter.h | 10 +- 32 files changed, 288 insertions(+), 287 deletions(-) diff --git a/cockatrice/src/client/ui/picture_loader/picture_to_load.cpp b/cockatrice/src/client/ui/picture_loader/picture_to_load.cpp index 9bbe50e82..96a858fac 100644 --- a/cockatrice/src/client/ui/picture_loader/picture_to_load.cpp +++ b/cockatrice/src/client/ui/picture_loader/picture_to_load.cpp @@ -28,9 +28,9 @@ PictureToLoad::PictureToLoad(CardInfoPtr _card) QList PictureToLoad::extractSetsSorted(const CardInfoPtr &card) { QList sortedSets; - for (const auto &cardInfoPerSetList : card->getSets()) { - for (const auto &set : cardInfoPerSetList) { - sortedSets << set.getPtr(); + for (const auto &printings : card->getSets()) { + for (const auto &printing : printings) { + sortedSets << printing.getSet(); } } if (sortedSets.empty()) { @@ -41,11 +41,11 @@ QList PictureToLoad::extractSetsSorted(const CardInfoPtr &card) // If the user hasn't disabled arts other than their personal preference... if (!SettingsCache::instance().getOverrideAllCardArtWithPersonalPreference()) { // If the pixmapCacheKey corresponds to a specific set, we have to try to load it first. - for (const auto &cardInfoPerSetList : card->getSets()) { - for (const auto &set : cardInfoPerSetList) { - if (QLatin1String("card_") + card->getName() + QString("_") + QString(set.getProperty("uuid")) == + for (const auto &printings : card->getSets()) { + for (const auto &printing : printings) { + if (QLatin1String("card_") + card->getName() + QString("_") + QString(printing.getProperty("uuid")) == card->getPixmapCacheKey()) { - long long setIndex = sortedSets.indexOf(set.getPtr()); + long long setIndex = sortedSets.indexOf(printing.getSet()); CardSetPtr setForCardProviderID = sortedSets.takeAt(setIndex); sortedSets.prepend(setForCardProviderID); } diff --git a/cockatrice/src/client/ui/widgets/deck_editor/deck_editor_deck_dock_widget.cpp b/cockatrice/src/client/ui/widgets/deck_editor/deck_editor_deck_dock_widget.cpp index 03ad65e4f..dbc4f7e93 100644 --- a/cockatrice/src/client/ui/widgets/deck_editor/deck_editor_deck_dock_widget.cpp +++ b/cockatrice/src/client/ui/widgets/deck_editor/deck_editor_deck_dock_widget.cpp @@ -476,9 +476,9 @@ bool DeckEditorDeckDockWidget::swapCard(const QModelIndex ¤tIndex) const QString otherZoneName = zoneName == DECK_ZONE_MAIN ? DECK_ZONE_SIDE : DECK_ZONE_MAIN; // Third argument (true) says create the card no matter what, even if not in DB - QModelIndex newCardIndex = deckModel->addCard( - cardName, CardDatabaseManager::getInstance()->getSpecificSetForCard(cardName, cardProviderID), otherZoneName, - true); + QModelIndex newCardIndex = + deckModel->addCard(cardName, CardDatabaseManager::getInstance()->getSpecificPrinting(cardName, cardProviderID), + otherZoneName, true); recursiveExpand(newCardIndex); return true; diff --git a/cockatrice/src/client/ui/widgets/printing_selector/all_zones_card_amount_widget.cpp b/cockatrice/src/client/ui/widgets/printing_selector/all_zones_card_amount_widget.cpp index 77c7dc6cd..331212f13 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/all_zones_card_amount_widget.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/all_zones_card_amount_widget.cpp @@ -16,7 +16,7 @@ * @param deckView Pointer to the QTreeView for the deck display. * @param cardSizeSlider Pointer to the QSlider used for dynamic font resizing. * @param rootCard The root card for the widget. - * @param setInfoForCard The set information for the card. + * @param printingInfo The printing information for the card. */ AllZonesCardAmountWidget::AllZonesCardAmountWidget(QWidget *parent, AbstractTabDeckEditor *deckEditor, @@ -24,9 +24,9 @@ AllZonesCardAmountWidget::AllZonesCardAmountWidget(QWidget *parent, QTreeView *deckView, QSlider *cardSizeSlider, CardInfoPtr rootCard, - CardInfoPerSet setInfoForCard) + PrintingInfo printingInfo) : QWidget(parent), deckEditor(deckEditor), deckModel(deckModel), deckView(deckView), cardSizeSlider(cardSizeSlider), - rootCard(rootCard), setInfoForCard(setInfoForCard) + rootCard(rootCard), printingInfo(printingInfo) { layout = new QVBoxLayout(this); layout->setAlignment(Qt::AlignHCenter); @@ -36,10 +36,10 @@ AllZonesCardAmountWidget::AllZonesCardAmountWidget(QWidget *parent, zoneLabelMainboard = new ShadowBackgroundLabel(this, tr("Mainboard")); buttonBoxMainboard = new CardAmountWidget(this, deckEditor, deckModel, deckView, cardSizeSlider, rootCard, - setInfoForCard, DECK_ZONE_MAIN); + printingInfo, DECK_ZONE_MAIN); zoneLabelSideboard = new ShadowBackgroundLabel(this, tr("Sideboard")); buttonBoxSideboard = new CardAmountWidget(this, deckEditor, deckModel, deckView, cardSizeSlider, rootCard, - setInfoForCard, DECK_ZONE_SIDE); + printingInfo, DECK_ZONE_SIDE); layout->addWidget(zoneLabelMainboard, 0, Qt::AlignHCenter | Qt::AlignBottom); layout->addWidget(buttonBoxMainboard, 0, Qt::AlignHCenter | Qt::AlignTop); diff --git a/cockatrice/src/client/ui/widgets/printing_selector/all_zones_card_amount_widget.h b/cockatrice/src/client/ui/widgets/printing_selector/all_zones_card_amount_widget.h index 94399b1d6..ba2c2ce2e 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/all_zones_card_amount_widget.h +++ b/cockatrice/src/client/ui/widgets/printing_selector/all_zones_card_amount_widget.h @@ -17,7 +17,7 @@ public: QTreeView *deckView, QSlider *cardSizeSlider, CardInfoPtr rootCard, - CardInfoPerSet setInfoForCard); + PrintingInfo printingInfo); int getMainboardAmount(); int getSideboardAmount(); #if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)) @@ -36,7 +36,7 @@ private: QTreeView *deckView; QSlider *cardSizeSlider; CardInfoPtr rootCard; - CardInfoPerSet setInfoForCard; + PrintingInfo printingInfo; QLabel *zoneLabelMainboard; CardAmountWidget *buttonBoxMainboard; QLabel *zoneLabelSideboard; diff --git a/cockatrice/src/client/ui/widgets/printing_selector/card_amount_widget.cpp b/cockatrice/src/client/ui/widgets/printing_selector/card_amount_widget.cpp index 9a295c207..0832d81bc 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/card_amount_widget.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/card_amount_widget.cpp @@ -12,7 +12,7 @@ * @param deckView Pointer to the QTreeView displaying the deck. * @param cardSizeSlider Pointer to the QSlider for adjusting font size. * @param rootCard The root card to manage within the widget. - * @param setInfoForCard Card set information for the root card. + * @param printingInfo Printing info for the root card. * @param zoneName The zone name (e.g., DECK_ZONE_MAIN or DECK_ZONE_SIDE). */ CardAmountWidget::CardAmountWidget(QWidget *parent, @@ -21,10 +21,10 @@ CardAmountWidget::CardAmountWidget(QWidget *parent, QTreeView *deckView, QSlider *cardSizeSlider, CardInfoPtr &rootCard, - CardInfoPerSet &setInfoForCard, + PrintingInfo &printingInfo, const QString &zoneName) : QWidget(parent), deckEditor(deckEditor), deckModel(deckModel), deckView(deckView), cardSizeSlider(cardSizeSlider), - rootCard(rootCard), setInfoForCard(setInfoForCard), zoneName(zoneName), hovered(false) + rootCard(rootCard), printingInfo(printingInfo), zoneName(zoneName), hovered(false) { layout = new QHBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); @@ -142,18 +142,18 @@ void CardAmountWidget::updateCardCount() */ void CardAmountWidget::addPrinting(const QString &zone) { - auto newCardIndex = deckModel->addCard(rootCard->getName(), setInfoForCard, zone); + auto newCardIndex = deckModel->addCard(rootCard->getName(), printingInfo, zone); recursiveExpand(newCardIndex); QModelIndex find_card = deckModel->findCard(rootCard->getName(), zone); if (find_card.isValid() && find_card != newCardIndex) { auto amount = deckModel->data(find_card, Qt::DisplayRole); for (int i = 0; i < amount.toInt() - 1; i++) { - deckModel->addCard(rootCard->getName(), setInfoForCard, zone); + deckModel->addCard(rootCard->getName(), printingInfo, zone); } deckModel->removeRow(find_card.row(), find_card.parent()); } - newCardIndex = deckModel->findCard(rootCard->getName(), zone, setInfoForCard.getProperty("uuid"), - setInfoForCard.getProperty("num")); + newCardIndex = deckModel->findCard(rootCard->getName(), zone, printingInfo.getProperty("uuid"), + printingInfo.getProperty("num")); deckView->setCurrentIndex(newCardIndex); deckView->setFocus(Qt::FocusReason::MouseFocusReason); deckEditor->setModified(true); @@ -235,8 +235,8 @@ void CardAmountWidget::offsetCountAtIndex(const QModelIndex &idx, int offset) */ void CardAmountWidget::decrementCardHelper(const QString &zone) { - QModelIndex idx = deckModel->findCard(rootCard->getName(), zone, setInfoForCard.getProperty("uuid"), - setInfoForCard.getProperty("num")); + QModelIndex idx = deckModel->findCard(rootCard->getName(), zone, printingInfo.getProperty("uuid"), + printingInfo.getProperty("num")); offsetCountAtIndex(idx, -1); deckEditor->setModified(true); } @@ -249,7 +249,7 @@ void CardAmountWidget::decrementCardHelper(const QString &zone) */ int CardAmountWidget::countCardsInZone(const QString &deckZone) { - if (setInfoForCard.getProperty("uuid").isEmpty()) { + if (printingInfo.getProperty("uuid").isEmpty()) { return 0; // Cards without uuids/providerIds CANNOT match another card, they are undefined for us. } @@ -286,7 +286,7 @@ int CardAmountWidget::countCardsInZone(const QString &deckZone) } for (int k = 0; k < currentCard->getNumber(); ++k) { - if (currentCard->getCardProviderId() == setInfoForCard.getProperty("uuid")) { + if (currentCard->getCardProviderId() == printingInfo.getProperty("uuid")) { count++; } } diff --git a/cockatrice/src/client/ui/widgets/printing_selector/card_amount_widget.h b/cockatrice/src/client/ui/widgets/printing_selector/card_amount_widget.h index 74d8793f0..6761befca 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/card_amount_widget.h +++ b/cockatrice/src/client/ui/widgets/printing_selector/card_amount_widget.h @@ -23,7 +23,7 @@ public: QTreeView *deckView, QSlider *cardSizeSlider, CardInfoPtr &rootCard, - CardInfoPerSet &setInfoForCard, + PrintingInfo &printingInfo, const QString &zoneName); int countCardsInZone(const QString &deckZone); @@ -41,7 +41,7 @@ private: QTreeView *deckView; QSlider *cardSizeSlider; CardInfoPtr rootCard; - CardInfoPerSet setInfoForCard; + PrintingInfo printingInfo; QString zoneName; QHBoxLayout *layout; DynamicFontSizePushButton *incrementButton; diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp index 0bb7061fd..11bd87e19 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp @@ -224,27 +224,27 @@ void PrintingSelector::getAllSetsForCurrentCard() return; } - CardInfoPerSetMap cardInfoPerSets = selectedCard->getSets(); - const QList sortedSets = sortToolBar->sortSets(cardInfoPerSets); - const QList filteredSets = - sortToolBar->filterSets(sortedSets, searchBar->getSearchText().trimmed().toLower()); - QList setsToUse; + SetToPrintingsMap setMap = selectedCard->getSets(); + const QList sortedPrintings = sortToolBar->sortSets(setMap); + const QList filteredPrintings = + sortToolBar->filterSets(sortedPrintings, searchBar->getSearchText().trimmed().toLower()); + QList printingsToUse; if (SettingsCache::instance().getBumpSetsWithCardsInDeckToTop()) { - setsToUse = sortToolBar->prependPrintingsInDeck(filteredSets, selectedCard, deckModel); + printingsToUse = sortToolBar->prependPrintingsInDeck(filteredPrintings, selectedCard, deckModel); } else { - setsToUse = filteredSets; + printingsToUse = filteredPrintings; } - setsToUse = sortToolBar->prependPinnedPrintings(setsToUse, selectedCard->getName()); + printingsToUse = sortToolBar->prependPinnedPrintings(printingsToUse, selectedCard->getName()); // Defer widget creation currentIndex = 0; connect(widgetLoadingBufferTimer, &QTimer::timeout, this, [=, this]() mutable { - for (int i = 0; i < BATCH_SIZE && currentIndex < setsToUse.size(); ++i, ++currentIndex) { + for (int i = 0; i < BATCH_SIZE && currentIndex < printingsToUse.size(); ++i, ++currentIndex) { auto *cardDisplayWidget = new PrintingSelectorCardDisplayWidget(this, deckEditor, deckModel, deckView, cardSizeWidget->getSlider(), selectedCard, - setsToUse[currentIndex], currentZone); + printingsToUse[currentIndex], currentZone); flowWidget->addWidget(cardDisplayWidget); cardDisplayWidget->clampSetNameToPicture(); connect(cardDisplayWidget, &PrintingSelectorCardDisplayWidget::cardPreferenceChanged, this, @@ -252,7 +252,7 @@ void PrintingSelector::getAllSetsForCurrentCard() } // Stop timer when done - if (currentIndex >= setsToUse.size()) { + if (currentIndex >= printingsToUse.size()) { widgetLoadingBufferTimer->stop(); } }); diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.cpp b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.cpp index cebf645cb..877cff2d5 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.cpp @@ -24,7 +24,7 @@ * @param _deckView The QTreeView instance displaying the deck. * @param _cardSizeSlider The slider controlling the size of the displayed card. * @param _rootCard The root card object, representing the card to be displayed. - * @param _setInfoForCard The set-specific information for the card being displayed. + * @param _printingInfo The printing info for the card being displayed. * @param _currentZone The current zone in which the card is located. */ PrintingSelectorCardDisplayWidget::PrintingSelectorCardDisplayWidget(QWidget *parent, @@ -33,10 +33,10 @@ PrintingSelectorCardDisplayWidget::PrintingSelectorCardDisplayWidget(QWidget *pa QTreeView *_deckView, QSlider *_cardSizeSlider, CardInfoPtr _rootCard, - const CardInfoPerSet &_setInfoForCard, + const PrintingInfo &_printingInfo, QString &_currentZone) : QWidget(parent), deckEditor(_deckEditor), deckModel(_deckModel), deckView(_deckView), - cardSizeSlider(_cardSizeSlider), rootCard(std::move(_rootCard)), setInfoForCard(_setInfoForCard), + cardSizeSlider(_cardSizeSlider), rootCard(std::move(_rootCard)), printingInfo(_printingInfo), currentZone(_currentZone) { layout = new QVBoxLayout(this); @@ -45,15 +45,15 @@ PrintingSelectorCardDisplayWidget::PrintingSelectorCardDisplayWidget(QWidget *pa // Create the overlay widget for the card display overlayWidget = new PrintingSelectorCardOverlayWidget(this, deckEditor, deckModel, deckView, cardSizeSlider, - rootCard, setInfoForCard); + rootCard, _printingInfo); connect(overlayWidget, &PrintingSelectorCardOverlayWidget::cardPreferenceChanged, this, [this]() { emit cardPreferenceChanged(); }); // Create the widget to display the set name and collector's number const QString combinedSetName = - QString(setInfoForCard.getPtr()->getLongName() + " (" + setInfoForCard.getPtr()->getShortName() + ")"); + QString(_printingInfo.getSet()->getLongName() + " (" + _printingInfo.getSet()->getShortName() + ")"); setNameAndCollectorsNumberDisplayWidget = new SetNameAndCollectorsNumberDisplayWidget( - this, combinedSetName, setInfoForCard.getProperty("num"), cardSizeSlider); + this, combinedSetName, _printingInfo.getProperty("num"), cardSizeSlider); // Add the widgets to the layout layout->addWidget(overlayWidget, 0, Qt::AlignHCenter); diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.h b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.h index b6e4ee157..4bda0541a 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.h +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.h @@ -21,7 +21,7 @@ public: QTreeView *_deckView, QSlider *_cardSizeSlider, CardInfoPtr _rootCard, - const CardInfoPerSet &_setInfoForCard, + const PrintingInfo &_printingInfo, QString &_currentZone); public slots: @@ -39,7 +39,7 @@ private: QSlider *cardSizeSlider; CardInfoPtr rootCard; CardInfoPtr setCard; - CardInfoPerSet setInfoForCard; + PrintingInfo printingInfo; QString currentZone; PrintingSelectorCardOverlayWidget *overlayWidget; }; diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_overlay_widget.cpp b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_overlay_widget.cpp index 5604046cd..cd6b08f25 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_overlay_widget.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_overlay_widget.cpp @@ -22,7 +22,7 @@ * @param _deckView The QTreeView instance displaying the deck. * @param _cardSizeSlider The slider controlling the size of the card. * @param _rootCard The root card object that contains information about the card. - * @param _setInfoForCard The set-specific information for the card being displayed. + * @param _printingInfo The printing-specific information for the card being displayed. */ PrintingSelectorCardOverlayWidget::PrintingSelectorCardOverlayWidget(QWidget *parent, AbstractTabDeckEditor *_deckEditor, @@ -30,9 +30,9 @@ PrintingSelectorCardOverlayWidget::PrintingSelectorCardOverlayWidget(QWidget *pa QTreeView *_deckView, QSlider *_cardSizeSlider, CardInfoPtr _rootCard, - const CardInfoPerSet &_setInfoForCard) + const PrintingInfo &_printingInfo) : QWidget(parent), deckEditor(_deckEditor), deckModel(_deckModel), deckView(_deckView), - cardSizeSlider(_cardSizeSlider), rootCard(std::move(_rootCard)), setInfoForCard(_setInfoForCard) + cardSizeSlider(_cardSizeSlider), rootCard(std::move(_rootCard)), printingInfo(_printingInfo) { // Set up the main layout auto *mainLayout = new QVBoxLayout(this); @@ -45,13 +45,13 @@ PrintingSelectorCardOverlayWidget::PrintingSelectorCardOverlayWidget(QWidget *pa cardInfoPicture->setMinimumSize(0, 0); cardInfoPicture->setScaleFactor(cardSizeSlider->value()); setCard = CardDatabaseManager::getInstance()->getCardByNameAndProviderId(rootCard->getName(), - setInfoForCard.getProperty("uuid")); + _printingInfo.getProperty("uuid")); cardInfoPicture->setCard(setCard); mainLayout->addWidget(cardInfoPicture); // Add AllZonesCardAmountWidget allZonesCardAmountWidget = - new AllZonesCardAmountWidget(this, deckEditor, deckModel, deckView, cardSizeSlider, setCard, setInfoForCard); + new AllZonesCardAmountWidget(this, deckEditor, deckModel, deckView, cardSizeSlider, setCard, _printingInfo); allZonesCardAmountWidget->raise(); // Ensure it's on top of the picture // Set initial visibility based on amounts @@ -172,7 +172,7 @@ void PrintingSelectorCardOverlayWidget::customMenu(QPoint point) const auto &preferredProviderId = SettingsCache::instance().cardOverrides().getCardPreferenceOverride(rootCard->getName()); - const auto &cardProviderId = setInfoForCard.getProperty("uuid"); + const auto &cardProviderId = printingInfo.getProperty("uuid"); if (preferredProviderId.isEmpty() || preferredProviderId != cardProviderId) { auto *pinAction = preferenceMenu->addAction(tr("Pin Printing")); diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_overlay_widget.h b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_overlay_widget.h index 1741c91dc..5d9a8c93d 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_overlay_widget.h +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_overlay_widget.h @@ -20,7 +20,7 @@ public: QTreeView *_deckView, QSlider *_cardSizeSlider, CardInfoPtr _rootCard, - const CardInfoPerSet &_setInfoForCard); + const PrintingInfo &_printingInfo); protected: void resizeEvent(QResizeEvent *event) override; @@ -45,7 +45,7 @@ private: QSlider *cardSizeSlider; CardInfoPtr rootCard; CardInfoPtr setCard; - CardInfoPerSet setInfoForCard; + PrintingInfo printingInfo; }; #endif // PRINTING_SELECTOR_CARD_OVERLAY_WIDGET_H diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.cpp b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.cpp index faa3fd6ff..348e5cb1d 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.cpp @@ -73,16 +73,16 @@ void PrintingSelectorCardSortingWidget::updateSortSetting() * - Contained in Deck * - Potential Cards in Deck * - * @param cardInfoPerSets The list of card sets to be sorted. - * @return A sorted list of card sets. + * @param setMap The list of card sets to be sorted. + * @return A sorted list of printings. */ -QList PrintingSelectorCardSortingWidget::sortSets(const CardInfoPerSetMap &cardInfoPerSets) +QList PrintingSelectorCardSortingWidget::sortSets(const SetToPrintingsMap &setMap) { QList sortedSets; - for (const auto &cardInfoPerSetList : cardInfoPerSets) { - for (const auto &set : cardInfoPerSetList) { - sortedSets << set.getPtr(); + for (const auto &printingInfos : setMap) { + for (const auto &set : printingInfos) { + sortedSets << set.getSet(); break; } } @@ -98,14 +98,14 @@ QList PrintingSelectorCardSortingWidget::sortSets(const CardInfo std::sort(sortedSets.begin(), sortedSets.end(), SetReleaseDateComparator()); } - QList sortedCardInfoPerSets; - // Reconstruct sorted list of CardInfoPerSet + QList sortedPrintings; + // Reconstruct sorted list of PrintingInfo for (const auto &set : sortedSets) { - for (auto it = cardInfoPerSets.begin(); it != cardInfoPerSets.end(); ++it) { - for (const auto &cardInfoPerSet : it.value()) { - if (cardInfoPerSet.getPtr() == set) { - if (!sortedCardInfoPerSets.contains(cardInfoPerSet)) { - sortedCardInfoPerSets << cardInfoPerSet; + for (auto it = setMap.begin(); it != setMap.end(); ++it) { + for (const auto &printingInfo : it.value()) { + if (printingInfo.getSet() == set) { + if (!sortedPrintings.contains(printingInfo)) { + sortedPrintings << printingInfo; } } } @@ -113,10 +113,10 @@ QList PrintingSelectorCardSortingWidget::sortSets(const CardInfo } if (descendingSort) { - std::reverse(sortedCardInfoPerSets.begin(), sortedCardInfoPerSets.end()); + std::reverse(sortedPrintings.begin(), sortedPrintings.end()); } - return sortedCardInfoPerSets; + return sortedPrintings; } /** @@ -126,81 +126,81 @@ QList PrintingSelectorCardSortingWidget::sortSets(const CardInfo * text. If the search text matches either the long or short name of a card set, that set is included in the filtered * list. * - * @param sets The list of card sets to be filtered. + * @param printings The list of printings to be filtered. * @param searchText The search text used to filter the card sets. * @return A filtered list of card sets. */ -QList PrintingSelectorCardSortingWidget::filterSets(const QList &sets, - const QString &searchText) +QList PrintingSelectorCardSortingWidget::filterSets(const QList &printings, + const QString &searchText) { if (searchText.isEmpty()) { - return sets; + return printings; } - QList filteredSets; + QList filteredPrintings; - for (const auto &set : sets) { - const QString longName = set.getPtr()->getLongName().toLower(); - const QString shortName = set.getPtr()->getShortName().toLower(); + for (const auto &printing : printings) { + const QString longName = printing.getSet()->getLongName().toLower(); + const QString shortName = printing.getSet()->getShortName().toLower(); if (longName.contains(searchText) || shortName.contains(searchText)) { - filteredSets << set; + filteredPrintings << printing; } } - return filteredSets; + return filteredPrintings; } -QList PrintingSelectorCardSortingWidget::prependPinnedPrintings(const QList &sets, - const QString &cardName) +QList PrintingSelectorCardSortingWidget::prependPinnedPrintings(const QList &printings, + const QString &cardName) { - auto setsToUse = sets; + auto printingsToUse = printings; const auto &cardProviderId = SettingsCache::instance().cardOverrides().getCardPreferenceOverride(cardName); if (!cardProviderId.isEmpty()) { - for (int i = 0; i < setsToUse.size(); ++i) { - const auto &card = setsToUse[i]; + for (int i = 0; i < printingsToUse.size(); ++i) { + const auto &card = printingsToUse[i]; if (card.getProperty("uuid") == cardProviderId) { - setsToUse.move(i, 0); + printingsToUse.move(i, 0); break; } } } - return setsToUse; + return printingsToUse; } /** - * @brief Prepend card printings that are contained in the deck to the list of card sets. + * @brief Prepend card printings that are contained in the deck to the list of printings. * - * This function adjusts the list of card sets by moving the printings that are already contained in the deck to the + * This function adjusts the list of printings by moving the printings that are already contained in the deck to the * beginning of the list, sorted by the count of cards in the deck. * - * @param sets The original list of card sets. + * @param printings The original list of printings. * @param selectedCard The currently selected card. * @param deckModel The model representing the deck. - * @return A list of card sets with the printings contained in the deck prepended. + * @return A list of printings with the printings contained in the deck prepended. */ -QList PrintingSelectorCardSortingWidget::prependPrintingsInDeck(const QList &sets, - const CardInfoPtr &selectedCard, - DeckListModel *deckModel) +QList PrintingSelectorCardSortingWidget::prependPrintingsInDeck(const QList &printings, + const CardInfoPtr &selectedCard, + DeckListModel *deckModel) { if (!selectedCard) { return {}; } - CardInfoPerSetMap cardInfoPerSets = selectedCard->getSets(); - QList> countList; + SetToPrintingsMap setMap = selectedCard->getSets(); + QList> countList; // Collect sets with their counts - for (const auto &cardInfoPerSetList : cardInfoPerSets) { - for (const auto &cardInfoPerSet : cardInfoPerSetList) { + for (const auto &printingList : setMap) { + for (const auto &printing : printingList) { QModelIndex find_card = - deckModel->findCard(selectedCard->getName(), DECK_ZONE_MAIN, cardInfoPerSet.getProperty("uuid")); + deckModel->findCard(selectedCard->getName(), DECK_ZONE_MAIN, printing.getProperty("uuid")); if (find_card.isValid()) { int count = deckModel->data(find_card, Qt::DisplayRole).toInt(); // Ensure the count is treated as an integer if (count > 0) { - countList.append(qMakePair(cardInfoPerSet, count)); + countList.append(qMakePair(printing, count)); } } break; @@ -209,16 +209,16 @@ QList PrintingSelectorCardSortingWidget::prependPrintingsInDeck( // Sort sets by count in descending numerical order std::sort(countList.begin(), countList.end(), - [](const QPair &a, const QPair &b) { + [](const QPair &a, const QPair &b) { return a.second > b.second; // Ensure numerical comparison }); // Create a copy of the original list to modify - QList result = sets; + QList result = printings; // Prepend sorted sets and remove them from the original list for (const auto &pair : countList) { - auto it = std::find_if(result.begin(), result.end(), [&pair](const CardInfoPerSet &item) { + auto it = std::find_if(result.begin(), result.end(), [&pair](const PrintingInfo &item) { return item.getProperty("uuid") == pair.first.getProperty("uuid"); }); if (it != result.end()) { diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.h b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.h index 4c8d304aa..c91b363c9 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.h +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.h @@ -12,12 +12,12 @@ class PrintingSelectorCardSortingWidget : public QWidget Q_OBJECT public: explicit PrintingSelectorCardSortingWidget(PrintingSelector *parent); - QList sortSets(const CardInfoPerSetMap &cardInfoPerSets); - QList filterSets(const QList &sets, const QString &searchText); - QList prependPinnedPrintings(const QList &sets, const QString &cardName); - QList prependPrintingsInDeck(const QList &sets, - const CardInfoPtr &selectedCard, - DeckListModel *deckModel); + QList sortSets(const SetToPrintingsMap &setMap); + QList filterSets(const QList &printings, const QString &searchText); + QList prependPinnedPrintings(const QList &printings, const QString &cardName); + QList prependPrintingsInDeck(const QList &printings, + const CardInfoPtr &selectedCard, + DeckListModel *deckModel); public slots: void updateSortOrder(); diff --git a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.cpp b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.cpp index aee00b9d7..b1d5463ee 100644 --- a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.cpp @@ -230,11 +230,11 @@ void VisualDatabaseDisplayWidget::populateCards() if (CardInfoPtr info = CardDatabaseManager::getInstance()->getCard(name.toString())) { if (setFilter) { - CardInfoPerSetMap setMap = info->getSets(); + SetToPrintingsMap setMap = info->getSets(); if (setMap.contains(setFilter->term())) { - for (CardInfoPerSet cardSetInstance : setMap[setFilter->term()]) { + for (PrintingInfo printing : setMap[setFilter->term()]) { addCard(CardDatabaseManager::getInstance()->getCardByNameAndProviderId( - name.toString(), cardSetInstance.getProperty("uuid"))); + name.toString(), printing.getProperty("uuid"))); } } } else { @@ -296,11 +296,11 @@ void VisualDatabaseDisplayWidget::loadNextPage() QVariant name = databaseDisplayModel->data(index, Qt::DisplayRole); if (CardInfoPtr info = CardDatabaseManager::getInstance()->getCard(name.toString())) { if (setFilter) { - CardInfoPerSetMap setMap = info->getSets(); + SetToPrintingsMap setMap = info->getSets(); if (setMap.contains(setFilter->term())) { - for (CardInfoPerSet cardSetInstance : setMap[setFilter->term()]) { + for (PrintingInfo printing : setMap[setFilter->term()]) { addCard(CardDatabaseManager::getInstance()->getCardByNameAndProviderId( - name.toString(), cardSetInstance.getProperty("uuid"))); + name.toString(), printing.getProperty("uuid"))); } } } else { diff --git a/cockatrice/src/deck/deck_list_model.cpp b/cockatrice/src/deck/deck_list_model.cpp index df1cc6ca8..4111b3be5 100644 --- a/cockatrice/src/deck/deck_list_model.cpp +++ b/cockatrice/src/deck/deck_list_model.cpp @@ -367,17 +367,16 @@ QModelIndex DeckListModel::findCard(const QString &cardName, QModelIndex DeckListModel::addPreferredPrintingCard(const QString &cardName, const QString &zoneName, bool abAddAnyway) { - return addCard(cardName, CardDatabaseManager::getInstance()->getPreferredSetForCard(cardName), zoneName, - abAddAnyway); + return addCard(cardName, CardDatabaseManager::getInstance()->getPreferredPrinting(cardName), zoneName, abAddAnyway); } QModelIndex DeckListModel::addCard(const QString &cardName, - const CardInfoPerSet &cardInfoSet, + const PrintingInfo &printingInfo, const QString &zoneName, bool abAddAnyway) { CardInfoPtr cardInfo = - CardDatabaseManager::getInstance()->getCardByNameAndProviderId(cardName, cardInfoSet.getProperty("uuid")); + CardDatabaseManager::getInstance()->getCardByNameAndProviderId(cardName, printingInfo.getProperty("uuid")); if (cardInfo == nullptr) { if (abAddAnyway) { @@ -398,15 +397,15 @@ QModelIndex DeckListModel::addCard(const QString &cardName, const QModelIndex parentIndex = nodeToIndex(groupNode); auto *cardNode = dynamic_cast(groupNode->findCardChildByNameProviderIdAndNumber( - cardName, cardInfoSet.getProperty("uuid"), cardInfoSet.getProperty("num"))); - const auto cardSetName = cardInfoSet.getPtr().isNull() ? "" : cardInfoSet.getPtr()->getCorrectedShortName(); + cardName, printingInfo.getProperty("uuid"), printingInfo.getProperty("num"))); + const auto cardSetName = printingInfo.getSet().isNull() ? "" : printingInfo.getSet()->getCorrectedShortName(); if (!cardNode) { // Determine the correct index int insertRow = findSortedInsertRow(groupNode, cardInfo); auto *decklistCard = deckList->addCard(cardInfo->getName(), zoneName, insertRow, cardSetName, - cardInfoSet.getProperty("num"), cardInfoSet.getProperty("uuid")); + printingInfo.getProperty("num"), printingInfo.getProperty("uuid")); beginInsertRows(parentIndex, insertRow, insertRow); cardNode = new DecklistModelCardNode(decklistCard, groupNode, insertRow); @@ -414,8 +413,8 @@ QModelIndex DeckListModel::addCard(const QString &cardName, } else { cardNode->setNumber(cardNode->getNumber() + 1); cardNode->setCardSetShortName(cardSetName); - cardNode->setCardCollectorNumber(cardInfoSet.getProperty("num")); - cardNode->setCardProviderId(cardInfoSet.getProperty("uuid")); + cardNode->setCardCollectorNumber(printingInfo.getProperty("num")); + cardNode->setCardProviderId(printingInfo.getProperty("uuid")); deckList->refreshDeckHash(); } sort(lastKnownColumn, lastKnownOrder); diff --git a/cockatrice/src/deck/deck_list_model.h b/cockatrice/src/deck/deck_list_model.h index 66c358829..84fd0c05a 100644 --- a/cockatrice/src/deck/deck_list_model.h +++ b/cockatrice/src/deck/deck_list_model.h @@ -112,7 +112,7 @@ public: const QString &cardNumber = "") const; QModelIndex addPreferredPrintingCard(const QString &cardName, const QString &zoneName, bool abAddAnyway); QModelIndex addCard(const ::QString &cardName, - const CardInfoPerSet &cardInfoSet, + const PrintingInfo &printingInfo, const QString &zoneName, bool abAddAnyway = false); int findSortedInsertRow(InnerDecklistNode *parent, CardInfoPtr cardInfo) const; diff --git a/cockatrice/src/deck/deck_loader.cpp b/cockatrice/src/deck/deck_loader.cpp index 9d58db7e4..7e85d874f 100644 --- a/cockatrice/src/deck/deck_loader.cpp +++ b/cockatrice/src/deck/deck_loader.cpp @@ -324,12 +324,12 @@ struct SetProviderIdToPreferred void operator()(const InnerDecklistNode *node, DecklistCardNode *card) const { Q_UNUSED(node); - CardInfoPerSet preferredSet = CardDatabaseManager::getInstance()->getSpecificSetForCard( + PrintingInfo preferredPrinting = CardDatabaseManager::getInstance()->getSpecificPrinting( card->getName(), CardDatabaseManager::getInstance()->getPreferredPrintingProviderIdForCard(card->getName())); - QString providerId = preferredSet.getProperty("uuid"); - QString setShortName = preferredSet.getPtr()->getShortName(); - QString collectorNumber = preferredSet.getProperty("num"); + QString providerId = preferredPrinting.getProperty("uuid"); + QString setShortName = preferredPrinting.getSet()->getShortName(); + QString collectorNumber = preferredPrinting.getProperty("num"); card->setCardProviderId(providerId); card->setCardCollectorNumber(collectorNumber); @@ -360,7 +360,7 @@ void DeckLoader::resolveSetNameAndNumberToProviderID() // Retrieve the providerId based on setName and collectorNumber QString providerId = CardDatabaseManager::getInstance() - ->getSpecificSetForCard(card->getName(), card->getCardSetShortName(), card->getCardCollectorNumber()) + ->getSpecificPrinting(card->getName(), card->getCardSetShortName(), card->getCardCollectorNumber()) .getProperty("uuid"); // Set the providerId on the card diff --git a/cockatrice/src/dialogs/dlg_edit_tokens.cpp b/cockatrice/src/dialogs/dlg_edit_tokens.cpp index e51bbf369..a93a77963 100644 --- a/cockatrice/src/dialogs/dlg_edit_tokens.cpp +++ b/cockatrice/src/dialogs/dlg_edit_tokens.cpp @@ -162,8 +162,8 @@ void DlgEditTokens::actAddToken() } QString setName = CardSet::TOKENS_SETNAME; - CardInfoPerSetMap sets; - sets[setName].append(CardInfoPerSet(databaseModel->getDatabase()->getSet(setName))); + SetToPrintingsMap sets; + sets[setName].append(PrintingInfo(databaseModel->getDatabase()->getSet(setName))); CardInfoPtr card = CardInfo::newInstance(name, "", true, QVariantHash(), QList(), QList(), sets, false, false, -1, false); card->setCardType("Token"); diff --git a/cockatrice/src/dialogs/dlg_select_set_for_cards.cpp b/cockatrice/src/dialogs/dlg_select_set_for_cards.cpp index 1dea30e89..d6067644e 100644 --- a/cockatrice/src/dialogs/dlg_select_set_for_cards.cpp +++ b/cockatrice/src/dialogs/dlg_select_set_for_cards.cpp @@ -152,7 +152,7 @@ void DlgSelectSetForCards::actOK() continue; } model->removeRow(find_card.row(), find_card.parent()); - model->addCard(card, CardDatabaseManager::getInstance()->getSpecificSetForCard(card, modifiedSet, ""), + model->addCard(card, CardDatabaseManager::getInstance()->getSpecificPrinting(card, modifiedSet, ""), DECK_ZONE_MAIN); } } @@ -226,8 +226,8 @@ QMap DlgSelectSetForCards::getSetsForCards() if (!infoPtr) continue; - CardInfoPerSetMap infoPerSetMap = infoPtr->getSets(); - for (auto it = infoPerSetMap.begin(); it != infoPerSetMap.end(); ++it) { + SetToPrintingsMap setMap = infoPtr->getSets(); + for (auto it = setMap.begin(); it != setMap.end(); ++it) { setCounts[it.key()]++; } } @@ -297,7 +297,7 @@ void DlgSelectSetForCards::updateCardLists() } else { CardInfoPtr infoPtr = CardDatabaseManager::getInstance()->getCardByNameAndProviderId( currentCard->getName(), CardDatabaseManager::getInstance() - ->getSpecificSetForCard(currentCard->getName(), foundSetName, "") + ->getSpecificPrinting(currentCard->getName(), foundSetName, "") .getProperty("uuid")); CardInfoPictureWidget *picture_widget = new CardInfoPictureWidget(modifiedCardsFlowWidget); picture_widget->setCard(infoPtr); @@ -380,8 +380,8 @@ QMap DlgSelectSetForCards::getCardsForSets() if (!infoPtr) continue; - CardInfoPerSetMap infoPerSetMap = infoPtr->getSets(); - for (auto it = infoPerSetMap.begin(); it != infoPerSetMap.end(); ++it) { + SetToPrintingsMap setMap = infoPtr->getSets(); + for (auto it = setMap.begin(); it != setMap.end(); ++it) { setCards[it.key()].append(currentCard->getName()); } } @@ -628,7 +628,7 @@ void SetEntryWidget::updateCardDisplayWidgets() CardInfoPictureWidget *picture_widget = new CardInfoPictureWidget(cardListContainer); picture_widget->setCard(CardDatabaseManager::getInstance()->getCardByNameAndProviderId( cardName, - CardDatabaseManager::getInstance()->getSpecificSetForCard(cardName, setName, nullptr).getProperty("uuid"))); + CardDatabaseManager::getInstance()->getSpecificPrinting(cardName, setName, nullptr).getProperty("uuid"))); cardListContainer->addWidget(picture_widget); } @@ -636,7 +636,7 @@ void SetEntryWidget::updateCardDisplayWidgets() CardInfoPictureWidget *picture_widget = new CardInfoPictureWidget(alreadySelectedCardListContainer); picture_widget->setCard(CardDatabaseManager::getInstance()->getCardByNameAndProviderId( cardName, - CardDatabaseManager::getInstance()->getSpecificSetForCard(cardName, setName, nullptr).getProperty("uuid"))); + CardDatabaseManager::getInstance()->getSpecificPrinting(cardName, setName, nullptr).getProperty("uuid"))); alreadySelectedCardListContainer->addWidget(picture_widget); } } diff --git a/cockatrice/src/game/board/abstract_card_item.cpp b/cockatrice/src/game/board/abstract_card_item.cpp index 0623afb07..b93ad7271 100644 --- a/cockatrice/src/game/board/abstract_card_item.cpp +++ b/cockatrice/src/game/board/abstract_card_item.cpp @@ -67,7 +67,7 @@ void AbstractCardItem::refreshCardInfo() QVariantHash properties = QVariantHash(); info = CardInfo::newInstance(name, "", true, QVariantHash(), QList(), QList(), - CardInfoPerSetMap(), false, false, -1, false); + SetToPrintingsMap(), false, false, -1, false); } if (info.data()) { connect(info.data(), &CardInfo::pixmapUpdated, this, &AbstractCardItem::pixmapUpdated); diff --git a/cockatrice/src/game/cards/card_database.cpp b/cockatrice/src/game/cards/card_database.cpp index 5c2c89005..60f464c10 100644 --- a/cockatrice/src/game/cards/card_database.cpp +++ b/cockatrice/src/game/cards/card_database.cpp @@ -73,9 +73,9 @@ void CardDatabase::addCard(CardInfoPtr card) // if card already exists just add the new set property if (cards.contains(card->getName())) { CardInfoPtr sameCard = cards[card->getName()]; - for (const auto &cardInfoPerSetList : card->getSets()) { - for (const CardInfoPerSet &set : cardInfoPerSetList) { - sameCard->addToSet(set.getPtr(), set); + for (const auto &printings : card->getSets()) { + for (const PrintingInfo &printing : printings) { + sameCard->addToSet(printing.getSet(), printing); } } return; @@ -147,12 +147,12 @@ CardInfoPtr CardDatabase::getCardByNameAndProviderId(const QString &cardName, co return info; } - for (const auto &cardInfoPerSetList : info->getSets()) { - for (const auto &set : cardInfoPerSetList) { - if (set.getProperty("uuid") == providerId) { + for (const auto &printings : info->getSets()) { + for (const auto &printing : printings) { + if (printing.getProperty("uuid") == providerId) { CardInfoPtr cardFromSpecificSet = info->clone(); cardFromSpecificSet->setPixmapCacheKey(QLatin1String("card_") + QString(info->getName()) + - QString("_") + QString(set.getProperty("uuid"))); + QString("_") + QString(printing.getProperty("uuid"))); return cardFromSpecificSet; } } @@ -309,53 +309,53 @@ void CardDatabase::refreshPreferredPrintings() } } -CardInfoPerSet CardDatabase::getPreferredSetForCard(const QString &cardName) const +PrintingInfo CardDatabase::getPreferredPrinting(const QString &cardName) const { CardInfoPtr cardInfo = getCard(cardName); if (!cardInfo) { - return CardInfoPerSet(nullptr); + return PrintingInfo(nullptr); } - CardInfoPerSetMap setMap = cardInfo->getSets(); + SetToPrintingsMap setMap = cardInfo->getSets(); if (setMap.empty()) { - return CardInfoPerSet(nullptr); + return PrintingInfo(nullptr); } CardSetPtr preferredSet = nullptr; - CardInfoPerSet preferredCard; + PrintingInfo preferredPrinting; SetPriorityComparator comparator; - for (const auto &cardInfoPerSetList : setMap) { - for (auto &cardInfoForSet : cardInfoPerSetList) { - CardSetPtr currentSet = cardInfoForSet.getPtr(); + for (const auto &printings : setMap) { + for (auto &printing : printings) { + CardSetPtr currentSet = printing.getSet(); if (!preferredSet || comparator(currentSet, preferredSet)) { preferredSet = currentSet; - preferredCard = cardInfoForSet; + preferredPrinting = printing; } } } if (preferredSet) { - return preferredCard; + return preferredPrinting; } - return CardInfoPerSet(nullptr); + return PrintingInfo(nullptr); } -CardInfoPerSet CardDatabase::getSpecificSetForCard(const QString &cardName, const QString &providerId) const +PrintingInfo CardDatabase::getSpecificPrinting(const QString &cardName, const QString &providerId) const { CardInfoPtr cardInfo = getCard(cardName); if (!cardInfo) { - return CardInfoPerSet(nullptr); + return PrintingInfo(nullptr); } - CardInfoPerSetMap setMap = cardInfo->getSets(); + SetToPrintingsMap setMap = cardInfo->getSets(); if (setMap.empty()) { - return CardInfoPerSet(nullptr); + return PrintingInfo(nullptr); } - for (const auto &cardInfoPerSetList : setMap) { - for (auto &cardInfoForSet : cardInfoPerSetList) { + for (const auto &printings : setMap) { + for (auto &cardInfoForSet : printings) { if (cardInfoForSet.getProperty("uuid") == providerId) { return cardInfoForSet; } @@ -363,48 +363,48 @@ CardInfoPerSet CardDatabase::getSpecificSetForCard(const QString &cardName, cons } if (providerId.isNull()) { - return getPreferredSetForCard(cardName); + return getPreferredPrinting(cardName); } - return CardInfoPerSet(nullptr); + return PrintingInfo(nullptr); } -CardInfoPerSet CardDatabase::getSpecificSetForCard(const QString &cardName, - const QString &setShortName, - const QString &collectorNumber) const +PrintingInfo CardDatabase::getSpecificPrinting(const QString &cardName, + const QString &setShortName, + const QString &collectorNumber) const { CardInfoPtr cardInfo = getCard(cardName); if (!cardInfo) { - return CardInfoPerSet(nullptr); + return PrintingInfo(nullptr); } - CardInfoPerSetMap setMap = cardInfo->getSets(); + SetToPrintingsMap setMap = cardInfo->getSets(); if (setMap.empty()) { - return CardInfoPerSet(nullptr); + return PrintingInfo(nullptr); } - for (const auto &cardInfoPerSetList : setMap) { - for (auto &cardInfoForSet : cardInfoPerSetList) { + for (const auto &printings : setMap) { + for (auto &cardInfoForSet : printings) { if (collectorNumber != nullptr) { - if (cardInfoForSet.getPtr()->getShortName() == setShortName && + if (cardInfoForSet.getSet()->getShortName() == setShortName && cardInfoForSet.getProperty("num") == collectorNumber) { return cardInfoForSet; } } else { - if (cardInfoForSet.getPtr()->getShortName() == setShortName) { + if (cardInfoForSet.getSet()->getShortName() == setShortName) { return cardInfoForSet; } } } } - return CardInfoPerSet(nullptr); + return PrintingInfo(nullptr); } QString CardDatabase::getPreferredPrintingProviderIdForCard(const QString &cardName) { - CardInfoPerSet preferredSetCardInfo = getPreferredSetForCard(cardName); - QString preferredPrintingProviderId = preferredSetCardInfo.getProperty(QString("uuid")); + PrintingInfo preferredPrinting = getPreferredPrinting(cardName); + QString preferredPrintingProviderId = preferredPrinting.getProperty(QString("uuid")); if (preferredPrintingProviderId.isEmpty()) { CardInfoPtr defaultCardInfo = getCard(cardName); if (defaultCardInfo.isNull()) { @@ -424,15 +424,15 @@ bool CardDatabase::isProviderIdForPreferredPrinting(const QString &cardName, con return providerId == getPreferredPrintingProviderIdForCard(cardName); } -CardInfoPerSet CardDatabase::getSetInfoForCard(const CardInfoPtr &_card) +PrintingInfo CardDatabase::getSetInfoForCard(const CardInfoPtr &_card) { - const CardInfoPerSetMap &setMap = _card->getSets(); + const SetToPrintingsMap &setMap = _card->getSets(); if (setMap.empty()) { - return CardInfoPerSet(nullptr); + return PrintingInfo(nullptr); } - for (const auto &cardInfoPerSetList : setMap) { - for (const auto &cardInfoForSet : cardInfoPerSetList) { + for (const auto &printings : setMap) { + for (const auto &cardInfoForSet : printings) { if (QLatin1String("card_") + _card->getName() + QString("_") + cardInfoForSet.getProperty("uuid") == _card->getPixmapCacheKey()) { return cardInfoForSet; @@ -440,7 +440,7 @@ CardInfoPerSet CardDatabase::getSetInfoForCard(const CardInfoPtr &_card) } } - return CardInfoPerSet(nullptr); + return PrintingInfo(nullptr); } void CardDatabase::refreshCachedReverseRelatedCards() diff --git a/cockatrice/src/game/cards/card_database.h b/cockatrice/src/game/cards/card_database.h index 7e4a1f2c7..8bd3d14e0 100644 --- a/cockatrice/src/game/cards/card_database.h +++ b/cockatrice/src/game/cards/card_database.h @@ -69,10 +69,10 @@ public: [[nodiscard]] QList getCards(const QStringList &cardNames) const; QList getCardsByNameAndProviderId(const QMap &cardNames) const; [[nodiscard]] CardInfoPtr getCardByNameAndProviderId(const QString &cardName, const QString &providerId) const; - [[nodiscard]] CardInfoPerSet getPreferredSetForCard(const QString &cardName) const; - [[nodiscard]] CardInfoPerSet getSpecificSetForCard(const QString &cardName, const QString &providerId) const; - CardInfoPerSet - getSpecificSetForCard(const QString &cardName, const QString &setShortName, const QString &collectorNumber) const; + [[nodiscard]] PrintingInfo getPreferredPrinting(const QString &cardName) const; + [[nodiscard]] PrintingInfo getSpecificPrinting(const QString &cardName, const QString &providerId) const; + PrintingInfo + getSpecificPrinting(const QString &cardName, const QString &setShortName, const QString &collectorNumber) const; QString getPreferredPrintingProviderIdForCard(const QString &cardName); [[nodiscard]] CardInfoPtr guessCard(const QString &cardName, const QString &providerId = QString()) const; @@ -84,7 +84,7 @@ public: CardSetPtr getSet(const QString &setName); bool isProviderIdForPreferredPrinting(const QString &cardName, const QString &providerId); - static CardInfoPerSet getSetInfoForCard(const CardInfoPtr &_card); + static PrintingInfo getSetInfoForCard(const CardInfoPtr &_card); const CardNameMap &getCardList() const { return cards; diff --git a/cockatrice/src/game/cards/card_database_model.cpp b/cockatrice/src/game/cards/card_database_model.cpp index 93bb7f02a..6d99e563b 100644 --- a/cockatrice/src/game/cards/card_database_model.cpp +++ b/cockatrice/src/game/cards/card_database_model.cpp @@ -98,9 +98,9 @@ bool CardDatabaseModel::checkCardHasAtLeastOneEnabledSet(CardInfoPtr card) if (!showOnlyCardsFromEnabledSets) return true; - for (const auto &cardInfoPerSetList : card->getSets()) { - for (const auto &set : cardInfoPerSetList) { - if (set.getPtr()->getEnabled()) + for (const auto &printings : card->getSets()) { + for (const auto &printing : printings) { + if (printing.getSet()->getEnabled()) return true; } } diff --git a/cockatrice/src/game/cards/card_database_parser/cockatrice_xml_3.cpp b/cockatrice/src/game/cards/card_database_parser/cockatrice_xml_3.cpp index f6918458d..1f69079cd 100644 --- a/cockatrice/src/game/cards/card_database_parser/cockatrice_xml_3.cpp +++ b/cockatrice/src/game/cards/card_database_parser/cockatrice_xml_3.cpp @@ -160,7 +160,7 @@ void CockatriceXml3Parser::loadCardsFromXml(QXmlStreamReader &xml) QVariantHash properties = QVariantHash(); QString colors = QString(""); QList relatedCards, reverseRelatedCards; - auto _sets = CardInfoPerSetMap(); + auto _sets = SetToPrintingsMap(); int tableRow = 0; bool cipt = false; bool landscapeOrientation = false; @@ -209,7 +209,7 @@ void CockatriceXml3Parser::loadCardsFromXml(QXmlStreamReader &xml) // NOTE: attributes must be read before readElementText() QXmlStreamAttributes attrs = xml.attributes(); QString setName = xml.readElementText(QXmlStreamReader::IncludeChildElements); - CardInfoPerSet setInfo(internalAddSet(setName)); + PrintingInfo setInfo(internalAddSet(setName)); if (attrs.hasAttribute("muId")) { setInfo.setProperty("muid", attrs.value("muId").toString()); } @@ -343,9 +343,9 @@ static QXmlStreamWriter &operator<<(QXmlStreamWriter &xml, const CardInfoPtr &in } // sets - const CardInfoPerSetMap sets = info->getSets(); - for (const auto &cardInfoPerSetList : sets) { - for (const CardInfoPerSet &set : cardInfoPerSetList) { + const SetToPrintingsMap setMap = info->getSets(); + for (const auto &printings : setMap) { + for (const PrintingInfo &set : printings) { xml.writeStartElement("set"); xml.writeAttribute("rarity", set.getProperty("rarity")); xml.writeAttribute("muId", set.getProperty("muid")); @@ -361,7 +361,7 @@ static QXmlStreamWriter &operator<<(QXmlStreamWriter &xml, const CardInfoPtr &in xml.writeAttribute("picURL", tmpString); } - xml.writeCharacters(set.getPtr()->getShortName()); + xml.writeCharacters(set.getSet()->getShortName()); xml.writeEndElement(); } } diff --git a/cockatrice/src/game/cards/card_database_parser/cockatrice_xml_4.cpp b/cockatrice/src/game/cards/card_database_parser/cockatrice_xml_4.cpp index de03a0fd8..f9f6a98d4 100644 --- a/cockatrice/src/game/cards/card_database_parser/cockatrice_xml_4.cpp +++ b/cockatrice/src/game/cards/card_database_parser/cockatrice_xml_4.cpp @@ -144,7 +144,7 @@ void CockatriceXml4Parser::loadCardsFromXml(QXmlStreamReader &xml) QString text = QString(""); QVariantHash properties = QVariantHash(); QList relatedCards, reverseRelatedCards; - auto _sets = CardInfoPerSetMap(); + auto _sets = SetToPrintingsMap(); int tableRow = 0; bool cipt = false; bool landscapeOrientation = false; @@ -184,12 +184,12 @@ void CockatriceXml4Parser::loadCardsFromXml(QXmlStreamReader &xml) QString setName = xml.readElementText(QXmlStreamReader::IncludeChildElements); auto set = internalAddSet(setName); if (set->getEnabled()) { - CardInfoPerSet setInfo(set); + PrintingInfo printingInfo(set); for (QXmlStreamAttribute attr : attrs) { QString attrName = attr.name().toString(); if (attrName == "picURL") attrName = "picurl"; - setInfo.setProperty(attrName, attr.value().toString()); + printingInfo.setProperty(attrName, attr.value().toString()); } // This is very much a hack and not the right place to @@ -199,8 +199,8 @@ void CockatriceXml4Parser::loadCardsFromXml(QXmlStreamReader &xml) // However, this is also true of the `set->getEnabled()` // check above (which is currently bugged as well), so // we'll fix both at the same time. - if (includeRebalancedCards || setInfo.getProperty("isRebalanced") != "true") { - _sets[setName].append(setInfo); + if (includeRebalancedCards || printingInfo.getProperty("isRebalanced") != "true") { + _sets[setName].append(printingInfo); } } // related cards @@ -309,14 +309,14 @@ static QXmlStreamWriter &operator<<(QXmlStreamWriter &xml, const CardInfoPtr &in xml.writeEndElement(); // sets - for (const auto &cardInfoPerSetList : info->getSets()) { - for (const CardInfoPerSet &set : cardInfoPerSetList) { + for (const auto &printings : info->getSets()) { + for (const PrintingInfo &set : printings) { xml.writeStartElement("set"); for (const QString &propName : set.getProperties()) { xml.writeAttribute(propName, set.getProperty(propName)); } - xml.writeCharacters(set.getPtr()->getShortName()); + xml.writeCharacters(set.getSet()->getShortName()); xml.writeEndElement(); } } diff --git a/cockatrice/src/game/cards/card_info.cpp b/cockatrice/src/game/cards/card_info.cpp index 4bd2c0c9c..4b50e1b0a 100644 --- a/cockatrice/src/game/cards/card_info.cpp +++ b/cockatrice/src/game/cards/card_info.cpp @@ -215,7 +215,7 @@ void SetList::defaultSort() }); } -CardInfoPerSet::CardInfoPerSet(const CardSetPtr &_set) : set(_set) +PrintingInfo::PrintingInfo(const CardSetPtr &_set) : set(_set) { } @@ -225,13 +225,13 @@ CardInfo::CardInfo(const QString &_name, QVariantHash _properties, const QList &_relatedCards, const QList &_reverseRelatedCards, - CardInfoPerSetMap _sets, + SetToPrintingsMap _sets, bool _cipt, bool _landscapeOrientation, int _tableRow, bool _upsideDownArt) : name(_name), text(_text), isToken(_isToken), properties(std::move(_properties)), relatedCards(_relatedCards), - reverseRelatedCards(_reverseRelatedCards), sets(std::move(_sets)), cipt(_cipt), + reverseRelatedCards(_reverseRelatedCards), setsToPrintings(std::move(_sets)), cipt(_cipt), landscapeOrientation(_landscapeOrientation), tableRow(_tableRow), upsideDownArt(_upsideDownArt) { pixmapCacheKey = QLatin1String("card_") + name; @@ -248,7 +248,7 @@ CardInfo::~CardInfo() CardInfoPtr CardInfo::newInstance(const QString &_name) { return newInstance(_name, QString(), false, QVariantHash(), QList(), QList(), - CardInfoPerSetMap(), false, false, 0, false); + SetToPrintingsMap(), false, false, 0, false); } CardInfoPtr CardInfo::newInstance(const QString &_name, @@ -257,7 +257,7 @@ CardInfoPtr CardInfo::newInstance(const QString &_name, QVariantHash _properties, const QList &_relatedCards, const QList &_reverseRelatedCards, - CardInfoPerSetMap _sets, + SetToPrintingsMap _sets, bool _cipt, bool _landscapeOrientation, int _tableRow, @@ -267,9 +267,9 @@ CardInfoPtr CardInfo::newInstance(const QString &_name, _sets, _cipt, _landscapeOrientation, _tableRow, _upsideDownArt)); ptr->setSmartPointer(ptr); - for (const auto &cardInfoPerSetList : _sets) { - for (const CardInfoPerSet &set : cardInfoPerSetList) { - set.getPtr()->append(ptr); + for (const auto &printings : _sets) { + for (const PrintingInfo &printing : printings) { + printing.getSet()->append(ptr); break; } } @@ -289,13 +289,13 @@ QString CardInfo::getCorrectedName() const return result.remove(rmrx).replace(spacerx, space); } -void CardInfo::addToSet(const CardSetPtr &_set, const CardInfoPerSet _info) +void CardInfo::addToSet(const CardSetPtr &_set, const PrintingInfo _info) { if (!_set->contains(smartThis)) { _set->append(smartThis); } - if (!sets[_set->getShortName()].contains(_info)) { - sets[_set->getShortName()].append(_info); + if (!setsToPrintings[_set->getShortName()].contains(_info)) { + setsToPrintings[_set->getShortName()].append(_info); } refreshCachedSetNames(); @@ -316,10 +316,10 @@ void CardInfo::refreshCachedSetNames() { QStringList setList; // update the cached list of set names - for (const auto &cardInfoPerSetList : sets) { - for (const auto &set : cardInfoPerSetList) { - if (set.getPtr()->getEnabled()) { - setList << set.getPtr()->getShortName(); + for (const auto &printings : setsToPrintings) { + for (const auto &printing : printings) { + if (printing.getSet()->getEnabled()) { + setList << printing.getSet()->getShortName(); } break; } diff --git a/cockatrice/src/game/cards/card_info.h b/cockatrice/src/game/cards/card_info.h index bdbebcd72..4f58795ab 100644 --- a/cockatrice/src/game/cards/card_info.h +++ b/cockatrice/src/game/cards/card_info.h @@ -15,15 +15,14 @@ inline Q_LOGGING_CATEGORY(CardInfoLog, "card_info"); class CardInfo; -class CardInfoPerSet; +class PrintingInfo; class CardSet; class CardRelation; class ICardDatabaseParser; -typedef QMap QStringMap; typedef QSharedPointer CardInfoPtr; typedef QSharedPointer CardSetPtr; -typedef QMap> CardInfoPerSetMap; +typedef QMap> SetToPrintingsMap; typedef QHash CardNameMap; typedef QHash SetNameMap; @@ -143,32 +142,35 @@ public: void defaultSort(); }; -class CardInfoPerSet +/** + * Info relating to a specific printing for a card. + */ +class PrintingInfo { public: - explicit CardInfoPerSet(const CardSetPtr &_set = QSharedPointer(nullptr)); - ~CardInfoPerSet() = default; + explicit PrintingInfo(const CardSetPtr &_set = QSharedPointer(nullptr)); + ~PrintingInfo() = default; - bool operator==(const CardInfoPerSet &other) const + bool operator==(const PrintingInfo &other) const { return this->set == other.set && this->properties == other.properties; } private: CardSetPtr set; - // per-set card properties; + // per-printing card properties; QVariantHash properties; public: - const CardSetPtr getPtr() const + CardSetPtr getSet() const { return set; } - const QStringList getProperties() const + QStringList getProperties() const { return properties.keys(); } - const QString getProperty(const QString &propertyName) const + QString getProperty(const QString &propertyName) const { return properties.value(propertyName).toString(); } @@ -202,7 +204,7 @@ private: // the cards thare are reverse-related to me QList reverseRelatedCardsToMe; // card sets - CardInfoPerSetMap sets; + SetToPrintingsMap setsToPrintings; // cached set names QString setsNames; // positioning properties; used by UI @@ -218,7 +220,7 @@ public: QVariantHash _properties, const QList &_relatedCards, const QList &_reverseRelatedCards, - CardInfoPerSetMap _sets, + SetToPrintingsMap _sets, bool _cipt, bool _landscapeOrientation, int _tableRow, @@ -227,7 +229,7 @@ public: : QObject(other.parent()), name(other.name), simpleName(other.simpleName), pixmapCacheKey(other.pixmapCacheKey), text(other.text), isToken(other.isToken), properties(other.properties), relatedCards(other.relatedCards), reverseRelatedCards(other.reverseRelatedCards), reverseRelatedCardsToMe(other.reverseRelatedCardsToMe), - sets(other.sets), setsNames(other.setsNames), cipt(other.cipt), + setsToPrintings(other.setsToPrintings), setsNames(other.setsNames), cipt(other.cipt), landscapeOrientation(other.landscapeOrientation), tableRow(other.tableRow), upsideDownArt(other.upsideDownArt) { } @@ -241,7 +243,7 @@ public: QVariantHash _properties, const QList &_relatedCards, const QList &_reverseRelatedCards, - CardInfoPerSetMap _sets, + SetToPrintingsMap _sets, bool _cipt, bool _landscapeOrientation, int _tableRow, @@ -292,11 +294,11 @@ public: { return isToken; } - const QStringList getProperties() const + QStringList getProperties() const { return properties.keys(); } - const QString getProperty(const QString &propertyName) const + QString getProperty(const QString &propertyName) const { return properties.value(propertyName).toString(); } @@ -309,27 +311,27 @@ public: { return properties.contains(propertyName); } - const CardInfoPerSetMap &getSets() const + const SetToPrintingsMap &getSets() const { - return sets; + return setsToPrintings; } const QString &getSetsNames() const { return setsNames; } - const QString getSetProperty(const QString &setName, const QString &propertyName) const + QString getSetProperty(const QString &setName, const QString &propertyName) const { - if (!sets.contains(setName)) + if (!setsToPrintings.contains(setName)) return ""; - for (const auto &set : sets[setName]) { + for (const auto &set : setsToPrintings[setName]) { if (QLatin1String("card_") + this->getName() + QString("_") + QString(set.getProperty("uuid")) == this->getPixmapCacheKey()) { return set.getProperty(propertyName); } } - return sets[setName][0].getProperty(propertyName); + return setsToPrintings[setName][0].getProperty(propertyName); } // related cards @@ -345,7 +347,7 @@ public: { return reverseRelatedCardsToMe; } - const QList getAllRelatedCards() const + QList getAllRelatedCards() const { QList result; result.append(getRelatedCards()); @@ -399,7 +401,7 @@ public: return getSetProperty(set, "picurl"); } QString getCorrectedName() const; - void addToSet(const CardSetPtr &_set, CardInfoPerSet _info = CardInfoPerSet()); + void addToSet(const CardSetPtr &_set, PrintingInfo _info = PrintingInfo()); void combineLegalities(const QVariantHash &props); void emitPixmapUpdated() { diff --git a/cockatrice/src/game/filters/filter_string.cpp b/cockatrice/src/game/filters/filter_string.cpp index f5e9d69e9..4a7a58b9e 100644 --- a/cockatrice/src/game/filters/filter_string.cpp +++ b/cockatrice/src/game/filters/filter_string.cpp @@ -129,14 +129,14 @@ static void setupParserRules() search["RarityQuery"] = [](const peg::SemanticValues &sv) -> Filter { const auto rarity = std::any_cast(sv[0]); return [=](const CardData &x) -> bool { - QList infos; - for (const auto &setsValue : x->getSets().values()) { - for (const auto &cardInfoPerSet : setsValue) { - infos.append(cardInfoPerSet); + QList infos; + for (const auto &printings : x->getSets()) { + for (const auto &printing : printings) { + infos.append(printing); } } - auto matchesRarity = [&rarity](const CardInfoPerSet &info) { return rarity == info.getProperty("rarity"); }; + auto matchesRarity = [&rarity](const PrintingInfo &info) { return rarity == info.getProperty("rarity"); }; return std::any_of(infos.begin(), infos.end(), matchesRarity); }; }; diff --git a/cockatrice/src/game/filters/filter_tree.cpp b/cockatrice/src/game/filters/filter_tree.cpp index 4e65fc06e..89b772b8e 100644 --- a/cockatrice/src/game/filters/filter_tree.cpp +++ b/cockatrice/src/game/filters/filter_tree.cpp @@ -215,10 +215,10 @@ bool FilterItem::acceptText(const CardInfoPtr info) const bool FilterItem::acceptSet(const CardInfoPtr info) const { bool status = false; - for (const auto &cardInfoPerSetList : info->getSets()) { - for (const auto &set : cardInfoPerSetList) { - if (set.getPtr()->getShortName().compare(term, Qt::CaseInsensitive) == 0 || - set.getPtr()->getLongName().compare(term, Qt::CaseInsensitive) == 0) { + for (const auto &printings : info->getSets()) { + for (const auto &set : printings) { + if (set.getSet()->getShortName().compare(term, Qt::CaseInsensitive) == 0 || + set.getSet()->getLongName().compare(term, Qt::CaseInsensitive) == 0) { status = true; break; } @@ -350,9 +350,9 @@ bool FilterItem::acceptRarity(const CardInfoPtr info) const } } - for (const auto &cardInfoPerSetList : info->getSets()) { - for (const auto &set : cardInfoPerSetList) { - if (set.getProperty("rarity").compare(converted_term, Qt::CaseInsensitive) == 0) { + for (const auto &printings : info->getSets()) { + for (const auto &printing : printings) { + if (printing.getProperty("rarity").compare(converted_term, Qt::CaseInsensitive) == 0) { return true; } } diff --git a/cockatrice/src/utility/card_set_comparator.h b/cockatrice/src/utility/card_set_comparator.h index ed4b3d5e1..bca3084e1 100644 --- a/cockatrice/src/utility/card_set_comparator.h +++ b/cockatrice/src/utility/card_set_comparator.h @@ -47,12 +47,12 @@ public: * Enabled sets have priority over disabled sets * Both groups follow the user-defined order */ - inline bool operator()(const CardInfoPerSet &a, const CardInfoPerSet &b) const + inline bool operator()(const PrintingInfo &a, const PrintingInfo &b) const { - if (a.getPtr()->getEnabled()) { - return !b.getPtr()->getEnabled() || a.getPtr()->getSortKey() < b.getPtr()->getSortKey(); + if (a.getSet()->getEnabled()) { + return !b.getSet()->getEnabled() || a.getSet()->getSortKey() < b.getSet()->getSortKey(); } else { - return !b.getPtr()->getEnabled() && a.getPtr()->getSortKey() < b.getPtr()->getSortKey(); + return !b.getSet()->getEnabled() && a.getSet()->getSortKey() < b.getSet()->getSortKey(); } } }; diff --git a/oracle/src/oracleimporter.cpp b/oracle/src/oracleimporter.cpp index 7138f80af..0fd2beaa7 100644 --- a/oracle/src/oracleimporter.cpp +++ b/oracle/src/oracleimporter.cpp @@ -12,8 +12,8 @@ SplitCardPart::SplitCardPart(const QString &_name, const QString &_text, const QVariantHash &_properties, - const CardInfoPerSet &_setInfo) - : name(_name), text(_text), properties(_properties), setInfo(_setInfo) + const PrintingInfo &_printingInfo) + : name(_name), text(_text), properties(_properties), printingInfo(_printingInfo) { } @@ -129,14 +129,14 @@ CardInfoPtr OracleImporter::addCard(QString name, bool isToken, QVariantHash properties, const QList &relatedCards, - const CardInfoPerSet &setInfo) + const PrintingInfo &printingInfo) { // Workaround for card name weirdness name = name.replace("Æ", "AE"); name = name.replace("’", "'"); if (cards.contains(name)) { CardInfoPtr card = cards.value(name); - card->addToSet(setInfo.getPtr(), setInfo); + card->addToSet(printingInfo.getSet(), printingInfo); if (card->getProperties().filter(formatRegex).empty()) { card->combineLegalities(properties); } @@ -200,13 +200,13 @@ CardInfoPtr OracleImporter::addCard(QString name, // insert the card and its properties QList reverseRelatedCards; - CardInfoPerSetMap setsInfo; - setsInfo[setInfo.getPtr()->getShortName()].append(setInfo); + SetToPrintingsMap setsInfo; + setsInfo[printingInfo.getSet()->getShortName()].append(printingInfo); CardInfoPtr newCard = CardInfo::newInstance(name, text, isToken, properties, relatedCards, reverseRelatedCards, setsInfo, cipt, landscapeOrientation, tableRow, upsideDown); if (name.isEmpty()) { - qDebug() << "warning: an empty card was added to set" << setInfo.getPtr()->getShortName(); + qDebug() << "warning: an empty card was added to set" << printingInfo.getSet()->getShortName(); } cards.insert(name, newCard); @@ -242,7 +242,7 @@ int OracleImporter::importCardsFromSet(const CardSetPtr ¤tSet, const QList static constexpr bool isToken = false; static const QList setsWithCardsWithSameNameButDifferentText = {"UST"}; QVariantHash properties; - CardInfoPerSet setInfo; + PrintingInfo printingInfo; QList relatedCards; QList allNameProps; @@ -281,7 +281,7 @@ int OracleImporter::importCardsFromSet(const CardSetPtr ¤tSet, const QList } // per-set properties - setInfo = CardInfoPerSet(currentSet); + printingInfo = PrintingInfo(currentSet); QMapIterator it2(setInfoProperties); while (it2.hasNext()) { it2.next(); @@ -289,7 +289,7 @@ int OracleImporter::importCardsFromSet(const CardSetPtr ¤tSet, const QList QString xmlPropertyName = it2.value(); QString propertyValue = getStringPropertyFromMap(card, mtgjsonProperty); if (!propertyValue.isEmpty()) - setInfo.setProperty(xmlPropertyName, propertyValue); + printingInfo.setProperty(xmlPropertyName, propertyValue); } // Identifiers @@ -300,12 +300,12 @@ int OracleImporter::importCardsFromSet(const CardSetPtr ¤tSet, const QList auto xmlPropertyName = it3.value(); auto propertyValue = getStringPropertyFromMap(card.value("identifiers").toMap(), mtgjsonProperty); if (!propertyValue.isEmpty()) { - setInfo.setProperty(xmlPropertyName, propertyValue); + printingInfo.setProperty(xmlPropertyName, propertyValue); } } QString numComponent; - const QString numProperty = setInfo.getProperty("num"); + const QString numProperty = printingInfo.getProperty("num"); const QChar lastChar = numProperty.isEmpty() ? QChar() : numProperty.back(); // Un-Sets do some wonky stuff. Split up these cards as individual entries. @@ -353,7 +353,7 @@ int OracleImporter::importCardsFromSet(const CardSetPtr ¤tSet, const QList // split cards are considered a single card, enqueue for later merging if (layout == "split" || layout == "aftermath" || layout == "adventure") { auto _faceName = getStringPropertyFromMap(card, "faceName"); - SplitCardPart split(_faceName, text, properties, setInfo); + SplitCardPart split(_faceName, text, properties, printingInfo); auto found_iter = splitCards.find(name + numProperty); if (found_iter == splitCards.end()) { splitCards.insert(name + numProperty, {{split}, name}); @@ -404,7 +404,7 @@ int OracleImporter::importCardsFromSet(const CardSetPtr ¤tSet, const QList } } - CardInfoPtr newCard = addCard(name + numComponent, text, isToken, properties, relatedCards, setInfo); + CardInfoPtr newCard = addCard(name + numComponent, text, isToken, properties, relatedCards, printingInfo); numCards++; } } @@ -430,7 +430,7 @@ int OracleImporter::importCardsFromSet(const CardSetPtr ¤tSet, const QList if (properties.isEmpty()) { properties = tmp.getProperties(); - setInfo = tmp.getSetInfo(); + printingInfo = tmp.getPrintingInfo(); } else { const QVariantHash &tmpProps = tmp.getProperties(); for (const QString &prop : tmpProps.keys()) { @@ -451,7 +451,7 @@ int OracleImporter::importCardsFromSet(const CardSetPtr ¤tSet, const QList } } } - CardInfoPtr newCard = addCard(name, text, isToken, properties, relatedCards, setInfo); + CardInfoPtr newCard = addCard(name, text, isToken, properties, relatedCards, printingInfo); numCards++; } diff --git a/oracle/src/oracleimporter.h b/oracle/src/oracleimporter.h index 314723706..4d5d77805 100644 --- a/oracle/src/oracleimporter.h +++ b/oracle/src/oracleimporter.h @@ -95,7 +95,7 @@ public: SplitCardPart(const QString &_name, const QString &_text, const QVariantHash &_properties, - const CardInfoPerSet &setInfo); + const PrintingInfo &_printingInfo); inline const QString &getName() const { return name; @@ -108,16 +108,16 @@ public: { return properties; } - inline const CardInfoPerSet &getSetInfo() const + inline const PrintingInfo &getPrintingInfo() const { - return setInfo; + return printingInfo; } private: QString name; QString text; QVariantHash properties; - CardInfoPerSet setInfo; + PrintingInfo printingInfo; }; class OracleImporter : public QObject @@ -143,7 +143,7 @@ private: bool isToken, QVariantHash properties, const QList &relatedCards, - const CardInfoPerSet &setInfo); + const PrintingInfo &printingInfo); signals: void setIndexChanged(int cardsImported, int setIndex, const QString &setName); void dataReadProgress(int bytesRead, int totalBytes);