mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-23 15:13:55 -07:00
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
This commit is contained in:
parent
686e90d0ed
commit
a9684f67cc
32 changed files with 288 additions and 287 deletions
|
|
@ -28,9 +28,9 @@ PictureToLoad::PictureToLoad(CardInfoPtr _card)
|
|||
QList<CardSetPtr> PictureToLoad::extractSetsSorted(const CardInfoPtr &card)
|
||||
{
|
||||
QList<CardSetPtr> 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<CardSetPtr> 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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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++;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -224,27 +224,27 @@ void PrintingSelector::getAllSetsForCurrentCard()
|
|||
return;
|
||||
}
|
||||
|
||||
CardInfoPerSetMap cardInfoPerSets = selectedCard->getSets();
|
||||
const QList<CardInfoPerSet> sortedSets = sortToolBar->sortSets(cardInfoPerSets);
|
||||
const QList<CardInfoPerSet> filteredSets =
|
||||
sortToolBar->filterSets(sortedSets, searchBar->getSearchText().trimmed().toLower());
|
||||
QList<CardInfoPerSet> setsToUse;
|
||||
SetToPrintingsMap setMap = selectedCard->getSets();
|
||||
const QList<PrintingInfo> sortedPrintings = sortToolBar->sortSets(setMap);
|
||||
const QList<PrintingInfo> filteredPrintings =
|
||||
sortToolBar->filterSets(sortedPrintings, searchBar->getSearchText().trimmed().toLower());
|
||||
QList<PrintingInfo> 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();
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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"));
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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<CardInfoPerSet> PrintingSelectorCardSortingWidget::sortSets(const CardInfoPerSetMap &cardInfoPerSets)
|
||||
QList<PrintingInfo> PrintingSelectorCardSortingWidget::sortSets(const SetToPrintingsMap &setMap)
|
||||
{
|
||||
QList<CardSetPtr> 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<CardInfoPerSet> PrintingSelectorCardSortingWidget::sortSets(const CardInfo
|
|||
std::sort(sortedSets.begin(), sortedSets.end(), SetReleaseDateComparator());
|
||||
}
|
||||
|
||||
QList<CardInfoPerSet> sortedCardInfoPerSets;
|
||||
// Reconstruct sorted list of CardInfoPerSet
|
||||
QList<PrintingInfo> 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<CardInfoPerSet> 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<CardInfoPerSet> 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<CardInfoPerSet> PrintingSelectorCardSortingWidget::filterSets(const QList<CardInfoPerSet> &sets,
|
||||
const QString &searchText)
|
||||
QList<PrintingInfo> PrintingSelectorCardSortingWidget::filterSets(const QList<PrintingInfo> &printings,
|
||||
const QString &searchText)
|
||||
{
|
||||
if (searchText.isEmpty()) {
|
||||
return sets;
|
||||
return printings;
|
||||
}
|
||||
|
||||
QList<CardInfoPerSet> filteredSets;
|
||||
QList<PrintingInfo> 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<CardInfoPerSet> PrintingSelectorCardSortingWidget::prependPinnedPrintings(const QList<CardInfoPerSet> &sets,
|
||||
const QString &cardName)
|
||||
QList<PrintingInfo> PrintingSelectorCardSortingWidget::prependPinnedPrintings(const QList<PrintingInfo> &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<CardInfoPerSet> PrintingSelectorCardSortingWidget::prependPrintingsInDeck(const QList<CardInfoPerSet> &sets,
|
||||
const CardInfoPtr &selectedCard,
|
||||
DeckListModel *deckModel)
|
||||
QList<PrintingInfo> PrintingSelectorCardSortingWidget::prependPrintingsInDeck(const QList<PrintingInfo> &printings,
|
||||
const CardInfoPtr &selectedCard,
|
||||
DeckListModel *deckModel)
|
||||
{
|
||||
if (!selectedCard) {
|
||||
return {};
|
||||
}
|
||||
|
||||
CardInfoPerSetMap cardInfoPerSets = selectedCard->getSets();
|
||||
QList<QPair<CardInfoPerSet, int>> countList;
|
||||
SetToPrintingsMap setMap = selectedCard->getSets();
|
||||
QList<QPair<PrintingInfo, int>> 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<CardInfoPerSet> PrintingSelectorCardSortingWidget::prependPrintingsInDeck(
|
|||
|
||||
// Sort sets by count in descending numerical order
|
||||
std::sort(countList.begin(), countList.end(),
|
||||
[](const QPair<CardInfoPerSet, int> &a, const QPair<CardInfoPerSet, int> &b) {
|
||||
[](const QPair<PrintingInfo, int> &a, const QPair<PrintingInfo, int> &b) {
|
||||
return a.second > b.second; // Ensure numerical comparison
|
||||
});
|
||||
|
||||
// Create a copy of the original list to modify
|
||||
QList<CardInfoPerSet> result = sets;
|
||||
QList<PrintingInfo> 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()) {
|
||||
|
|
|
|||
|
|
@ -12,12 +12,12 @@ class PrintingSelectorCardSortingWidget : public QWidget
|
|||
Q_OBJECT
|
||||
public:
|
||||
explicit PrintingSelectorCardSortingWidget(PrintingSelector *parent);
|
||||
QList<CardInfoPerSet> sortSets(const CardInfoPerSetMap &cardInfoPerSets);
|
||||
QList<CardInfoPerSet> filterSets(const QList<CardInfoPerSet> &sets, const QString &searchText);
|
||||
QList<CardInfoPerSet> prependPinnedPrintings(const QList<CardInfoPerSet> &sets, const QString &cardName);
|
||||
QList<CardInfoPerSet> prependPrintingsInDeck(const QList<CardInfoPerSet> &sets,
|
||||
const CardInfoPtr &selectedCard,
|
||||
DeckListModel *deckModel);
|
||||
QList<PrintingInfo> sortSets(const SetToPrintingsMap &setMap);
|
||||
QList<PrintingInfo> filterSets(const QList<PrintingInfo> &printings, const QString &searchText);
|
||||
QList<PrintingInfo> prependPinnedPrintings(const QList<PrintingInfo> &printings, const QString &cardName);
|
||||
QList<PrintingInfo> prependPrintingsInDeck(const QList<PrintingInfo> &printings,
|
||||
const CardInfoPtr &selectedCard,
|
||||
DeckListModel *deckModel);
|
||||
|
||||
public slots:
|
||||
void updateSortOrder();
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue