Fix progressbar animation on macstyle
authorJens Bache-Wiig <jens.bache-wiig@digia.com>
Fri, 2 Nov 2012 13:18:54 +0000 (14:18 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Fri, 2 Nov 2012 17:07:35 +0000 (18:07 +0100)
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>
src/widgets/styles/qmacstyle_mac.mm
tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp

index b957650..dbd4cf2 100644 (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
index 7024da9..9ec249c 100644 (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()
 {