We have good labels at home.

This commit is contained in:
Brübach, Lukas 2025-11-29 22:03:31 +01:00
parent 46acfca790
commit 7d7db0cbb4
8 changed files with 21 additions and 53 deletions

View file

@ -160,7 +160,6 @@ set(cockatrice_SOURCES
src/interface/widgets/general/display/dynamic_font_size_label.cpp src/interface/widgets/general/display/dynamic_font_size_label.cpp
src/interface/widgets/general/display/dynamic_font_size_push_button.cpp src/interface/widgets/general/display/dynamic_font_size_push_button.cpp
src/interface/widgets/general/display/labeled_input.cpp src/interface/widgets/general/display/labeled_input.cpp
src/interface/widgets/general/display/overlay_label.cpp
src/interface/widgets/general/display/percent_bar_widget.cpp src/interface/widgets/general/display/percent_bar_widget.cpp
src/interface/widgets/general/display/shadow_background_label.cpp src/interface/widgets/general/display/shadow_background_label.cpp
src/interface/widgets/general/home_styled_button.cpp src/interface/widgets/general/home_styled_button.cpp

View file

@ -1,22 +0,0 @@
#include "overlay_label.h"
#include <QPainter>
OverlayLabel::OverlayLabel(QWidget *parent) : QLabel(parent)
{
setAttribute(Qt::WA_TranslucentBackground);
}
void OverlayLabel::paintEvent(QPaintEvent *event)
{
QPainter p(this);
p.setRenderHint(QPainter::Antialiasing, true);
QRect r = rect().adjusted(0, 0, -1, -1);
p.setBrush(QColor(0, 0, 0, 140));
p.setPen(Qt::NoPen);
p.drawRoundedRect(r, 6, 6);
QLabel::paintEvent(event);
}

View file

@ -1,16 +0,0 @@
#ifndef COCKATRICE_OVERLAY_LABEL_H
#define COCKATRICE_OVERLAY_LABEL_H
#include <QLabel>
class OverlayLabel : public QLabel
{
Q_OBJECT
public:
explicit OverlayLabel(QWidget *parent = nullptr);
protected:
void paintEvent(QPaintEvent *event) override;
};
#endif // COCKATRICE_OVERLAY_LABEL_H

View file

@ -13,11 +13,17 @@
ShadowBackgroundLabel::ShadowBackgroundLabel(QWidget *parent, const QString &text) : QLabel(parent) ShadowBackgroundLabel::ShadowBackgroundLabel(QWidget *parent, const QString &text) : QLabel(parent)
{ {
setAttribute(Qt::WA_TranslucentBackground); // Allows transparency. setAttribute(Qt::WA_TranslucentBackground); // Allows transparency.
setText("<font color='white'>" + text + "</font>"); ///< Ensures the text is rendered in white. setLabelText(text);
setAlignment(Qt::AlignCenter); ///< Centers the text within the label. setAlignment(Qt::AlignCenter); ///< Centers the text within the label.
setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); ///< Ensures minimum size constraints. setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); ///< Ensures minimum size constraints.
} }
void ShadowBackgroundLabel::setLabelText(const QString &text)
{
setText("<font color='white'>" + text + "</font>"); ///< Ensures the text is rendered in white.
update();
}
/** /**
* @brief Handles resizing of the label. * @brief Handles resizing of the label.
* *

View file

@ -15,6 +15,7 @@ class ShadowBackgroundLabel : public QLabel
public: public:
explicit ShadowBackgroundLabel(QWidget *parent, const QString &text); explicit ShadowBackgroundLabel(QWidget *parent, const QString &text);
void setLabelText(const QString &text);
protected: protected:
void resizeEvent(QResizeEvent *event) override; void resizeEvent(QResizeEvent *event) override;

View file

@ -60,21 +60,21 @@ ArchidektApiResponseDeckEntryDisplayWidget::ArchidektApiResponseDeckEntryDisplay
// Set deck name (ellided) // Set deck name (ellided)
QFontMetrics fm(previewWidget->topLeftLabel->font()); QFontMetrics fm(previewWidget->topLeftLabel->font());
QString elided = fm.elidedText(response.getName(), Qt::ElideRight, 280); QString elided = fm.elidedText(response.getName(), Qt::ElideRight, 280);
previewWidget->topLeftLabel->setText(elided); previewWidget->topLeftLabel->setLabelText(elided);
previewWidget->topLeftLabel->setToolTip(response.getName()); previewWidget->topLeftLabel->setToolTip(response.getName());
// Set count // Set count
previewWidget->topRightLabel->setText(QString::number(response.getSize())); previewWidget->topRightLabel->setLabelText(QString::number(response.getSize()));
// EDH bracket (skip if 0) // EDH bracket (skip if 0)
if (response.getEDHBracket() != 0) { if (response.getEDHBracket() != 0) {
previewWidget->bottomLeftLabel->setText(QString("EDH: %1").arg(response.getEDHBracket())); previewWidget->bottomLeftLabel->setLabelText(QString("EDH: %1").arg(response.getEDHBracket()));
} else { } else {
previewWidget->bottomLeftLabel->hide(); previewWidget->bottomLeftLabel->hide();
} }
// Views // Views
previewWidget->bottomRightLabel->setText(QString("Views: %1").arg(response.getViewCount())); previewWidget->bottomRightLabel->setLabelText(QString("Views: %1").arg(response.getViewCount()));
// Use preview->imageLabel for image loading // Use preview->imageLabel for image loading
picture = previewWidget->imageLabel; picture = previewWidget->imageLabel;

View file

@ -8,10 +8,10 @@ ArchidektDeckPreviewImageDisplayWidget::ArchidektDeckPreviewImageDisplayWidget(Q
imageLabel = new QLabel(this); imageLabel = new QLabel(this);
imageLabel->setAlignment(Qt::AlignCenter); imageLabel->setAlignment(Qt::AlignCenter);
topLeftLabel = new OverlayLabel(this); topLeftLabel = new ShadowBackgroundLabel(this, "");
topRightLabel = new OverlayLabel(this); topRightLabel = new ShadowBackgroundLabel(this, "");
bottomLeftLabel = new OverlayLabel(this); bottomLeftLabel = new ShadowBackgroundLabel(this, "");
bottomRightLabel = new OverlayLabel(this); bottomRightLabel = new ShadowBackgroundLabel(this, "");
QFont f; QFont f;
f.setBold(true); f.setBold(true);

View file

@ -5,7 +5,7 @@
#ifndef COCKATRICE_ARCHIDEKT_DECK_PREVIEW_IMAGE_DISPLAY_WIDGET_H #ifndef COCKATRICE_ARCHIDEKT_DECK_PREVIEW_IMAGE_DISPLAY_WIDGET_H
#define COCKATRICE_ARCHIDEKT_DECK_PREVIEW_IMAGE_DISPLAY_WIDGET_H #define COCKATRICE_ARCHIDEKT_DECK_PREVIEW_IMAGE_DISPLAY_WIDGET_H
#include "../../../../general/display/overlay_label.h" #include "../../../../general/display/shadow_background_label.h"
#include <QLabel> #include <QLabel>
#include <QWidget> #include <QWidget>
@ -20,10 +20,10 @@ public:
void setPreviewWidth(int width); void setPreviewWidth(int width);
QLabel *imageLabel; QLabel *imageLabel;
OverlayLabel *topLeftLabel; ShadowBackgroundLabel *topLeftLabel;
OverlayLabel *topRightLabel; ShadowBackgroundLabel *topRightLabel;
OverlayLabel *bottomLeftLabel; ShadowBackgroundLabel *bottomLeftLabel;
OverlayLabel *bottomRightLabel; ShadowBackgroundLabel *bottomRightLabel;
protected: protected:
void resizeEvent(QResizeEvent *event) override; void resizeEvent(QResizeEvent *event) override;