diff options
5 files changed, 82 insertions, 3 deletions
diff --git a/doc/changelogs/changes-6.9.1 b/doc/changelogs/changes-6.9.1 new file mode 100644 index 000000000..22849e62c --- /dev/null +++ b/doc/changelogs/changes-6.9.1 @@ -0,0 +1,56 @@ +Qt for Python 6.9.1 is a bug-fix release. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +https://doc.qt.io/qtforpython/ + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* PySide6 * +**************************************************************************** + + - [PYSIDE-3052] class QMessageLogger has been added for handling debug, + info, warning, critical, and fatal messages, + including support for QLoggingCategory. + - [PYSIDE-3012] type hints: The type signature for the Property class + has been fixed. + - [PYSIDE-3021] type-hints: The QMessagebox annotations has been fixed. + - [PYSIDE-3029] type-hints: The hints for properties on __init__ functions + has been fixed. + - [PYSIDE-3050] type hints: Type signature for + QProgressDialog.setCancelButton has been fixed. + - [PYSIDE-3055] type hints: Type signature for QTabBar.setTabButton has + been fixed. + - [PYSIDE-3056] type hints: Type signature for qtTrId has been fixed. + - [PYSIDE-3057] type hints: Type signature for QTreeWidget.setItemWidget + has been fixed. + - [PYSIDE-3058] type hints: Return value for QTreeWidget.topLevelItem and + QTreeWidget.takeTopLevelItem has been fixed. + - [PYSIDE-3059] type hints: The type signature for QObject class has been + fixed. + - [PYSIDE-3061] The building of .pyi files in debug mode on Windows has + been fixed. + - [PYSIDE-3067] A crash when entering a Qt message handler with a Python + error set has been fixed. + - [PYSIDE-3069] A crash retrieving a QGraphicsProxyObject from a QVariant + has been fixed. + - [PYSIDE-3087] The dependency of pyside6-project on tomlkit has been + removed. + - [PYSIDE-3089] An error in pyside6-metaobjectdump when encountering + @Slot(result=None) has been fixed. + +**************************************************************************** +* Shiboken6 * +**************************************************************************** + + - [PYSIDE-3081] A bug in the clang parser causing errors when parsing a + lambda contained in a function parameter default value has + been fixed. diff --git a/sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml b/sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml index a15527c03..c6e93cfd7 100644 --- a/sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml +++ b/sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml @@ -1489,6 +1489,7 @@ <enum-type name="InputMode"/> <modify-function signature="getInt(QWidget*,const QString&,const QString&,int,int,int,int,bool*,QFlags<Qt::WindowType>)" allow-thread="yes"> + <modify-argument index="1" pyi-type="Optional[PySide6.QtWidgets.QWidget]"/> <modify-argument index="return" pyi-type="Tuple[int, bool]"/> <modify-argument index="8"> <remove-default-expression/> @@ -1500,6 +1501,7 @@ </modify-function> <modify-function signature="getItem(QWidget*,const QString&,const QString&,const QStringList&,int,bool,bool*,QFlags<Qt::WindowType>,QFlags<Qt::InputMethodHint>)" allow-thread="yes"> + <modify-argument index="1" pyi-type="Optional[PySide6.QtWidgets.QWidget]"/> <modify-argument index="return" pyi-type="Tuple[str, bool]"/> <modify-argument index="7"> <remove-default-expression/> @@ -1511,6 +1513,7 @@ </modify-function> <modify-function signature="getMultiLineText(QWidget*,const QString&,const QString&,const QString&,bool*,QFlags<Qt::WindowType>,QFlags<Qt::InputMethodHint>)" allow-thread="yes"> + <modify-argument index="1" pyi-type="Optional[PySide6.QtWidgets.QWidget]"/> <modify-argument index="return" pyi-type="Tuple[str, bool]"/> <modify-argument index="5"> <remove-default-expression/> @@ -1522,6 +1525,7 @@ </modify-function> <modify-function signature="getText(QWidget*,const QString&,const QString&,QLineEdit::EchoMode,const QString&,bool*,QFlags<Qt::WindowType>,QFlags<Qt::InputMethodHint>)" allow-thread="yes"> + <modify-argument index="1" pyi-type="Optional[PySide6.QtWidgets.QWidget]"/> <modify-argument index="return" pyi-type="Tuple[str, bool]"/> <modify-argument index="6"> <remove-default-expression/> @@ -1533,6 +1537,7 @@ </modify-function> <modify-function signature="getDouble(QWidget*,const QString&,const QString&,double,double,double,int,bool*,QFlags<Qt::WindowType>,double)" allow-thread="yes"> + <modify-argument index="1" pyi-type="Optional[PySide6.QtWidgets.QWidget]"/> <modify-argument index="return" pyi-type="Tuple[float, bool]"/> <modify-argument index="8"> <remove-default-expression/> diff --git a/sources/pyside6/libpyside/signalmanager.cpp b/sources/pyside6/libpyside/signalmanager.cpp index 933edd318..e5f069c86 100644 --- a/sources/pyside6/libpyside/signalmanager.cpp +++ b/sources/pyside6/libpyside/signalmanager.cpp @@ -27,6 +27,7 @@ #include <QtCore/qscopedpointer.h> #include <memory> +#include <utility> using namespace Qt::StringLiterals; @@ -125,6 +126,17 @@ PyObjectWrapper::PyObjectWrapper(const PyObjectWrapper &other) Py_XINCREF(m_me); } +PyObjectWrapper::PyObjectWrapper(PyObjectWrapper &&other) noexcept + : m_me{std::exchange(other.m_me, nullptr)} +{ +} + +PyObjectWrapper &PyObjectWrapper::operator=(PyObjectWrapper &&other) noexcept +{ + m_me = std::exchange(other.m_me, nullptr); + return *this; +} + PyObjectWrapper::~PyObjectWrapper() { // Check that Python is still initialized as sometimes this is called by a static destructor diff --git a/sources/pyside6/libpyside/signalmanager.h b/sources/pyside6/libpyside/signalmanager.h index d5c007dbe..52bb5f1d1 100644 --- a/sources/pyside6/libpyside/signalmanager.h +++ b/sources/pyside6/libpyside/signalmanager.h @@ -22,13 +22,13 @@ namespace PySide class PYSIDE_API PyObjectWrapper { public: - PyObjectWrapper(PyObjectWrapper&&) = delete; - PyObjectWrapper& operator=(PyObjectWrapper &&) = delete; PyObjectWrapper(); explicit PyObjectWrapper(PyObject* me); PyObjectWrapper(const PyObjectWrapper &other); PyObjectWrapper& operator=(const PyObjectWrapper &other); + PyObjectWrapper(PyObjectWrapper&&) noexcept; + PyObjectWrapper &operator=(PyObjectWrapper &&) noexcept; void reset(PyObject *o); diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/layout.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/layout.py index 3f83b0816..109562a98 100644 --- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/layout.py +++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/layout.py @@ -30,6 +30,7 @@ from textwrap import dedent from shibokensupport.signature.mapping import ellipsis, missing_optional_return, PlaceholderType from shibokensupport.signature.parser import using_snake_case from shibokensupport.signature import make_snake_case_name +from collections.abc import Sequence, Iterable DEFAULT_PARAM_KIND = inspect.Parameter.POSITIONAL_ONLY @@ -134,9 +135,14 @@ _KEYWORD_ONLY = inspect.Parameter.KEYWORD_ONLY # noqa E:201 _VAR_KEYWORD = inspect.Parameter.VAR_KEYWORD # noqa E:201 _empty = inspect.Parameter.empty # noqa E:201 - +# PYSIDE-3098: Iterable and Sequence can occur together in an overload. +# This needs sorting in order of generality. +# This happened in the NumPy support of PySide 6.10. Note that the ordering +# of methods there is completely different and unrelated to this mypy sorting. default_weights = { typing.Any: 1000, # noqa E:241 + Iterable: 500, # noqa E:241 + Sequence: 400, # noqa E:241 bool: 101, # noqa E:241 int: 102, # noqa E:241 float: 103, # noqa E:241 |