From 2a10a679a17de2f2ec83f676198936fcaaaa8fad Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Thu, 15 Aug 2024 16:06:39 +0200 Subject: [PATCH] QTextEdit::textColor - report the color QTextLayout will use When 'foreground' in QTextCharFormat has style 'NoBrush', we are using a different color, compared to what we are reporting as text color - we use palette from QAbstractTextDocumentLayout::PaintContext. So, in dark theme, we report the color black and then paint the text using white color. Fixes: QTBUG-127090 Change-Id: Ifef996c0867a6d189fffabd59c36136f9335220f Reviewed-by: Richard Moe Gustavsen --- src/widgets/widgets/qtextedit.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/widgets/widgets/qtextedit.cpp b/src/widgets/widgets/qtextedit.cpp index 28f7ad09268..d85bb06faaf 100644 --- a/src/widgets/widgets/qtextedit.cpp +++ b/src/widgets/widgets/qtextedit.cpp @@ -712,7 +712,14 @@ bool QTextEdit::fontItalic() const QColor QTextEdit::textColor() const { Q_D(const QTextEdit); - return d->control->textCursor().charFormat().foreground().color(); + + const auto fg = d->control->textCursor().charFormat().foreground(); + if (fg.style() == Qt::NoBrush) { + const auto context = d->control->getPaintContext(const_cast(this)); + return context.palette.color(QPalette::Text); + } + + return fg.color(); } /*!