Q(Plain)TextEdit: Observe color hints from style sheet depending on focus state

Ask the style sheet style to adapt the palette in
WidgetTextControl::getPaintContext() as is done for QLineEdit.
Use the palette color in QPlainTextEdit.

Change-Id: I67758716b66feaeac8c2433c2a4d3744cd0d5327
Fixes: QTBUG-72100
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
This commit is contained in:
Friedemann Kleint 2019-05-15 15:06:20 +02:00
parent 81b33a8252
commit 90c683e41c
2 changed files with 13 additions and 0 deletions

View File

@ -1957,6 +1957,7 @@ void QPlainTextEdit::paintEvent(QPaintEvent *e)
}
QAbstractTextDocumentLayout::PaintContext context = getPaintContext();
painter.setPen(context.palette.text().color());
while (block.isValid()) {

View File

@ -64,6 +64,9 @@
#include "private/qtextdocument_p.h"
#include "qtextlist.h"
#include "private/qwidgettextcontrol_p.h"
#if QT_CONFIG(style_stylesheet)
# include "private/qstylesheetstyle_p.h"
#endif
#if QT_CONFIG(graphicsview)
#include "qgraphicssceneevent.h"
#endif
@ -3187,6 +3190,15 @@ QAbstractTextDocumentLayout::PaintContext QWidgetTextControl::getPaintContext(QW
ctx.selections = d->extraSelections;
ctx.palette = d->palette;
#if QT_CONFIG(style_stylesheet)
if (widget) {
if (auto cssStyle = qt_styleSheet(widget->style())) {
QStyleOption option;
option.initFrom(widget);
cssStyle->styleSheetPalette(widget, &option, &ctx.palette);
}
}
#endif // style_stylesheet
if (d->cursorOn && d->isEnabled) {
if (d->hideCursor)
ctx.cursorPosition = -1;