diff options
author | Mike Krus <mike.krus@kdab.com> | 2020-11-23 09:06:01 +0000 |
---|---|---|
committer | Mike Krus <mike.krus@kdab.com> | 2021-01-08 11:32:08 +0000 |
commit | d2fe37b3480cc55cf301426d7fa40475080cc6f9 (patch) | |
tree | 8c0ef31cdc3d2f75f4eed7d851a6d22e793d4c00 /src/quick3d/quick3drender/items/quick3dtexture.cpp | |
parent | eee0fca4abc800883dde40559290403e7e550d14 (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.cpp | 66 |
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 |