From f4904e7c7e93a4b83e159bb49f93357009cce472 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Mon, 16 Dec 2024 00:50:43 +0100 Subject: [PATCH] Update mainboard/sideboard labels correctly. --- .../ui/widgets/cards/card_size_widget.cpp | 2 +- .../all_zones_card_amount_widget.cpp | 23 +++++++++++++++++++ .../all_zones_card_amount_widget.h | 3 +++ .../printing_selector/card_amount_widget.cpp | 2 +- 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/cockatrice/src/client/ui/widgets/cards/card_size_widget.cpp b/cockatrice/src/client/ui/widgets/cards/card_size_widget.cpp index 750a188fe..4957d671f 100644 --- a/cockatrice/src/client/ui/widgets/cards/card_size_widget.cpp +++ b/cockatrice/src/client/ui/widgets/cards/card_size_widget.cpp @@ -8,7 +8,7 @@ CardSizeWidget::CardSizeWidget(QWidget *parent, FlowWidget *flowWidget) : parent cardSizeLabel = new QLabel(tr("Card Size"), this); cardSizeLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); cardSizeSlider = new QSlider(Qt::Horizontal, this); - cardSizeSlider->setRange(25, 250); + cardSizeSlider->setRange(50, 250); cardSizeSlider->setValue(100); cardSizeLayout->addWidget(cardSizeLabel); diff --git a/cockatrice/src/client/ui/widgets/printing_selector/all_zones_card_amount_widget.cpp b/cockatrice/src/client/ui/widgets/printing_selector/all_zones_card_amount_widget.cpp index 3a638f03e..7c4ca5df1 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/all_zones_card_amount_widget.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/all_zones_card_amount_widget.cpp @@ -31,9 +31,32 @@ AllZonesCardAmountWidget::AllZonesCardAmountWidget(QWidget *parent, layout->addWidget(zoneLabelSideboard, 0, Qt::AlignHCenter | Qt::AlignBottom); layout->addWidget(buttonBoxSideboard, 0, Qt::AlignHCenter | Qt::AlignTop); + connect(cardSizeSlider, &QSlider::valueChanged, this, &AllZonesCardAmountWidget::adjustFontSize); + adjustFontSize(cardSizeSlider->value()); + setMouseTracking(true); } +void AllZonesCardAmountWidget::adjustFontSize(int scalePercentage) +{ + qDebug() << scalePercentage; + const int minFontSize = 8; // Minimum font size + const int maxFontSize = 32; // Maximum font size + const int basePercentage = 100; // Scale at 100% + + int newFontSize = minFontSize + (scalePercentage - basePercentage) * (maxFontSize - minFontSize) / (250 - 25); + newFontSize = std::clamp(newFontSize, minFontSize, maxFontSize); + + // Update the font labels + QFont zoneLabelFont = zoneLabelMainboard->font(); + zoneLabelFont.setPointSize(newFontSize); + zoneLabelMainboard->setFont(zoneLabelFont); + zoneLabelSideboard->setFont(zoneLabelFont); + + // Repaint the widget (if necessary) + repaint(); +} + int AllZonesCardAmountWidget::getMainboardAmount() { return buttonBoxMainboard->countCardsInZone(DECK_ZONE_MAIN); diff --git a/cockatrice/src/client/ui/widgets/printing_selector/all_zones_card_amount_widget.h b/cockatrice/src/client/ui/widgets/printing_selector/all_zones_card_amount_widget.h index c4665d608..0e08f04a4 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/all_zones_card_amount_widget.h +++ b/cockatrice/src/client/ui/widgets/printing_selector/all_zones_card_amount_widget.h @@ -27,6 +27,9 @@ public: void enterEvent(QEvent *event) override; #endif +public slots: + void adjustFontSize(int scalePercentage); + private: QVBoxLayout *layout; TabDeckEditor *deckEditor; diff --git a/cockatrice/src/client/ui/widgets/printing_selector/card_amount_widget.cpp b/cockatrice/src/client/ui/widgets/printing_selector/card_amount_widget.cpp index cf86f7a87..e5a4a1f2e 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/card_amount_widget.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/card_amount_widget.cpp @@ -67,7 +67,7 @@ void CardAmountWidget::adjustFontSize(int scalePercentage) { qDebug() << scalePercentage; const int minFontSize = 8; // Minimum font size - const int maxFontSize = 24; // Maximum font size + const int maxFontSize = 32; // Maximum font size const int basePercentage = 100; // Scale at 100% int newFontSize = minFontSize + (scalePercentage - basePercentage) * (maxFontSize - minFontSize) / (250 - 25);