QPalette::setBrush: remove a workaround for PlaceholderText

This partially reverts ebd3a13b807c6af2684b42d3912549caf7ef82aa
removing the part that was intended to be removed in Qt 6.

Task-number: QTBUG-78544
Change-Id: I4b7eb922c46e44411717f80234fad8ad7dd09aef
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
This commit is contained in:
Vitaly Fanaskov 2019-11-22 13:04:36 +01:00
parent 52876e0a82
commit 62c3dd5632

View File

@ -321,11 +321,8 @@ static void qt_palette_from_color(QPalette &pal, const QColor &button)
Returns the placeholder text brush of the current color group.
\note Before Qt 5.12, the placeholder text color was hard-coded in the code as
QPalette::text().color() where an alpha of 128 was applied.
We continue to support this behavior by default, unless you set your own brush.
One can get back the original placeholder color setting the special QBrush default
constructor as placeholder brush.
\note Before Qt 5.12, the placeholder text color was hard-coded as QPalette::text().color()
with an alpha of 128 applied. In Qt 6, it is an independent color.
\sa ColorRole, brush()
*/
@ -783,32 +780,11 @@ void QPalette::setBrush(ColorGroup cg, ColorRole cr, const QBrush &b)
cg = Active;
}
// For placeholder we want to continue to respect the original behavior, which is
// derivating the text color, but only if user has not yet set his own brush.
// We then use Qt::NoBrush as an inernal way to know if the brush is customized or not.
// ### Qt 6 - remove this special case
// Part 1 - Restore initial color to the given color group
if (cr == PlaceholderText && b == QBrush()) {
QColor col = brush(Text).color();
col.setAlpha(128);
setBrush(cg, PlaceholderText, QBrush(col, Qt::NoBrush));
return;
}
if (d->br[cg][cr] != b) {
detach();
d->br[cg][cr] = b;
}
data.resolve_mask |= (1<<cr);
// ### Qt 6 - remove this special case
// Part 2 - Update initial color to the given color group
if (cr == Text && d->br[cg][PlaceholderText].style() == Qt::NoBrush) {
QColor col = brush(Text).color();
col.setAlpha(128);
setBrush(cg, PlaceholderText, QBrush(col, Qt::NoBrush));
}
}
/*!
@ -1177,6 +1153,8 @@ Q_GUI_EXPORT QPalette qt_fusionPalette()
QColor button = backGround;
QColor shadow = dark.darker(135);
QColor disabledShadow = shadow.lighter(150);
QColor placeholder = text;
placeholder.setAlpha(128);
QPalette fusionPalette(Qt::black,backGround,light,dark,mid,text,base);
fusionPalette.setBrush(QPalette::Midlight, midLight);
@ -1194,6 +1172,9 @@ Q_GUI_EXPORT QPalette qt_fusionPalette()
fusionPalette.setBrush(QPalette::Active, QPalette::Highlight, QColor(48, 140, 198));
fusionPalette.setBrush(QPalette::Inactive, QPalette::Highlight, QColor(48, 140, 198));
fusionPalette.setBrush(QPalette::Disabled, QPalette::Highlight, QColor(145, 145, 145));
fusionPalette.setBrush(QPalette::PlaceholderText, placeholder);
return fusionPalette;
}