From 9f493b20706c1e44785678308f3105c7cc901bf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Wed, 18 Dec 2024 02:33:39 +0100 Subject: [PATCH] Don't use timers, Qt provides ShowEvent for anything necessary before the widget is shown. --- .../printing_selector/card_amount_widget.cpp | 24 ++++++++++++------- .../printing_selector/card_amount_widget.h | 1 + 2 files changed, 17 insertions(+), 8 deletions(-) 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 5006bb25b..529cdecdb 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 @@ -64,14 +64,6 @@ CardAmountWidget::CardAmountWidget(QWidget *parent, // Connect slider for dynamic font size adjustment connect(cardSizeSlider, &QSlider::valueChanged, this, &CardAmountWidget::adjustFontSize); - - // Resize after a little delay to ensure parent size is available - QTimer::singleShot(10, this, [this]() { - adjustFontSize(this->cardSizeSlider->value()); - incrementButton->setFixedSize(parentWidget()->size().width() / 3, parentWidget()->size().height() / 9); - decrementButton->setFixedSize(parentWidget()->size().width() / 3, parentWidget()->size().height() / 9); - updateCardCount(); - }); } /** @@ -92,6 +84,22 @@ void CardAmountWidget::paintEvent(QPaintEvent *event) QWidget::paintEvent(event); } +void CardAmountWidget::showEvent(QShowEvent *event) +{ + QWidget::showEvent(event); + + adjustFontSize(this->cardSizeSlider->value()); + updateCardCount(); + + if (parentWidget()) { + int width = parentWidget()->size().width(); + int height = parentWidget()->size().height(); + + incrementButton->setFixedSize(width / 3, height / 9); + decrementButton->setFixedSize(width / 3, height / 9); + } +} + /** * @brief Adjusts the font size of the card count label based on the slider value. * diff --git a/cockatrice/src/client/ui/widgets/printing_selector/card_amount_widget.h b/cockatrice/src/client/ui/widgets/printing_selector/card_amount_widget.h index 8866ad9f4..e7e5823bb 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/card_amount_widget.h +++ b/cockatrice/src/client/ui/widgets/printing_selector/card_amount_widget.h @@ -35,6 +35,7 @@ public slots: protected: void paintEvent(QPaintEvent *event) override; + void showEvent(QShowEvent *event) override; void hideElements(); void showElements();