From 6abcb634ff482905299de8a8eb000854eba6ebaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Wed, 16 Apr 2025 23:26:12 +0200 Subject: [PATCH] Add combos button. --- ...ponse_commander_details_display_widget.cpp | 29 +++++++++++++++++++ ...esponse_commander_details_display_widget.h | 7 +++++ .../tabs/api/edhrec/tab_edhrec_main.cpp | 6 +++- 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/cockatrice/src/client/tabs/api/edhrec/display/commander/edhrec_commander_api_response_commander_details_display_widget.cpp b/cockatrice/src/client/tabs/api/edhrec/display/commander/edhrec_commander_api_response_commander_details_display_widget.cpp index eb51bf954..0cb4d1677 100644 --- a/cockatrice/src/client/tabs/api/edhrec/display/commander/edhrec_commander_api_response_commander_details_display_widget.cpp +++ b/cockatrice/src/client/tabs/api/edhrec/display/commander/edhrec_commander_api_response_commander_details_display_widget.cpp @@ -2,8 +2,10 @@ #include "../../../../../../game/cards/card_database_manager.h" #include "../../../../../ui/widgets/cards/card_info_picture_widget.h" +#include "../../tab_edhrec_main.h" #include +#include EdhrecCommanderResponseCommanderDetailsDisplayWidget::EdhrecCommanderResponseCommanderDetailsDisplayWidget( QWidget *parent, @@ -23,9 +25,30 @@ EdhrecCommanderResponseCommanderDetailsDisplayWidget::EdhrecCommanderResponseCom salt = new QLabel(this); salt->setAlignment(Qt::AlignCenter); + comboPushButton = new QPushButton(this); + layout->addWidget(commanderPicture); layout->addWidget(label); layout->addWidget(salt); + layout->addWidget(comboPushButton); + + QWidget *currentParent = parentWidget(); + TabEdhRecMain *parentTab = nullptr; + + while (currentParent) { + if ((parentTab = qobject_cast(currentParent))) { + break; + } + currentParent = currentParent->parentWidget(); + } + + if (parentTab) { + connect(comboPushButton, &QPushButton::clicked, this, + &EdhrecCommanderResponseCommanderDetailsDisplayWidget::actRequestComboNavigation); + connect(this, &EdhrecCommanderResponseCommanderDetailsDisplayWidget::requestUrl, parentTab, + &TabEdhRecMain::actNavigatePage); + } + retranslateUi(); } @@ -33,4 +56,10 @@ void EdhrecCommanderResponseCommanderDetailsDisplayWidget::retranslateUi() { label->setText(commanderDetails.getLabel()); salt->setText(tr("Salt: ") + QString::number(commanderDetails.getSalt())); + comboPushButton->setText(tr("Combos")); +} + +void EdhrecCommanderResponseCommanderDetailsDisplayWidget::actRequestComboNavigation() +{ + emit requestUrl("/combos/" + commanderDetails.getSanitized()); } \ No newline at end of file diff --git a/cockatrice/src/client/tabs/api/edhrec/display/commander/edhrec_commander_api_response_commander_details_display_widget.h b/cockatrice/src/client/tabs/api/edhrec/display/commander/edhrec_commander_api_response_commander_details_display_widget.h index 06dcc195e..f78bf855b 100644 --- a/cockatrice/src/client/tabs/api/edhrec/display/commander/edhrec_commander_api_response_commander_details_display_widget.h +++ b/cockatrice/src/client/tabs/api/edhrec/display/commander/edhrec_commander_api_response_commander_details_display_widget.h @@ -5,6 +5,7 @@ #include "../../api_response/commander/edhrec_commander_api_response_commander_details.h" #include +#include #include #include @@ -17,9 +18,15 @@ public: const EdhrecCommanderApiResponseCommanderDetails &_commanderDetails); void retranslateUi(); +public slots: + void actRequestComboNavigation(); +signals: + void requestUrl(QString url); + private: QLabel *label; QLabel *salt; + QPushButton *comboPushButton; QVBoxLayout *layout; CardInfoPictureWidget *commanderPicture; EdhrecCommanderApiResponseCommanderDetails commanderDetails; diff --git a/cockatrice/src/client/tabs/api/edhrec/tab_edhrec_main.cpp b/cockatrice/src/client/tabs/api/edhrec/tab_edhrec_main.cpp index 112e9fcf6..80e70053f 100644 --- a/cockatrice/src/client/tabs/api/edhrec/tab_edhrec_main.cpp +++ b/cockatrice/src/client/tabs/api/edhrec/tab_edhrec_main.cpp @@ -161,7 +161,9 @@ void TabEdhRecMain::setCard(CardInfoPtr _cardToQuery, bool isCommander) void TabEdhRecMain::actNavigatePage(QString url) { - QNetworkRequest request{QUrl("https://json.edhrec.com/pages" + url + ".json")}; + auto finalUrl = QUrl("https://json.edhrec.com/pages" + url + ".json"); + qInfo() << "Requested:" << finalUrl; + QNetworkRequest request{finalUrl}; networkManager->get(request); } @@ -222,6 +224,8 @@ void TabEdhRecMain::processApiJson(QNetworkReply *reply) processTopTagsResponse(jsonObj); } else if (responseUrl.startsWith("https://json.edhrec.com/pages/top/year.json")) { processTopCardsResponse(jsonObj); + } else if (responseUrl.startsWith("https://json.edhrec.com/pages/combos/")) { + processCommanderResponse(jsonObj); } else { prettyPrintJson(jsonObj, 4); }