summaryrefslogtreecommitdiffstats
path: root/src/quick3d/quick3drender/items/quick3dtexture.cpp
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2020-11-23 09:06:01 +0000
committerMike Krus <mike.krus@kdab.com>2021-01-08 11:32:08 +0000
commitd2fe37b3480cc55cf301426d7fa40475080cc6f9 (patch)
tree8c0ef31cdc3d2f75f4eed7d851a6d22e793d4c00 /src/quick3d/quick3drender/items/quick3dtexture.cpp
parenteee0fca4abc800883dde40559290403e7e550d14 (diff)
Update QQMLPropertyList API
Use lambdas with local typedefs for index type Change-Id: I2876c71d619815e7e777f936e8bb0835b8269336 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/quick3d/quick3drender/items/quick3dtexture.cpp')
-rw-r--r--src/quick3d/quick3drender/items/quick3dtexture.cpp66
1 files changed, 31 insertions, 35 deletions
diff --git a/src/quick3d/quick3drender/items/quick3dtexture.cpp b/src/quick3d/quick3drender/items/quick3dtexture.cpp
index 01f36542d..8e1deed1c 100644
--- a/src/quick3d/quick3drender/items/quick3dtexture.cpp
+++ b/src/quick3d/quick3drender/items/quick3dtexture.cpp
@@ -54,43 +54,39 @@ Quick3DTextureExtension::Quick3DTextureExtension(QObject *parent)
QQmlListProperty<QAbstractTextureImage> Quick3DTextureExtension::textureImages()
{
- return QQmlListProperty<QAbstractTextureImage>(this, 0,
- &Quick3DTextureExtension::appendTextureImage,
- &Quick3DTextureExtension::textureImageCount,
- &Quick3DTextureExtension::textureImageAt,
- &Quick3DTextureExtension::clearTextureImageList);
-}
-
-void Quick3DTextureExtension::appendTextureImage(QQmlListProperty<QAbstractTextureImage> *list, QAbstractTextureImage *textureImage)
-{
- Quick3DTextureExtension *self = qobject_cast<Quick3DTextureExtension *>(list->object);
- if (self)
- self->parentTexture()->addTextureImage(textureImage);
-}
-
-QAbstractTextureImage *Quick3DTextureExtension::textureImageAt(QQmlListProperty<QAbstractTextureImage> *list, qsizetype index)
-{
- Quick3DTextureExtension *self = qobject_cast<Quick3DTextureExtension *>(list->object);
- if (self)
- return self->parentTexture()->textureImages().at(index);
- return nullptr;
-}
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ using qt_size_type = qsizetype;
+#else
+ using qt_size_type = int;
+#endif
-qsizetype Quick3DTextureExtension::textureImageCount(QQmlListProperty<QAbstractTextureImage> *list)
-{
- Quick3DTextureExtension *self = qobject_cast<Quick3DTextureExtension *>(list->object);
- if (self)
- return self->parentTexture()->textureImages().count();
- return 0;
-}
+ using ListContentType = QAbstractTextureImage;
+ auto appendFunction = [](QQmlListProperty<ListContentType> *list, ListContentType *textureImage) {
+ Quick3DTextureExtension *self = qobject_cast<Quick3DTextureExtension *>(list->object);
+ if (self)
+ self->parentTexture()->addTextureImage(textureImage);
+ };
+ auto countFunction = [](QQmlListProperty<ListContentType> *list) -> qt_size_type {
+ Quick3DTextureExtension *self = qobject_cast<Quick3DTextureExtension *>(list->object);
+ if (self)
+ return self->parentTexture()->textureImages().count();
+ return 0;
+ };
+ auto atFunction = [](QQmlListProperty<ListContentType> *list, qt_size_type index) -> ListContentType * {
+ Quick3DTextureExtension *self = qobject_cast<Quick3DTextureExtension *>(list->object);
+ if (self)
+ return self->parentTexture()->textureImages().at(index);
+ return nullptr;
+ };
+ auto clearFunction = [](QQmlListProperty<ListContentType> *list) {
+ if (Quick3DTextureExtension *self = qobject_cast<Quick3DTextureExtension *>(list->object)) {
+ const auto images = self->parentTexture()->textureImages();
+ for (QAbstractTextureImage *img : images)
+ self->parentTexture()->removeTextureImage(img);
+ }
+ };
-void Quick3DTextureExtension::clearTextureImageList(QQmlListProperty<QAbstractTextureImage> *list)
-{
- if (Quick3DTextureExtension *self = qobject_cast<Quick3DTextureExtension *>(list->object)) {
- const auto images = self->parentTexture()->textureImages();
- for (QAbstractTextureImage *img : images)
- self->parentTexture()->removeTextureImage(img);
- }
+ return QQmlListProperty<ListContentType>(this, nullptr, appendFunction, countFunction, atFunction, clearFunction);
}
} // namespace Quick