From bfe81650c2e482247d41ea468fc712cbddeec8c5 Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 24 Apr 2024 10:29:12 +0200 Subject: [PATCH] Start: make compound widget in FileCardDelegate::paint() more flexible for Qt style sheets --- src/Mod/Start/Gui/FileCardDelegate.cpp | 43 +++++++++++++++----------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/src/Mod/Start/Gui/FileCardDelegate.cpp b/src/Mod/Start/Gui/FileCardDelegate.cpp index c8d8ae2ba0..49b18c1a55 100644 --- a/src/Mod/Start/Gui/FileCardDelegate.cpp +++ b/src/Mod/Start/Gui/FileCardDelegate.cpp @@ -110,27 +110,34 @@ void FileCardDelegate::paint(QPainter* painter, thumbnail->setFixedSize(thumbnailSize, thumbnailSize); thumbnail->setSizePolicy(QSizePolicy::Policy::Fixed, QSizePolicy::Policy::Fixed); + widget->setProperty("state", QStringLiteral("")); if (option.state & QStyle::State_Selected) { - QColor color = getSelectionColor(); - widget->setStyleSheet(QString::fromLatin1("QWidget#thumbnailWidget {" - " border: 2px solid rgb(%1, %2, %3);" - " border-radius: 4px;" - " padding: 2px;" - "}") - .arg(color.red()) - .arg(color.green()) - .arg(color.blue())); + widget->setProperty("state", QStringLiteral("pressed")); + if (qApp->styleSheet().isEmpty()) { + QColor color = getSelectionColor(); + widget->setStyleSheet(QString::fromLatin1("QWidget#thumbnailWidget {" + " border: 2px solid rgb(%1, %2, %3);" + " border-radius: 4px;" + " padding: 2px;" + "}") + .arg(color.red()) + .arg(color.green()) + .arg(color.blue())); + } } else if (option.state & QStyle::State_MouseOver) { - QColor color = getBorderColor(); - widget->setStyleSheet(QString::fromLatin1("QWidget#thumbnailWidget {" - " border: 2px solid rgb(%1, %2, %3);" - " border-radius: 4px;" - " padding: 2px;" - "}") - .arg(color.red()) - .arg(color.green()) - .arg(color.blue())); + widget->setProperty("state", QStringLiteral("hovered")); + if (qApp->styleSheet().isEmpty()) { + QColor color = getBorderColor(); + widget->setStyleSheet(QString::fromLatin1("QWidget#thumbnailWidget {" + " border: 2px solid rgb(%1, %2, %3);" + " border-radius: 4px;" + " padding: 2px;" + "}") + .arg(color.red()) + .arg(color.green()) + .arg(color.blue())); + } } else if (qApp->styleSheet().isEmpty()) { QColor color = getBackgroundColor();