From 364d0ca52b701f4cde78d4ed1eb462ca69cb5ddb Mon Sep 17 00:00:00 2001 From: BruebachL <44814898+BruebachL@users.noreply.github.com> Date: Mon, 1 Dec 2025 09:37:48 +0100 Subject: [PATCH] [EDHRec] Add background plate and "selection highlight" to card display widgets (#6390) --- .../general/display/background_plate_widget.h | 2 +- ...i_response_card_details_display_widget.cpp | 33 +++++++++++++++++-- ...api_response_card_details_display_widget.h | 12 +++++++ 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/cockatrice/src/interface/widgets/general/display/background_plate_widget.h b/cockatrice/src/interface/widgets/general/display/background_plate_widget.h index d529cb6fa..1fc1bc3ba 100644 --- a/cockatrice/src/interface/widgets/general/display/background_plate_widget.h +++ b/cockatrice/src/interface/widgets/general/display/background_plate_widget.h @@ -8,7 +8,7 @@ class BackgroundPlateWidget : public QWidget Q_OBJECT public: - explicit BackgroundPlateWidget(QWidget *parent = nullptr); + explicit BackgroundPlateWidget(QWidget *parent); void setFocused(bool focused); diff --git a/cockatrice/src/interface/widgets/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.cpp b/cockatrice/src/interface/widgets/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.cpp index 108694d8d..26ade96dd 100644 --- a/cockatrice/src/interface/widgets/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.cpp +++ b/cockatrice/src/interface/widgets/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.cpp @@ -1,5 +1,6 @@ #include "edhrec_api_response_card_details_display_widget.h" +#include "../../../../../general/display/background_plate_widget.h" #include "../../tab_edhrec_main.h" #include @@ -25,8 +26,14 @@ EdhrecApiResponseCardDetailsDisplayWidget::EdhrecApiResponseCardDetailsDisplayWi layout->addWidget(nameLabel); layout->addWidget(cardPictureWidget); - layout->addWidget(inclusionDisplayWidget); - layout->addWidget(synergyDisplayWidget); + + backgroundPlateWidget = new BackgroundPlateWidget(this); + auto plateLayout = new QVBoxLayout(backgroundPlateWidget); + + plateLayout->addWidget(inclusionDisplayWidget); + plateLayout->addWidget(synergyDisplayWidget); + + layout->addWidget(backgroundPlateWidget); QWidget *currentParent = parentWidget(); TabEdhRecMain *parentTab = nullptr; @@ -49,6 +56,28 @@ EdhrecApiResponseCardDetailsDisplayWidget::EdhrecApiResponseCardDetailsDisplayWi } } +void EdhrecApiResponseCardDetailsDisplayWidget::mousePressEvent(QMouseEvent *event) +{ + QWidget::mousePressEvent(event); + actRequestPageNavigation(); +} + +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) +void EdhrecApiResponseCardDetailsDisplayWidget::enterEvent(QEnterEvent *event) +#else +void EdhrecApiResponseCardDetailsDisplayWidget::enterEvent(QEvent *event) +#endif +{ + QWidget::enterEvent(event); + backgroundPlateWidget->setFocused(true); +} + +void EdhrecApiResponseCardDetailsDisplayWidget::leaveEvent(QEvent *event) +{ + QWidget::leaveEvent(event); + backgroundPlateWidget->setFocused(false); +} + void EdhrecApiResponseCardDetailsDisplayWidget::actRequestPageNavigation() { emit requestUrl(toDisplay.url); diff --git a/cockatrice/src/interface/widgets/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.h b/cockatrice/src/interface/widgets/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.h index 548cdc0af..82dcfb8b0 100644 --- a/cockatrice/src/interface/widgets/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.h +++ b/cockatrice/src/interface/widgets/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.h @@ -8,6 +8,7 @@ #define EDHREC_COMMANDER_API_RESPONSE_CARD_DETAILS_DISPLAY_WIDGET_H #include "../../../../../cards/card_info_picture_widget.h" +#include "../../../../../general/display/background_plate_widget.h" #include "../../api_response/cards/edhrec_api_response_card_details.h" #include "edhrec_api_response_card_inclusion_display_widget.h" #include "edhrec_api_response_card_synergy_display_widget.h" @@ -30,9 +31,20 @@ private: EdhrecApiResponseCardDetails toDisplay; QVBoxLayout *layout; CardInfoPictureWidget *cardPictureWidget; + BackgroundPlateWidget *backgroundPlateWidget; ///< Plate for metadata labels QLabel *nameLabel; EdhrecApiResponseCardInclusionDisplayWidget *inclusionDisplayWidget; EdhrecApiResponseCardSynergyDisplayWidget *synergyDisplayWidget; + +protected slots: + void mousePressEvent(QMouseEvent *event) override; + +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + void enterEvent(QEnterEvent *event) override; ///< Qt6 hover enter +#else + void enterEvent(QEvent *event) override; ///< Qt5 hover enter +#endif + void leaveEvent(QEvent *event) override; }; #endif // EDHREC_COMMANDER_API_RESPONSE_CARD_DETAILS_DISPLAY_WIDGET_H