diff --git a/cockatrice/src/client/ui/widgets/cards/card_info_picture_widget.cpp b/cockatrice/src/client/ui/widgets/cards/card_info_picture_widget.cpp index f0b5d6f65..284660037 100644 --- a/cockatrice/src/client/ui/widgets/cards/card_info_picture_widget.cpp +++ b/cockatrice/src/client/ui/widgets/cards/card_info_picture_widget.cpp @@ -99,6 +99,8 @@ void CardInfoPictureWidget::setScaleFactor(const int scale) setFixedSize(newWidth, newHeight); updatePixmap(); + + emit cardScaleFactorChanged(scale); } /** diff --git a/cockatrice/src/client/ui/widgets/cards/card_info_picture_widget.h b/cockatrice/src/client/ui/widgets/cards/card_info_picture_widget.h index e18df00d8..f274d8ad1 100644 --- a/cockatrice/src/client/ui/widgets/cards/card_info_picture_widget.h +++ b/cockatrice/src/client/ui/widgets/cards/card_info_picture_widget.h @@ -29,6 +29,7 @@ public slots: signals: void hoveredOnCard(CardInfoPtr hoveredCard); + void cardScaleFactorChanged(int _scale); protected: void resizeEvent(QResizeEvent *event) override; 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 655c038e0..8353bbcd4 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp @@ -312,6 +312,7 @@ void PrintingSelector::getAllSetsForCurrentCard() new PrintingSelectorCardDisplayWidget(this, deckEditor, deckModel, deckView, cardSizeSlider, selectedCard, prependedSets[currentIndex], currentZone); flowWidget->addWidget(cardDisplayWidget); + cardDisplayWidget->clampSetNameToPicture(); } // Stop timer when done diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.cpp b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.cpp index 1945fa09f..c540ac1dd 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.cpp @@ -33,21 +33,14 @@ PrintingSelectorCardDisplayWidget::PrintingSelectorCardDisplayWidget(QWidget *pa setNameAndCollectorsNumberDisplayWidget = new SetNameAndCollectorsNumberDisplayWidget(this, combinedSetName, setInfoForCard.getProperty("num")); - layout->addWidget(overlayWidget); + layout->addWidget(overlayWidget, 0, Qt::AlignHCenter); layout->addWidget(setNameAndCollectorsNumberDisplayWidget, 1, Qt::AlignHCenter | Qt::AlignBottom); - setMouseTracking(true); } -void PrintingSelectorCardDisplayWidget::enterEvent(QEnterEvent *event) +void PrintingSelectorCardDisplayWidget::clampSetNameToPicture() { - QWidget::enterEvent(event); + if (overlayWidget != nullptr && setNameAndCollectorsNumberDisplayWidget != nullptr) { + setNameAndCollectorsNumberDisplayWidget->setMaximumWidth(overlayWidget->width()); + } update(); -} - -void PrintingSelectorCardDisplayWidget::resizeEvent(QResizeEvent *event) -{ - QWidget::resizeEvent(event); // Ensure the parent class handles the event first - - // Set the maximum width for the setName QLabel - setNameAndCollectorsNumberDisplayWidget->setMaximumWidth(overlayWidget->width()); -} +} \ No newline at end of file diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.h b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.h index fa64293f3..4e04f7086 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.h +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.h @@ -31,8 +31,9 @@ public: CardInfoPtr rootCard, CardInfoPerSet setInfoForCard, QString ¤tZone); - void enterEvent(QEnterEvent *event) override; - void resizeEvent(QResizeEvent *event) override; + +public slots: + void clampSetNameToPicture(); private: QVBoxLayout *layout; diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_overlay_widget.cpp b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_overlay_widget.cpp index 3dd05b9fa..91121c17d 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_overlay_widget.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_overlay_widget.cpp @@ -1,6 +1,7 @@ #include "printing_selector_card_overlay_widget.h" #include "../../../../game/cards/card_database_manager.h" +#include "printing_selector_card_display_widget.h" #include @@ -36,6 +37,12 @@ PrintingSelectorCardOverlayWidget::PrintingSelectorCardOverlayWidget(QWidget *pa allZonesCardAmountWidget->raise(); // Ensure it's on top of the picture allZonesCardAmountWidget->setVisible(false); + // Attempt to cast the parent to PrintingSelectorCardDisplayWidget + if (const auto *parentWidget = qobject_cast(parent)) { + connect(cardInfoPicture, &CardInfoPictureWidget::cardScaleFactorChanged, parentWidget, + &PrintingSelectorCardDisplayWidget::clampSetNameToPicture); + } + connect(cardSizeSlider, &QSlider::valueChanged, cardInfoPicture, &CardInfoPictureWidget::setScaleFactor); }