From d9c64368ab474b084f84c8eeeb7e0947d2ca4c22 Mon Sep 17 00:00:00 2001 From: Eirik Aavitsland Date: Wed, 30 Sep 2026 09:31:50 +0200 Subject: VectorImage: Allow override of generator choice, for testing VectorImage uses either the QML Generator or Item Generator as backend; settable on application level. For baseline testing, it is useful to set the choice on individual VectorImage items. Implement this through a special custom property. As a driveby, add a checkered background image to the qmlscenegrabber, which may be used in test scenes. Pick-to: 6.12 Task-number: QTBUG-150931 Change-Id: I557c6f359d3874d4c86205be92a6083d3622413a Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/quickvectorimage/qquickvectorimage.cpp | 8 ++++++-- src/quickvectorimage/qquickvectorimage_p_p.h | 2 +- tests/baseline/scenegraph/scenegrabber/CMakeLists.txt | 7 +++++++ tests/baseline/scenegraph/scenegrabber/checkered.png | Bin 0 -> 122 bytes 4 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 tests/baseline/scenegraph/scenegrabber/checkered.png diff --git a/src/quickvectorimage/qquickvectorimage.cpp b/src/quickvectorimage/qquickvectorimage.cpp index fc4e34f0f2..314accc5fa 100644 --- a/src/quickvectorimage/qquickvectorimage.cpp +++ b/src/quickvectorimage/qquickvectorimage.cpp @@ -19,14 +19,18 @@ QT_BEGIN_NAMESPACE +using namespace Qt::StringLiterals; + Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, itemGenPluginLoader, (QQuickVectorImageFormatsPluginFactory_iid, QLatin1String("/vectorimageformats"), Qt::CaseInsensitive)) -static bool useQmlGenerator() +bool QQuickVectorImagePrivate::useQmlGenerator() { + Q_Q(QQuickVectorImage); static const bool val = !qEnvironmentVariableIsSet("QT_QUICKVECTORIMAGE_USE_ITEM_GENERATOR"); - return val; + const bool useNonDefaultGenerator = q->property("_qt_usenondefaultgenerator").toBool(); + return useNonDefaultGenerator ? !val : val; } /*! diff --git a/src/quickvectorimage/qquickvectorimage_p_p.h b/src/quickvectorimage/qquickvectorimage_p_p.h index 3627478108..488cc95bea 100644 --- a/src/quickvectorimage/qquickvectorimage_p_p.h +++ b/src/quickvectorimage/qquickvectorimage_p_p.h @@ -16,7 +16,6 @@ // #include -#include #include #include #include "qquickvectorimage_p.h" @@ -34,6 +33,7 @@ public: void setSource(const QUrl &source); void setSourceData(const QByteArray &data); void loadFile(); + bool useQmlGenerator(); static QQuickVectorImagePrivate *get(QQuickVectorImage *q) { diff --git a/tests/baseline/scenegraph/scenegrabber/CMakeLists.txt b/tests/baseline/scenegraph/scenegrabber/CMakeLists.txt index 145d98b2ad..5927c8951d 100644 --- a/tests/baseline/scenegraph/scenegrabber/CMakeLists.txt +++ b/tests/baseline/scenegraph/scenegrabber/CMakeLists.txt @@ -23,6 +23,13 @@ qt_internal_add_manual_test(qmlscenegrabber Qt::QuickTemplates2Private ) +qt_add_resources(qmlscenegrabber "qmlscenegrabber" + PREFIX + "/" + FILES + checkered.png +) + qt6_add_shaders(qmlscenegrabber "qmlscenegrabber_shaders" BATCHABLE PREFIX diff --git a/tests/baseline/scenegraph/scenegrabber/checkered.png b/tests/baseline/scenegraph/scenegrabber/checkered.png new file mode 100644 index 0000000000..bce3990347 Binary files /dev/null and b/tests/baseline/scenegraph/scenegrabber/checkered.png differ -- cgit v1.2.3