Fix for qsgtext autotests
authorYann Bodson <yann.bodson@nokia.com>
Thu, 6 Oct 2011 06:45:49 +0000 (16:45 +1000)
committerQt by Nokia <qt-info@nokia.com>
Thu, 6 Oct 2011 08:44:27 +0000 (10:44 +0200)
Change-Id: If02d4cb69b4f729b85b47222c17a0b1642e649fb
Reviewed-on: http://codereview.qt-project.org/6111
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
src/declarative/items/qsgtext.cpp
tests/auto/declarative/qsgtext/tst_qsgtext.cpp

index 8e5ef7a..735adb7 100644 (file)
@@ -1386,9 +1386,12 @@ void QSGText::setTextFormat(TextFormat format)
     if (!wasRich && d->richText && isComponentComplete()) {
         d->ensureDoc();
         d->doc->setText(d->text);
+        d->rightToLeftText = d->doc->toPlainText().isRightToLeft();
         d->richTextAsImage = enableImageCache();
+    } else {
+        d->rightToLeftText = d->text.isRightToLeft();
     }
-
+    d->determineHorizontalAlignment();
     d->updateLayout();
 
     emit textFormatChanged(d->format);
index d311116..dd11789 100644 (file)
@@ -309,19 +309,19 @@ void tst_qsgtext::width()
     {
         QVERIFY(Qt::mightBeRichText(richText.at(i))); // self-test
 
-        QTextDocument document;
-        document.setHtml(richText.at(i));
-        document.setDocumentMargin(0);
-
-        int documentWidth = document.idealWidth();
-
         QString componentStr = "import QtQuick 2.0\nText { text: \"" + richText.at(i) + "\"; textFormat: Text.RichText }";
         QDeclarativeComponent textComponent(&engine);
         textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
         QSGText *textObject = qobject_cast<QSGText*>(textComponent.create());
-
         QVERIFY(textObject != 0);
-        QCOMPARE(textObject->width(), qreal(documentWidth));
+
+        QSGTextPrivate *textPrivate = QSGTextPrivate::get(textObject);
+        QVERIFY(textPrivate != 0);
+
+        QTextDocument *doc = textPrivate->textDocument();
+        QVERIFY(doc != 0);
+
+        QCOMPARE(int(textObject->width()), int(doc->idealWidth()));
         QVERIFY(textObject->textFormat() == QSGText::RichText);
 
         delete textObject;