summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/text
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui/text')
-rw-r--r--tests/auto/gui/text/qtextdocumentlayout/tst_qtextdocumentlayout.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/auto/gui/text/qtextdocumentlayout/tst_qtextdocumentlayout.cpp b/tests/auto/gui/text/qtextdocumentlayout/tst_qtextdocumentlayout.cpp
index e95de3df45..51e993a7d6 100644
--- a/tests/auto/gui/text/qtextdocumentlayout/tst_qtextdocumentlayout.cpp
+++ b/tests/auto/gui/text/qtextdocumentlayout/tst_qtextdocumentlayout.cpp
@@ -67,6 +67,7 @@ private slots:
void clippedTableCell();
void floatingTablePageBreak();
void imageAtRightAlignedTab();
+ void blockVisibility();
private:
QTextDocument *doc;
@@ -312,5 +313,46 @@ void tst_QTextDocumentLayout::imageAtRightAlignedTab()
QCOMPARE(doc->idealWidth(), 300.0);
}
+void tst_QTextDocumentLayout::blockVisibility()
+{
+ QTextCursor cursor(doc);
+ for (int i = 0; i < 10; ++i) {
+ if (!doc->isEmpty())
+ cursor.insertBlock();
+ cursor.insertText(QString::number(i));
+ }
+
+ qreal margin = doc->documentMargin();
+ QSizeF emptySize(2 * margin, 2 * margin);
+ QSizeF halfSize = doc->size();
+ halfSize.rheight() -= 2 * margin;
+ halfSize.rheight() /= 2;
+ halfSize.rheight() += 2 * margin;
+
+ for (int i = 0; i < 10; i += 2) {
+ QTextBlock block = doc->findBlockByNumber(i);
+ block.setVisible(false);
+ doc->markContentsDirty(block.position(), block.length());
+ }
+
+ QCOMPARE(doc->size(), halfSize);
+
+ for (int i = 1; i < 10; i += 2) {
+ QTextBlock block = doc->findBlockByNumber(i);
+ block.setVisible(false);
+ doc->markContentsDirty(block.position(), block.length());
+ }
+
+ QCOMPARE(doc->size(), emptySize);
+
+ for (int i = 0; i < 10; i += 2) {
+ QTextBlock block = doc->findBlockByNumber(i);
+ block.setVisible(true);
+ doc->markContentsDirty(block.position(), block.length());
+ }
+
+ QCOMPARE(doc->size(), halfSize);
+}
+
QTEST_MAIN(tst_QTextDocumentLayout)
#include "tst_qtextdocumentlayout.moc"