From a83983d8617cba0caaae2cb2d6caf82b8e4f50a2 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Tue, 22 Oct 2013 17:00:45 +0200 Subject: [PATCH] QTextHtmlParser: restore the default link color from app palette The default link color used to be resolved to the link color of the application palette, but got lost during the Qt 5 modularization (see commits 7351a43 and 3f9a7f9). Task-number: QTBUG-28998 Change-Id: I7f07427f6c03f83c557100938ad9f7a39349d303 Reviewed-by: Olivier Goffart --- src/gui/text/qtexthtmlparser.cpp | 4 +-- .../text/qtextdocument/tst_qtextdocument.cpp | 28 +++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/gui/text/qtexthtmlparser.cpp b/src/gui/text/qtexthtmlparser.cpp index 5292ba20a2..a131503b85 100644 --- a/src/gui/text/qtexthtmlparser.cpp +++ b/src/gui/text/qtexthtmlparser.cpp @@ -46,7 +46,7 @@ #include #include #include -#include +#include #include "qtextdocument.h" #include "qtextformat_p.h" @@ -1066,7 +1066,7 @@ void QTextHtmlParserNode::initializeProperties(const QTextHtmlParserNode *parent && !attributes.at(i + 1).isEmpty()) { hasHref = true; charFormat.setUnderlineStyle(QTextCharFormat::SingleUnderline); - charFormat.setForeground(Qt::blue); + charFormat.setForeground(QGuiApplication::palette().link()); } } diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp index 307e5a6210..b065f537f7 100644 --- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp +++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp @@ -54,6 +54,7 @@ #include #include #include +#include #include #include #include @@ -187,6 +188,9 @@ private slots: void QTBUG27354_spaceAndSoftSpace(); void cssInheritance(); + + void QTBUG28998_linkColor(); + private: void backgroundImage_checkExpectedHtml(const QTextDocument &doc); @@ -2974,5 +2978,29 @@ void tst_QTextDocument::cssInheritance() } } +void tst_QTextDocument::QTBUG28998_linkColor() +{ + QPalette pal; + pal.setColor(QPalette::Link, QColor("tomato")); + QGuiApplication::setPalette(pal); + + QTextDocument doc; + doc.setHtml("Qt"); + + QCOMPARE(doc.blockCount(), 1); + QTextBlock block = doc.firstBlock(); + QVERIFY(block.isValid()); + + QTextFragment fragment = block.begin().fragment(); + QVERIFY(fragment.isValid()); + + QTextCharFormat format = fragment.charFormat(); + QVERIFY(format.isValid()); + QVERIFY(format.isAnchor()); + QCOMPARE(format.anchorHref(), QStringLiteral("http://www.qt-project.org")); + + QCOMPARE(format.foreground(), pal.link()); +} + QTEST_MAIN(tst_QTextDocument) #include "tst_qtextdocument.moc"