hide icon when not clickable

This commit is contained in:
RickyRister 2025-02-16 22:37:59 -08:00
parent 68482935f5
commit 3b57a626d6
2 changed files with 13 additions and 6 deletions

View file

@ -14,7 +14,6 @@ BannerWidget::BannerWidget(QWidget *parent, const QString &text, Qt::Orientation
iconLabel = new QLabel(this); iconLabel = new QLabel(this);
iconLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); iconLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
setExpandIconState(true);
// Create the banner label and set properties // Create the banner label and set properties
bannerLabel = new QLabel(text, this); bannerLabel = new QLabel(text, this);
@ -44,6 +43,12 @@ void BannerWidget::setText(const QString &text) const
bannerLabel->setText(text); bannerLabel->setText(text);
} }
void BannerWidget::setClickable(bool _clickable)
{
clickable = _clickable;
setExpandIconState(true);
}
void BannerWidget::toggleBuddyVisibility() const void BannerWidget::toggleBuddyVisibility() const
{ {
if (buddy) { if (buddy) {
@ -56,7 +61,12 @@ void BannerWidget::toggleBuddyVisibility() const
void BannerWidget::setExpandIconState(bool expanded) const void BannerWidget::setExpandIconState(bool expanded) const
{ {
iconLabel->setPixmap(ExpandIconPixmapGenerator::generatePixmap(24, expanded)); if (clickable) {
iconLabel->setPixmap(ExpandIconPixmapGenerator::generatePixmap(24, expanded));
} else {
// we cannot directly hide the iconLabel, since it's needed to center the text; set an empty image instead
iconLabel->setPixmap(QPixmap());
}
} }
void BannerWidget::paintEvent(QPaintEvent *event) void BannerWidget::paintEvent(QPaintEvent *event)

View file

@ -16,6 +16,7 @@ public:
int transparency = 80); int transparency = 80);
void mousePressEvent(QMouseEvent *event) override; void mousePressEvent(QMouseEvent *event) override;
void setText(const QString &text) const; void setText(const QString &text) const;
void setClickable(bool _clickable);
void setBuddy(QWidget *_buddy) void setBuddy(QWidget *_buddy)
{ {
buddy = _buddy; buddy = _buddy;
@ -24,10 +25,6 @@ public:
{ {
return bannerLabel->text(); return bannerLabel->text();
} }
void setClickable(bool _clickable)
{
clickable = _clickable;
}
protected: protected:
void paintEvent(QPaintEvent *event) override; void paintEvent(QPaintEvent *event) override;