Fix progressbar animation on macstyle

The animation is not just supposed to run when indeterminate, but
also while it is progressing.

Change-Id: If176bd230c2f6f83781e01ea77526c24d54c8477
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
This commit is contained in:
Jens Bache-Wiig 2012-11-02 14:18:54 +01:00 committed by The Qt Project
parent faa3759120
commit 28f36ebcc2
2 changed files with 9 additions and 1 deletions

View File

@ -4357,7 +4357,8 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
tdi.min = pb->minimum;
tdi.value = pb->progress;
tdi.attributes = vertical ? 0 : kThemeTrackHorizontal;
if (isIndeterminate) {
if (isIndeterminate || tdi.value < tdi.max) {
if (QProgressStyleAnimation *animation = qobject_cast<QProgressStyleAnimation*>(d->animation(opt->styleObject)))
tdi.trackInfo.progress.phase = animation->animationStep();
else

View File

@ -58,7 +58,9 @@ private slots:
void text();
void format();
void setValueRepaint();
#ifndef Q_OS_MAC
void setMinMaxRepaint();
#endif
void sizeHint();
void formatedText_data();
void formatedText();
@ -212,6 +214,10 @@ void tst_QProgressBar::setValueRepaint()
}
}
// This test is invalid on Mac, since progressbars
// are animated there
#ifndef Q_OS_MAC
void tst_QProgressBar::setMinMaxRepaint()
{
ProgressBar pbar;
@ -247,6 +253,7 @@ void tst_QProgressBar::setMinMaxRepaint()
QTRY_VERIFY(pbar.repainted);
}
}
#endif //Q_OS_MAC
void tst_QProgressBar::sizeHint()
{