From 674b19aadf3b561e5f4fe14a82c7ea5082f1f6ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Fri, 18 Apr 2025 22:53:46 +0200 Subject: [PATCH] Add a card size slider. --- ...api_response_card_details_display_widget.cpp | 3 +++ ...esponse_commander_details_display_widget.cpp | 17 +++++++++++++++++ .../client/tabs/api/edhrec/tab_edhrec_main.cpp | 7 +++++++ .../client/tabs/api/edhrec/tab_edhrec_main.h | 9 +++++++++ 4 files changed, 36 insertions(+) diff --git a/cockatrice/src/client/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.cpp b/cockatrice/src/client/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.cpp index a7eca6424..674f011cd 100644 --- a/cockatrice/src/client/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.cpp +++ b/cockatrice/src/client/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.cpp @@ -38,8 +38,11 @@ EdhrecApiResponseCardDetailsDisplayWidget::EdhrecApiResponseCardDetailsDisplayWi } if (parentTab) { + cardPictureWidget->setScaleFactor(parentTab->getCardSizeSlider()->getSlider()->value()); connect(cardPictureWidget, &CardInfoPictureWidget::cardClicked, this, &EdhrecApiResponseCardDetailsDisplayWidget::actRequestPageNavigation); + connect(parentTab->getCardSizeSlider()->getSlider(), &QSlider::valueChanged, cardPictureWidget, + &CardInfoPictureWidget::setScaleFactor); connect(this, &EdhrecApiResponseCardDetailsDisplayWidget::requestUrl, parentTab, &TabEdhRecMain::actNavigatePage); } 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 e04325a35..2001cf6d1 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 "../../tab_edhrec_main.h" #include "../card_prices/edhrec_api_response_card_prices_display_widget.h" EdhrecCommanderResponseCommanderDetailsDisplayWidget::EdhrecCommanderResponseCommanderDetailsDisplayWidget( @@ -16,6 +17,22 @@ EdhrecCommanderResponseCommanderDetailsDisplayWidget::EdhrecCommanderResponseCom commanderPicture = new CardInfoPictureWidget(this); commanderPicture->setCard(CardDatabaseManager::getInstance()->getCard(commanderDetails.getName())); + QWidget *currentParent = parentWidget(); + TabEdhRecMain *parentTab = nullptr; + + while (currentParent) { + if ((parentTab = qobject_cast(currentParent))) { + break; + } + currentParent = currentParent->parentWidget(); + } + + if (parentTab) { + connect(parentTab->getCardSizeSlider()->getSlider(), &QSlider::valueChanged, commanderPicture, + &CardInfoPictureWidget::setScaleFactor); + commanderPicture->setScaleFactor(parentTab->getCardSizeSlider()->getSlider()->value()); + } + commanderDetails.debugPrint(); label = new QLabel(this); 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 ac30cef4d..0bd4e843a 100644 --- a/cockatrice/src/client/tabs/api/edhrec/tab_edhrec_main.cpp +++ b/cockatrice/src/client/tabs/api/edhrec/tab_edhrec_main.cpp @@ -94,11 +94,18 @@ TabEdhRecMain::TabEdhRecMain(TabSupervisor *_tabSupervisor) : Tab(_tabSupervisor searchPushButton = new QPushButton(navigationContainer); connect(searchPushButton, &QPushButton::clicked, this, [=, this]() { doSearch(); }); + settingsButton = new SettingsButtonWidget(this); + + cardSizeSlider = new CardSizeWidget(this); + + settingsButton->addSettingsWidget(cardSizeSlider); + navigationLayout->addWidget(cardsPushButton); navigationLayout->addWidget(topCommandersPushButton); navigationLayout->addWidget(tagsPushButton); navigationLayout->addWidget(searchBar); navigationLayout->addWidget(searchPushButton); + navigationLayout->addWidget(settingsButton); currentPageDisplay = new QWidget(container); currentPageLayout = new QVBoxLayout(currentPageDisplay); diff --git a/cockatrice/src/client/tabs/api/edhrec/tab_edhrec_main.h b/cockatrice/src/client/tabs/api/edhrec/tab_edhrec_main.h index 1c6c67e5c..3703e55d3 100644 --- a/cockatrice/src/client/tabs/api/edhrec/tab_edhrec_main.h +++ b/cockatrice/src/client/tabs/api/edhrec/tab_edhrec_main.h @@ -2,7 +2,9 @@ #define TAB_EDHREC_MAIN_H #include "../../../../game/cards/card_database.h" +#include "../../../ui/widgets/cards/card_size_widget.h" #include "../../../ui/widgets/general/layout_containers/flow_widget.h" +#include "../../../ui/widgets/quick_settings/settings_button_widget.h" #include "../../tab.h" #include "display/commander/edhrec_commander_api_response_display_widget.h" @@ -25,6 +27,11 @@ public: return tr("EDHREC: ") + cardName; } + CardSizeWidget* getCardSizeSlider() + { + return cardSizeSlider; + } + QNetworkAccessManager *networkManager; public slots: @@ -53,6 +60,8 @@ private: QPushButton *tagsPushButton; QLineEdit *searchBar; QPushButton *searchPushButton; + SettingsButtonWidget *settingsButton; + CardSizeWidget *cardSizeSlider; CardInfoPtr cardToQuery; EdhrecCommanderApiResponseDisplayWidget *displayWidget; };