diff options
author | Andy Shaw <andy.shaw@qt.io> | 2021-01-05 15:42:48 +0100 |
---|---|---|
committer | Andy Shaw <andy.shaw@qt.io> | 2021-01-12 20:24:28 +0100 |
commit | bb00b63dee85bfe77bd721dd962c768e62c1b1e3 (patch) | |
tree | de864ea70f9b63cc18c239a3f5dfb0f1e5259826 | |
parent | 8c395a20eddc15ae923b7658f275fa87c8d33db9 (diff) |
Set the PlaceholderText color in the palette from the stylesheet as well
The color should be used across the board, so the PlaceholderText color
should also be respecting the one passed for Text and so on.
Fixes: QTBUG-89815
Pick-to: 6.0 5.15
Change-Id: I2accb3db35488f95a1c8ebacf2316a08ee416fac
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
-rw-r--r-- | src/widgets/styles/qstylesheetstyle.cpp | 1 | ||||
-rw-r--r-- | tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp | 16 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp index d060be5572..6d3a9fcfeb 100644 --- a/src/widgets/styles/qstylesheetstyle.cpp +++ b/src/widgets/styles/qstylesheetstyle.cpp @@ -1473,6 +1473,7 @@ void QRenderRule::configurePalette(QPalette *p, QPalette::ColorGroup cg, const Q p->setBrush(cg, w->foregroundRole(), pal->foreground); p->setBrush(cg, QPalette::WindowText, pal->foreground); p->setBrush(cg, QPalette::Text, pal->foreground); + p->setBrush(cg, QPalette::PlaceholderText, pal->foreground); } if (pal->selectionBackground.style() != Qt::NoBrush) p->setBrush(cg, QPalette::Highlight, pal->selectionBackground); diff --git a/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp b/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp index 3c33354cfe..f2f9be6bb6 100644 --- a/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp +++ b/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp @@ -124,6 +124,7 @@ private slots: void QTBUG15910_crashNullWidget(); void QTBUG36933_brokenPseudoClassLookup(); void styleSheetChangeBeforePolish(); + void placeholderColor(); //at the end because it mess with the style. void widgetStyle(); void appStyle(); @@ -2222,6 +2223,21 @@ void tst_QStyleSheetStyle::highdpiImages() QHighDpiScaling::updateHighDpiScaling(); // reset to normal } +void tst_QStyleSheetStyle::placeholderColor() +{ + const QColor red(Qt::red); + qApp->setStyleSheet("* { color: red; }"); + QLineEdit le1; + QLineEdit le2; + le2.setEnabled(false); + le1.ensurePolished(); + QCOMPARE(le1.palette().placeholderText(), red); + le2.ensurePolished(); + QCOMPARE(le2.palette().placeholderText(), red); + le2.setEnabled(true); + QCOMPARE(le2.palette().placeholderText(), red); +} + QTEST_MAIN(tst_QStyleSheetStyle) #include "tst_qstylesheetstyle.moc" |