diff options
Diffstat (limited to 'src/animation/backend')
-rw-r--r-- | src/animation/backend/clock.cpp | 17 | ||||
-rw-r--r-- | src/animation/backend/clock_p.h | 1 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/animation/backend/clock.cpp b/src/animation/backend/clock.cpp index 84dc88ea1..f5b2bd1d3 100644 --- a/src/animation/backend/clock.cpp +++ b/src/animation/backend/clock.cpp @@ -59,6 +59,23 @@ void Clock::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change m_playbackRate = data.playbackRate; } +void Clock::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) +{ + switch (e->type()) { + case Qt3DCore::PropertyUpdated: { + const auto change = qSharedPointerCast<Qt3DCore::QPropertyUpdatedChange>(e); + if (change->propertyName() == QByteArrayLiteral("playbackRate")) { + m_playbackRate = change.data()->value().toDouble(); + } + break; + } + + default: + break; + } + QBackendNode::sceneChangeEvent(e); +} + void Clock::cleanup() { m_playbackRate = 1.f; diff --git a/src/animation/backend/clock_p.h b/src/animation/backend/clock_p.h index d5b6b86da..77f664d33 100644 --- a/src/animation/backend/clock_p.h +++ b/src/animation/backend/clock_p.h @@ -61,6 +61,7 @@ class Q_AUTOTEST_EXPORT Clock : public BackendNode public: Clock(); + void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e); void cleanup(); void setPlaybackRate(double playbackRate) { m_playbackRate = playbackRate; } |