aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/libpysideqml/pysideqmlnamedelement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside6/libpysideqml/pysideqmlnamedelement.cpp')
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlnamedelement.cpp74
1 files changed, 74 insertions, 0 deletions
diff --git a/sources/pyside6/libpysideqml/pysideqmlnamedelement.cpp b/sources/pyside6/libpysideqml/pysideqmlnamedelement.cpp
new file mode 100644
index 000000000..faf3e4116
--- /dev/null
+++ b/sources/pyside6/libpysideqml/pysideqmlnamedelement.cpp
@@ -0,0 +1,74 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "pysideqmlnamedelement_p.h"
+#include <pysideclassdecorator_p.h>
+#include <pysideqmlregistertype_p.h>
+
+#include <shiboken.h>
+#include <signature.h>
+
+class PySideQmlNamedElementPrivate : public PySide::ClassDecorator::StringDecoratorPrivate
+{
+public:
+ PyObject *tp_call(PyObject *self, PyObject *args, PyObject * /* kw */) override;
+ const char *name() const override;
+};
+
+const char *PySideQmlNamedElementPrivate::name() const
+{
+ return "QmlNamedElement";
+}
+
+// The call operator is passed the class type and registers the type
+PyObject *PySideQmlNamedElementPrivate::tp_call(PyObject *self, PyObject *args, PyObject *)
+{
+ PyObject *klass = tp_call_check(args, CheckMode::WrappedType);
+ if (klass == nullptr)
+ return nullptr;
+
+ auto *data = DecoratorPrivate::get<PySideQmlNamedElementPrivate>(self);
+ auto *result = PySide::Qml::qmlNamedElementMacro(klass, data->string());
+ Py_XINCREF(result);
+ return result;
+}
+
+extern "C" {
+
+PyTypeObject *createPySideQmlNamedElementType(void)
+{
+ auto typeSlots =
+ PySide::ClassDecorator::Methods<PySideQmlNamedElementPrivate>::typeSlots();
+
+ PyType_Spec PySideQmlNamedElementType_spec = {
+ "2:PySide6.QtCore.qmlNamedElement",
+ sizeof(PySideClassDecorator),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ typeSlots.data()
+ };
+ return SbkType_FromSpec(&PySideQmlNamedElementType_spec);
+}
+
+PyTypeObject *PySideQmlNamedElement_TypeF(void)
+{
+ static auto *type = createPySideQmlNamedElementType();
+ return type;
+}
+
+} // extern "C"
+
+static const char *qmlNamedElement_SignatureStrings[] = {
+ "PySide6.QtQml.QmlNamedElement(self,reason:str)",
+ nullptr // Sentinel
+};
+
+void initQmlNamedElement(PyObject *module)
+{
+ if (InitSignatureStrings(PySideQmlNamedElement_TypeF(), qmlNamedElement_SignatureStrings) < 0)
+ return;
+
+ Py_INCREF(PySideQmlNamedElement_TypeF());
+ PyModule_AddObject(module, "QmlNamedElement",
+ reinterpret_cast<PyObject *>(PySideQmlNamedElement_TypeF()));
+}