diff options
-rw-r--r-- | src/widgets/widgets/qstatusbar.cpp | 2 | ||||
-rw-r--r-- | tests/auto/widgets/widgets/qstatusbar/tst_qstatusbar.cpp | 45 |
2 files changed, 45 insertions, 2 deletions
diff --git a/src/widgets/widgets/qstatusbar.cpp b/src/widgets/widgets/qstatusbar.cpp index 2b17d7fb83..4e6b273a3c 100644 --- a/src/widgets/widgets/qstatusbar.cpp +++ b/src/widgets/widgets/qstatusbar.cpp @@ -546,8 +546,6 @@ void QStatusBar::reformat() void QStatusBar::showMessage(const QString &message, int timeout) { Q_D(QStatusBar); - if (d->tempItem == message) - return; d->tempItem = message; diff --git a/tests/auto/widgets/widgets/qstatusbar/tst_qstatusbar.cpp b/tests/auto/widgets/widgets/qstatusbar/tst_qstatusbar.cpp index d23f69ac6c..ca54564d24 100644 --- a/tests/auto/widgets/widgets/qstatusbar/tst_qstatusbar.cpp +++ b/tests/auto/widgets/widgets/qstatusbar/tst_qstatusbar.cpp @@ -73,6 +73,7 @@ private slots: void setSizeGripEnabled(); void task194017_hiddenWidget(); void QTBUG4334_hiddenOnMaximizedWindow(); + void QTBUG25492_msgtimeout(); private: QStatusBar *testWidget; @@ -276,5 +277,49 @@ void tst_QStatusBar::QTBUG4334_hiddenOnMaximizedWindow() QVERIFY(!statusbar.findChild<QSizeGrip*>()->isVisible()); } +void tst_QStatusBar::QTBUG25492_msgtimeout() +{ + QVERIFY(testWidget->currentMessage().isNull()); + QVERIFY(currentMessage.isNull()); + testWidget->show(); + + // Set display message forever first + testWidget->showMessage("Ready", 0); + QCOMPARE(testWidget->currentMessage(), QString("Ready")); + QCOMPARE(testWidget->currentMessage(), currentMessage); + + QTest::qWait(1000); + + // Set display message for 2 seconds again + testWidget->showMessage("Ready", 2000); + QCOMPARE(testWidget->currentMessage(), QString("Ready")); + QCOMPARE(testWidget->currentMessage(), currentMessage); + + QTest::qWait(3000); + + // Message disappears after 2 seconds + QVERIFY(testWidget->currentMessage().isNull()); + QVERIFY(currentMessage.isNull()); + + // Set display message for 2 seconds first + testWidget->showMessage("Ready 25492", 2000); + QCOMPARE(testWidget->currentMessage(), QString("Ready 25492")); + QCOMPARE(testWidget->currentMessage(), currentMessage); + + QTest::qWait(1000); + + // Set display message forever again + testWidget->showMessage("Ready 25492", 0); + QCOMPARE(testWidget->currentMessage(), QString("Ready 25492")); + QCOMPARE(testWidget->currentMessage(), currentMessage); + + QTest::qWait(3000); + + // Message displays forever + QCOMPARE(testWidget->currentMessage(), QString("Ready 25492")); + QCOMPARE(testWidget->currentMessage(), currentMessage); +} + + QTEST_MAIN(tst_QStatusBar) #include "tst_qstatusbar.moc" |