summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp')
-rw-r--r--tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
index c971566a6a..133a8fa578 100644
--- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
+++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
@@ -189,6 +189,8 @@ private slots:
void isReadOnly();
+ void noCursorBlinkWhenReadOnly();
+
void cursorPosition();
void cursorPositionChanged_data();
@@ -1828,6 +1830,42 @@ void tst_QLineEdit::isReadOnly()
QCOMPARE(testWidget->text(), QString("the quick dark brown fox"));
}
+class BlinkTestLineEdit : public QLineEdit
+{
+public:
+ void paintEvent(QPaintEvent *e)
+ {
+ ++updates;
+ QLineEdit::paintEvent(e);
+ }
+
+ int updates;
+};
+
+void tst_QLineEdit::noCursorBlinkWhenReadOnly()
+{
+ int cursorFlashTime = QApplication::cursorFlashTime();
+ if (cursorFlashTime == 0)
+ return;
+ BlinkTestLineEdit le;
+ le.show();
+ le.setFocus();
+ QTest::qWaitForWindowActive(&le);
+ le.updates = 0;
+ QTest::qWait(cursorFlashTime);
+ QVERIFY(le.updates > 0);
+ le.setReadOnly(true);
+ QTest::qWait(10);
+ le.updates = 0;
+ QTest::qWait(cursorFlashTime);
+ QCOMPARE(le.updates, 0);
+ le.setReadOnly(false);
+ QTest::qWait(10);
+ le.updates = 0;
+ QTest::qWait(cursorFlashTime);
+ QVERIFY(le.updates > 0);
+}
+
static void figureOutProperKey(Qt::Key &key, Qt::KeyboardModifiers &pressState)
{
#ifdef Q_OS_MAC