summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-05-03 00:18:24 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-05-03 00:56:41 +0200
commite6286ca289db11463d13ec4d31055995b32ad258 (patch)
tree944bd3a2e93691bdd977ef7818b8241c1193d888 /tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
parentbeb7258a56b6ec76531b73cc07ee30132a3f548f (diff)
parent9ae89313e43689483282ac330ad189db89bfcbba (diff)
Merge remote-tracking branch 'origin/release' into stable
Manually fixed up: isES -> isOpenGLES src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp Change-Id: I57d2ef26c3d4a7b40ace09f4e8560b7686650ea5
Diffstat (limited to 'tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp')
-rw-r--r--tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
index 53aef40df0..59c951332e 100644
--- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
+++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
@@ -192,6 +192,8 @@ private slots:
void QTBUG28998_linkColor();
+ void textCursorUsageWithinContentsChange();
+
private:
void backgroundImage_checkExpectedHtml(const QTextDocument &doc);
@@ -3021,5 +3023,50 @@ void tst_QTextDocument::QTBUG28998_linkColor()
QCOMPARE(format.foreground(), pal.link());
}
+class ContentsChangeHandler : public QObject
+{
+ Q_OBJECT
+public:
+ ContentsChangeHandler(QTextDocument *doc)
+ : verticalMovementX(-1)
+ , doc(doc)
+ {
+ connect(doc, SIGNAL(contentsChange(int,int,int)),
+ this, SLOT(saveModifiedText(int, int, int)));
+ }
+
+private slots:
+ void saveModifiedText(int from, int /*charsRemoved*/, int charsAdded)
+ {
+ QTextCursor tmp(doc);
+ tmp.setPosition(from);
+ tmp.setPosition(from + charsAdded, QTextCursor::KeepAnchor);
+ text = tmp.selectedText();
+ verticalMovementX = tmp.verticalMovementX();
+ }
+
+public:
+ QString text;
+ int verticalMovementX;
+private:
+ QTextDocument *doc;
+};
+
+void tst_QTextDocument::textCursorUsageWithinContentsChange()
+{
+ // force creation of layout
+ doc->documentLayout();
+
+ QTextCursor cursor(doc);
+ cursor.insertText("initial text");
+
+ ContentsChangeHandler handler(doc);
+
+ cursor.insertText("new text");
+
+ QCOMPARE(handler.text, QString("new text"));
+ QCOMPARE(handler.verticalMovementX, -1);
+}
+
QTEST_MAIN(tst_QTextDocument)
#include "tst_qtextdocument.moc"