summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/widgets/styles/qstyleanimation.cpp37
-rw-r--r--src/widgets/styles/qstyleanimation_p.h9
2 files changed, 35 insertions, 11 deletions
diff --git a/src/widgets/styles/qstyleanimation.cpp b/src/widgets/styles/qstyleanimation.cpp
index 6b12ca9540..d81532f8a5 100644
--- a/src/widgets/styles/qstyleanimation.cpp
+++ b/src/widgets/styles/qstyleanimation.cpp
@@ -48,7 +48,7 @@
QT_BEGIN_NAMESPACE
QStyleAnimation::QStyleAnimation(QObject *target) : QAbstractAnimation(),
- _startTime(QTime::currentTime())
+ _delay(0), _duration(-1), _startTime(QTime::currentTime())
{
if (target) {
moveToThread(target->thread());
@@ -61,14 +61,29 @@ QStyleAnimation::~QStyleAnimation()
{
}
+QObject *QStyleAnimation::target() const
+{
+ return parent();
+}
+
int QStyleAnimation::duration() const
{
- return -1;
+ return _duration;
}
-QObject *QStyleAnimation::target() const
+void QStyleAnimation::setDuration(int duration)
{
- return parent();
+ _duration = duration;
+}
+
+int QStyleAnimation::delay() const
+{
+ return _delay;
+}
+
+void QStyleAnimation::setDelay(int delay)
+{
+ _delay = delay;
}
QTime QStyleAnimation::startTime() const
@@ -89,7 +104,7 @@ void QStyleAnimation::updateTarget()
bool QStyleAnimation::isUpdateNeeded() const
{
- return true;
+ return currentTime() > _delay;
}
void QStyleAnimation::updateCurrentTime(int)
@@ -137,11 +152,13 @@ void QProgressStyleAnimation::setSpeed(int speed)
bool QProgressStyleAnimation::isUpdateNeeded() const
{
- int current = animationStep();
- if (_step == -1 || _step != current)
- {
- _step = current;
- return true;
+ if (QStyleAnimation::isUpdateNeeded()) {
+ int current = animationStep();
+ if (_step == -1 || _step != current)
+ {
+ _step = current;
+ return true;
+ }
}
return false;
}
diff --git a/src/widgets/styles/qstyleanimation_p.h b/src/widgets/styles/qstyleanimation_p.h
index 577b1d7dd4..3188eebebc 100644
--- a/src/widgets/styles/qstyleanimation_p.h
+++ b/src/widgets/styles/qstyleanimation_p.h
@@ -66,9 +66,14 @@ public:
QStyleAnimation(QObject *target);
virtual ~QStyleAnimation();
- int duration() const;
QObject *target() const;
+ int duration() const;
+ void setDuration(int duration);
+
+ int delay() const;
+ void setDelay(int delay);
+
QTime startTime() const;
void setStartTime(const QTime &time);
@@ -79,6 +84,8 @@ protected:
virtual void updateCurrentTime(int time);
private:
+ int _delay;
+ int _duration;
QTime _startTime;
};