aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Blechmann <tim.blechmann@qt.io>2026-09-11 11:31:19 +0800
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2026-09-12 01:33:03 +0000
commit951d907c79921a3652f81318d6764c983d11c587 (patch)
tree555ae1e25cbaae8c7482616d32eb849b38878762
parentf5ae5e7f90a5aced5939f6f63a564f4e07a7cd88 (diff)
imageprovider/imageresponseprovider: move plugin class to header
Both examples self-mock a Q_PLUGIN_METADATA(IID ...) plugin class declared directly in the .cpp, which fails moc with "Parse error at IID" on macOS CI (same bug class fixed for Windows in c72296cfbec1). Move the plugin class into a header so moc processes it normally instead of via self-included .moc, and add the missing qmake HEADERS entries since both examples are also built via .pro. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Change-Id: I7762bf3be2401662f3a310ebe11469b83e14260f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit af50a67089b5d41a8479a3df3a9428c39c23a35b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--examples/quick/imageprovider/CMakeLists.txt1
-rw-r--r--examples/quick/imageprovider/imageprovider.cpp19
-rw-r--r--examples/quick/imageprovider/imageprovider.h17
-rw-r--r--examples/quick/imageprovider/imageprovider.pro1
-rw-r--r--examples/quick/imageresponseprovider/CMakeLists.txt1
-rw-r--r--examples/quick/imageresponseprovider/imageresponseprovider.cpp17
-rw-r--r--examples/quick/imageresponseprovider/imageresponseprovider.h17
-rw-r--r--examples/quick/imageresponseprovider/imageresponseprovider.pro1
8 files changed, 48 insertions, 26 deletions
diff --git a/examples/quick/imageprovider/CMakeLists.txt b/examples/quick/imageprovider/CMakeLists.txt
index 7e31bcbabb..f250b7ab8e 100644
--- a/examples/quick/imageprovider/CMakeLists.txt
+++ b/examples/quick/imageprovider/CMakeLists.txt
@@ -20,6 +20,7 @@ qt6_add_qml_module(qmlimageproviderplugin
CLASS_NAME ImageProviderExtensionPlugin
SOURCES
imageprovider.cpp
+ imageprovider.h
)
target_link_libraries(qmlimageproviderplugin PUBLIC
diff --git a/examples/quick/imageprovider/imageprovider.cpp b/examples/quick/imageprovider/imageprovider.cpp
index c7ec8536d3..b1bb9a7bfd 100644
--- a/examples/quick/imageprovider/imageprovider.cpp
+++ b/examples/quick/imageprovider/imageprovider.cpp
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-#include <qqmlextensionplugin.h>
+#include "imageprovider.h"
#include <qqmlengine.h>
#include <qquickimageprovider.h>
@@ -43,17 +43,8 @@ public:
};
-class ImageProviderExtensionPlugin : public QQmlEngineExtensionPlugin
+void ImageProviderExtensionPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID QQmlEngineExtensionInterface_iid)
-public:
- void initializeEngine(QQmlEngine *engine, const char *uri) override
- {
- Q_UNUSED(uri);
- engine->addImageProvider("colors", new ColorImageProvider);
- }
-};
-
-
-#include "imageprovider.moc"
+ Q_UNUSED(uri);
+ engine->addImageProvider("colors", new ColorImageProvider);
+}
diff --git a/examples/quick/imageprovider/imageprovider.h b/examples/quick/imageprovider/imageprovider.h
new file mode 100644
index 0000000000..119cd0bbec
--- /dev/null
+++ b/examples/quick/imageprovider/imageprovider.h
@@ -0,0 +1,17 @@
+// Copyright (C) 2026 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+#ifndef IMAGEPROVIDER_H
+#define IMAGEPROVIDER_H
+
+#include <qqmlextensionplugin.h>
+
+class ImageProviderExtensionPlugin : public QQmlEngineExtensionPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID QQmlEngineExtensionInterface_iid)
+public:
+ void initializeEngine(QQmlEngine *engine, const char *uri) override;
+};
+
+#endif // IMAGEPROVIDER_H
diff --git a/examples/quick/imageprovider/imageprovider.pro b/examples/quick/imageprovider/imageprovider.pro
index 16364a9383..3ecbd9a3e8 100644
--- a/examples/quick/imageprovider/imageprovider.pro
+++ b/examples/quick/imageprovider/imageprovider.pro
@@ -7,6 +7,7 @@ QML_IMPORT_MAJOR_VERSION = 1
DESTDIR = ImageProviderCore
TARGET = qmlimageproviderplugin
+HEADERS += imageprovider.h
SOURCES += imageprovider.cpp
EXAMPLE_FILES = imageprovider-example.qml
diff --git a/examples/quick/imageresponseprovider/CMakeLists.txt b/examples/quick/imageresponseprovider/CMakeLists.txt
index f0b827f14a..386c9921ce 100644
--- a/examples/quick/imageresponseprovider/CMakeLists.txt
+++ b/examples/quick/imageresponseprovider/CMakeLists.txt
@@ -22,6 +22,7 @@ qt6_add_qml_module(qmlimageresponseproviderplugin
target_sources(qmlimageresponseproviderplugin PRIVATE
imageresponseprovider.cpp
+ imageresponseprovider.h
)
set_target_properties(qmlimageresponseproviderplugin PROPERTIES
diff --git a/examples/quick/imageresponseprovider/imageresponseprovider.cpp b/examples/quick/imageresponseprovider/imageresponseprovider.cpp
index 05b74d73a0..8ddb31b70e 100644
--- a/examples/quick/imageresponseprovider/imageresponseprovider.cpp
+++ b/examples/quick/imageresponseprovider/imageresponseprovider.cpp
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-#include <qqmlextensionplugin.h>
+#include "imageresponseprovider.h"
#include <qqmlengine.h>
#include <qquickimageprovider.h>
@@ -81,17 +81,10 @@ private:
};
-class ImageProviderExtensionPlugin : public QQmlEngineExtensionPlugin
+void ImageProviderExtensionPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID QQmlEngineExtensionInterface_iid)
-public:
- void initializeEngine(QQmlEngine *engine, const char *uri) override
- {
- Q_UNUSED(uri);
- engine->addImageProvider("async", new AsyncImageProvider);
- }
-
-};
+ Q_UNUSED(uri);
+ engine->addImageProvider("async", new AsyncImageProvider);
+}
#include "imageresponseprovider.moc"
diff --git a/examples/quick/imageresponseprovider/imageresponseprovider.h b/examples/quick/imageresponseprovider/imageresponseprovider.h
new file mode 100644
index 0000000000..cf8805557b
--- /dev/null
+++ b/examples/quick/imageresponseprovider/imageresponseprovider.h
@@ -0,0 +1,17 @@
+// Copyright (C) 2026 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+#ifndef IMAGERESPONSEPROVIDER_H
+#define IMAGERESPONSEPROVIDER_H
+
+#include <qqmlextensionplugin.h>
+
+class ImageProviderExtensionPlugin : public QQmlEngineExtensionPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID QQmlEngineExtensionInterface_iid)
+public:
+ void initializeEngine(QQmlEngine *engine, const char *uri) override;
+};
+
+#endif // IMAGERESPONSEPROVIDER_H
diff --git a/examples/quick/imageresponseprovider/imageresponseprovider.pro b/examples/quick/imageresponseprovider/imageresponseprovider.pro
index 8be4dbb658..7e61469b87 100644
--- a/examples/quick/imageresponseprovider/imageresponseprovider.pro
+++ b/examples/quick/imageresponseprovider/imageresponseprovider.pro
@@ -5,6 +5,7 @@ QT += qml quick
DESTDIR = ImageResponseProviderCore
TARGET = qmlimageresponseproviderplugin
+HEADERS += imageresponseprovider.h
SOURCES += imageresponseprovider.cpp
EXAMPLE_FILES = imageresponseprovider-example.qml