summaryrefslogtreecommitdiffstats
path: root/src/widgets/styles/qstyleanimation.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@digia.com>2012-10-23 14:39:26 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-10-30 17:51:21 +0100
commit85a8df184b3aaa7f3a5a35895aa1caa3d4c39f42 (patch)
treef6fc34d0a08ab464dd93a88a4a67911444bcb42f /src/widgets/styles/qstyleanimation.cpp
parent788e1b2ffa5541b86f62bf468540bb8b5872c033 (diff)
Add QNumberStyleAnimation for fading out scroll bars on Mac
Change-Id: I6a85ed069a418d62078af6490a3d3186d5599a95 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Diffstat (limited to 'src/widgets/styles/qstyleanimation.cpp')
-rw-r--r--src/widgets/styles/qstyleanimation.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/widgets/styles/qstyleanimation.cpp b/src/widgets/styles/qstyleanimation.cpp
index d81532f8a5..0138996e33 100644
--- a/src/widgets/styles/qstyleanimation.cpp
+++ b/src/widgets/styles/qstyleanimation.cpp
@@ -163,4 +163,49 @@ bool QProgressStyleAnimation::isUpdateNeeded() const
return false;
}
+QNumberStyleAnimation::QNumberStyleAnimation(QObject *target) :
+ QStyleAnimation(target), _start(0.0), _end(1.0), _prev(0.0)
+{
+ setDuration(250);
+}
+
+qreal QNumberStyleAnimation::startValue() const
+{
+ return _start;
+}
+
+void QNumberStyleAnimation::setStartValue(qreal value)
+{
+ _start = value;
+}
+
+qreal QNumberStyleAnimation::endValue() const
+{
+ return _end;
+}
+
+void QNumberStyleAnimation::setEndValue(qreal value)
+{
+ _end = value;
+}
+
+qreal QNumberStyleAnimation::currentValue() const
+{
+ qreal step = qreal(currentTime() - delay()) / (duration() - delay());
+ return _start + qMax(qreal(0), step) * (_end - _start);
+}
+
+bool QNumberStyleAnimation::isUpdateNeeded() const
+{
+ if (QStyleAnimation::isUpdateNeeded()) {
+ qreal current = currentValue();
+ if (!qFuzzyCompare(_prev, current))
+ {
+ _prev = current;
+ return true;
+ }
+ }
+ return false;
+}
+
QT_END_NAMESPACE