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>
This commit is contained in:
parent
8c395a20ed
commit
bb00b63dee
@ -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);
|
||||
|
@ -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"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user