summaryrefslogtreecommitdiffstats
path: root/src/quick3d/quick3dinput/items/quick3dinputsequence.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick3d/quick3dinput/items/quick3dinputsequence.cpp')
-rw-r--r--src/quick3d/quick3dinput/items/quick3dinputsequence.cpp54
1 files changed, 25 insertions, 29 deletions
diff --git a/src/quick3d/quick3dinput/items/quick3dinputsequence.cpp b/src/quick3d/quick3dinput/items/quick3dinputsequence.cpp
index eaf3582b6..4d637c18b 100644
--- a/src/quick3d/quick3dinput/items/quick3dinputsequence.cpp
+++ b/src/quick3d/quick3dinput/items/quick3dinputsequence.cpp
@@ -52,37 +52,33 @@ Quick3DInputSequence::Quick3DInputSequence(QObject *parent)
QQmlListProperty<QAbstractActionInput> Quick3DInputSequence::qmlActionInputs()
{
- return QQmlListProperty<QAbstractActionInput>(this, 0,
- &Quick3DInputSequence::appendActionInput,
- &Quick3DInputSequence::actionInputCount,
- &Quick3DInputSequence::actionInputAt,
- &Quick3DInputSequence::clearActionInputs);
-}
-
-void Quick3DInputSequence::appendActionInput(QQmlListProperty<QAbstractActionInput> *list, QAbstractActionInput *input)
-{
- Quick3DInputSequence *action = qobject_cast<Quick3DInputSequence *>(list->object);
- action->parentSequence()->addSequence(input);
-}
-
-QAbstractActionInput *Quick3DInputSequence::actionInputAt(QQmlListProperty<QAbstractActionInput> *list, qsizetype index)
-{
- Quick3DInputSequence *action = qobject_cast<Quick3DInputSequence *>(list->object);
- return action->parentSequence()->sequences().at(index);
-}
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ using qt_size_type = qsizetype;
+#else
+ using qt_size_type = int;
+#endif
-qsizetype Quick3DInputSequence::actionInputCount(QQmlListProperty<QAbstractActionInput> *list)
-{
- Quick3DInputSequence *action = qobject_cast<Quick3DInputSequence *>(list->object);
- return action->parentSequence()->sequences().count();
-}
+ using ListContentType = QAbstractActionInput;
+ auto appendFunction = [](QQmlListProperty<ListContentType> *list, ListContentType *input) {
+ Quick3DInputSequence *action = qobject_cast<Quick3DInputSequence *>(list->object);
+ action->parentSequence()->addSequence(input);
+ };
+ auto countFunction = [](QQmlListProperty<ListContentType> *list) -> qt_size_type {
+ Quick3DInputSequence *action = qobject_cast<Quick3DInputSequence *>(list->object);
+ return action->parentSequence()->sequences().count();
+ };
+ auto atFunction = [](QQmlListProperty<ListContentType> *list, qt_size_type index) -> ListContentType * {
+ Quick3DInputSequence *action = qobject_cast<Quick3DInputSequence *>(list->object);
+ return action->parentSequence()->sequences().at(index);
+ };
+ auto clearFunction = [](QQmlListProperty<ListContentType> *list) {
+ Quick3DInputSequence *action = qobject_cast<Quick3DInputSequence *>(list->object);
+ const auto sequences = action->parentSequence()->sequences();
+ for (QAbstractActionInput *input : sequences)
+ action->parentSequence()->removeSequence(input);
+ };
-void Quick3DInputSequence::clearActionInputs(QQmlListProperty<QAbstractActionInput> *list)
-{
- Quick3DInputSequence *action = qobject_cast<Quick3DInputSequence *>(list->object);
- const auto sequences = action->parentSequence()->sequences();
- for (QAbstractActionInput *input : sequences)
- action->parentSequence()->removeSequence(input);
+ return QQmlListProperty<ListContentType>(this, nullptr, appendFunction, countFunction, atFunction, clearFunction);
}