summaryrefslogtreecommitdiffstats
path: root/tests/auto/qplaintextedit
diff options
context:
space:
mode:
authormae <qt-info@nokia.com>2011-04-26 15:41:21 +0200
committerOlivier Goffart <olivier.goffart@nokia.com>2011-05-10 12:54:49 +0200
commit4d38a48a7005ac279bdde5048f2f2152eed3407a (patch)
treef539fb69e8f25fba25b1caf39df5495c2031eef1 /tests/auto/qplaintextedit
parentd4eedda7d241128f36f7e812b8261429257d44a0 (diff)
Fix insert and scroll to bottom case
When using QtextCursor::insert() with a large text followed by setting the vertical scrollbar to its maximum value (scroll to bottom), QPlainTextEdit would not behave properly if a document size change was triggered by the insertion due to line wrapping. This was visible in Qt Creator. Auto test included. Reviewed-by: con (cherry picked from commit 5d144faf3c524ab557b88f69c4b755e20237e846)
Diffstat (limited to 'tests/auto/qplaintextedit')
-rw-r--r--tests/auto/qplaintextedit/tst_qplaintextedit.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/auto/qplaintextedit/tst_qplaintextedit.cpp b/tests/auto/qplaintextedit/tst_qplaintextedit.cpp
index d3e4fd0258..8da5ba5d9a 100644
--- a/tests/auto/qplaintextedit/tst_qplaintextedit.cpp
+++ b/tests/auto/qplaintextedit/tst_qplaintextedit.cpp
@@ -150,6 +150,7 @@ private slots:
void lineWrapProperty();
void selectionChanged();
void blockCountChanged();
+ void insertAndScrollToBottom();
private:
void createSelection();
@@ -1504,5 +1505,22 @@ void tst_QPlainTextEdit::blockCountChanged()
}
+void tst_QPlainTextEdit::insertAndScrollToBottom()
+{
+ ed->setPlainText("First Line");
+ ed->show();
+ QString text;
+ for(int i = 0; i < 2000; ++i) {
+ text += QLatin1String("this is another line of text to be appended. It is quite long and will probably wrap around, meaning the number of lines is larger than the number of blocks in the text.\n");
+ }
+ QTextCursor cursor = ed->textCursor();
+ cursor.beginEditBlock();
+ cursor.insertText(text);
+ cursor.endEditBlock();
+ ed->verticalScrollBar()->setValue(ed->verticalScrollBar()->maximum());
+ QCOMPARE(ed->verticalScrollBar()->value(), ed->verticalScrollBar()->maximum());
+}
+
+
QTEST_MAIN(tst_QPlainTextEdit)
#include "tst_qplaintextedit.moc"