From 8b4ac65e2913bd7fbdd996ca290b129659f89a9e Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Wed, 20 Jan 2016 17:45:00 +0100 Subject: [PATCH] Provide QCss with the correct font for
 blocks

Labels would use a statically defined font for 
 blocks.
Use the one defined by the QPlatformTheme instead, through
QFontDatabase::systemFont(FixedFont)

Task-number: QTBUG-50564
Change-Id: I5491bd0defce651bdf809bcbc6a529a900f4959b
Reviewed-by: Milian Wolff 
---
 src/gui/text/qtexthtmlparser.cpp              |  8 +-----
 .../text/qtextdocument/tst_qtextdocument.cpp  | 26 +++++++++++++++++++
 2 files changed, 27 insertions(+), 7 deletions(-)

diff --git a/src/gui/text/qtexthtmlparser.cpp b/src/gui/text/qtexthtmlparser.cpp
index f8f41bb53d..77da01be3f 100644
--- a/src/gui/text/qtexthtmlparser.cpp
+++ b/src/gui/text/qtexthtmlparser.cpp
@@ -1926,13 +1926,7 @@ QVector standardDeclarationForNode(const QTextHtmlParserNode
         decl.d->propertyId = QCss::FontFamily;
         QVector values;
         val.type = QCss::Value::String;
-        val.variant = QLatin1String("Courier New");
-        values << val;
-        val.type = QCss::Value::TermOperatorComma;
-        val.variant = QVariant();
-        values << val;
-        val.type = QCss::Value::String;
-        val.variant = QLatin1String("courier");
+        val.variant = QFontDatabase::systemFont(QFontDatabase::FixedFont).family();
         values << val;
         decl.d->values = values;
         decl.d->inheritable = true;
diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
index 7378ca85ee..02e2bf27e2 100644
--- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
+++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
@@ -95,6 +95,8 @@ private slots:
 
     void task240325();
 
+    void preFont();
+
     void stylesheetFont_data();
     void stylesheetFont();
 
@@ -675,6 +677,30 @@ void tst_QTextDocument::stylesheetFont()
     QCOMPARE(actualFont.pixelSize(), font.pixelSize());
 }
 
+void tst_QTextDocument::preFont()
+{
+    const QFont font = QFontDatabase::systemFont(QFontDatabase::FixedFont);
+    const QString html = QString::fromLatin1(   ""
+                                                ""
+                                                "
"
+                                                "Foobar"
+                                                "
" + "" + ""); + + doc->setHtml(html); + QCOMPARE(doc->blockCount(), 1); + + // First and only block + QTextBlock block = doc->firstBlock(); + + QString text = block.text(); + QCOMPARE(text, QString::fromLatin1("Foobar")); + + QFont actualFont = block.charFormat().font(); + QCOMPARE(actualFont.family(), font.family()); +} + void tst_QTextDocument::noundo_moreIsModified() { doc->setUndoRedoEnabled(false);