Merge branch 'master' of scm.dev.nokia.troll.no:qt/qtbase-staging
authorGunnar Sletta <gunnar.sletta@nokia.com>
Wed, 4 May 2011 09:38:42 +0000 (11:38 +0200)
committerGunnar Sletta <gunnar.sletta@nokia.com>
Wed, 4 May 2011 09:38:42 +0000 (11:38 +0200)
src/gui/text/qtextdocument.cpp
tests/auto/qtextdocument/tst_qtextdocument.cpp

index 36f3c6c..9169955 100644 (file)
@@ -2099,6 +2099,10 @@ QString QTextHtmlExporter::toHtml(const QByteArray &encoding, ExportMode mode)
             html += QLatin1String(" font-size:");
             html += QString::number(defaultCharFormat.fontPointSize());
             html += QLatin1String("pt;");
+        } else if (defaultCharFormat.hasProperty(QTextFormat::FontPixelSize)) {
+            html += QLatin1String(" font-size:");
+            html += QString::number(defaultCharFormat.intProperty(QTextFormat::FontPixelSize));
+            html += QLatin1String("px;");
         }
 
         html += QLatin1String(" font-weight:");
@@ -2179,6 +2183,10 @@ bool QTextHtmlExporter::emitCharFormatStyle(const QTextCharFormat &format)
             html += QLatin1Char(';');
             attributesEmitted = true;
         }
+    } else if (format.hasProperty(QTextFormat::FontPixelSize)) {
+        html += QLatin1String(" font-size:");
+        html += QString::number(format.intProperty(QTextFormat::FontPixelSize));
+        html += QLatin1String("px;");
     }
 
     if (format.hasProperty(QTextFormat::FontWeight)
index 6675c99..26fa43d 100644 (file)
@@ -180,6 +180,8 @@ private slots:
     void escape_data();
     void escape();
 
+    void copiedFontSize();
+
 private:
     void backgroundImage_checkExpectedHtml(const QTextDocument &doc);
 
@@ -2734,5 +2736,29 @@ void tst_QTextDocument::escape()
     QCOMPARE(Qt::escape(original), expected);
 }
 
+void tst_QTextDocument::copiedFontSize()
+{
+    QTextDocument documentInput;
+    QTextDocument documentOutput;
+
+    QFont fontInput;
+    fontInput.setPixelSize(24);  // With pixels font size is not transfered in html
+
+    QTextCursor cursorInput(&documentInput);
+    QTextCharFormat formatInput = cursorInput.charFormat();
+    formatInput.setFont(fontInput);
+    cursorInput.insertText("Should be the same font", formatInput);
+    cursorInput.select(QTextCursor::Document);
+
+    QTextDocumentFragment fragmentInput(cursorInput);
+    QString html =  fragmentInput.toHtml();
+
+    QTextCursor cursorOutput(&documentOutput);
+    QTextDocumentFragment fragmentOutput = QTextDocumentFragment::fromHtml(html);
+    cursorOutput.insertFragment(fragmentOutput);
+
+    QCOMPARE(cursorOutput.charFormat().font().pixelSize(), 24);
+}
+
 QTEST_MAIN(tst_QTextDocument)
 #include "tst_qtextdocument.moc"