From 3479bac4939ea6f66ff7b3be443c413380d7fc09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Fri, 18 Apr 2025 01:20:30 +0200 Subject: [PATCH] Add a card price display widget. --- cockatrice/CMakeLists.txt | 1 + .../edhrec_api_response_card_prices.cpp | 20 +++--- ...pi_response_card_prices_display_widget.cpp | 66 +++++++++++++++++++ ..._api_response_card_prices_display_widget.h | 42 ++++++++++++ ...ponse_commander_details_display_widget.cpp | 4 ++ ...esponse_commander_details_display_widget.h | 2 + 6 files changed, 125 insertions(+), 10 deletions(-) create mode 100644 cockatrice/src/client/tabs/api/edhrec/display/card_prices/edhrec_api_response_card_prices_display_widget.cpp create mode 100644 cockatrice/src/client/tabs/api/edhrec/display/card_prices/edhrec_api_response_card_prices_display_widget.h diff --git a/cockatrice/CMakeLists.txt b/cockatrice/CMakeLists.txt index fa0b3f9f2..cbd0ed1d7 100644 --- a/cockatrice/CMakeLists.txt +++ b/cockatrice/CMakeLists.txt @@ -22,6 +22,7 @@ set(cockatrice_SOURCES src/client/tabs/api/edhrec/tab_edhrec_main.cpp src/client/tabs/api/edhrec/display/commander/edhrec_commander_api_response_display_widget.cpp src/client/tabs/api/edhrec/display/commander/edhrec_commander_api_response_navigation_widget.cpp + src/client/tabs/api/edhrec/display/card_prices/edhrec_api_response_card_prices_display_widget.cpp src/client/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.cpp src/client/tabs/api/edhrec/display/cards/edhrec_api_response_card_list_display_widget.cpp src/client/tabs/api/edhrec/display/commander/edhrec_api_response_commander_details_display_widget.cpp diff --git a/cockatrice/src/client/tabs/api/edhrec/api_response/card_prices/edhrec_api_response_card_prices.cpp b/cockatrice/src/client/tabs/api/edhrec/api_response/card_prices/edhrec_api_response_card_prices.cpp index 74797ecf0..1231d147a 100644 --- a/cockatrice/src/client/tabs/api/edhrec/api_response/card_prices/edhrec_api_response_card_prices.cpp +++ b/cockatrice/src/client/tabs/api/edhrec/api_response/card_prices/edhrec_api_response_card_prices.cpp @@ -18,14 +18,14 @@ void CardPrices::fromJson(const QJsonObject &json) void CardPrices::debugPrint() const { - qDebug() << "Card Prices:"; - qDebug() << "Cardhoarder:" << cardhoarder; - qDebug() << "Cardkingdom:" << cardkingdom; - qDebug() << "Cardmarket:" << cardmarket; - qDebug() << "Face2Face:" << face2face; - qDebug() << "Manapool:" << manapool; - qDebug() << "Mtgstocks:" << mtgstocks; - qDebug() << "SCG:" << scg; - qDebug() << "TCGL:" << tcgl; - qDebug() << "Tcgplayer:" << tcgplayer; + qInfo() << "Card Prices:"; + qInfo() << "Cardhoarder:" << cardhoarder; + qInfo() << "Cardkingdom:" << cardkingdom; + qInfo() << "Cardmarket:" << cardmarket; + qInfo() << "Face2Face:" << face2face; + qInfo() << "Manapool:" << manapool; + qInfo() << "Mtgstocks:" << mtgstocks; + qInfo() << "SCG:" << scg; + qInfo() << "TCGL:" << tcgl; + qInfo() << "Tcgplayer:" << tcgplayer; } diff --git a/cockatrice/src/client/tabs/api/edhrec/display/card_prices/edhrec_api_response_card_prices_display_widget.cpp b/cockatrice/src/client/tabs/api/edhrec/display/card_prices/edhrec_api_response_card_prices_display_widget.cpp new file mode 100644 index 000000000..75902daad --- /dev/null +++ b/cockatrice/src/client/tabs/api/edhrec/display/card_prices/edhrec_api_response_card_prices_display_widget.cpp @@ -0,0 +1,66 @@ +#include "edhrec_api_response_card_prices_display_widget.h" + +EdhrecApiResponseCardPricesDisplayWidget::EdhrecApiResponseCardPricesDisplayWidget(QWidget *parent, + const CardPrices &_cardPrices) + : QWidget(parent), cardPrices(_cardPrices) +{ + layout = new QGridLayout(this); + setLayout(layout); + + cardHoarderLabel = new QLabel(this); + cardHoarderPrice = new QLabel(QString::number(cardPrices.getCardhoarder().value("price").toDouble()), this); + cardKingdomLabel = new QLabel(this); + cardKingdomPrice = new QLabel(QString::number(cardPrices.getCardkingdom().value("price").toDouble()), this); + cardMarketLabel = new QLabel(this); + cardMarketPrice = new QLabel(QString::number(cardPrices.getCardmarket().value("price").toDouble()), this); + face2faceLabel = new QLabel(this); + face2facePrice = new QLabel(QString::number(cardPrices.getFace2face().value("price").toDouble()), this); + manaPoolLabel = new QLabel(this); + manaPoolPrice = new QLabel(QString::number(cardPrices.getManapool().value("price").toDouble()), this); + mtgStocksLabel = new QLabel(this); + mtgStocksPrice = new QLabel(QString::number(cardPrices.getMtgstocks().value("price").toDouble()), this); + scgLabel = new QLabel(this); + scgPrice = new QLabel(QString::number(cardPrices.getScg().value("price").toDouble()), this); + tcglLabel = new QLabel(this); + tcglPrice = new QLabel(QString::number(cardPrices.getTcgl().value("price").toDouble()), this); + tcgplayerLabel = new QLabel(this); + tcgplayerPrice = new QLabel(QString::number(cardPrices.getTcgplayer().value("price").toDouble()), this); + + layout->addWidget(cardHoarderLabel, 0, 0); + layout->addWidget(cardHoarderPrice, 0, 1); + layout->addWidget(cardKingdomLabel, 0, 2); + layout->addWidget(cardKingdomPrice, 0, 3); + + layout->addWidget(cardMarketLabel, 1, 0); + layout->addWidget(cardMarketPrice, 1, 1); + layout->addWidget(face2faceLabel, 1, 2); + layout->addWidget(face2facePrice, 1, 3); + + layout->addWidget(manaPoolLabel, 2, 0); + layout->addWidget(manaPoolPrice, 2, 1); + layout->addWidget(mtgStocksLabel, 2, 2); + layout->addWidget(mtgStocksPrice, 2, 3); + + layout->addWidget(scgLabel, 3, 0); + layout->addWidget(scgPrice, 3, 1); + layout->addWidget(tcglLabel, 3, 2); + layout->addWidget(tcglPrice, 3, 3); + + layout->addWidget(tcgplayerLabel, 4, 0); + layout->addWidget(tcgplayerPrice, 4, 1); + + retranslateUi(); +} + +void EdhrecApiResponseCardPricesDisplayWidget::retranslateUi() +{ + cardHoarderLabel->setText(tr("Card Hoarder")); + cardKingdomLabel->setText(tr("Card Kingdom")); + cardMarketLabel->setText(tr("Card Market")); + face2faceLabel->setText(tr("Face 2-Face")); + manaPoolLabel->setText(tr("Mana Pool")); + mtgStocksLabel->setText(tr("MTG Stocks")); + scgLabel->setText(tr("Scg")); + tcglLabel->setText(tr("Tcgl")); + tcgplayerLabel->setText(tr("Tcgplayer")); +} diff --git a/cockatrice/src/client/tabs/api/edhrec/display/card_prices/edhrec_api_response_card_prices_display_widget.h b/cockatrice/src/client/tabs/api/edhrec/display/card_prices/edhrec_api_response_card_prices_display_widget.h new file mode 100644 index 000000000..8dae375fe --- /dev/null +++ b/cockatrice/src/client/tabs/api/edhrec/display/card_prices/edhrec_api_response_card_prices_display_widget.h @@ -0,0 +1,42 @@ +#ifndef EDHREC_API_RESPONSE_CARD_PRICES_DISPLAY_WIDGET_H +#define EDHREC_API_RESPONSE_CARD_PRICES_DISPLAY_WIDGET_H + +#include "../../api_response/card_prices/edhrec_api_response_card_prices.h" + +#include +#include +#include + +class EdhrecApiResponseCardPricesDisplayWidget : public QWidget +{ + Q_OBJECT +public: + EdhrecApiResponseCardPricesDisplayWidget(QWidget *parent, const CardPrices &cardPrices); + +public slots: + void retranslateUi(); + +private: + CardPrices cardPrices; + QGridLayout *layout; + QLabel *cardHoarderLabel; + QLabel *cardHoarderPrice; + QLabel *cardKingdomLabel; + QLabel *cardKingdomPrice; + QLabel *cardMarketLabel; + QLabel *cardMarketPrice; + QLabel *face2faceLabel; + QLabel *face2facePrice; + QLabel *manaPoolLabel; + QLabel *manaPoolPrice; + QLabel *mtgStocksLabel; + QLabel *mtgStocksPrice; + QLabel *scgLabel; + QLabel *scgPrice; + QLabel *tcglLabel; + QLabel *tcglPrice; + QLabel *tcgplayerLabel; + QLabel *tcgplayerPrice; +}; + +#endif // EDHREC_API_RESPONSE_CARD_PRICES_DISPLAY_WIDGET_H diff --git a/cockatrice/src/client/tabs/api/edhrec/display/commander/edhrec_api_response_commander_details_display_widget.cpp b/cockatrice/src/client/tabs/api/edhrec/display/commander/edhrec_api_response_commander_details_display_widget.cpp index f1f9e1172..e04325a35 100644 --- a/cockatrice/src/client/tabs/api/edhrec/display/commander/edhrec_api_response_commander_details_display_widget.cpp +++ b/cockatrice/src/client/tabs/api/edhrec/display/commander/edhrec_api_response_commander_details_display_widget.cpp @@ -2,6 +2,7 @@ #include "../../../../../../game/cards/card_database_manager.h" #include "../../../../../ui/widgets/cards/card_info_picture_widget.h" +#include "../card_prices/edhrec_api_response_card_prices_display_widget.h" EdhrecCommanderResponseCommanderDetailsDisplayWidget::EdhrecCommanderResponseCommanderDetailsDisplayWidget( QWidget *parent, @@ -22,11 +23,14 @@ EdhrecCommanderResponseCommanderDetailsDisplayWidget::EdhrecCommanderResponseCom salt = new QLabel(this); salt->setAlignment(Qt::AlignCenter); + cardPricesDisplayWidget = new EdhrecApiResponseCardPricesDisplayWidget(this, commanderDetails.getPrices()); + navigationWidget = new EdhrecCommanderApiResponseNavigationWidget(this, commanderDetails, baseUrl); layout->addWidget(commanderPicture); layout->addWidget(label); layout->addWidget(salt); + layout->addWidget(cardPricesDisplayWidget); layout->addWidget(navigationWidget); retranslateUi(); diff --git a/cockatrice/src/client/tabs/api/edhrec/display/commander/edhrec_api_response_commander_details_display_widget.h b/cockatrice/src/client/tabs/api/edhrec/display/commander/edhrec_api_response_commander_details_display_widget.h index 2ed5d5e51..ba6a895b1 100644 --- a/cockatrice/src/client/tabs/api/edhrec/display/commander/edhrec_api_response_commander_details_display_widget.h +++ b/cockatrice/src/client/tabs/api/edhrec/display/commander/edhrec_api_response_commander_details_display_widget.h @@ -3,6 +3,7 @@ #include "../../../../../ui/widgets/cards/card_info_picture_widget.h" #include "../../api_response/cards/edhrec_commander_api_response_commander_details.h" +#include "../card_prices/edhrec_api_response_card_prices_display_widget.h" #include "edhrec_commander_api_response_navigation_widget.h" #include @@ -26,6 +27,7 @@ private: CardInfoPictureWidget *commanderPicture; QLabel *label; QLabel *salt; + EdhrecApiResponseCardPricesDisplayWidget *cardPricesDisplayWidget; EdhrecCommanderApiResponseNavigationWidget *navigationWidget; };