diff options
author | Chip Collier <gregory.collier@kdab.com> | 2017-07-24 17:06:44 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2017-08-02 14:34:52 +0000 |
commit | 4392fa4df4a8f4623dd3ff881f2dd03c94b50c30 (patch) | |
tree | 7435dcc724b6c93c5cb0524cfce541e83c480c51 /src/animation/frontend | |
parent | 2dcc0f8fdd118acdb00b3958b6c230415fd28ca5 (diff) |
Fix Qt3DAnimation::Animation::Clock::playbackRate
Fixes a small bug, removes unused properties from the clock
node (`startTime`) and changes the type of the `playbackRate` property
from `float` to `double` to match the rest of the animation aspect.
QClockPrivate is no longer responsible for emitting the
playbackRateChanged signal. Tests updated to account for this.
[ChangeLog][Qt3DAnimation][Bugfix] The backend node
(`Qt3DAnimation::Animation::Clock`) had an incorrect return type
specified (`int` instead of `float`) which was narrowing the actual
value during the evaluation of associated animation clips.
Change-Id: I53ec78ba289cafcd2055582bee23ff1fc3481317
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/animation/frontend')
-rw-r--r-- | src/animation/frontend/qclock.cpp | 30 | ||||
-rw-r--r-- | src/animation/frontend/qclock.h | 9 | ||||
-rw-r--r-- | src/animation/frontend/qclock_p.h | 6 |
3 files changed, 12 insertions, 33 deletions
diff --git a/src/animation/frontend/qclock.cpp b/src/animation/frontend/qclock.cpp index 1a3649900..6dd851b88 100644 --- a/src/animation/frontend/qclock.cpp +++ b/src/animation/frontend/qclock.cpp @@ -48,16 +48,6 @@ QClockPrivate::QClockPrivate() { } -void QClockPrivate::setPlaybackRate(float playbackRate) -{ - if (qFuzzyCompare(playbackRate, m_playbackRate)) - return; - - Q_Q(QClock); - m_playbackRate = playbackRate; - emit q->playbackRateChanged(playbackRate); -} - QClock::QClock(Qt3DCore::QNode* parent) : Qt3DCore::QNode(*new QClockPrivate, parent) { @@ -72,27 +62,19 @@ QClock::~QClock() { } -float QClock::playbackRate() const +double QClock::playbackRate() const { Q_D(const QClock); return d->m_playbackRate; } -void QClock::setPlaybackRate(float playbackRate) +void QClock::setPlaybackRate(double playbackRate) { Q_D(QClock); - d->setPlaybackRate(playbackRate); -} - -void QClock::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &change) -{ - if (change->type() == Qt3DCore::PropertyUpdated) { - Qt3DCore::QPropertyUpdatedChangePtr e = qSharedPointerCast<Qt3DCore::QPropertyUpdatedChange>(change); - if (e->propertyName() == QByteArrayLiteral("playbackRate")) { - Q_D(QClock); - d->setPlaybackRate(e->value().toFloat()); - } - } + if (qFuzzyCompare(playbackRate, d->m_playbackRate)) + return; + d->m_playbackRate = playbackRate; + emit playbackRateChanged(playbackRate); } Qt3DCore::QNodeCreatedChangeBasePtr QClock::createNodeCreationChange() const diff --git a/src/animation/frontend/qclock.h b/src/animation/frontend/qclock.h index 5b6790362..d2bf91103 100644 --- a/src/animation/frontend/qclock.h +++ b/src/animation/frontend/qclock.h @@ -49,21 +49,20 @@ class QClockPrivate; class QT3DANIMATIONSHARED_EXPORT QClock : public Qt3DCore::QNode { Q_OBJECT - Q_PROPERTY(float playbackRate READ playbackRate WRITE setPlaybackRate NOTIFY playbackRateChanged) + Q_PROPERTY(double playbackRate READ playbackRate WRITE setPlaybackRate NOTIFY playbackRateChanged) public: explicit QClock(Qt3DCore::QNode *parent = nullptr); ~QClock(); - float playbackRate() const; - void setPlaybackRate(float playbackRate); + double playbackRate() const; + void setPlaybackRate(double playbackRate); Q_SIGNALS: - void playbackRateChanged(float playbackRate); + void playbackRateChanged(double playbackRate); protected: QClock(QClockPrivate &dd, Qt3DCore::QNode *parent = nullptr); - void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &change) Q_DECL_OVERRIDE; private: Q_DECLARE_PRIVATE(QClock) diff --git a/src/animation/frontend/qclock_p.h b/src/animation/frontend/qclock_p.h index d633d071e..c862d9082 100644 --- a/src/animation/frontend/qclock_p.h +++ b/src/animation/frontend/qclock_p.h @@ -62,14 +62,12 @@ public: Q_DECLARE_PUBLIC(QClock) - void setPlaybackRate(float playbackRate); - - float m_playbackRate; + double m_playbackRate; }; struct QClockData { - float playbackRate; + double playbackRate; }; } // namespace Qt3DAnimation |