# HG changeset patch # User Teemu Piippo # Date 1655929954 -10800 # Node ID afdab56e8210fd95d2b3c975ed56e8d5994eae6b # Parent c6f5de03dc0f76ee03d2b137eb9e5c4041e8f8a3 Fix appearance of ColorButton diff -r c6f5de03dc0f -r afdab56e8210 widgets/colorbutton.cpp --- a/widgets/colorbutton.cpp Wed Jun 22 22:59:56 2022 +0300 +++ b/widgets/colorbutton.cpp Wed Jun 22 23:32:34 2022 +0300 @@ -1,4 +1,5 @@ #include +#include #include "colorbutton.h" ColorButton::ColorButton(const QColor& color, QWidget* parent) : @@ -28,9 +29,13 @@ { if (this->storedSelectedColor != color) { this->storedSelectedColor = color; - this->setStyleSheet(QString{"background-color: %1"}.arg(color.name())); this->setText(color.name()); + QPalette palette{color}; + const qreal lightness = color.lightnessF(); + const QColor foreground = lightness < 0.4 ? Qt::white : Qt::black; + palette.setColor(QPalette::ButtonText, foreground); + this->setPalette(palette); + this->setStyle(QStyleFactory::create("Fusion")); Q_EMIT this->colorChanged(this->storedSelectedColor); } } - diff -r c6f5de03dc0f -r afdab56e8210 widgets/colorbutton.h --- a/widgets/colorbutton.h Wed Jun 22 22:59:56 2022 +0300 +++ b/widgets/colorbutton.h Wed Jun 22 23:32:34 2022 +0300 @@ -8,12 +8,11 @@ { Q_OBJECT Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) + QColor storedSelectedColor; public: ColorButton(const QColor& color = {}, QWidget* parent = nullptr); ColorButton(QWidget* parent = nullptr); const QColor& color() const; Q_SLOT void setColor(const QColor& color); Q_SIGNAL void colorChanged(const QColor& color); -private: - QColor storedSelectedColor; };