diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2017-11-15 15:22:27 +0000 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2017-11-16 14:14:17 +0000 |
commit | 91ac8d0264a3777a9d61f704001d032747e25c9f (patch) | |
tree | 1f9c8b98f952d8addb5f658a2e2f6bf322f39d81 /src/animation/backend/channelmapping.cpp | |
parent | 2dbe6976030b9f4c48d5325bd63a008cd89cb46d (diff) |
Split animation callback handling into its own frontend class
This keeps things consistent between the 3 mapping types:
* Regular properties
* Callbacks
* Skeletons
The ChannelMapping backend node handles all 3 frontend types.
Change-Id: I824aeb25aa69d96f20d844e7d953c68567829321
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/animation/backend/channelmapping.cpp')
-rw-r--r-- | src/animation/backend/channelmapping.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/animation/backend/channelmapping.cpp b/src/animation/backend/channelmapping.cpp index 25f63506b..ecae8bbae 100644 --- a/src/animation/backend/channelmapping.cpp +++ b/src/animation/backend/channelmapping.cpp @@ -36,6 +36,7 @@ #include "channelmapping_p.h" #include <Qt3DAnimation/qchannelmapping.h> +#include <Qt3DAnimation/private/qcallbackmapping_p.h> #include <Qt3DAnimation/private/qchannelmapping_p.h> #include <Qt3DAnimation/private/qskeletonmapping_p.h> #include <Qt3DAnimation/private/animationlogging_p.h> @@ -74,8 +75,6 @@ void ChannelMapping::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePt m_property = data.property; m_type = data.type; m_propertyName = data.propertyName; - m_callback = data.callback; - m_callbackFlags = data.callbackFlags; m_mappingType = ChannelMappingType; break; } @@ -89,8 +88,13 @@ void ChannelMapping::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePt } case QChannelMappingCreatedChangeBase::CallbackMapping: { - // TODO: Refactor callback support out of QChannelMapping and into its own type - m_mappingType = CallbackMappingType; + const auto typedChange = qSharedPointerCast<QChannelMappingCreatedChange<QCallbackMappingData>>(change); + const auto &data = typedChange->data; + m_channelName = data.channelName; + m_type = data.type; + m_callback = data.callback; + m_callbackFlags = data.callbackFlags; + m_mappingType = ChannelMappingType; break; } } |