summaryrefslogtreecommitdiffstats
path: root/src/animation/backend/channelmapping.cpp
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2017-11-15 15:22:27 +0000
committerLaszlo Agocs <laszlo.agocs@qt.io>2017-11-16 14:14:17 +0000
commit91ac8d0264a3777a9d61f704001d032747e25c9f (patch)
tree1f9c8b98f952d8addb5f658a2e2f6bf322f39d81 /src/animation/backend/channelmapping.cpp
parent2dbe6976030b9f4c48d5325bd63a008cd89cb46d (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.cpp12
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;
}
}