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::sizeHint() { ProgressBar bar; bar.setMinimum(0); bar.setMaximum(10); bar.setValue(5); //test if the sizeHint is big enough QFontMetrics fm = bar.fontMetrics(); QStyleOptionProgressBarV2 opt; bar.initStyleOption(&opt); QSize size = QSize(9 * 7 + fm.width(QLatin1Char('0')) * 4, fm.height() + 8); size= bar.style()->sizeFromContents(QStyle::CT_ProgressBar, &opt, size, &bar); QSize barSize = bar.sizeHint(); QVERIFY(barSize.width() >= size.width()); QCOMPARE(barSize.height(), size.height()); }
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); } }
void BrowserMessageArea::newProgressOperation( QObject *sender, const QString &text, int maximum, QObject *obj, const char *slot, Qt::ConnectionType type ) { ProgressBar *newBar = new ProgressBar( 0 ); newBar->setDescription( text ); newBar->setMaximum( maximum ); connect( sender, SIGNAL(destroyed( QObject * )), m_progressBar, SLOT(endProgressOperation( QObject * )) ); connect( sender, SIGNAL(endProgressOperation( QObject * )), m_progressBar, SLOT(endProgressOperation( QObject * )) ); connect( sender, SIGNAL(incrementProgress()), m_progressBar, SLOT(slotIncrementProgress()) ); connect( sender, SIGNAL(totalSteps( int )), newBar, SLOT(slotTotalSteps( int )) ); newBar->setAbortSlot( obj, slot, type ); m_progressBar->addProgressBar( newBar, sender ); m_progressBar->show(); m_busy = true; }