Distinguish between looking up a card as a commander and a card.

This commit is contained in:
Lukas Brübach 2025-01-22 11:48:18 +01:00
parent 276a8fa335
commit 364865487a
5 changed files with 21 additions and 9 deletions

View file

@ -43,7 +43,7 @@ void TabEdhRec::retranslateUi()
{
}
void TabEdhRec::setCard(CardInfoPtr _cardToQuery)
void TabEdhRec::setCard(CardInfoPtr _cardToQuery, bool isCommander)
{
cardToQuery = _cardToQuery;
@ -55,7 +55,12 @@ void TabEdhRec::setCard(CardInfoPtr _cardToQuery)
QString cardName = cardToQuery->getName();
QString formattedName = cardName.toLower().replace(" ", "-").remove(QRegularExpression("[^a-z0-9\\-]"));
QString url = QString("https://json.edhrec.com/pages/commanders/%1.json").arg(formattedName);
QString url;
if (isCommander) {
url = QString("https://json.edhrec.com/pages/commanders/%1.json").arg(formattedName);
} else {
url = QString("https://json.edhrec.com/pages/cards/%1.json").arg(formattedName);
}
QNetworkRequest request{QUrl(url)};

View file

@ -28,7 +28,7 @@ public:
public slots:
void processApiJson(QNetworkReply *reply);
void prettyPrintJson(const QJsonValue &value, int indentLevel);
void setCard(CardInfoPtr _cardToQuery);
void setCard(CardInfoPtr _cardToQuery, bool isCommander = false);
private:
QScrollArea *scrollArea;

View file

@ -542,16 +542,23 @@ void TabDeckEditor::databaseCustomMenu(QPoint point)
if (info) {
// add to deck and sideboard options
QAction *addToDeck, *addToSideboard, *selectPrinting, *edhRec;
QAction *addToDeck, *addToSideboard, *selectPrinting, *edhRecCommander, *edhRecCard;
addToDeck = menu.addAction(tr("Add to Deck"));
addToSideboard = menu.addAction(tr("Add to Sideboard"));
selectPrinting = menu.addAction(tr("Select Printing"));
edhRec = menu.addAction(tr("Show on EDHREC"));
if ((info->getCardType().contains("Legendary", Qt::CaseInsensitive) &&
info->getCardType().contains("Creature", Qt::CaseInsensitive)) ||
info->getText().contains("can be your commander", Qt::CaseInsensitive)) {
edhRecCommander = menu.addAction(tr("Show on EDHREC (Commander)"));
connect(edhRecCommander, &QAction::triggered, this,
[this, info] { this->tabSupervisor->addEdhrecTab(info, true); });
}
edhRecCard = menu.addAction(tr("Show on EDHREC (Card)"));
connect(addToDeck, SIGNAL(triggered()), this, SLOT(actAddCard()));
connect(addToSideboard, SIGNAL(triggered()), this, SLOT(actAddCardToSideboard()));
connect(selectPrinting, &QAction::triggered, this, [this, info] { this->showPrintingSelector(); });
connect(edhRec, &QAction::triggered, this, [this, info] { this->tabSupervisor->addEdhrecTab(info); });
connect(edhRecCard, &QAction::triggered, this, [this, info] { this->tabSupervisor->addEdhrecTab(info); });
// filling out the related cards submenu
auto *relatedMenu = new QMenu(tr("Show Related cards"));

View file

@ -720,11 +720,11 @@ TabDeckEditor *TabSupervisor::addDeckEditorTab(const DeckLoader *deckToOpen)
return tab;
}
TabEdhRec *TabSupervisor::addEdhrecTab(const CardInfoPtr cardToQuery)
TabEdhRec *TabSupervisor::addEdhrecTab(const CardInfoPtr cardToQuery, bool isCommander)
{
TabEdhRec *tab = new TabEdhRec(this);
if (cardToQuery)
tab->setCard(cardToQuery);
tab->setCard(cardToQuery, isCommander);
// connect(tab, &TabDeckEditor::deckEditorClosing, this, &TabSupervisor::deckEditorClosed);
// connect(tab, &TabDeckEditor::openDeckEditor, this, &TabSupervisor::addDeckEditorTab);
myAddTab(tab);

View file

@ -148,7 +148,7 @@ signals:
public slots:
TabDeckEditor *addDeckEditorTab(const DeckLoader *deckToOpen);
TabEdhRec *addEdhrecTab(CardInfoPtr cardToQuery);
TabEdhRec *addEdhrecTab(CardInfoPtr cardToQuery, bool isCommander = false);
void openReplay(GameReplay *replay);
void maximizeMainWindow();
private slots: