src/gui/text/qtextdocument.cpp
changeset 33 3e2da88830cd
parent 30 5dc02b23752f
--- a/src/gui/text/qtextdocument.cpp	Tue Jul 06 15:10:48 2010 +0300
+++ b/src/gui/text/qtextdocument.cpp	Wed Aug 18 10:37:55 2010 +0300
@@ -127,6 +127,8 @@
                     tag += text[i];
                 else if (!tag.isEmpty() && text[i].isSpace())
                     break;
+                else if (!tag.isEmpty() && text[i] == QLatin1Char('/') && i + 1 == close)
+                    break;
                 else if (!text[i].isSpace() && (!tag.isEmpty() || text[i] != QLatin1Char('!')))
                     return false; // that's not a tag
             }
@@ -581,11 +583,11 @@
 void QTextDocument::markContentsDirty(int from, int length)
 {
     Q_D(QTextDocument);
-    if (!d->inContentsChange)
-        d->beginEditBlock();
     d->documentChange(from, length);
-    if (!d->inContentsChange)
-        d->endEditBlock();
+    if (!d->inContentsChange) {
+        d->lout->documentChanged(d->docChangeFrom, d->docChangeOldLength, d->docChangeLength);
+        d->docChangeFrom = -1;
+    }
 }
 
 /*!
@@ -2496,13 +2498,10 @@
     QTextBlockFormat format = block.blockFormat();
     emitAlignment(format.alignment());
 
-    Qt::LayoutDirection dir = format.layoutDirection();
-    if (dir == Qt::LeftToRight) {
-        // assume default to not bloat the html too much
-        // html += QLatin1String(" dir='ltr'");
-    } else {
+    // assume default to not bloat the html too much
+    // html += QLatin1String(" dir='ltr'");
+    if (block.textDirection() == Qt::RightToLeft)
         html += QLatin1String(" dir='rtl'");
-    }
 
     QLatin1String style(" style=\"");
     html += style;