summaryrefslogtreecommitdiffstats
path: root/src/quick3d/quick3danimation/items/quick3dchannelmapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick3d/quick3danimation/items/quick3dchannelmapper.cpp')
-rw-r--r--src/quick3d/quick3danimation/items/quick3dchannelmapper.cpp54
1 files changed, 25 insertions, 29 deletions
diff --git a/src/quick3d/quick3danimation/items/quick3dchannelmapper.cpp b/src/quick3d/quick3danimation/items/quick3dchannelmapper.cpp
index a2bc51d45..3c62ae03b 100644
--- a/src/quick3d/quick3danimation/items/quick3dchannelmapper.cpp
+++ b/src/quick3d/quick3danimation/items/quick3dchannelmapper.cpp
@@ -52,37 +52,33 @@ Quick3DChannelMapper::Quick3DChannelMapper(QObject *parent)
QQmlListProperty<QAbstractChannelMapping> Quick3DChannelMapper::qmlMappings()
{
- return QQmlListProperty<QAbstractChannelMapping>(this, 0,
- &Quick3DChannelMapper::appendMapping,
- &Quick3DChannelMapper::mappingCount,
- &Quick3DChannelMapper::mappingAt,
- &Quick3DChannelMapper::clearMappings);
-}
-
-void Quick3DChannelMapper::appendMapping(QQmlListProperty<QAbstractChannelMapping> *list, QAbstractChannelMapping *mapping)
-{
- Quick3DChannelMapper *extension = qobject_cast<Quick3DChannelMapper *>(list->object);
- extension->parentMapper()->addMapping(mapping);
-}
-
-QAbstractChannelMapping *Quick3DChannelMapper::mappingAt(QQmlListProperty<QAbstractChannelMapping> *list, qsizetype index)
-{
- Quick3DChannelMapper *extension = qobject_cast<Quick3DChannelMapper *>(list->object);
- return extension->parentMapper()->mappings().at(index);
-}
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ using qt_size_type = qsizetype;
+#else
+ using qt_size_type = int;
+#endif
-qsizetype Quick3DChannelMapper::mappingCount(QQmlListProperty<QAbstractChannelMapping> *list)
-{
- Quick3DChannelMapper *extension = qobject_cast<Quick3DChannelMapper *>(list->object);
- return extension->parentMapper()->mappings().count();
-}
+ using ListContentType = QAbstractChannelMapping;
+ auto appendFunction = [](QQmlListProperty<ListContentType> *list, ListContentType *mapping) {
+ Quick3DChannelMapper *extension = qobject_cast<Quick3DChannelMapper *>(list->object);
+ extension->parentMapper()->addMapping(mapping);
+ };
+ auto countFunction = [](QQmlListProperty<ListContentType> *list) -> qt_size_type {
+ Quick3DChannelMapper *extension = qobject_cast<Quick3DChannelMapper *>(list->object);
+ return extension->parentMapper()->mappings().size();
+ };
+ auto atFunction = [](QQmlListProperty<ListContentType> *list, qt_size_type index) -> ListContentType * {
+ Quick3DChannelMapper *extension = qobject_cast<Quick3DChannelMapper *>(list->object);
+ return extension->parentMapper()->mappings().at(index);
+ };
+ auto clearFunction = [](QQmlListProperty<ListContentType> *list) {
+ Quick3DChannelMapper *extension = qobject_cast<Quick3DChannelMapper *>(list->object);
+ const auto mappings = extension->parentMapper()->mappings();
+ for (QAbstractChannelMapping *mapping : mappings)
+ extension->parentMapper()->removeMapping(mapping);
+ };
-void Quick3DChannelMapper::clearMappings(QQmlListProperty<QAbstractChannelMapping> *list)
-{
- Quick3DChannelMapper *extension = qobject_cast<Quick3DChannelMapper *>(list->object);
- const auto mappings = extension->parentMapper()->mappings();
- for (QAbstractChannelMapping *mapping : mappings)
- extension->parentMapper()->removeMapping(mapping);
+ return QQmlListProperty<ListContentType>(this, nullptr, appendFunction, countFunction, atFunction, clearFunction);
}
} // namespace Quick