summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2025-09-01 14:14:21 +0200
committerMichal Klocek <michal.klocek@qt.io>2025-10-30 12:15:19 +0100
commitab20d0c1827b53394bcf53dc925e3ae9708fc491 (patch)
treebbc44eebc7f3a0ebdb0e3c3e4fea6a8adf1bf4b4
parent37315e6097c99719ca3a3f0a2ee4e64074a4ecc1 (diff)
Minor. Clean up qquickwebengineforeigntypes
Go through all foreign registered types and cleanup the code. Divide file into two sections: * qml object types * qml value type Use proper QML_VALUE_TYPE macro for registration, Add CREATE_DERIVED_FREIGN_NAMESPACE macro. Remove QML_UNCREATABLE as all value types should be default constructable. Note Fixes for QWebEngineDesktopMediaRequest are done in separete commit. Pick-to: 6.10 Change-Id: I0dfbcffc28d58c7cf46b7b7805e4ff0623f17f42 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
-rw-r--r--src/webenginequick/api/qquickwebengineforeigntypes_p.h231
1 files changed, 110 insertions, 121 deletions
diff --git a/src/webenginequick/api/qquickwebengineforeigntypes_p.h b/src/webenginequick/api/qquickwebengineforeigntypes_p.h
index 0b370868f..87f6c6982 100644
--- a/src/webenginequick/api/qquickwebengineforeigntypes_p.h
+++ b/src/webenginequick/api/qquickwebengineforeigntypes_p.h
@@ -46,11 +46,105 @@ QT_BEGIN_NAMESPACE
// To prevent the same type from being exported twice into qmltypes
// (for value type and for the enums)
-struct QWebEngineLoadingInfoDerived : public QWebEngineLoadingInfo
+#define CREATE_DERIVED_FOREIGN_NAMESPACE(TYPE) \
+ struct TYPE##Derived : public TYPE \
+ { \
+ Q_GADGET \
+ };
+
+// QML object types
+
+struct ForeignWebEngineHistory
+{
+ Q_GADGET
+ QML_FOREIGN(QWebEngineHistory)
+ QML_NAMED_ELEMENT(WebEngineHistory)
+ QML_ADDED_IN_VERSION(1, 1)
+ QML_EXTRA_VERSION(2, 0)
+ QML_UNCREATABLE("")
+};
+
+struct ForeignWebEngineHistoryModel
+{
+ Q_GADGET
+ QML_FOREIGN(QWebEngineHistoryModel)
+ QML_NAMED_ELEMENT(WebEngineHistoryModel)
+ QML_ADDED_IN_VERSION(1, 1)
+ QML_EXTRA_VERSION(2, 0)
+ QML_UNCREATABLE("")
+};
+
+struct ForeignWebEngineNavigationRequest
+{
+ Q_GADGET
+ QML_FOREIGN(QWebEngineNavigationRequest)
+ QML_NAMED_ELEMENT(WebEngineNavigationRequest)
+ QML_ADDED_IN_VERSION(1, 0)
+ QML_EXTRA_VERSION(2, 0)
+ QML_UNCREATABLE("")
+};
+
+struct ForeignWebEngineContextMenuRequest
+{
+ Q_GADGET
+ QML_FOREIGN(QWebEngineContextMenuRequest)
+ QML_NAMED_ELEMENT(ContextMenuRequest)
+ QML_ADDED_IN_VERSION(1, 7)
+ QML_EXTRA_VERSION(2, 0)
+ QML_UNCREATABLE("")
+};
+
+struct ForeignWebEngineNotification
+{
+ Q_GADGET
+ QML_FOREIGN(QWebEngineNotification)
+ QML_NAMED_ELEMENT(WebEngineNotification)
+ QML_ADDED_IN_VERSION(1, 9)
+ QML_EXTRA_VERSION(2, 0)
+ QML_UNCREATABLE("")
+};
+
+struct ForeignWebEngineWebAuthUxRequest
+{
+ Q_GADGET
+ QML_FOREIGN(QWebEngineWebAuthUxRequest)
+ QML_NAMED_ELEMENT(WebEngineWebAuthUxRequest)
+ QML_ADDED_IN_VERSION(6, 7)
+ QML_UNCREATABLE("")
+};
+
+struct ForeignWebEngineDesktopMediaRequest
{
Q_GADGET
+ QML_FOREIGN(QWebEngineDesktopMediaRequest)
+ QML_ANONYMOUS
+ QML_ADDED_IN_VERSION(6, 10)
+};
+
+struct ForeignWebEngineClientHints : public QObject
+{
+ Q_OBJECT
+ QML_FOREIGN(QWebEngineClientHints)
+ QML_NAMED_ELEMENT(WebEngineClientHints)
+ QML_ADDED_IN_VERSION(6, 8)
+ QML_UNCREATABLE("")
};
+#if QT_CONFIG(webengine_extensions)
+struct ForeignWebEngineExtensionManager
+{
+ Q_GADGET
+ QML_NAMED_ELEMENT(WebEngineExtensionManager)
+ QML_FOREIGN(QWebEngineExtensionManager)
+ QML_ADDED_IN_VERSION(6, 10)
+ QML_UNCREATABLE("")
+};
+#endif
+
+// QML value types
+
+CREATE_DERIVED_FOREIGN_NAMESPACE(QWebEngineLoadingInfo)
+
namespace ForeignWebEngineLoadingInfoNamespace
{
Q_NAMESPACE
@@ -64,18 +158,12 @@ struct ForeignWebEngineLoadingInfo
{
Q_GADGET
QML_FOREIGN(QWebEngineLoadingInfo)
- QML_NAMED_ELEMENT(webEngineLoadingInfo)
+ QML_VALUE_TYPE(webEngineLoadingInfo)
QML_ADDED_IN_VERSION(1, 1)
QML_EXTRA_VERSION(2, 0)
- QML_UNCREATABLE("")
};
-// To prevent the same type from being exported twice into qmltypes
-// (for value type and for the enums)
-struct QWebEngineCertificateErrorDerived : public QWebEngineCertificateError
-{
- Q_GADGET
-};
+CREATE_DERIVED_FOREIGN_NAMESPACE(QWebEngineCertificateError)
namespace ForeignWebEngineCertificateErrorNamespace
{
@@ -90,26 +178,17 @@ struct ForeignWebEngineCertificateError
{
Q_GADGET
QML_FOREIGN(QWebEngineCertificateError)
- QML_NAMED_ELEMENT(webEngineCertificateError)
+ QML_VALUE_TYPE(webEngineCertificateError)
QML_ADDED_IN_VERSION(1, 1)
QML_EXTRA_VERSION(2, 0)
- QML_UNCREATABLE("")
};
-struct ForeignWebEngineNavigationRequest
-{
- Q_GADGET
- QML_FOREIGN(QWebEngineNavigationRequest)
- QML_NAMED_ELEMENT(WebEngineNavigationRequest)
- QML_ADDED_IN_VERSION(1, 0)
- QML_EXTRA_VERSION(2, 0)
- QML_UNCREATABLE("")
-};
+CREATE_DERIVED_FOREIGN_NAMESPACE(QWebEngineScript)
namespace ForeignWebEngineScriptNamespace
{
Q_NAMESPACE
- QML_FOREIGN_NAMESPACE(QWebEngineScript)
+ QML_FOREIGN_NAMESPACE(QWebEngineScriptDerived)
QML_NAMED_ELEMENT(WebEngineScript)
QML_ADDED_IN_VERSION(1, 1)
QML_EXTRA_VERSION(2, 0)
@@ -120,49 +199,18 @@ struct ForeignWebEngineScript
Q_GADGET
QML_FOREIGN(QWebEngineScript)
QML_STRUCTURED_VALUE
- QML_NAMED_ELEMENT(webEngineScript)
+ QML_VALUE_TYPE(webEngineScript)
QML_ADDED_IN_VERSION(1, 1)
QML_EXTRA_VERSION(2, 0)
};
-struct ForeignWebEngineHistory
-{
- Q_GADGET
- QML_FOREIGN(QWebEngineHistory)
- QML_NAMED_ELEMENT(WebEngineHistory)
- QML_ADDED_IN_VERSION(1, 1)
- QML_EXTRA_VERSION(2, 0)
- QML_UNCREATABLE("")
-};
-
-struct ForeignWebEngineHistoryModel
-{
- Q_GADGET
- QML_FOREIGN(QWebEngineHistoryModel)
- QML_NAMED_ELEMENT(WebEngineHistoryModel)
- QML_ADDED_IN_VERSION(1, 1)
- QML_EXTRA_VERSION(2, 0)
- QML_UNCREATABLE("")
-};
-
struct ForeignWebEngineFullScreenRequest
{
Q_GADGET
QML_FOREIGN(QWebEngineFullScreenRequest)
- QML_NAMED_ELEMENT(fullScreenRequest)
+ QML_VALUE_TYPE(fullScreenRequest)
QML_ADDED_IN_VERSION(1, 1)
QML_EXTRA_VERSION(2, 0)
- QML_UNCREATABLE("")
-};
-
-struct ForeignWebEngineContextMenuRequest
-{
- Q_GADGET
- QML_FOREIGN(QWebEngineContextMenuRequest)
- QML_NAMED_ELEMENT(ContextMenuRequest)
- QML_ADDED_IN_VERSION(1, 7)
- QML_EXTRA_VERSION(2, 0)
- QML_UNCREATABLE("")
};
#if QT_DEPRECATED_SINCE(6, 5)
@@ -170,10 +218,9 @@ struct ForeignWebEngineQuotaRequest
{
Q_GADGET
QML_FOREIGN(QWebEngineQuotaRequest)
- QML_NAMED_ELEMENT(webEngineQuotaRequest)
+ QML_VALUE_TYPE(webEngineQuotaRequest)
QML_ADDED_IN_VERSION(1, 7)
QML_EXTRA_VERSION(2, 0)
- QML_UNCREATABLE("")
};
#endif
@@ -181,47 +228,29 @@ struct ForeignWebEngineRegisterProtocolHandlerRequest
{
Q_GADGET
QML_FOREIGN(QWebEngineRegisterProtocolHandlerRequest)
- QML_NAMED_ELEMENT(registerProtocolHandlerRequest)
+ QML_VALUE_TYPE(registerProtocolHandlerRequest)
QML_ADDED_IN_VERSION(1, 7)
QML_EXTRA_VERSION(2, 0)
- QML_UNCREATABLE("")
-};
-
-struct ForeignWebEngineNotification
-{
- Q_GADGET
- QML_FOREIGN(QWebEngineNotification)
- QML_NAMED_ELEMENT(WebEngineNotification)
- QML_ADDED_IN_VERSION(1, 9)
- QML_EXTRA_VERSION(2, 0)
- QML_UNCREATABLE("")
};
struct ForeignWebEngineFindTextResult
{
Q_GADGET
QML_FOREIGN(QWebEngineFindTextResult)
- QML_NAMED_ELEMENT(findTextResult)
+ QML_VALUE_TYPE(findTextResult)
QML_ADDED_IN_VERSION(1, 10)
QML_EXTRA_VERSION(2, 0)
- QML_UNCREATABLE("")
};
struct ForeginWebEngineFileSystemAccessRequest
{
Q_GADGET
QML_FOREIGN(QWebEngineFileSystemAccessRequest)
- QML_NAMED_ELEMENT(webEngineFileSystemAccessRequest)
+ QML_VALUE_TYPE(webEngineFileSystemAccessRequest)
QML_ADDED_IN_VERSION(6, 4)
- QML_UNCREATABLE("")
};
-// To prevent the same type from being exported twice into qmltypes
-// (for value type and for the enums)
-struct QWebEngineFileSystemAccessRequestDerived : public QWebEngineFileSystemAccessRequest
-{
- Q_GADGET
-};
+CREATE_DERIVED_FOREIGN_NAMESPACE(QWebEngineFileSystemAccessRequest)
namespace ForeginWebEngineFileSystemAccessRequestNamespace
{
@@ -231,30 +260,15 @@ namespace ForeginWebEngineFileSystemAccessRequestNamespace
QML_ADDED_IN_VERSION(6, 4)
};
-struct ForeignWebEngineWebAuthUxRequest
-{
- Q_GADGET
- QML_FOREIGN(QWebEngineWebAuthUxRequest)
- QML_NAMED_ELEMENT(WebEngineWebAuthUxRequest)
- QML_ADDED_IN_VERSION(6, 7)
- QML_UNCREATABLE("")
-};
-
struct ForeginWebEngineWebAuthPinRequest
{
Q_GADGET
QML_FOREIGN(QWebEngineWebAuthPinRequest)
QML_VALUE_TYPE(webEngineWebAuthPinRequest)
QML_ADDED_IN_VERSION(6, 8)
- QML_UNCREATABLE("")
};
-// To prevent the same type from being exported twice into qmltypes
-// (for value type and for the enums)
-class QWebEnginePermissionDerived : public QWebEnginePermission
-{
- Q_GADGET
-};
+CREATE_DERIVED_FOREIGN_NAMESPACE(QWebEnginePermission)
namespace ForeignWebEnginePermissionNamespace
{
@@ -270,24 +284,6 @@ struct ForeignWebEnginePermission
QML_FOREIGN(QWebEnginePermission)
QML_VALUE_TYPE(webEnginePermission)
QML_ADDED_IN_VERSION(6, 8)
- QML_UNCREATABLE("")
-};
-
-struct ForeignWebEngineDesktopMediaRequest
-{
- Q_GADGET
- QML_FOREIGN(QWebEngineDesktopMediaRequest)
- QML_ANONYMOUS
- QML_ADDED_IN_VERSION(6, 10)
-};
-
-struct ForeignWebEngineClientHints : public QObject
-{
- Q_OBJECT
- QML_FOREIGN(QWebEngineClientHints)
- QML_NAMED_ELEMENT(WebEngineClientHints)
- QML_ADDED_IN_VERSION(6, 8)
- QML_UNCREATABLE("")
};
#if QT_CONFIG(webengine_extensions)
@@ -298,17 +294,10 @@ struct ForeignWebEngineExtensionInfo
QML_FOREIGN(QWebEngineExtensionInfo)
QML_ADDED_IN_VERSION(6, 10)
};
-
-struct ForeignWebEngineExtensionManager
-{
- Q_GADGET
- QML_NAMED_ELEMENT(WebEngineExtensionManager)
- QML_FOREIGN(QWebEngineExtensionManager)
- QML_ADDED_IN_VERSION(6, 10)
- QML_UNCREATABLE("")
-};
#endif
+#undef CREATE_DERIVED_FOREIGN_NAMESPACE
+
QT_END_NAMESPACE
#endif // QQUICKWEBENGINEFOREIGNTYPES_H