diff options
Diffstat (limited to 'sources/pyside6/PySide6/QtQml/typesystem_qml.xml')
-rw-r--r-- | sources/pyside6/PySide6/QtQml/typesystem_qml.xml | 181 |
1 files changed, 112 insertions, 69 deletions
diff --git a/sources/pyside6/PySide6/QtQml/typesystem_qml.xml b/sources/pyside6/PySide6/QtQml/typesystem_qml.xml index b58b18ee7..3392ef379 100644 --- a/sources/pyside6/PySide6/QtQml/typesystem_qml.xml +++ b/sources/pyside6/PySide6/QtQml/typesystem_qml.xml @@ -1,62 +1,32 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt for Python. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 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 --> -<typesystem package="PySide6.QtQml"> +<typesystem package="PySide6.QtQml" + namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE"> <load-typesystem name="QtCore/typesystem_core.xml" generate="no"/> <load-typesystem name="QtNetwork/typesystem_network.xml" generate="no"/> + <rejection class="QQmlPrivate"/> + <inject-code class="target" position="declaration"> // Volatile Bool Ptr type definition for QQmlIncubationController::incubateWhile(std::atomic<bool> *, int) #include <atomic> using AtomicBool = std::atomic<bool>; - typedef struct { + struct QtQml_VolatileBoolObject { PyObject_HEAD AtomicBool *flag; - } QtQml_VolatileBoolObject; + }; </inject-code> <inject-code class="native" position="beginning"> - #include "pysideqmlregistertype.h" + #include <pysideqml.h> + #include <pysideqmlregistertype.h> + #include <pysideqmlattached.h> + #include "pysideqmlvolatilebool.h" </inject-code> <!-- This is to inform the generator that the VolatileBool python type exists --> @@ -68,48 +38,79 @@ in generator tests folder. --> </primitive-type> - <enum-type name="QQmlModuleImportSpecialVersions" since="6.0"/> + <enum-type name="QQmlModuleImportSpecialVersions" doc-file="qqmlengine"/> <!-- expose QQmlIncubationController::incubateWhile() (see - QtQml_VolatileBoolTypeF/pysideqmlregistertype.h) --> + QtQml_VolatileBoolTypeF/pysideqmlvolatilebool.h) --> <namespace-type name="std" generate="no"> <value-type name="atomic" generate="no"/> </namespace-type> - <add-function signature="qmlRegisterType(PyTypeObject,const char*,int,int,const char*)" return-type="int"> + <add-function signature="qmlAttachedPropertiesObject(PyTypeObject*@type_obj@,QObject*,bool=true)" + return-type="QObject*"> + <inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlattachedpropertiesobject"/> + </add-function> + + <add-function signature="qmlRegisterType(PyTypeObject@type_obj@,const char*@uri@,int@version_major@,int@version_minor@,const char*@qml_name@)" return-type="int"> <inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlregistertype"/> + <inject-documentation format="target" mode="append" file="../doc/qtqml_functions.rst" + snippet="qmlregistertype"/> + <modify-argument index="2" pyi-type="str"/> </add-function> - <add-function signature="qmlRegisterSingletonType(PyTypeObject,const char*,int,int,const char*,PyObject*)" return-type="int"> + <add-function signature="qmlRegisterSingletonType(PyTypeObject@type_obj@,const char*@uri@,int@version_major@,int@version_minor@,const char*@qml_name@,PyObject*@callback@)" return-type="int"> <inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlregistersingletontype_qobject_callback"/> + <inject-documentation format="target" mode="append" file="../doc/qtqml_functions.rst" + snippet="qmlregistersingletontype_qobject_callback"/> + <modify-argument index="2" pyi-type="str"/> </add-function> - <add-function signature="qmlRegisterSingletonType(PyTypeObject,const char*,int,int,const char*)" return-type="int"> + <add-function signature="qmlRegisterSingletonType(PyTypeObject@type_obj@,const char*@uri@,int@version_major@,int@version_minor@,const char*@qml_name@)" return-type="int"> <inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlregistersingletontype_qobject_nocallback"/> + <inject-documentation format="target" mode="append" file="../doc/qtqml_functions.rst" + snippet="qmlregistersingletontype_qobject_nocallback"/> + <modify-argument index="2" pyi-type="str"/> </add-function> - <add-function signature="qmlRegisterSingletonType(const char*,int,int,const char*,PyObject*)" return-type="int"> + <add-function signature="qmlRegisterSingletonType(const char*@uri@,int@version_major@,int@version_minor@,const char*@qml_name@,PyObject*@callback@)" return-type="int"> <inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlregistersingletontype_qjsvalue"/> + <inject-documentation format="target" mode="append" file="../doc/qtqml_functions.rst" + snippet="qmlregistersingletontype_qjsvalue"/> + <modify-argument index="1" pyi-type="str"/> </add-function> - <add-function signature="qmlRegisterSingletonInstance(PyTypeObject,const char*,int,int,const char*,PyObject*)" return-type="int"> + <add-function signature="qmlRegisterSingletonInstance(PyTypeObject@type_obj@,const char*@uri@,int@version_major@,int@version_minor@,const char*@qml_name@,PyObject*@callback@)" return-type="int"> <inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlregistersingletoninstance"/> + <inject-documentation format="target" mode="append" file="../doc/qtqml_functions.rst" + snippet="qmlregistersingletoninstance"/> + <modify-argument index="2" pyi-type="str"/> </add-function> - <add-function signature="qmlRegisterUncreatableType(PyTypeObject,const char*,int,int,const char*,const char*)" return-type="int"> + <add-function signature="qmlRegisterUncreatableType(PyTypeObject@type_obj@,const char*@uri@,int@version_major@,int@version_minor@,const char*@qml_name@,const char*@message@)" return-type="int"> <inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlregisteruncreatabletype"/> + <inject-documentation format="target" mode="append" file="../doc/qtqml_functions.rst" + snippet="qmlregisteruncreatabletype"/> + <modify-argument index="2" pyi-type="str"/> </add-function> <add-function signature="QmlElement(PyObject*)" return-type="PyObject*"> <inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlelement"/> </add-function> + <add-function signature="QmlAnonymous(PyObject*)" return-type="PyObject*"> + <inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlanonymous"/> + </add-function> + + <add-function signature="QmlSingleton(PyObject*)" return-type="PyObject*"> + <inject-code class="target" file="../glue/qtqml.cpp" snippet="qmlsingleton"/> + </add-function> + <function signature="qjsEngine(const QObject*)"> <modify-function> <modify-argument index="return" pyi-type="Optional[PySide6.QtQml.QJSEngine]"/> </modify-function> </function> - <function signature="qmlClearTypeRegistrations()"/> + <function signature="qmlClearTypeRegistrations()" doc-file="qqmlengine"/> <function signature="qmlContext(const QObject*)"> <modify-function> <modify-argument index="return" pyi-type="Optional[PySide6.QtQml.QQmlContext]"/> @@ -120,12 +121,15 @@ <modify-argument index="return" pyi-type="Optional[PySide6.QtQml.QQmlEngine]"/> </modify-function> </function> - <function signature="qmlProtectModule(const char*,int)"/> - <function signature="qmlRegisterModule(const char*,int,int)"/> - <function signature="qmlTypeId(const char*,int,int,const char*)"/> - <function signature="qmlRegisterType(const QUrl &,const char *,int,int,const char *)"/> - <function signature="qmlRegisterSingletonType(const QUrl &,const char *,int,int,const char *)"/> - <function signature="qmlRegisterUncreatableMetaObject(const QMetaObject&,const char*,int,int, const char*,const QString&)"/> + <function signature="qmlProtectModule(const char*,int)" doc-file="qqmlengine"/> + <function signature="qmlRegisterModule(const char*,int,int)" doc-file="qqmlengine"/> + <function signature="qmlTypeId(const char*,int,int,const char*)" doc-file="qqmlengine"/> + <function signature="qmlRegisterType(const QUrl &,const char *,int,int,const char *)" + doc-file="qqmlengine"/> + <function signature="qmlRegisterSingletonType(const QUrl &,const char *,int,int,const char *)" + doc-file="qqmlengine"/> + <function signature="qmlRegisterUncreatableMetaObject(const QMetaObject&,const char*,int,int, const char*,const QString&)" + doc-file="qqmlengine"/> <enum-type identified-by-value="QML_HAS_ATTACHED_PROPERTIES"> <extra-includes> @@ -136,8 +140,8 @@ <inject-code class="target" position="end" file="../glue/qtqml.cpp" snippet="init"/> <object-type name="QJSEngine"> - <enum-type name="Extension" flags="Extensions" since="5.6"/> - <enum-type name="ObjectOwnership" since="6.0"/> + <enum-type name="Extension" flags="Extensions"/> + <enum-type name="ObjectOwnership"/> <add-function signature="toScriptValue(const QVariant&)" return-type="QJSValue"> <inject-code class="target" position="end" file="../glue/qtqml.cpp" snippet="qjsengine-toscriptvalue"/> </add-function> @@ -149,7 +153,7 @@ <enum-type name="Type"/> </value-type> <value-type name="QJSValue"> - <enum-type name="ErrorType" since="5.12"/> + <enum-type name="ErrorType"/> <enum-type name="SpecialValue"/> <enum-type name="ObjectConversionBehavior" since="6.1"/> </value-type> @@ -162,11 +166,14 @@ allow-thread in case there is a message handler installed (qInstallMessageHandler) --> <modify-function signature="^QQmlApplicationEngine\(.*\)$" allow-thread="yes"/> - <modify-function signature="load(const QString &)" allow-thread="yes"> + <!-- PYSIDE-1736 In the presence of load(QString)/load(QUrl), check for Path/string + first to avoid an implicit conversion from string to QUrl. --> + <modify-function signature="load(const QString &)" allow-thread="yes" overload-number="1"> <modify-argument index="1"><replace-type modified-type="PyPathLike"/></modify-argument> <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qfile-path-1"/> </modify-function> - <modify-function signature="load(const QUrl &)" allow-thread="yes"/> + <modify-function signature="load(const QUrl &)" allow-thread="yes" overload-number="2"/> + <modify-function signature="loadFromModule(QAnyStringView,QAnyStringView)" allow-thread="yes"/> </object-type> <object-type name="QQmlComponent"> <enum-type name="CompilationMode"/> @@ -177,9 +184,19 @@ <modify-function signature="QQmlComponent(QQmlEngine*,QString,QQmlComponent::CompilationMode,QObject*)" allow-thread="yes"/> <modify-function signature="QQmlComponent(QQmlEngine*,QUrl,QObject*)" allow-thread="yes"/> <modify-function signature="QQmlComponent(QQmlEngine*,QUrl,QQmlComponent::CompilationMode,QObject*)" allow-thread="yes"/> + <modify-function signature="loadFromModule(QAnyStringView,QAnyStringView,QQmlComponent::CompilationMode)" allow-thread="yes"/> + <modify-function signature="loadUrl(QUrl)" allow-thread="yes"/> + <modify-function signature="loadUrl(QUrl,QQmlComponent::CompilationMode)" allow-thread="yes"/> + <modify-function signature="setData(QByteArray,QUrl)" allow-thread="yes"/> </object-type> - <object-type name="QQmlContext"/> - <value-type name="QQmlError"/> + <object-type name="QQmlContext"> + <value-type name="PropertyPair"/> + </object-type> + <value-type name="QQmlError"> + <add-function signature="__repr__" return-type="PyObject*"> + <inject-code class="target" position="beginning" file="../glue/qtqml.cpp" snippet="qmlerrror-repr"/> + </add-function> + </value-type> <object-type name="QQmlDebuggingEnabler"> <enum-type name="StartMode"/> </object-type> @@ -198,6 +215,30 @@ <modify-argument index="1"><replace-type modified-type="PyPathLike"/></modify-argument> <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qfile-path-1"/> </modify-function> + <add-function signature="singletonInstance(int@qmlTypeId@)" + return-type="QObject*"> + <!-- Suppress return value heuristics --> + <modify-argument index="return" + pyi-type="Union[PySide6.QtCore.QObject, PySide6.QtQml.QJSValue, None]"> + <define-ownership class="target" owner="default"/> + </modify-argument> + <inject-code class="target" file="../glue/qtqml.cpp" + snippet="qqmlengine-singletoninstance-qmltypeid"/> + <inject-documentation format="target" mode="append" file="../doc/qtqml_functions.rst" + snippet="qqmlengine-singletoninstance-qmltypeid"/> + </add-function> + <add-function signature="singletonInstance(QString@uri@,QString@typeName@)" + return-type="QObject*"> + <!-- Suppress return value heuristics --> + <modify-argument index="return" + pyi-type="Union[PySide6.QtCore.QObject, PySide6.QtQml.QJSValue, None]"> + <define-ownership class="target" owner="default"/> + </modify-argument> + <inject-code class="target" file="../glue/qtqml.cpp" + snippet="qqmlengine-singletoninstance-typename"/> + <inject-documentation format="target" mode="append" file="../doc/qtqml_functions.rst" + snippet="qqmlengine-singletoninstance-typename"/> + </add-function> </object-type> <object-type name="QQmlExpression"> @@ -205,7 +246,7 @@ <modify-argument index="1"> <remove-argument /> </modify-argument> - <modify-argument index="return"> + <modify-argument index="return" pyi-type="Tuple[Any, bool]"> <replace-type modified-type="PyTuple"/> </modify-argument> <inject-code class="target" position="beginning"> @@ -231,7 +272,7 @@ </object-type> <object-type name="QQmlIncubationController"> <extra-includes> - <include file-name="pysideqmlregistertype.h" location="local"/> + <include file-name="pysideqmlvolatilebool.h" location="local"/> </extra-includes> <modify-function signature="incubateWhile(std::atomic<bool>*,int)" allow-thread="yes"> <modify-argument index="1"> @@ -253,19 +294,21 @@ for the QML parts. <value-type name="QQmlListProperty"/>--> <value-type name="QQmlListReference"/> - <interface-type name="QQmlParserStatus"/> + <object-type name="QQmlParserStatus"/> + <object-type name="QPyQmlParserStatus"/> <value-type name="QQmlProperty"> <enum-type name="PropertyTypeCategory"/> <enum-type name="Type"/> </value-type> <object-type name="QQmlPropertyMap"/> <object-type name="QQmlPropertyValueSource"/> + <object-type name="QPyQmlPropertyValueSource"/> <value-type name="QQmlScriptString"> <modify-function signature="numberLiteral(bool*)const" allow-thread="yes"> <modify-argument index="1"> <remove-argument /> </modify-argument> - <modify-argument index="return"> + <modify-argument index="return" pyi-type="Tuple[float, bool]"> <replace-type modified-type="PyTuple"/> </modify-argument> <inject-code class="target" position="beginning"> @@ -276,7 +319,7 @@ <modify-argument index="1"> <remove-argument /> </modify-argument> - <modify-argument index="return"> + <modify-argument index="return" pyi-type="Tuple[bool, bool]"> <replace-type modified-type="PyTuple"/> </modify-argument> <inject-code class="target" position="beginning"> |