[neon/forks/pyqt5/Neon/release] /: New upstream version 5.15.10+dfsg
Dmitry Shachnev
null at kde.org
Mon Sep 2 12:05:42 BST 2024
Git commit 1c0824a22a5f2d351381edc840385b65b7be7fd7 by Dmitry Shachnev.
Committed on 26/10/2023 at 10:14.
Pushed by jriddell into branch 'Neon/release'.
New upstream version 5.15.10+dfsg
M +108 -0 ChangeLog
M +7 -0 NEWS
M +2 -2 PKG-INFO
M +1 -1 configure.py
M +3 -2 project.py
M +1 -1 pyproject.toml
M +1 -1 qpy/QtCore/qpycore_qt_conf.cpp
M +15 -5 qpy/QtCore/qpycore_types.cpp
M +20 -12 qpy/pyrcc/rcc.cpp
M +9 -1 sip/QtCore/qcoreapplication.sip
M +5 -0 sip/QtCore/qcoreevent.sip
M +3 -3 sip/QtCore/qdeadlinetimer.sip
M +2 -2 sip/QtCore/qglobal.sip
M +9 -9 sip/QtCore/qobject.sip
M +1 -1 sip/QtCore/qstring.sip
M +14 -14 sip/QtGui/qpainter.sip
M +2 -2 sip/QtGui/qpolygon.sip
https://invent.kde.org/neon/forks/pyqt5/-/commit/1c0824a22a5f2d351381edc840385b65b7be7fd7
diff --git a/ChangeLog b/ChangeLog
index a5c3fa2d..5ceeefec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,111 @@
+2023-10-10 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, qpy/QtCore/qpycore_types.cpp:
+ Removed a compiler warning message.
+ [a92a518d62a1] [5.15.10] <5.15-maint>
+
+2023-10-08 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, lib/project.py, qpy/QtCore/qpycore_types.cpp:
+ Properly fix the use of PyType_GetDict(). ABI v12.13 is now needed.
+ [4a48fab832b8] <5.15-maint>
+
+2023-10-07 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, qpy/QtCore/qpycore_types.cpp:
+ Fixed the memory leak related to sipPyTypeDict() and Python v3.12.
+ [3744224dd080] <5.15-maint>
+
+2023-09-22 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, PyQt5.msp:
+ Disabled the automatic generation of the type hint for pyqtSlot.
+ [aec75fafb7c3] <5.15-maint>
+
+2023-08-27 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, qpy/QtCore/qpycore_qt_conf.cpp:
+ Use Latin-1 rather than the local encoding to write the embedded
+ qt.conf file.
+ [26eb32db0a3c] <5.15-maint>
+
+2023-08-26 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, test/tests/misc/test_pickle.py:
+ Fixed some legacy unittest calls removed in Python v3.12.
+ [ffdbdfee5b60] <5.15-maint>
+
+2023-07-27 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, PyQt5.msp:
+ Really fix the QString/None regression.
+ [219301a7e51e] <5.15-maint>
+
+2023-07-21 Phil Thompson <phil at riverbankcomputing.com>
+
+ * PyQt5.msp:
+ Fixed a regression in using None as a QString.
+ [01d95f9ff234] <5.15-maint>
+
+2023-07-16 Phil Thompson <phil at riverbankcomputing.com>
+
+ * PyQt5.msp:
+ Fixes from an apparently rogue metasip scan.
+ [ddceca16b27e] <5.15-maint>
+
+ * NEWS, PyQt5.msp:
+ Fixed the type hints for all ellipsis arguments.
+ [60eaade98d69] <5.15-maint>
+
+2023-07-14 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, PyQt5.msp:
+ Fixed the type hints for QString.
+ [70febd346bbd] <5.15-maint>
+
+2023-07-12 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, PyQt5.msp:
+ Fixed the type hints for QObject.findChild() and
+ QObject.findChildren().
+ [87f470a9e300] <5.15-maint>
+
+2023-07-09 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, qpy/pyrcc/rcc.cpp:
+ Fixed pyrcc for reproducable builds.
+ [950ea5e7f6a2] <5.15-maint>
+
+2023-07-05 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, PyQt5.msp:
+ Fixed the type hints for PYQT_SLOT and pyqtSlot().
+ [d038fb017ee2] <5.15-maint>
+
+2023-06-08 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, PyQt5.msp, lib/project.py:
+ Added the missing QEvent.Type.EnterEditFocus and
+ QEvent.Type.LeaveEditFocus enum members.
+ [40fc079cfca7] <5.15-maint>
+
+ * NEWS, PyQt5.msp:
+ Added the missing QEvent.Type.NativeGesture member (Qt v5.2 and
+ later).
+ [dc33dcf9e485] <5.15-maint>
+
+2023-05-21 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, PyQt5.msp:
+ Fixed the QDeadlineTimer ctors.
+ [684e8e23899f] <5.15-maint>
+
+2023-02-02 Phil Thompson <phil at riverbankcomputing.com>
+
+ * .hgtags:
+ Added tag 5.15.9 for changeset c8aba8cdb7c0
+ [af0bcef92906] <5.15-maint>
+
2023-01-31 Phil Thompson <phil at riverbankcomputing.com>
* NEWS, lib/project.py:
diff --git a/NEWS b/NEWS
index 82cd2708..7eaa0398 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,10 @@
+v5.15.10 10th October 2023
+ - Added the missing QEvent.Type.NativeGesture member (Qt v5.2 and later).
+ - Added the missing QEvent.Type.EnterEditFocus and QEvent.Type.LeaveEditFocus
+ members.
+ - PyQt5-sip v12.13 is now required for Python v3.12 support.
+ - Bug fixes.
+
v5.15.9 31st January 2023
- Bug fixes.
diff --git a/PKG-INFO b/PKG-INFO
index bc18abf8..0f5e222e 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,13 +1,13 @@
Metadata-Version: 2.1
Name: PyQt5
-Version: 5.15.9
+Version: 5.15.10
Requires-Python: >=3.7
Summary: Python bindings for the Qt cross platform application toolkit
Home-Page: https://www.riverbankcomputing.com/software/pyqt/
Author: Riverbank Computing Limited
Author-Email: info at riverbankcomputing.com
License: GPL v3
-Requires-Dist: PyQt5-sip (>=12.11, <13)
+Requires-Dist: PyQt5-sip (>=12.13, <13)
PyQt5 - Comprehensive Python Bindings for Qt v5
===============================================
diff --git a/configure.py b/configure.py
index db57056a..90011d35 100644
--- a/configure.py
+++ b/configure.py
@@ -28,7 +28,7 @@ import sys
# Initialise the constants.
-PYQT_VERSION_STR = "5.15.9"
+PYQT_VERSION_STR = "5.15.10"
SIP_MIN_VERSION = '@MinimumSipVersion@'
diff --git a/project.py b/project.py
index d46a2e71..ef78e907 100644
--- a/project.py
+++ b/project.py
@@ -28,7 +28,7 @@ from sipbuild import (Buildable, BuildableModule, Installable, Option,
# The minimum sip module ABI version needed.
-ABI_VERSION = '12.11'
+ABI_VERSION = '12.13'
class PyQt(PyQtProject):
@@ -588,7 +588,8 @@ class QtCore(PyQtBindings):
def __init__(self, project):
""" Initialise the bindings. """
- super().__init__(project, 'QtCore', qmake_QT=['-gui'])
+ super().__init__(project, 'QtCore', qmake_QT=['-gui'],
+ define_macros=['QT_KEYPAD_NAVIGATION'])
def generate(self):
""" Generate the bindings source code and return the corresponding
diff --git a/pyproject.toml b/pyproject.toml
index 6f03dd9d..417796fb 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -6,7 +6,7 @@ build-backend = "sipbuild.api"
# Specify the PEP 566 metadata for the project.
[tool.sip.metadata]
name = "PyQt5"
-version = "5.15.9"
+version = "5.15.10"
summary = "Python bindings for the Qt cross platform application toolkit"
home-page = "https://www.riverbankcomputing.com/software/pyqt/"
author = "Riverbank Computing Limited"
diff --git a/qpy/QtCore/qpycore_qt_conf.cpp b/qpy/QtCore/qpycore_qt_conf.cpp
index ee69db20..1dfa33cd 100644
--- a/qpy/QtCore/qpycore_qt_conf.cpp
+++ b/qpy/QtCore/qpycore_qt_conf.cpp
@@ -95,7 +95,7 @@ bool qpycore_qt_conf()
if (QFileInfo(qt_dir_name).exists())
{
// Get the prefix path with non-native separators.
- static QByteArray qt_conf = qt_dir_name.toLocal8Bit();
+ static QByteArray qt_conf = qt_dir_name.toLatin1();
qt_conf.prepend("[Paths]\nPrefix = ");
qt_conf.append("\n");
diff --git a/qpy/QtCore/qpycore_types.cpp b/qpy/QtCore/qpycore_types.cpp
index 8fe354d7..bf7f9a4a 100644
--- a/qpy/QtCore/qpycore_types.cpp
+++ b/qpy/QtCore/qpycore_types.cpp
@@ -186,7 +186,7 @@ static qpycore_metaobject *create_dynamic_metaobject(sipWrapperType *wt)
// Add the properties to the meta-object.
QMapIterator<uint, PropertyData> it(pprops);
- for (int p = 0; it.hasNext(); ++p)
+ while (it.hasNext())
{
it.next();
@@ -384,10 +384,12 @@ static int trawl_type(PyTypeObject *pytype, qpycore_metaobject *qo,
QMetaObjectBuilder &builder, QList<const qpycore_pyqtSignal *> &psigs,
QMap<uint, PropertyData> &pprops)
{
+ int rc = 0;
Py_ssize_t pos = 0;
PyObject *key, *value, *dict;
- dict = sipPyTypeDict(pytype);
+ if ((dict = sipPyTypeDictRef(pytype)) == NULL)
+ return -1;
while (PyDict_Next(dict, &pos, &key, &value))
{
@@ -445,7 +447,10 @@ static int trawl_type(PyTypeObject *pytype, qpycore_metaobject *qo,
// It is a property.
if (!ascii_key)
- return -1;
+ {
+ rc = -1;
+ break;
+ }
Py_INCREF(value);
@@ -466,7 +471,10 @@ static int trawl_type(PyTypeObject *pytype, qpycore_metaobject *qo,
// It is a signal.
if (!ascii_key)
- return -1;
+ {
+ rc = -1;
+ break;
+ }
qpycore_pyqtSignal *ps = (qpycore_pyqtSignal *)value;
@@ -490,7 +498,9 @@ static int trawl_type(PyTypeObject *pytype, qpycore_metaobject *qo,
}
}
- return 0;
+ Py_DECREF(dict);
+
+ return rc;
}
diff --git a/qpy/pyrcc/rcc.cpp b/qpy/pyrcc/rcc.cpp
index cb4a9187..89132443 100644
--- a/qpy/pyrcc/rcc.cpp
+++ b/qpy/pyrcc/rcc.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (c) 2018 Riverbank Computing Limited. All rights reserved.
+** Copyright (c) 2023 Riverbank Computing Limited. All rights reserved.
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
@@ -442,6 +442,11 @@ RCCResourceLibrary::writeHeader(FILE *out)
return true;
}
+static bool qt_rcc_compare_hash(const RCCFileInfo *left, const RCCFileInfo *right)
+{
+ return qt_hash(left->name) < qt_hash(right->name);
+}
+
bool
RCCResourceLibrary::writeDataBlobs(FILE *out)
{
@@ -455,9 +460,13 @@ RCCResourceLibrary::writeDataBlobs(FILE *out)
qint64 offset = 0;
while(!pending.isEmpty()) {
RCCFileInfo *file = pending.pop();
- for(QHash<QString, RCCFileInfo*>::iterator it = file->children.begin();
- it != file->children.end(); ++it) {
- RCCFileInfo *child = it.value();
+
+ // Sort deterministically for reproducible builds.
+ QList<RCCFileInfo*> children = file->children.values();
+ qSort(children.begin(), children.end(), qt_rcc_compare_hash);
+
+ for(int i = 0; i < children.size(); ++i) {
+ RCCFileInfo *child = children.at(i);
if(child->flags & RCCFileInfo::Directory)
pending.push(child);
else
@@ -483,9 +492,13 @@ RCCResourceLibrary::writeDataNames(FILE *out)
qint64 offset = 0;
while(!pending.isEmpty()) {
RCCFileInfo *file = pending.pop();
- for(QHash<QString, RCCFileInfo*>::iterator it = file->children.begin();
- it != file->children.end(); ++it) {
- RCCFileInfo *child = it.value();
+
+ // Sort deterministically for reproducible builds.
+ QList<RCCFileInfo*> children = file->children.values();
+ qSort(children.begin(), children.end(), qt_rcc_compare_hash);
+
+ for(int i = 0; i < children.size(); ++i) {
+ RCCFileInfo *child = children.at(i);
if(child->flags & RCCFileInfo::Directory)
pending.push(child);
if(names.contains(child->name)) {
@@ -500,11 +513,6 @@ RCCResourceLibrary::writeDataNames(FILE *out)
return true;
}
-static bool qt_rcc_compare_hash(const RCCFileInfo *left, const RCCFileInfo *right)
-{
- return qt_hash(left->name) < qt_hash(right->name);
-}
-
bool RCCResourceLibrary::writeDataStructure(FILE *out, int version)
{
fprintf(out, "qt_resource_struct_v%d = b\"\\\n", version);
diff --git a/sip/QtCore/qcoreapplication.sip b/sip/QtCore/qcoreapplication.sip
index adb0945a..6956e1cf 100644
--- a/sip/QtCore/qcoreapplication.sip
+++ b/sip/QtCore/qcoreapplication.sip
@@ -320,7 +320,7 @@ import datetime
# Convenient type aliases.
PYQT_SIGNAL = typing.Union[QtCore.pyqtSignal, QtCore.pyqtBoundSignal]
-PYQT_SLOT = typing.Union[typing.Callable[..., None], QtCore.pyqtBoundSignal]
+PYQT_SLOT = typing.Union[typing.Callable[..., Any], QtCore.pyqtBoundSignal]
%End
%TypeHintCode
@@ -363,6 +363,14 @@ class pyqtBoundSignal:
def emit(self, *args: typing.Any) -> None: ...
+FuncT = typing.TypeVar('FuncT', bound=typing.Callable)
+def pyqtSlot(*types, name: typing.Optional[str] = ..., result: typing.Optional[str] = ...) -> typing.Callable[[FuncT], FuncT]: ...
+
+
+# For QObject.findChild() and QObject.findChildren().
+QObjectT = typing.TypeVar('QObjectT', bound=QObject)
+
+
# Convenient type aliases.
PYQT_SIGNAL = typing.Union[pyqtSignal, pyqtBoundSignal]
PYQT_SLOT = typing.Union[typing.Callable[..., None], pyqtBoundSignal]
diff --git a/sip/QtCore/qcoreevent.sip b/sip/QtCore/qcoreevent.sip
index 403642f2..a4ed501f 100644
--- a/sip/QtCore/qcoreevent.sip
+++ b/sip/QtCore/qcoreevent.sip
@@ -188,6 +188,9 @@ public:
TouchBegin,
TouchUpdate,
TouchEnd,
+%If (Qt_5_2_0 -)
+ NativeGesture,
+%End
RequestSoftwareInputPanel,
CloseSoftwareInputPanel,
WinIdChange,
@@ -213,6 +216,8 @@ public:
%If (Qt_5_9_0 -)
TabletTrackingChange,
%End
+ EnterEditFocus,
+ LeaveEditFocus,
User,
MaxUser,
};
diff --git a/sip/QtCore/qdeadlinetimer.sip b/sip/QtCore/qdeadlinetimer.sip
index 5c4e88c8..09d3fc73 100644
--- a/sip/QtCore/qdeadlinetimer.sip
+++ b/sip/QtCore/qdeadlinetimer.sip
@@ -34,9 +34,9 @@ public:
Forever,
};
- QDeadlineTimer(Qt::TimerType type = Qt::CoarseTimer);
- QDeadlineTimer(QDeadlineTimer::ForeverConstant, Qt::TimerType type = Qt::CoarseTimer);
- QDeadlineTimer(qint64 msecs, Qt::TimerType type = Qt::CoarseTimer);
+ QDeadlineTimer(Qt::TimerType type /Constrained/ = Qt::CoarseTimer);
+ QDeadlineTimer(QDeadlineTimer::ForeverConstant /Constrained/, Qt::TimerType type /Constrained/ = Qt::CoarseTimer);
+ QDeadlineTimer(qint64 msecs, Qt::TimerType type /Constrained/ = Qt::CoarseTimer);
void swap(QDeadlineTimer &other /Constrained/);
bool isForever() const;
bool hasExpired() const;
diff --git a/sip/QtCore/qglobal.sip b/sip/QtCore/qglobal.sip
index 599c50c2..b1a4f70f 100644
--- a/sip/QtCore/qglobal.sip
+++ b/sip/QtCore/qglobal.sip
@@ -29,8 +29,8 @@ int PYQT_VERSION;
const char *PYQT_VERSION_STR;
%ModuleCode
-static int PYQT_VERSION = 0x050f09;
-static const char *PYQT_VERSION_STR = "5.15.9";
+static int PYQT_VERSION = 0x050f0a;
+static const char *PYQT_VERSION_STR = "5.15.10";
%End
const int QT_VERSION;
const char *QT_VERSION_STR;
diff --git a/sip/QtCore/qobject.sip b/sip/QtCore/qobject.sip
index e4efe966..942b0f64 100644
--- a/sip/QtCore/qobject.sip
+++ b/sip/QtCore/qobject.sip
@@ -459,7 +459,7 @@ callable.
sipRes = new QString(QCoreApplication::translate(sipPyTypeName(Py_TYPE(sipSelf)), a0, a1, a2));
%End
- SIP_PYOBJECT findChild(SIP_PYTYPE type, const QString &name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const /TypeHint="QObject"/;
+ SIP_PYOBJECT findChild(SIP_PYTYPE type /TypeHint="Type[QObjectT]"/, const QString &name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const /TypeHint="QObjectT"/;
%MethodCode
sipRes = qtcore_FindChild(sipCpp, qtcore_type_to_tuple(a0), *a1, *a2);
@@ -467,7 +467,7 @@ callable.
sipIsErr = 1;
%End
- SIP_PYOBJECT findChild(SIP_PYTUPLE types /TypeHintValue="()"/, const QString &name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const /TypeHint="QObject"/;
+ SIP_PYOBJECT findChild(SIP_PYTUPLE types /TypeHint="Tuple[Type[QObjectT], ...]", TypeHintValue="()"/, const QString &name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const /TypeHint="QObjectT"/;
%MethodCode
sipRes = qtcore_FindChild(sipCpp, qtcore_check_tuple_types(a0), *a1, *a2);
@@ -475,7 +475,7 @@ callable.
sipIsErr = 1;
%End
- SIP_PYLIST findChildren(SIP_PYTYPE type, const QString &name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const /TypeHint="List[QObject]"/;
+ SIP_PYLIST findChildren(SIP_PYTYPE type /TypeHint="Type[QObjectT]"/, const QString &name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const /TypeHint="List[QObjectT]"/;
%MethodCode
sipRes = qtcore_FindChildren(sipCpp, qtcore_type_to_tuple(a0), *a1, *a2);
@@ -483,7 +483,7 @@ callable.
sipIsErr = 1;
%End
- SIP_PYLIST findChildren(SIP_PYTUPLE types /TypeHintValue="()"/, const QString &name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const /TypeHint="List[QObject]"/;
+ SIP_PYLIST findChildren(SIP_PYTUPLE types /TypeHint="Tuple[Type[QObjectT], ...]", TypeHintValue="()"/, const QString &name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const /TypeHint="List[QObjectT]"/;
%MethodCode
sipRes = qtcore_FindChildren(sipCpp, qtcore_check_tuple_types(a0), *a1, *a2);
@@ -491,7 +491,7 @@ callable.
sipIsErr = 1;
%End
- SIP_PYLIST findChildren(SIP_PYTYPE type, const QRegExp ®Exp, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const /TypeHint="List[QObject]"/;
+ SIP_PYLIST findChildren(SIP_PYTYPE type /TypeHint="Type[QObjectT]"/, const QRegExp ®Exp, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const /TypeHint="List[QObjectT]"/;
%MethodCode
sipRes = qtcore_FindChildren(sipCpp, qtcore_type_to_tuple(a0), *a1, *a2);
@@ -499,7 +499,7 @@ callable.
sipIsErr = 1;
%End
- SIP_PYLIST findChildren(SIP_PYTUPLE types /TypeHintValue="()"/, const QRegExp ®Exp, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const /TypeHint="List[QObject]"/;
+ SIP_PYLIST findChildren(SIP_PYTUPLE types /TypeHint="Tuple[Type[QObjectT], ...]", TypeHintValue="()"/, const QRegExp ®Exp, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const /TypeHint="List[QObjectT]"/;
%MethodCode
sipRes = qtcore_FindChildren(sipCpp, qtcore_check_tuple_types(a0), *a1, *a2);
@@ -507,7 +507,7 @@ callable.
sipIsErr = 1;
%End
- SIP_PYLIST findChildren(SIP_PYTYPE type, const QRegularExpression &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const /TypeHint="List[QObject]"/;
+ SIP_PYLIST findChildren(SIP_PYTYPE type /TypeHint="Type[QObjectT]"/, const QRegularExpression &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const /TypeHint="List[QObjectT]"/;
%MethodCode
sipRes = qtcore_FindChildren(sipCpp, qtcore_type_to_tuple(a0), *a1, *a2);
@@ -515,7 +515,7 @@ callable.
sipIsErr = 1;
%End
- SIP_PYLIST findChildren(SIP_PYTUPLE types /TypeHintValue="()"/, const QRegularExpression &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const /TypeHint="List[QObject]"/;
+ SIP_PYLIST findChildren(SIP_PYTUPLE types /TypeHint="Tuple[Type[QObjectT], ...]", TypeHintValue="()"/, const QRegularExpression &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const /TypeHint="List[QObjectT]"/;
%MethodCode
sipRes = qtcore_FindChildren(sipCpp, qtcore_check_tuple_types(a0), *a1, *a2);
@@ -691,7 +691,7 @@ SIP_PYOBJECT QT_TRANSLATE_NOOP(SIP_PYOBJECT /TypeHint="str"/, SIP_PYOBJECT /Type
sipRes = a1;
%End
-SIP_PYOBJECT pyqtSlot(... types, const char *name = 0, const char *result = 0) /NoArgParser, TypeHint="Callable[..., Optional[str]]"/;
+SIP_PYOBJECT pyqtSlot(... types, const char *name = 0, const char *result = 0) /NoArgParser, NoTypeHint/;
%Docstring
@pyqtSlot(*types, name: Optional[str], result: Optional[str])
diff --git a/sip/QtCore/qstring.sip b/sip/QtCore/qstring.sip
index cffcada3..5edb8292 100644
--- a/sip/QtCore/qstring.sip
+++ b/sip/QtCore/qstring.sip
@@ -21,7 +21,7 @@
// QString mapped type.
-%MappedType QString /AllowNone,TypeHint="str",TypeHintValue="''"/
+%MappedType QString /AllowNone, TypeHintIn="Optional[str]", TypeHintOut="str", TypeHintValue="''"/
{
%TypeHeaderCode
#include <qstring.h>
diff --git a/sip/QtGui/qpainter.sip b/sip/QtGui/qpainter.sip
index 10416ba7..e084865b 100644
--- a/sip/QtGui/qpainter.sip
+++ b/sip/QtGui/qpainter.sip
@@ -192,7 +192,7 @@ public:
void drawPoints(const QPolygonF &points);
void drawPoints(const QPolygon &points);
void drawPoints(const QPointF *points /Array/, int pointCount /ArraySize/);
- void drawPoints(const QPointF *point, ...);
+ void drawPoints(const QPointF *point, ... /TypeHint="QPointF"/);
%MethodCode
QPointF *points = qtgui_inst_array<QPointF>(a0, a1, sipType_QPointF);
@@ -206,7 +206,7 @@ public:
%End
void drawPoints(const QPoint *points /Array/, int pointCount /ArraySize/);
- void drawPoints(const QPoint *point, ...);
+ void drawPoints(const QPoint *point, ... /TypeHint="QPoint"/);
%MethodCode
QPoint *points = qtgui_inst_array<QPoint>(a0, a1, sipType_QPoint);
@@ -220,7 +220,7 @@ public:
%End
void drawLines(const QLineF *lines /Array/, int lineCount /ArraySize/);
- void drawLines(const QLineF *line, ...);
+ void drawLines(const QLineF *line, ... /TypeHint="QLineF"/);
%MethodCode
QLineF *lines = qtgui_inst_array<QLineF>(a0, a1, sipType_QLineF);
@@ -238,7 +238,7 @@ public:
sipCpp->drawLines(a0, a1 / 2);
%End
- void drawLines(const QPointF *pointPair, ...);
+ void drawLines(const QPointF *pointPair, ... /TypeHint="QPointF"/);
%MethodCode
QPointF *pairs = qtgui_inst_array<QPointF>(a0, a1, sipType_QPointF);
@@ -252,7 +252,7 @@ public:
%End
void drawLines(const QLine *lines /Array/, int lineCount /ArraySize/);
- void drawLines(const QLine *line, ...);
+ void drawLines(const QLine *line, ... /TypeHint="QLine"/);
%MethodCode
QLine *lines = qtgui_inst_array<QLine>(a0, a1, sipType_QLine);
@@ -270,7 +270,7 @@ public:
sipCpp->drawLines(a0, a1 / 2);
%End
- void drawLines(const QPoint *pointPair, ...);
+ void drawLines(const QPoint *pointPair, ... /TypeHint="QPoint"/);
%MethodCode
QPoint *pairs = qtgui_inst_array<QPoint>(a0, a1, sipType_QPoint);
@@ -284,7 +284,7 @@ public:
%End
void drawRects(const QRectF *rects /Array/, int rectCount /ArraySize/);
- void drawRects(const QRectF *rect, ...);
+ void drawRects(const QRectF *rect, ... /TypeHint="QRectF"/);
%MethodCode
QRectF *rects = qtgui_inst_array<QRectF>(a0, a1, sipType_QRectF);
@@ -298,7 +298,7 @@ public:
%End
void drawRects(const QRect *rects /Array/, int rectCount /ArraySize/);
- void drawRects(const QRect *rect, ...);
+ void drawRects(const QRect *rect, ... /TypeHint="QRect"/);
%MethodCode
QRect *rects = qtgui_inst_array<QRect>(a0, a1, sipType_QRect);
@@ -316,7 +316,7 @@ public:
void drawPolyline(const QPolygonF &polyline);
void drawPolyline(const QPolygon &polyline);
void drawPolyline(const QPointF *points /Array/, int pointCount /ArraySize/);
- void drawPolyline(const QPointF *point, ...);
+ void drawPolyline(const QPointF *point, ... /TypeHint="QPointF"/);
%MethodCode
QPointF *points = qtgui_inst_array<QPointF>(a0, a1, sipType_QPointF);
@@ -330,7 +330,7 @@ public:
%End
void drawPolyline(const QPoint *points /Array/, int pointCount /ArraySize/);
- void drawPolyline(const QPoint *point, ...);
+ void drawPolyline(const QPoint *point, ... /TypeHint="QPoint"/);
%MethodCode
QPoint *points = qtgui_inst_array<QPoint>(a0, a1, sipType_QPoint);
@@ -346,7 +346,7 @@ public:
void drawPolygon(const QPolygonF &points, Qt::FillRule fillRule = Qt::OddEvenFill);
void drawPolygon(const QPolygon &points, Qt::FillRule fillRule = Qt::OddEvenFill);
void drawPolygon(const QPointF *points /Array/, int pointCount /ArraySize/, Qt::FillRule fillRule = Qt::OddEvenFill);
- void drawPolygon(const QPointF *point, ...);
+ void drawPolygon(const QPointF *point, ... /TypeHint="QPointF"/);
%MethodCode
QPointF *points = qtgui_inst_array<QPointF>(a0, a1, sipType_QPointF);
@@ -360,7 +360,7 @@ public:
%End
void drawPolygon(const QPoint *points /Array/, int pointCount /ArraySize/, Qt::FillRule fillRule = Qt::OddEvenFill);
- void drawPolygon(const QPoint *point, ...);
+ void drawPolygon(const QPoint *point, ... /TypeHint="QPoint"/);
%MethodCode
QPoint *points = qtgui_inst_array<QPoint>(a0, a1, sipType_QPoint);
@@ -376,7 +376,7 @@ public:
void drawConvexPolygon(const QPolygonF &poly);
void drawConvexPolygon(const QPolygon &poly);
void drawConvexPolygon(const QPointF *points /Array/, int pointCount /ArraySize/);
- void drawConvexPolygon(const QPointF *point, ...);
+ void drawConvexPolygon(const QPointF *point, ... /TypeHint="QPointF"/);
%MethodCode
QPointF *points = qtgui_inst_array<QPointF>(a0, a1, sipType_QPointF);
@@ -390,7 +390,7 @@ public:
%End
void drawConvexPolygon(const QPoint *points /Array/, int pointCount /ArraySize/);
- void drawConvexPolygon(const QPoint *point, ...);
+ void drawConvexPolygon(const QPoint *point, ... /TypeHint="QPoint"/);
%MethodCode
QPoint *points = qtgui_inst_array<QPoint>(a0, a1, sipType_QPoint);
diff --git a/sip/QtGui/qpolygon.sip b/sip/QtGui/qpolygon.sip
index 9e18300b..f92c51ee 100644
--- a/sip/QtGui/qpolygon.sip
+++ b/sip/QtGui/qpolygon.sip
@@ -116,7 +116,7 @@ public:
}
%End
- void setPoints(int firstx, int firsty, ...);
+ void setPoints(int firstx, int firsty, ... /TypeHint="int"/);
%MethodCode
// Accept at least one pair of integer coordinates.
int nPoints = 1 + ((PyTuple_Size(a2) + 1) >> 1);
@@ -134,7 +134,7 @@ public:
delete[] points;
%End
- void putPoints(int index, int firstx, int firsty, ...);
+ void putPoints(int index, int firstx, int firsty, ... /TypeHint="int"/);
%MethodCode
// Accept at least one pair of integer coordinates.
int nPoints = 1 + ((PyTuple_Size(a3) + 1) >> 1);
More information about the Neon-commits
mailing list