aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/PySide6/QtQml/pysideqmlregistertype.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2021-11-09 13:31:22 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2021-11-15 08:48:44 +0000
commita421aab61ad03afa595aa0ba7e53d84b1edbe892 (patch)
tree0ff3173d7e051d5a93ad9e54a0785f2b9ddedc0f /sources/pyside6/PySide6/QtQml/pysideqmlregistertype.cpp
parentf160c0f1f2053029c118eb5818074f875a3776b4 (diff)
Add a QmlUncreatable decorator
Add a class type that stores the reason and registers the type in the call operator. This is then queried by the register type helper functions. Pick-to: 6.2 Task-number: PYSIDE-1709 Change-Id: I0dd0c4c1e05e6e0ee6f22a6947b85546fc373fb9 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'sources/pyside6/PySide6/QtQml/pysideqmlregistertype.cpp')
-rw-r--r--sources/pyside6/PySide6/QtQml/pysideqmlregistertype.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/sources/pyside6/PySide6/QtQml/pysideqmlregistertype.cpp b/sources/pyside6/PySide6/QtQml/pysideqmlregistertype.cpp
index ffa337b93..1dd0507f7 100644
--- a/sources/pyside6/PySide6/QtQml/pysideqmlregistertype.cpp
+++ b/sources/pyside6/PySide6/QtQml/pysideqmlregistertype.cpp
@@ -39,6 +39,7 @@
#include "pysideqmlregistertype.h"
#include "pysideqmlregistertype_p.h"
+#include "pysideqmluncreatable.h"
#include <limits>
@@ -422,7 +423,10 @@ static PyObject *qmlElementMacroHelper(PyObject *pyObj,
PyObject *PySide::qmlElementMacro(PyObject *pyObj)
{
- return qmlElementMacroHelper(pyObj, "QmlElement");
+ auto *noCreationReason = PySide::qmlNoCreationReason(pyObj);
+ const auto mode = noCreationReason != nullptr
+ ? RegisterMode::Uncreatable : RegisterMode::Normal;
+ return qmlElementMacroHelper(pyObj, "QmlElement", mode, noCreationReason);
}
PyObject *PySide::qmlAnonymousMacro(PyObject *pyObj)