From 44bbf26b4b679992c4c1f4cd86b84c6da72da19f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Sun, 1 Dec 2024 14:00:09 +0100 Subject: [PATCH] Move the card size slider to its own widget. --- cockatrice/CMakeLists.txt | 2 ++ .../ui/widgets/cards/card_size_widget.cpp | 25 +++++++++++++++++ .../ui/widgets/cards/card_size_widget.h | 27 +++++++++++++++++++ .../printing_selector/printing_selector.cpp | 20 +++----------- .../printing_selector/printing_selector.h | 6 ++--- 5 files changed, 59 insertions(+), 21 deletions(-) create mode 100644 cockatrice/src/client/ui/widgets/cards/card_size_widget.cpp create mode 100644 cockatrice/src/client/ui/widgets/cards/card_size_widget.h diff --git a/cockatrice/CMakeLists.txt b/cockatrice/CMakeLists.txt index 30e117b98..dd66494c7 100644 --- a/cockatrice/CMakeLists.txt +++ b/cockatrice/CMakeLists.txt @@ -24,6 +24,7 @@ set(cockatrice_SOURCES src/client/ui/widgets/cards/card_info_picture_widget.cpp src/client/ui/widgets/cards/card_info_text_widget.cpp src/client/ui/widgets/cards/card_info_display_widget.cpp + src/client/ui/widgets/cards/card_size_widget.cpp src/game/cards/card_item.cpp src/game/cards/card_list.cpp src/game/zones/card_zone.cpp @@ -99,6 +100,7 @@ set(cockatrice_SOURCES src/client/ui/widgets/printing_selector/printing_selector.cpp src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.cpp src/client/ui/widgets/printing_selector/printing_selector_card_overlay_widget.cpp + src/client/ui/widgets/printing_selector/printing_selector_card_selection_widget.cpp src/client/ui/widgets/printing_selector/set_name_and_collectors_number_display_widget.cpp src/client/network/release_channel.cpp src/server/remote/remote_client.cpp diff --git a/cockatrice/src/client/ui/widgets/cards/card_size_widget.cpp b/cockatrice/src/client/ui/widgets/cards/card_size_widget.cpp new file mode 100644 index 000000000..750a188fe --- /dev/null +++ b/cockatrice/src/client/ui/widgets/cards/card_size_widget.cpp @@ -0,0 +1,25 @@ +#include "card_size_widget.h" + +CardSizeWidget::CardSizeWidget(QWidget *parent, FlowWidget *flowWidget) : parent(parent), flowWidget(flowWidget) +{ + cardSizeLayout = new QHBoxLayout(this); + setLayout(cardSizeLayout); + + cardSizeLabel = new QLabel(tr("Card Size"), this); + cardSizeLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); + cardSizeSlider = new QSlider(Qt::Horizontal, this); + cardSizeSlider->setRange(25, 250); + cardSizeSlider->setValue(100); + + cardSizeLayout->addWidget(cardSizeLabel); + cardSizeLayout->addWidget(cardSizeSlider); + + if (flowWidget != nullptr) { + connect(cardSizeSlider, &QSlider::valueChanged, flowWidget, &FlowWidget::setMinimumSizeToMaxSizeHint); + } +} + +QSlider *CardSizeWidget::getSlider() const +{ + return cardSizeSlider; +} diff --git a/cockatrice/src/client/ui/widgets/cards/card_size_widget.h b/cockatrice/src/client/ui/widgets/cards/card_size_widget.h new file mode 100644 index 000000000..4d17517cd --- /dev/null +++ b/cockatrice/src/client/ui/widgets/cards/card_size_widget.h @@ -0,0 +1,27 @@ +#ifndef CARD_SIZE_WIDGET_H +#define CARD_SIZE_WIDGET_H + +#include "../general/layout_containers/flow_widget.h" + +#include +#include +#include +#include + +class CardSizeWidget : public QWidget +{ + Q_OBJECT + + public: + explicit CardSizeWidget(QWidget *parent, FlowWidget* flowWidget = nullptr); + QSlider* getSlider() const; + +private: + QWidget *parent; + FlowWidget* flowWidget; + QHBoxLayout *cardSizeLayout; + QLabel *cardSizeLabel; + QSlider *cardSizeSlider; +}; + +#endif //CARD_SIZE_WIDGET_H diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp index b93052820..4fdddfb4a 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp @@ -62,20 +62,7 @@ PrintingSelector::PrintingSelector(QWidget *parent, flowWidget = new FlowWidget(this, Qt::ScrollBarAlwaysOff, Qt::ScrollBarAsNeeded); layout->addWidget(flowWidget); - cardSizeWidget = new QWidget(this); - cardSizeLayout = new QHBoxLayout(this); - cardSizeWidget->setLayout(cardSizeLayout); - - cardSizeLabel = new QLabel(tr("Card Size"), cardSizeWidget); - cardSizeLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); - cardSizeSlider = new QSlider(Qt::Horizontal, cardSizeWidget); - cardSizeSlider->setRange(25, 250); - cardSizeSlider->setValue(100); - connect(cardSizeSlider, &QSlider::valueChanged, flowWidget, &FlowWidget::setMinimumSizeToMaxSizeHint); - - cardSizeLayout->addWidget(cardSizeLabel); - cardSizeLayout->addWidget(cardSizeSlider); - + cardSizeWidget = new CardSizeWidget(this); layout->addWidget(cardSizeWidget); cardSelectionBar = new PrintingSelectorCardSelectionWidget(this); @@ -311,9 +298,8 @@ void PrintingSelector::getAllSetsForCurrentCard() connect(timer, &QTimer::timeout, this, [=]() mutable { for (int i = 0; i < BATCH_SIZE && currentIndex < setsToUse.size(); ++i, ++currentIndex) { - auto *cardDisplayWidget = - new PrintingSelectorCardDisplayWidget(this, deckEditor, deckModel, deckView, cardSizeSlider, - selectedCard, setsToUse[currentIndex], currentZone); + auto *cardDisplayWidget = new PrintingSelectorCardDisplayWidget(this, deckEditor, deckModel, deckView, + cardSizeWidget->getSlider(), selectedCard, setsToUse[currentIndex], currentZone); flowWidget->addWidget(cardDisplayWidget); cardDisplayWidget->clampSetNameToPicture(); } diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.h b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.h index 6c8ea1c7d..e4b151dc2 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.h +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.h @@ -4,6 +4,7 @@ #include "../../../../deck/deck_list_model.h" #include "../../../../deck/deck_view.h" #include "../../../../game/cards/card_database.h" +#include "../cards/card_size_widget.h" #include "../general/layout_containers/flow_widget.h" #include @@ -51,10 +52,7 @@ private: QLineEdit *searchBar; QTimer *searchDebounceTimer; FlowWidget *flowWidget; - QWidget *cardSizeWidget; - QHBoxLayout *cardSizeLayout; - QLabel *cardSizeLabel; - QSlider *cardSizeSlider; + CardSizeWidget *cardSizeWidget; PrintingSelectorCardSelectionWidget *cardSelectionBar; TabDeckEditor *deckEditor; DeckListModel *deckModel;