diff options
Diffstat (limited to 'src/quick3d/quick3dinput/items/quick3dinputchord.cpp')
-rw-r--r-- | src/quick3d/quick3dinput/items/quick3dinputchord.cpp | 54 |
1 files changed, 25 insertions, 29 deletions
diff --git a/src/quick3d/quick3dinput/items/quick3dinputchord.cpp b/src/quick3d/quick3dinput/items/quick3dinputchord.cpp index 684e2f283..669c251d2 100644 --- a/src/quick3d/quick3dinput/items/quick3dinputchord.cpp +++ b/src/quick3d/quick3dinput/items/quick3dinputchord.cpp @@ -52,37 +52,33 @@ Quick3DInputChord::Quick3DInputChord(QObject *parent) QQmlListProperty<QAbstractActionInput> Quick3DInputChord::qmlActionInputs() { - return QQmlListProperty<QAbstractActionInput>(this, 0, - &Quick3DInputChord::appendActionInput, - &Quick3DInputChord::actionInputCount, - &Quick3DInputChord::actionInputAt, - &Quick3DInputChord::clearActionInputs); -} - -void Quick3DInputChord::appendActionInput(QQmlListProperty<QAbstractActionInput> *list, QAbstractActionInput *input) -{ - Quick3DInputChord *action = qobject_cast<Quick3DInputChord *>(list->object); - action->parentChord()->addChord(input); -} - -QAbstractActionInput *Quick3DInputChord::actionInputAt(QQmlListProperty<QAbstractActionInput> *list, qsizetype index) -{ - Quick3DInputChord *action = qobject_cast<Quick3DInputChord *>(list->object); - return action->parentChord()->chords().at(index); -} +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + using qt_size_type = qsizetype; +#else + using qt_size_type = int; +#endif -qsizetype Quick3DInputChord::actionInputCount(QQmlListProperty<QAbstractActionInput> *list) -{ - Quick3DInputChord *action = qobject_cast<Quick3DInputChord *>(list->object); - return action->parentChord()->chords().count(); -} + using ListContentType = QAbstractActionInput; + auto appendFunction = [](QQmlListProperty<ListContentType> *list, ListContentType *input) { + Quick3DInputChord *action = qobject_cast<Quick3DInputChord *>(list->object); + action->parentChord()->addChord(input); + }; + auto countFunction = [](QQmlListProperty<ListContentType> *list) -> qt_size_type { + Quick3DInputChord *action = qobject_cast<Quick3DInputChord *>(list->object); + return action->parentChord()->chords().count(); + }; + auto atFunction = [](QQmlListProperty<ListContentType> *list, qt_size_type index) -> ListContentType * { + Quick3DInputChord *action = qobject_cast<Quick3DInputChord *>(list->object); + return action->parentChord()->chords().at(index); + }; + auto clearFunction = [](QQmlListProperty<ListContentType> *list) { + Quick3DInputChord *action = qobject_cast<Quick3DInputChord *>(list->object); + const auto chords = action->parentChord()->chords(); + for (QAbstractActionInput *input : chords) + action->parentChord()->removeChord(input); + }; -void Quick3DInputChord::clearActionInputs(QQmlListProperty<QAbstractActionInput> *list) -{ - Quick3DInputChord *action = qobject_cast<Quick3DInputChord *>(list->object); - const auto chords = action->parentChord()->chords(); - for (QAbstractActionInput *input : chords) - action->parentChord()->removeChord(input); + return QQmlListProperty<ListContentType>(this, nullptr, appendFunction, countFunction, atFunction, clearFunction); } } // namespace Quick |