summaryrefslogtreecommitdiffstats
path: root/src/quick3d/quick3dinput/items/quick3dphysicaldevice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick3d/quick3dinput/items/quick3dphysicaldevice.cpp')
-rw-r--r--src/quick3d/quick3dinput/items/quick3dphysicaldevice.cpp54
1 files changed, 25 insertions, 29 deletions
diff --git a/src/quick3d/quick3dinput/items/quick3dphysicaldevice.cpp b/src/quick3d/quick3dinput/items/quick3dphysicaldevice.cpp
index dc1fdcf6d..07b017735 100644
--- a/src/quick3d/quick3dinput/items/quick3dphysicaldevice.cpp
+++ b/src/quick3d/quick3dinput/items/quick3dphysicaldevice.cpp
@@ -52,37 +52,33 @@ Quick3DPhysicalDevice::Quick3DPhysicalDevice(QObject *parent) : QObject(parent)
QQmlListProperty<QAxisSetting> Quick3DPhysicalDevice::axisSettings()
{
- return QQmlListProperty<QAxisSetting>(this, 0,
- &Quick3DPhysicalDevice::appendAxisSetting,
- &Quick3DPhysicalDevice::axisSettingsCount,
- &Quick3DPhysicalDevice::axisSettingAt,
- &Quick3DPhysicalDevice::clearAxisSettings);
-}
-
-void Quick3DPhysicalDevice::appendAxisSetting(QQmlListProperty<QAxisSetting> *list, QAxisSetting *axisSetting)
-{
- Quick3DPhysicalDevice *device = qobject_cast<Quick3DPhysicalDevice *>(list->object);
- device->parentPhysicalDevice()->addAxisSetting(axisSetting);
-}
-
-QAxisSetting *Quick3DPhysicalDevice::axisSettingAt(QQmlListProperty<QAxisSetting> *list, qsizetype index)
-{
- Quick3DPhysicalDevice *device = qobject_cast<Quick3DPhysicalDevice *>(list->object);
- return device->parentPhysicalDevice()->axisSettings().at(index);
-}
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ using qt_size_type = qsizetype;
+#else
+ using qt_size_type = int;
+#endif
-qsizetype Quick3DPhysicalDevice::axisSettingsCount(QQmlListProperty<QAxisSetting> *list)
-{
- Quick3DPhysicalDevice *device = qobject_cast<Quick3DPhysicalDevice *>(list->object);
- return device->parentPhysicalDevice()->axisSettings().count();
-}
+ using ListContentType = QAxisSetting;
+ auto appendFunction = [](QQmlListProperty<ListContentType> *list, ListContentType *axisSetting) {
+ Quick3DPhysicalDevice *device = qobject_cast<Quick3DPhysicalDevice *>(list->object);
+ device->parentPhysicalDevice()->addAxisSetting(axisSetting);
+ };
+ auto countFunction = [](QQmlListProperty<ListContentType> *list) -> qt_size_type {
+ Quick3DPhysicalDevice *device = qobject_cast<Quick3DPhysicalDevice *>(list->object);
+ return device->parentPhysicalDevice()->axisSettings().count();
+ };
+ auto atFunction = [](QQmlListProperty<ListContentType> *list, qt_size_type index) -> ListContentType * {
+ Quick3DPhysicalDevice *device = qobject_cast<Quick3DPhysicalDevice *>(list->object);
+ return device->parentPhysicalDevice()->axisSettings().at(index);
+ };
+ auto clearFunction = [](QQmlListProperty<ListContentType> *list) {
+ Quick3DPhysicalDevice *device = qobject_cast<Quick3DPhysicalDevice *>(list->object);
+ const auto axisSettings = device->parentPhysicalDevice()->axisSettings();
+ for (QAxisSetting *axisSetting : axisSettings)
+ device->parentPhysicalDevice()->removeAxisSetting(axisSetting);
+ };
-void Quick3DPhysicalDevice::clearAxisSettings(QQmlListProperty<QAxisSetting> *list)
-{
- Quick3DPhysicalDevice *device = qobject_cast<Quick3DPhysicalDevice *>(list->object);
- const auto axisSettings = device->parentPhysicalDevice()->axisSettings();
- for (QAxisSetting *axisSetting : axisSettings)
- device->parentPhysicalDevice()->removeAxisSetting(axisSetting);
+ return QQmlListProperty<ListContentType>(this, nullptr, appendFunction, countFunction, atFunction, clearFunction);
}
} // namespace Quick