From 8cd5552d6514d1515c47ebfe5cd5fce9b46b2e60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Br=C3=BCbach=2C=20Lukas?= Date: Sat, 29 Nov 2025 21:26:58 +0100 Subject: [PATCH] Indicate that things are clickable. --- .../display/background_plate_widget.cpp | 12 +++++++++++- .../general/display/background_plate_widget.h | 5 +++++ ..._api_response_deck_entry_display_widget.cpp | 18 ++++++++++++++---- ...kt_api_response_deck_entry_display_widget.h | 4 ++++ 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/cockatrice/src/interface/widgets/general/display/background_plate_widget.cpp b/cockatrice/src/interface/widgets/general/display/background_plate_widget.cpp index 8669d3592..56361aae9 100644 --- a/cockatrice/src/interface/widgets/general/display/background_plate_widget.cpp +++ b/cockatrice/src/interface/widgets/general/display/background_plate_widget.cpp @@ -19,6 +19,16 @@ void BackgroundPlateWidget::paintEvent(QPaintEvent *event) // Set the background color to semi-transparent black with rounded corners QRect rect = this->rect(); painter.setPen(Qt::NoPen); // No border - painter.setBrush(QColor(0, 0, 0, 140)); // semi-transparent black + if (focused) { + painter.setBrush(QColor(85, 190, 75, 140)); + } else { + painter.setBrush(QColor(0, 0, 0, 140)); // semi-transparent black + } painter.drawRoundedRect(rect, 6, 6); // rounded corners +} + +void BackgroundPlateWidget::setFocused(bool _focused) +{ + focused = _focused; + update(); } \ No newline at end of file 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 bf9fb942a..d529cb6fa 100644 --- a/cockatrice/src/interface/widgets/general/display/background_plate_widget.h +++ b/cockatrice/src/interface/widgets/general/display/background_plate_widget.h @@ -10,6 +10,11 @@ class BackgroundPlateWidget : public QWidget public: explicit BackgroundPlateWidget(QWidget *parent = nullptr); + void setFocused(bool focused); + +private: + bool focused = false; + protected: void paintEvent(QPaintEvent *event) override; }; diff --git a/cockatrice/src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_entry_display_widget.cpp b/cockatrice/src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_entry_display_widget.cpp index 8768c33e1..64c2b0cac 100644 --- a/cockatrice/src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_entry_display_widget.cpp +++ b/cockatrice/src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_entry_display_widget.cpp @@ -101,10 +101,10 @@ ArchidektApiResponseDeckEntryDisplayWidget::ArchidektApiResponseDeckEntryDisplay headerLayout->addWidget(colorBar); // Create a shared plate for the labels - BackgroundPlateWidget *sharedPlate = new BackgroundPlateWidget(this); - sharedPlate->setFixedHeight(120); // Adjust height to fit all labels + backgroundPlateWidget = new BackgroundPlateWidget(this); + backgroundPlateWidget->setFixedHeight(120); // Adjust height to fit all labels - QVBoxLayout *plateLayout = new QVBoxLayout(sharedPlate); + QVBoxLayout *plateLayout = new QVBoxLayout(backgroundPlateWidget); // Add labels to the plate layout QLabel *ownerLabel = new QLabel(QString("Owner: %1").arg(response.getOwner().getName())); @@ -117,7 +117,7 @@ ArchidektApiResponseDeckEntryDisplayWidget::ArchidektApiResponseDeckEntryDisplay plateLayout->addWidget(updatedAtLabel); // Add the shared plate to the header layout - headerLayout->addWidget(sharedPlate); + headerLayout->addWidget(backgroundPlateWidget); layout->addLayout(headerLayout); } @@ -127,6 +127,16 @@ void ArchidektApiResponseDeckEntryDisplayWidget::mousePressEvent(QMouseEvent *ev QWidget::mousePressEvent(event); actRequestNavigationToDeck(); } +void ArchidektApiResponseDeckEntryDisplayWidget::enterEvent(QEnterEvent *event) +{ + QWidget::enterEvent(event); + backgroundPlateWidget->setFocused(true); +} +void ArchidektApiResponseDeckEntryDisplayWidget::leaveEvent(QEvent *event) +{ + QWidget::leaveEvent(event); + backgroundPlateWidget->setFocused(false); +} void ArchidektApiResponseDeckEntryDisplayWidget::setScaleFactor(int scale) { diff --git a/cockatrice/src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_entry_display_widget.h b/cockatrice/src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_entry_display_widget.h index 76d9dd05c..419020588 100644 --- a/cockatrice/src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_entry_display_widget.h +++ b/cockatrice/src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_entry_display_widget.h @@ -11,6 +11,7 @@ #include #include +class BackgroundPlateWidget; class ArchidektApiResponseDeckEntryDisplayWidget : public QWidget { Q_OBJECT @@ -32,6 +33,8 @@ public slots: protected: void mousePressEvent(QMouseEvent *event) override; + void enterEvent(QEnterEvent *event) override; + void leaveEvent(QEvent *event) override; private: QVBoxLayout *layout; @@ -42,6 +45,7 @@ private: QLabel *picture; QPixmap originalPixmap; int scaleFactor = 100; + BackgroundPlateWidget *backgroundPlateWidget; }; #endif // COCKATRICE_ARCHIDEKT_API_RESPONSE_DECK_ENTRY_DISPLAY_WIDGET_H