mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-14 19:18:55 -07:00
Refactor: Represent cardName + providerId with CardRef struct (#6039)
* card_ref.h * update CardDatabase signatures * make everything compile * rename methods * add docs * mark stuff const * set cardRef in CardItem * cleanup * fix build failure * Fix builds on mac --------- Co-authored-by: ZeldaZach <zahalpern+github@gmail.com>
This commit is contained in:
parent
e05dad4267
commit
a9b3be33e0
61 changed files with 328 additions and 305 deletions
|
|
@ -100,7 +100,7 @@ public:
|
|||
QString collectorNumber = cardData.value("cn").toString();
|
||||
QString providerId = cardData.value("scryfall_id").toString();
|
||||
|
||||
list->setBannerCard(QPair<QString, QString>(commanderName, providerId));
|
||||
list->setBannerCard({commanderName, providerId});
|
||||
list->addCard(commanderName, DECK_ZONE_MAIN, -1, setName, collectorNumber, providerId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -161,8 +161,7 @@ void AbstractTabDeckEditor::openDeck(DeckLoader *deck)
|
|||
void AbstractTabDeckEditor::setDeck(DeckLoader *_deck)
|
||||
{
|
||||
deckDockWidget->setDeck(_deck);
|
||||
PictureLoader::cacheCardPixmaps(
|
||||
CardDatabaseManager::getInstance()->getCardsByNameAndProviderId(getDeckList()->getCardListWithProviderId()));
|
||||
PictureLoader::cacheCardPixmaps(CardDatabaseManager::getInstance()->getCards(getDeckList()->getCardRefList()));
|
||||
setModified(false);
|
||||
|
||||
// If they load a deck, make the deck list appear
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ EdhrecApiResponseCardDetailsDisplayWidget::EdhrecApiResponseCardDetailsDisplayWi
|
|||
setLayout(layout);
|
||||
|
||||
cardPictureWidget = new CardInfoPictureWidget(this);
|
||||
cardPictureWidget->setCard(CardDatabaseManager::getInstance()->guessCard(toDisplay.sanitized));
|
||||
cardPictureWidget->setCard(CardDatabaseManager::getInstance()->guessCard({toDisplay.sanitized}));
|
||||
|
||||
nameLabel = new QLabel(this);
|
||||
nameLabel->setText(toDisplay.name);
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ EdhrecCommanderResponseCommanderDetailsDisplayWidget::EdhrecCommanderResponseCom
|
|||
setLayout(layout);
|
||||
|
||||
commanderPicture = new CardInfoPictureWidget(this);
|
||||
commanderPicture->setCard(CardDatabaseManager::getInstance()->getCard(commanderDetails.getName()));
|
||||
commanderPicture->setCard(CardDatabaseManager::getInstance()->getCardInfo(commanderDetails.getName()));
|
||||
|
||||
QWidget *currentParent = parentWidget();
|
||||
TabEdhRecMain *parentTab = nullptr;
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ void TabEdhRecMain::retranslateUi()
|
|||
|
||||
void TabEdhRecMain::doSearch()
|
||||
{
|
||||
CardInfoPtr searchedCard = CardDatabaseManager::getInstance()->getCard(searchBar->text());
|
||||
CardInfoPtr searchedCard = CardDatabaseManager::getInstance()->getCardInfo(searchBar->text());
|
||||
if (!searchedCard) {
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,14 +14,13 @@ Tab::Tab(TabSupervisor *_tabSupervisor)
|
|||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
}
|
||||
|
||||
void Tab::showCardInfoPopup(const QPoint &pos, const QString &cardName, const QString &providerId)
|
||||
void Tab::showCardInfoPopup(const QPoint &pos, const CardRef &cardRef)
|
||||
{
|
||||
if (infoPopup) {
|
||||
infoPopup->deleteLater();
|
||||
}
|
||||
currentCardName = cardName;
|
||||
currentProviderId = providerId;
|
||||
infoPopup = new CardInfoDisplayWidget(cardName, providerId, nullptr,
|
||||
currentCard = cardRef;
|
||||
infoPopup = new CardInfoDisplayWidget(currentCard, nullptr,
|
||||
Qt::Widget | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint |
|
||||
Qt::WindowStaysOnTopHint);
|
||||
infoPopup->setAttribute(Qt::WA_TransparentForMouseEvents);
|
||||
|
|
@ -37,7 +36,7 @@ void Tab::showCardInfoPopup(const QPoint &pos, const QString &cardName, const QS
|
|||
void Tab::deleteCardInfoPopup(const QString &cardName)
|
||||
{
|
||||
if (infoPopup) {
|
||||
if ((currentCardName == cardName) || (cardName == "_")) {
|
||||
if (currentCard.name == cardName || cardName == "_") {
|
||||
infoPopup->deleteLater();
|
||||
infoPopup = 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
#ifndef TAB_H
|
||||
#define TAB_H
|
||||
|
||||
#include "card_ref.h"
|
||||
|
||||
#include <QMainWindow>
|
||||
|
||||
class QMenu;
|
||||
|
|
@ -27,12 +29,12 @@ protected:
|
|||
tabMenus.append(menu);
|
||||
}
|
||||
protected slots:
|
||||
void showCardInfoPopup(const QPoint &pos, const QString &cardName, const QString &providerId);
|
||||
void showCardInfoPopup(const QPoint &pos, const CardRef &cardRef);
|
||||
void deleteCardInfoPopup(const QString &cardName);
|
||||
void closeEvent(QCloseEvent *event) override;
|
||||
|
||||
private:
|
||||
QString currentCardName, currentProviderId;
|
||||
CardRef currentCard;
|
||||
bool contentsChanged;
|
||||
CardInfoDisplayWidget *infoPopup;
|
||||
QList<QMenu *> tabMenus;
|
||||
|
|
|
|||
|
|
@ -929,8 +929,8 @@ void TabGame::eventGameStateChanged(const Event_GameStateChanged &event,
|
|||
DeckViewContainer *deckViewContainer = deckViewContainers.value(playerId);
|
||||
if (playerInfo.has_deck_list()) {
|
||||
DeckLoader newDeck(QString::fromStdString(playerInfo.deck_list()));
|
||||
PictureLoader::cacheCardPixmaps(CardDatabaseManager::getInstance()->getCardsByNameAndProviderId(
|
||||
newDeck.getCardListWithProviderId()));
|
||||
PictureLoader::cacheCardPixmaps(
|
||||
CardDatabaseManager::getInstance()->getCards(newDeck.getCardRefList()));
|
||||
deckViewContainer->setDeck(newDeck);
|
||||
player->setDeck(newDeck);
|
||||
}
|
||||
|
|
@ -1625,9 +1625,9 @@ void TabGame::createDeckViewContainerWidget(bool bReplay)
|
|||
deckViewContainerWidget->setLayout(deckViewContainerLayout);
|
||||
}
|
||||
|
||||
void TabGame::viewCardInfo(const QString &cardName, const QString &providerId) const
|
||||
void TabGame::viewCardInfo(const CardRef &cardRef) const
|
||||
{
|
||||
cardInfoFrameWidget->setCard(cardName, providerId);
|
||||
cardInfoFrameWidget->setCard(cardRef);
|
||||
}
|
||||
|
||||
void TabGame::createCardInfoDock(bool bReplay)
|
||||
|
|
|
|||
|
|
@ -266,7 +266,7 @@ public:
|
|||
public slots:
|
||||
void sendGameCommand(PendingCommand *pend, int playerId = -1);
|
||||
void sendGameCommand(const ::google::protobuf::Message &command, int playerId = -1);
|
||||
void viewCardInfo(const QString &cardName, const QString &providerId = "") const;
|
||||
void viewCardInfo(const CardRef &cardRef = {}) const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ void TappedOutInterface::analyzeDeck(DeckList *deck)
|
|||
void TappedOutInterface::copyDeckSplitMainAndSide(DeckList &source, DeckList &mainboard, DeckList &sideboard)
|
||||
{
|
||||
auto copyMainOrSide = [this, &mainboard, &sideboard](const auto node, const auto card) {
|
||||
CardInfoPtr dbCard = cardDatabase.getCard(card->getName());
|
||||
CardInfoPtr dbCard = cardDatabase.getCardInfo(card->getName());
|
||||
if (!dbCard || dbCard->getIsToken())
|
||||
return;
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ QWidget *CardGroupDisplayWidget::constructWidgetForIndex(int rowIndex)
|
|||
|
||||
auto widget = new CardInfoPictureWithTextOverlayWidget(getLayoutParent(), true);
|
||||
widget->setScaleFactor(cardSizeWidget->getSlider()->value());
|
||||
widget->setCard(CardDatabaseManager::getInstance()->getCardByNameAndProviderId(cardName, cardProviderId));
|
||||
widget->setCard(CardDatabaseManager::getInstance()->getCard({cardName, cardProviderId}));
|
||||
|
||||
connect(widget, &CardInfoPictureWithTextOverlayWidget::imageClicked, this, &CardGroupDisplayWidget::onClick);
|
||||
connect(widget, &CardInfoPictureWithTextOverlayWidget::hoveredOnCard, this, &CardGroupDisplayWidget::onHover);
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ QWidget *FlatCardGroupDisplayWidget::constructWidgetForIndex(int row)
|
|||
|
||||
auto widget = new CardInfoPictureWithTextOverlayWidget(flowWidget, true);
|
||||
widget->setScaleFactor(cardSizeWidget->getSlider()->value());
|
||||
widget->setCard(CardDatabaseManager::getInstance()->getCardByNameAndProviderId(cardName, cardProviderId));
|
||||
widget->setCard(CardDatabaseManager::getInstance()->getCard({cardName, cardProviderId}));
|
||||
|
||||
connect(widget, &CardInfoPictureWithTextOverlayWidget::imageClicked, this, &FlatCardGroupDisplayWidget::onClick);
|
||||
connect(widget, &CardInfoPictureWithTextOverlayWidget::hoveredOnCard, this, &FlatCardGroupDisplayWidget::onHover);
|
||||
|
|
|
|||
|
|
@ -11,10 +11,7 @@
|
|||
#include <QVBoxLayout>
|
||||
#include <utility>
|
||||
|
||||
CardInfoDisplayWidget::CardInfoDisplayWidget(const QString &cardName,
|
||||
const QString &providerId,
|
||||
QWidget *parent,
|
||||
Qt::WindowFlags flags)
|
||||
CardInfoDisplayWidget::CardInfoDisplayWidget(const CardRef &cardRef, QWidget *parent, Qt::WindowFlags flags)
|
||||
: QFrame(parent, flags), aspectRatio((qreal)CARD_HEIGHT / (qreal)CARD_WIDTH), info(nullptr)
|
||||
{
|
||||
setContentsMargins(3, 3, 3, 3);
|
||||
|
|
@ -22,7 +19,7 @@ CardInfoDisplayWidget::CardInfoDisplayWidget(const QString &cardName,
|
|||
pic->setObjectName("pic");
|
||||
text = new CardInfoTextWidget();
|
||||
text->setObjectName("text");
|
||||
connect(text, &CardInfoTextWidget::linkActivated, this, [this](const QString &card) { setCard(card); });
|
||||
connect(text, &CardInfoTextWidget::linkActivated, this, [this](const QString &card) { setCard({card}); });
|
||||
|
||||
auto *layout = new QVBoxLayout();
|
||||
layout->setObjectName("layout");
|
||||
|
|
@ -40,7 +37,7 @@ CardInfoDisplayWidget::CardInfoDisplayWidget(const QString &cardName,
|
|||
pic->setFixedHeight(pixmapHeight);
|
||||
setFixedWidth(pixmapWidth + 150);
|
||||
|
||||
setCard(cardName, providerId);
|
||||
setCard(cardRef);
|
||||
|
||||
// ensure our parent gets a valid size to position us correctly
|
||||
resize(width(), sizeHint().height());
|
||||
|
|
@ -58,11 +55,11 @@ void CardInfoDisplayWidget::setCard(CardInfoPtr card)
|
|||
pic->setCard(info);
|
||||
}
|
||||
|
||||
void CardInfoDisplayWidget::setCard(const QString &cardName, const QString &providerId)
|
||||
void CardInfoDisplayWidget::setCard(const CardRef &cardRef)
|
||||
{
|
||||
setCard(CardDatabaseManager::getInstance()->guessCard(cardName, providerId));
|
||||
setCard(CardDatabaseManager::getInstance()->guessCard(cardRef));
|
||||
if (info == nullptr) {
|
||||
text->setInvalidCardName(cardName);
|
||||
text->setInvalidCardName(cardRef.name);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define CARDINFOWIDGET_H
|
||||
|
||||
#include "../../../../game/cards/card_info.h"
|
||||
#include "card_ref.h"
|
||||
|
||||
#include <QComboBox>
|
||||
#include <QFrame>
|
||||
|
|
@ -22,14 +23,11 @@ private:
|
|||
CardInfoTextWidget *text;
|
||||
|
||||
public:
|
||||
explicit CardInfoDisplayWidget(const QString &cardName,
|
||||
const QString &providerId,
|
||||
QWidget *parent = nullptr,
|
||||
Qt::WindowFlags f = {});
|
||||
explicit CardInfoDisplayWidget(const CardRef &cardRef, QWidget *parent = nullptr, Qt::WindowFlags f = {});
|
||||
|
||||
public slots:
|
||||
void setCard(CardInfoPtr card);
|
||||
void setCard(const QString &cardName, const QString &providerId = QString());
|
||||
void setCard(const CardRef &cardRef);
|
||||
void setCard(AbstractCardItem *card);
|
||||
|
||||
private slots:
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ CardInfoFrameWidget::CardInfoFrameWidget(const QString &cardName, QWidget *paren
|
|||
setViewMode(SettingsCache::instance().getCardInfoViewMode());
|
||||
|
||||
// TODO: Change this to be by UUID
|
||||
setCard(CardDatabaseManager::getInstance()->getCard(cardName));
|
||||
setCard(CardDatabaseManager::getInstance()->getCardInfo(cardName));
|
||||
}
|
||||
|
||||
void CardInfoFrameWidget::retranslateUi()
|
||||
|
|
@ -166,12 +166,12 @@ void CardInfoFrameWidget::setCard(CardInfoPtr card)
|
|||
|
||||
void CardInfoFrameWidget::setCard(const QString &cardName)
|
||||
{
|
||||
setCard(CardDatabaseManager::getInstance()->guessCard(cardName));
|
||||
setCard(CardDatabaseManager::getInstance()->guessCard({cardName}));
|
||||
}
|
||||
|
||||
void CardInfoFrameWidget::setCard(const QString &cardName, const QString &providerId)
|
||||
void CardInfoFrameWidget::setCard(const CardRef &cardRef)
|
||||
{
|
||||
setCard(CardDatabaseManager::getInstance()->getCardByNameAndProviderId(cardName, providerId));
|
||||
setCard(CardDatabaseManager::getInstance()->getCard(cardRef));
|
||||
}
|
||||
|
||||
void CardInfoFrameWidget::setCard(AbstractCardItem *card)
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define CARDFRAME_H
|
||||
|
||||
#include "../../../../game/cards/card_info.h"
|
||||
#include "card_ref.h"
|
||||
|
||||
#include <QPushButton>
|
||||
#include <QTabWidget>
|
||||
|
|
@ -46,7 +47,7 @@ public:
|
|||
public slots:
|
||||
void setCard(CardInfoPtr card);
|
||||
void setCard(const QString &cardName);
|
||||
void setCard(const QString &cardName, const QString &providerId);
|
||||
void setCard(const CardRef &cardRef);
|
||||
void setCard(AbstractCardItem *card);
|
||||
void viewTransformation();
|
||||
void clearCard();
|
||||
|
|
|
|||
|
|
@ -374,7 +374,7 @@ QMenu *CardInfoPictureWidget::createViewRelatedCardsMenu()
|
|||
QList<CardRelation *> relatedCards = info->getAllRelatedCards();
|
||||
|
||||
auto relatedCardExists = [](const CardRelation *cardRelation) {
|
||||
return CardDatabaseManager::getInstance()->getCard(cardRelation->getName()) != nullptr;
|
||||
return CardDatabaseManager::getInstance()->getCardInfo(cardRelation->getName()) != nullptr;
|
||||
};
|
||||
|
||||
bool atLeastOneGoodRelationFound = std::any_of(relatedCards.begin(), relatedCards.end(), relatedCardExists);
|
||||
|
|
@ -388,7 +388,7 @@ QMenu *CardInfoPictureWidget::createViewRelatedCardsMenu()
|
|||
const auto &relatedCardName = relatedCard->getName();
|
||||
QAction *viewCard = viewRelatedCards->addAction(relatedCardName);
|
||||
connect(viewCard, &QAction::triggered, this, [this, &relatedCardName] {
|
||||
emit cardChanged(CardDatabaseManager::getInstance()->getCard(relatedCardName));
|
||||
emit cardChanged(CardDatabaseManager::getInstance()->getCardInfo(relatedCardName));
|
||||
});
|
||||
viewRelatedCards->addAction(viewCard);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ QHash<QString, int> ManaBaseWidget::analyzeManaBase()
|
|||
continue;
|
||||
|
||||
for (int k = 0; k < currentCard->getNumber(); ++k) {
|
||||
CardInfoPtr info = CardDatabaseManager::getInstance()->getCard(currentCard->getName());
|
||||
CardInfoPtr info = CardDatabaseManager::getInstance()->getCardInfo(currentCard->getName());
|
||||
if (info) {
|
||||
auto devotion = determineManaProduction(info->getText());
|
||||
mergeManaCounts(manaBaseMap, devotion);
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ std::unordered_map<int, int> ManaCurveWidget::analyzeManaCurve()
|
|||
continue;
|
||||
|
||||
for (int k = 0; k < currentCard->getNumber(); ++k) {
|
||||
CardInfoPtr info = CardDatabaseManager::getInstance()->getCard(currentCard->getName());
|
||||
CardInfoPtr info = CardDatabaseManager::getInstance()->getCardInfo(currentCard->getName());
|
||||
if (info) {
|
||||
int cmc = info->getCmc().toInt();
|
||||
manaCurveMap[cmc]++;
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ std::unordered_map<char, int> ManaDevotionWidget::analyzeManaDevotion()
|
|||
continue;
|
||||
|
||||
for (int k = 0; k < currentCard->getNumber(); ++k) {
|
||||
CardInfoPtr info = CardDatabaseManager::getInstance()->getCard(currentCard->getName());
|
||||
CardInfoPtr info = CardDatabaseManager::getInstance()->getCardInfo(currentCard->getName());
|
||||
if (info) {
|
||||
auto devotion = countManaSymbols(info->getManaCost());
|
||||
mergeManaCounts(manaDevotionMap, devotion);
|
||||
|
|
|
|||
|
|
@ -136,16 +136,16 @@ void DeckEditorDatabaseDisplayWidget::clearAllDatabaseFilters()
|
|||
void DeckEditorDatabaseDisplayWidget::updateCard(const QModelIndex ¤t, const QModelIndex & /*previous*/)
|
||||
{
|
||||
const QString cardName = current.sibling(current.row(), 0).data().toString();
|
||||
const QString cardProviderID = CardDatabaseManager::getInstance()->getPreferredPrintingProviderIdForCard(cardName);
|
||||
const QString cardProviderID = CardDatabaseManager::getInstance()->getPreferredPrintingProviderId(cardName);
|
||||
|
||||
if (!current.isValid()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!current.model()->hasChildren(current.sibling(current.row(), 0))) {
|
||||
CardInfoPtr card = CardDatabaseManager::getInstance()->getCardByNameAndProviderId(cardName, cardProviderID);
|
||||
CardInfoPtr card = CardDatabaseManager::getInstance()->getCard({cardName, cardProviderID});
|
||||
if (!card) {
|
||||
card = CardDatabaseManager::getInstance()->getCard(cardName);
|
||||
card = CardDatabaseManager::getInstance()->getCardInfo(cardName);
|
||||
}
|
||||
emit cardChanged(card);
|
||||
}
|
||||
|
|
@ -180,7 +180,7 @@ CardInfoPtr DeckEditorDatabaseDisplayWidget::currentCardInfo() const
|
|||
|
||||
const QString cardName = currentIndex.sibling(currentIndex.row(), 0).data().toString();
|
||||
|
||||
return CardDatabaseManager::getInstance()->getCard(cardName);
|
||||
return CardDatabaseManager::getInstance()->getCardInfo(cardName);
|
||||
}
|
||||
|
||||
void DeckEditorDatabaseDisplayWidget::databaseCustomMenu(QPoint point)
|
||||
|
|
|
|||
|
|
@ -227,8 +227,7 @@ CardInfoPtr DeckEditorDeckDockWidget::getCurrentCard()
|
|||
if (!current.model()->hasChildren(current.sibling(current.row(), 0))) {
|
||||
QString cardName = current.sibling(current.row(), 1).data().toString();
|
||||
QString providerId = current.sibling(current.row(), 4).data().toString();
|
||||
if (CardInfoPtr selectedCard =
|
||||
CardDatabaseManager::getInstance()->getCardByNameAndProviderId(cardName, providerId)) {
|
||||
if (CardInfoPtr selectedCard = CardDatabaseManager::getInstance()->getCard({cardName, providerId})) {
|
||||
return selectedCard;
|
||||
}
|
||||
}
|
||||
|
|
@ -287,11 +286,9 @@ void DeckEditorDeckDockWidget::updateBannerCardComboBox()
|
|||
continue;
|
||||
|
||||
for (int k = 0; k < currentCard->getNumber(); ++k) {
|
||||
CardInfoPtr info = CardDatabaseManager::getInstance()->getCardByNameAndProviderId(
|
||||
currentCard->getName(), currentCard->getCardProviderId());
|
||||
CardInfoPtr info = CardDatabaseManager::getInstance()->getCard(currentCard->toCardRef());
|
||||
if (info) {
|
||||
bannerCardSet.insert(
|
||||
QPair<QString, QString>(currentCard->getName(), currentCard->getCardProviderId()));
|
||||
bannerCardSet.insert({currentCard->getName(), currentCard->getCardProviderId()});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -312,13 +309,13 @@ void DeckEditorDeckDockWidget::updateBannerCardComboBox()
|
|||
int restoredIndex = bannerCardComboBox->findText(currentText);
|
||||
if (restoredIndex != -1) {
|
||||
bannerCardComboBox->setCurrentIndex(restoredIndex);
|
||||
if (deckModel->getDeckList()->getBannerCard().second !=
|
||||
if (deckModel->getDeckList()->getBannerCard().providerId !=
|
||||
bannerCardComboBox->currentData().value<QPair<QString, QString>>().second) {
|
||||
setBannerCard(restoredIndex);
|
||||
}
|
||||
} else {
|
||||
// Add a placeholder "-" and set it as the current selection
|
||||
int bannerIndex = bannerCardComboBox->findText(deckModel->getDeckList()->getBannerCard().first);
|
||||
int bannerIndex = bannerCardComboBox->findText(deckModel->getDeckList()->getBannerCard().name);
|
||||
if (bannerIndex != -1) {
|
||||
bannerCardComboBox->setCurrentIndex(bannerIndex);
|
||||
} else {
|
||||
|
|
@ -333,8 +330,8 @@ void DeckEditorDeckDockWidget::updateBannerCardComboBox()
|
|||
|
||||
void DeckEditorDeckDockWidget::setBannerCard(int /* changedIndex */)
|
||||
{
|
||||
auto cardAndId = bannerCardComboBox->currentData().value<QPair<QString, QString>>();
|
||||
deckModel->getDeckList()->setBannerCard(cardAndId);
|
||||
auto [name, id] = bannerCardComboBox->currentData().value<QPair<QString, QString>>();
|
||||
deckModel->getDeckList()->setBannerCard({name, id});
|
||||
deckEditor->setModified(true);
|
||||
emit deckModified();
|
||||
}
|
||||
|
|
@ -360,7 +357,7 @@ void DeckEditorDeckDockWidget::setDeck(DeckLoader *_deck)
|
|||
|
||||
nameEdit->setText(deckModel->getDeckList()->getName());
|
||||
commentsEdit->setText(deckModel->getDeckList()->getComments());
|
||||
bannerCardComboBox->setCurrentText(deckModel->getDeckList()->getBannerCard().first);
|
||||
bannerCardComboBox->setCurrentText(deckModel->getDeckList()->getBannerCard().name);
|
||||
updateBannerCardComboBox();
|
||||
updateHash();
|
||||
deckModel->sort(deckView->header()->sortIndicatorSection(), deckView->header()->sortIndicatorOrder());
|
||||
|
|
@ -476,9 +473,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()->getSpecificPrinting(cardName, cardProviderID),
|
||||
otherZoneName, true);
|
||||
QModelIndex newCardIndex = deckModel->addCard(
|
||||
cardName, CardDatabaseManager::getInstance()->getSpecificPrinting({cardName, cardProviderID}), otherZoneName,
|
||||
true);
|
||||
recursiveExpand(newCardIndex);
|
||||
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -44,8 +44,7 @@ PrintingSelectorCardOverlayWidget::PrintingSelectorCardOverlayWidget(QWidget *pa
|
|||
cardInfoPicture = new CardInfoPictureWidget(this);
|
||||
cardInfoPicture->setMinimumSize(0, 0);
|
||||
cardInfoPicture->setScaleFactor(cardSizeSlider->value());
|
||||
setCard = CardDatabaseManager::getInstance()->getCardByNameAndProviderId(rootCard->getName(),
|
||||
_printingInfo.getProperty("uuid"));
|
||||
setCard = CardDatabaseManager::getInstance()->getCard({rootCard->getName(), _printingInfo.getProperty("uuid")});
|
||||
cardInfoPicture->setCard(setCard);
|
||||
mainLayout->addWidget(cardInfoPicture);
|
||||
|
||||
|
|
@ -177,7 +176,7 @@ void PrintingSelectorCardOverlayWidget::customMenu(QPoint point)
|
|||
if (preferredProviderId.isEmpty() || preferredProviderId != cardProviderId) {
|
||||
auto *pinAction = preferenceMenu->addAction(tr("Pin Printing"));
|
||||
connect(pinAction, &QAction::triggered, this, [this, cardProviderId]() {
|
||||
SettingsCache::instance().cardOverrides().setCardPreferenceOverride(rootCard->getName(), cardProviderId);
|
||||
SettingsCache::instance().cardOverrides().setCardPreferenceOverride({rootCard->getName(), cardProviderId});
|
||||
emit cardPreferenceChanged();
|
||||
});
|
||||
} else {
|
||||
|
|
@ -199,7 +198,7 @@ void PrintingSelectorCardOverlayWidget::customMenu(QPoint point)
|
|||
const QString &relatedCardName = rel->getName();
|
||||
QAction *relatedCard = relatedMenu->addAction(relatedCardName);
|
||||
connect(relatedCard, &QAction::triggered, deckEditor, [this, relatedCardName] {
|
||||
deckEditor->updateCard(CardDatabaseManager::getInstance()->getCard(relatedCardName));
|
||||
deckEditor->updateCard(CardDatabaseManager::getInstance()->getCardInfo(relatedCardName));
|
||||
deckEditor->showPrintingSelector();
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -228,13 +228,13 @@ void VisualDatabaseDisplayWidget::populateCards()
|
|||
QVariant name = databaseDisplayModel->data(index, Qt::DisplayRole);
|
||||
qCDebug(VisualDatabaseDisplayLog) << name.toString();
|
||||
|
||||
if (CardInfoPtr info = CardDatabaseManager::getInstance()->getCard(name.toString())) {
|
||||
if (CardInfoPtr info = CardDatabaseManager::getInstance()->getCardInfo(name.toString())) {
|
||||
if (setFilter) {
|
||||
SetToPrintingsMap setMap = info->getSets();
|
||||
if (setMap.contains(setFilter->term())) {
|
||||
for (PrintingInfo printing : setMap[setFilter->term()]) {
|
||||
addCard(CardDatabaseManager::getInstance()->getCardByNameAndProviderId(
|
||||
name.toString(), printing.getProperty("uuid")));
|
||||
addCard(CardDatabaseManager::getInstance()->getCard(
|
||||
{name.toString(), printing.getProperty("uuid")}));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
|
@ -294,13 +294,13 @@ void VisualDatabaseDisplayWidget::loadNextPage()
|
|||
for (int row = start; row < end; ++row) {
|
||||
QModelIndex index = databaseDisplayModel->index(row, CardDatabaseModel::NameColumn);
|
||||
QVariant name = databaseDisplayModel->data(index, Qt::DisplayRole);
|
||||
if (CardInfoPtr info = CardDatabaseManager::getInstance()->getCard(name.toString())) {
|
||||
if (CardInfoPtr info = CardDatabaseManager::getInstance()->getCardInfo(name.toString())) {
|
||||
if (setFilter) {
|
||||
SetToPrintingsMap setMap = info->getSets();
|
||||
if (setMap.contains(setFilter->term())) {
|
||||
for (PrintingInfo printing : setMap[setFilter->term()]) {
|
||||
addCard(CardDatabaseManager::getInstance()->getCardByNameAndProviderId(
|
||||
name.toString(), printing.getProperty("uuid")));
|
||||
addCard(CardDatabaseManager::getInstance()->getCard(
|
||||
{name.toString(), printing.getProperty("uuid")}));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -101,8 +101,7 @@ QList<CardInfoPtr> VisualDeckEditorSampleHandWidget::getRandomCards(int amountTo
|
|||
continue;
|
||||
|
||||
for (int k = 0; k < currentCard->getNumber(); ++k) {
|
||||
CardInfoPtr info = CardDatabaseManager::getInstance()->getCardByNameAndProviderId(
|
||||
currentCard->getName(), currentCard->getCardProviderId());
|
||||
CardInfoPtr info = CardDatabaseManager::getInstance()->getCard(currentCard->toCardRef());
|
||||
if (info) {
|
||||
mainDeckCards.append(info);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ VisualDeckEditorWidget::VisualDeckEditorWidget(QWidget *parent, DeckListModel *_
|
|||
if (!searchBar->hasFocus())
|
||||
return;
|
||||
|
||||
CardInfoPtr card = CardDatabaseManager::getInstance()->getCard(searchBar->text());
|
||||
CardInfoPtr card = CardDatabaseManager::getInstance()->getCardInfo(searchBar->text());
|
||||
if (card) {
|
||||
emit cardAdditionRequested(card);
|
||||
}
|
||||
|
|
@ -103,7 +103,7 @@ VisualDeckEditorWidget::VisualDeckEditorWidget(QWidget *parent, DeckListModel *_
|
|||
// Search button functionality
|
||||
searchPushButton = new QPushButton(this);
|
||||
connect(searchPushButton, &QPushButton::clicked, this, [=, this]() {
|
||||
CardInfoPtr card = CardDatabaseManager::getInstance()->getCard(searchBar->text());
|
||||
CardInfoPtr card = CardDatabaseManager::getInstance()->getCardInfo(searchBar->text());
|
||||
if (card) {
|
||||
emit cardAdditionRequested(card);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,10 +74,9 @@ void DeckPreviewWidget::initializeUi(const bool deckLoadSuccess)
|
|||
if (!deckLoadSuccess) {
|
||||
return;
|
||||
}
|
||||
auto bannerCard = deckLoader->getBannerCard().first.isEmpty()
|
||||
auto bannerCard = deckLoader->getBannerCard().name.isEmpty()
|
||||
? CardInfoPtr()
|
||||
: CardDatabaseManager::getInstance()->getCardByNameAndProviderId(
|
||||
deckLoader->getBannerCard().first, deckLoader->getBannerCard().second);
|
||||
: CardDatabaseManager::getInstance()->getCard(deckLoader->getBannerCard());
|
||||
|
||||
bannerCardDisplayWidget->setCard(bannerCard);
|
||||
bannerCardDisplayWidget->setFontSize(24);
|
||||
|
|
@ -91,7 +90,7 @@ void DeckPreviewWidget::initializeUi(const bool deckLoadSuccess)
|
|||
bannerCardComboBox = new QComboBox(this);
|
||||
bannerCardComboBox->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
|
||||
bannerCardComboBox->setObjectName("bannerCardComboBox");
|
||||
bannerCardComboBox->setCurrentText(deckLoader->getBannerCard().first);
|
||||
bannerCardComboBox->setCurrentText(deckLoader->getBannerCard().name);
|
||||
bannerCardComboBox->installEventFilter(new NoScrollFilter());
|
||||
connect(bannerCardComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
|
||||
&DeckPreviewWidget::setBannerCard);
|
||||
|
|
@ -161,7 +160,7 @@ QString DeckPreviewWidget::getColorIdentity()
|
|||
QSet<QChar> colorSet; // A set to collect unique color symbols (e.g., W, U, B, R, G)
|
||||
|
||||
for (const QString &cardName : cardList) {
|
||||
CardInfoPtr currentCard = CardDatabaseManager::getInstance()->getCard(cardName);
|
||||
CardInfoPtr currentCard = CardDatabaseManager::getInstance()->getCardInfo(cardName);
|
||||
if (currentCard) {
|
||||
QString colors = currentCard->getColors(); // Assuming this returns something like "WUB"
|
||||
for (const QChar &color : colors) {
|
||||
|
|
@ -274,7 +273,7 @@ void DeckPreviewWidget::updateBannerCardComboBox()
|
|||
bannerCardComboBox->setCurrentIndex(restoredIndex);
|
||||
} else {
|
||||
// Add a placeholder "-" and set it as the current selection
|
||||
int bannerIndex = bannerCardComboBox->findText(deckLoader->getBannerCard().first);
|
||||
int bannerIndex = bannerCardComboBox->findText(deckLoader->getBannerCard().name);
|
||||
if (bannerIndex != -1) {
|
||||
bannerCardComboBox->setCurrentIndex(bannerIndex);
|
||||
} else {
|
||||
|
|
@ -290,11 +289,11 @@ void DeckPreviewWidget::updateBannerCardComboBox()
|
|||
|
||||
void DeckPreviewWidget::setBannerCard(int /* changedIndex */)
|
||||
{
|
||||
auto nameAndId = bannerCardComboBox->currentData().value<QPair<QString, QString>>();
|
||||
deckLoader->setBannerCard(nameAndId);
|
||||
auto [name, id] = bannerCardComboBox->currentData().value<QPair<QString, QString>>();
|
||||
CardRef cardRef = {name, id};
|
||||
deckLoader->setBannerCard(cardRef);
|
||||
deckLoader->saveToFile(filePath, DeckLoader::getFormatFromName(filePath));
|
||||
bannerCardDisplayWidget->setCard(
|
||||
CardDatabaseManager::getInstance()->getCardByNameAndProviderId(nameAndId.first, nameAndId.second));
|
||||
bannerCardDisplayWidget->setCard(CardDatabaseManager::getInstance()->getCard(cardRef));
|
||||
}
|
||||
|
||||
void DeckPreviewWidget::imageClickedEvent(QMouseEvent *event, DeckPreviewCardPictureWidget *instance)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue