summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJens Bache-Wiig <jens.bache-wiig@digia.com>2012-11-02 14:18:54 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-11-02 18:07:35 +0100
commit28f36ebcc246c90f82355bb0a40b3cca07913fae (patch)
treeeedb5e916664235d8234906907227a1586e86755
parentfaa37591206268c98dda2b22d7bfaa7992bd1c4b (diff)
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>
-rw-r--r--src/widgets/styles/qmacstyle_mac.mm3
-rw-r--r--tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp7
2 files changed, 9 insertions, 1 deletions
diff --git a/src/widgets/styles/qmacstyle_mac.mm b/src/widgets/styles/qmacstyle_mac.mm
index b95765031c..dbd4cf2c95 100644
--- a/src/widgets/styles/qmacstyle_mac.mm
+++ b/src/widgets/styles/qmacstyle_mac.mm
@@ -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
diff --git a/tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp b/tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp
index 7024da9dd4..9ec249cae0 100644
--- a/tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp
+++ b/tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp
@@ -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()
{