diff options
Diffstat (limited to 'src/animation/backend')
-rw-r--r-- | src/animation/backend/clock.cpp | 26 | ||||
-rw-r--r-- | src/animation/backend/clock_p.h | 4 |
2 files changed, 8 insertions, 22 deletions
diff --git a/src/animation/backend/clock.cpp b/src/animation/backend/clock.cpp index f5b2bd1d3..ab30f735c 100644 --- a/src/animation/backend/clock.cpp +++ b/src/animation/backend/clock.cpp @@ -52,28 +52,16 @@ Clock::Clock() { } -void Clock::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) +void Clock::syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstTime) { - const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QClockData>>(change); - const auto &data = typedChange->data; - 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; - } + BackendNode::syncFromFrontEnd(frontEnd, firstTime); + const QClock *node = qobject_cast<const QClock *>(frontEnd); + if (!node) + return; - default: - break; + if (!qFuzzyCompare(m_playbackRate, node->playbackRate())) { + m_playbackRate = node->playbackRate(); } - QBackendNode::sceneChangeEvent(e); } void Clock::cleanup() diff --git a/src/animation/backend/clock_p.h b/src/animation/backend/clock_p.h index 10987655a..b4a60b3a7 100644 --- a/src/animation/backend/clock_p.h +++ b/src/animation/backend/clock_p.h @@ -61,15 +61,13 @@ class Q_AUTOTEST_EXPORT Clock : public BackendNode public: Clock(); - void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e); + void syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstTime) override; void cleanup(); void setPlaybackRate(double playbackRate) { m_playbackRate = playbackRate; } double playbackRate() const { return m_playbackRate; } private: - void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) final; - double m_playbackRate; }; |