summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/text/qsyntaxhighlighter
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2019-01-14 10:37:42 +0100
committerMårten Nordheim <marten.nordheim@qt.io>2019-01-16 14:23:37 +0000
commitf8f0f3eef1151c9377a5c76ccfa6432e930e1307 (patch)
tree08d391c978939339fc40093a0e79587f5ad589b0 /tests/auto/gui/text/qsyntaxhighlighter
parentfa2821b484dfe21de1af508bec314ff865917014 (diff)
QSyntaxHighlighter: cancel delayed highlight if done manually
It was an implicit effect before which stopped working after dec7961709c90f6977d2447f7fa6c6625af41cb2. Reintroduce it as some projects used this side-effect as a way to abort the initial highlighting. Change-Id: I5340ee9882a242bc8b5f7f843f1cfe793a65d357 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
Diffstat (limited to 'tests/auto/gui/text/qsyntaxhighlighter')
-rw-r--r--tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp b/tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp
index 9d6ce78b24..c683ecd424 100644
--- a/tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp
+++ b/tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp
@@ -82,6 +82,7 @@ private slots:
void preservePreeditArea();
void task108530();
void avoidUnnecessaryRehighlight();
+ void avoidUnnecessaryDelayedRehighlight();
void noContentsChangedDuringHighlight();
void rehighlight();
void rehighlightBlock();
@@ -478,6 +479,24 @@ void tst_QSyntaxHighlighter::avoidUnnecessaryRehighlight()
QTRY_VERIFY(!hl->highlighted);
}
+void tst_QSyntaxHighlighter::avoidUnnecessaryDelayedRehighlight()
+{
+ // Having text in the document before creating the highlighter starts the delayed rehighlight
+ cursor.insertText("Hello World");
+
+ TestHighlighter *hl = new TestHighlighter(doc);
+ QVERIFY(!hl->highlighted);
+
+ hl->rehighlight();
+ QVERIFY(hl->highlighted);
+
+ hl->highlighted = false;
+ // Process events, including delayed rehighlight emission
+ QCoreApplication::processEvents();
+ // Should be cancelled and no extra rehighlight should be done
+ QVERIFY(!hl->highlighted);
+}
+
void tst_QSyntaxHighlighter::noContentsChangedDuringHighlight()
{
QVector<QTextLayout::FormatRange> formats;