void tst_QProgressBar::format() { ProgressBar bar; bar.setRange(0, 10); bar.setValue(1); bar.show(); QTest::qWaitForWindowShown(&bar); QTest::qWait(20); bar.repainted = false; bar.setFormat("%v of %m (%p%)"); QTest::qWait(20); QTRY_VERIFY(bar.repainted); bar.repainted = false; bar.setFormat("%v of %m (%p%)"); qApp->processEvents(); #ifndef Q_WS_MAC // Animated scroll bars get paint events all the time #ifdef Q_OS_WIN if (QSysInfo::WindowsVersion < QSysInfo::WV_VISTA) #endif QVERIFY(!bar.repainted); #endif QCOMPARE(bar.text(), QString("1 of 10 (10%)")); bar.setRange(5, 5); bar.setValue(5); QCOMPARE(bar.text(), QString("5 of 0 (100%)")); bar.setRange(0, 5); bar.setValue(0); bar.setRange(5, 5); QCOMPARE(bar.text(), QString()); }
void tst_QProgressBar::setMinMaxRepaint() { ProgressBar pbar; pbar.setMinimum(0); pbar.setMaximum(10); pbar.setFormat("%v"); pbar.show(); QVERIFY(QTest::qWaitForWindowActive(&pbar)); // No repaint when setting minimum to the current minimum pbar.repainted = false; pbar.setMinimum(0); QTest::qWait(50); QTRY_VERIFY(!pbar.repainted); // No repaint when setting maximum to the current maximum pbar.repainted = false; pbar.setMaximum(10); QTest::qWait(50); QTRY_VERIFY(!pbar.repainted); // Repaint when setting minimum for (int i = 9; i >= 0; i--) { pbar.repainted = false; pbar.setMinimum(i); QTRY_VERIFY(pbar.repainted); } // Repaint when setting maximum for (int i = 0; i < 10; ++i) { pbar.repainted = false; pbar.setMaximum(i); QTRY_VERIFY(pbar.repainted); } }
void tst_QProgressBar::setValueRepaint() { ProgressBar pbar; pbar.setMinimum(0); pbar.setMaximum(10); pbar.setFormat("%v"); pbar.show(); QTest::qWaitForWindowShown(&pbar); QApplication::processEvents(); for (int i = pbar.minimum(); i < pbar.maximum(); ++i) { pbar.repainted = false; pbar.setValue(i); QTest::qWait(50); QTRY_VERIFY(pbar.repainted); } }