summaryrefslogtreecommitdiffstats
path: root/src/animation/frontend
diff options
context:
space:
mode:
authorChip Collier <gregory.collier@kdab.com>2017-07-24 17:06:44 +0200
committerSean Harmer <sean.harmer@kdab.com>2017-08-02 14:34:52 +0000
commit4392fa4df4a8f4623dd3ff881f2dd03c94b50c30 (patch)
tree7435dcc724b6c93c5cb0524cfce541e83c480c51 /src/animation/frontend
parent2dcc0f8fdd118acdb00b3958b6c230415fd28ca5 (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.cpp30
-rw-r--r--src/animation/frontend/qclock.h9
-rw-r--r--src/animation/frontend/qclock_p.h6
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