Files
python-PyQt6/PyQt6-Qt6.9.0.patch

1294 lines
44 KiB
Diff
Raw Permalink Normal View History

diff -ur pyqt6-6.8.1/ChangeLog pyqt6-6.9.0.dev2504021615/ChangeLog
--- pyqt6-6.8.1/ChangeLog 2025-02-03 16:22:08.462368200 +0100
+++ pyqt6-6.9.0.dev2504021615/ChangeLog 2025-04-03 02:57:40.433992000 +0200
@@ -1,3 +1,50 @@
+2025-04-02 Phil Thompson <phil@riverbankcomputing.com>
+
+ * project.py:
+ Backout the hack required to build QtStateMachine on Qt v6.9.0rc.
+ [d84b0d490ff2] [tip]
+
+2025-03-27 Phil Thompson <phil@riverbankcomputing.com>
+
+ * PyQt6.msp, qpy/QtCore/qpycore_std_chrono_duration.sip:
+ Implemented std::chrono::milliseconds as a mapped type.
+ [e31c76dbc604]
+
+2025-03-21 Phil Thompson <phil@riverbankcomputing.com>
+
+ * qpy/QtCore/qpycore_std_chrono_duration.sip:
+ Implemented std::chrono::seconds as a mapped type for
+ PyQt6-NetworkAuth.
+ [23f0ec8141eb]
+
+2025-03-17 Phil Thompson <phil@riverbankcomputing.com>
+
+ * PyQt6.msp, project.py, qpy/QtCore/qpycore_enums_flags_metatype.cpp:
+ Updated for Qt v6.9.0rc.
+ [b9a66b2dbde4]
+
+ * Merged the 6.8-maint branch.
+ [4cc56d430f47]
+
+2025-02-24 Phil Thompson <phil@riverbankcomputing.com>
+
+ * PyQt6.msp:
+ Fixed a crash when garbage collecting a QModelRoleDataSpan created
+ from a list of QModelRoleData instances.
+ [c6efaaff87c5] <6.8-maint>
+
+2025-02-07 Phil Thompson <phil@riverbankcomputing.com>
+
+ * extras/uic/uiparser.py:
+ Fixed a pyuic6 bug handling fully scoped alignment flags.
+ [7480cca87b72] <6.8-maint>
+
+2025-02-03 Phil Thompson <phil@riverbankcomputing.com>
+
+ * .hgtags:
+ Added tag 6.8.1 for changeset c774d4388743
+ [ed39f83755bb] <6.8-maint>
+
2025-02-01 Phil Thompson <phil@riverbankcomputing.com>
* PyQt6.msp:
diff -ur pyqt6-6.8.1/project.py pyqt6-6.9.0.dev2504021615/project.py
--- pyqt6-6.8.1/project.py 2025-02-03 16:22:08.600111500 +0100
+++ pyqt6-6.9.0.dev2504021615/project.py 2025-04-03 02:57:40.831648300 +0200
@@ -834,7 +834,8 @@
def __init__(self, project):
""" Initialise the bindings. """
- super().__init__(project, 'QtStateMachine', qmake_QT=['statemachine'],
+ super().__init__(project, 'QtStateMachine',
+ qmake_QT=['statemachine'],
test_headers=['qstate.h'],
test_statement='new QState()')
diff -ur pyqt6-6.8.1/qpy/QtCore/qpycore_enums_flags_metatype.cpp pyqt6-6.9.0.dev2504021615/qpy/QtCore/qpycore_enums_flags_metatype.cpp
--- pyqt6-6.8.1/qpy/QtCore/qpycore_enums_flags_metatype.cpp 2025-02-03 16:22:08.510631600 +0100
+++ pyqt6-6.9.0.dev2504021615/qpy/QtCore/qpycore_enums_flags_metatype.cpp 2025-04-03 02:57:40.573414000 +0200
@@ -45,7 +45,11 @@
{
mti->alignment = alignof(unsigned);
mti->size = sizeof(unsigned);
+#if QT_VERSION >= 0x060900
+ mti->flags = QtPrivate::QMetaTypeForType<unsigned>::flags() | QMetaType::IsEnumeration | QMetaType::IsUnsignedEnumeration;
+#else
mti->flags = QtPrivate::QMetaTypeForType<unsigned>::Flags | QMetaType::IsEnumeration | QMetaType::IsUnsignedEnumeration;
+#endif
mti->defaultCtr = QtPrivate::QMetaTypeForType<unsigned>::getDefaultCtr();
mti->copyCtr = QtPrivate::QMetaTypeForType<unsigned>::getCopyCtr();
mti->moveCtr = QtPrivate::QMetaTypeForType<unsigned>::getMoveCtr();
@@ -61,7 +65,11 @@
{
mti->alignment = alignof(int);
mti->size = sizeof(int);
+#if QT_VERSION >= 0x060900
+ mti->flags = QtPrivate::QMetaTypeForType<int>::flags() | QMetaType::IsEnumeration;
+#else
mti->flags = QtPrivate::QMetaTypeForType<int>::Flags | QMetaType::IsEnumeration;
+#endif
mti->defaultCtr = QtPrivate::QMetaTypeForType<int>::getDefaultCtr();
mti->copyCtr = QtPrivate::QMetaTypeForType<int>::getCopyCtr();
mti->moveCtr = QtPrivate::QMetaTypeForType<int>::getMoveCtr();
diff -ur pyqt6-6.8.1/sip/QtCore/qabstractitemmodel.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qabstractitemmodel.sip
--- pyqt6-6.8.1/sip/QtCore/qabstractitemmodel.sip 2025-02-03 16:22:09.936914400 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qabstractitemmodel.sip 2025-04-03 02:57:45.115368100 +0200
@@ -344,7 +344,7 @@
// The capsule destructor for a QModelRoleData array.
static void qpycore_gc_modelroledata(PyObject *mrd_obj)
{
- delete[] reinterpret_cast<QList<QModelRoleData>* >(PyCapsule_GetPointer(mrd_obj, NULL));
+ delete reinterpret_cast<QList<QModelRoleData>* >(PyCapsule_GetPointer(mrd_obj, NULL));
}
%End
diff -ur pyqt6-6.8.1/sip/QtCore/qchar.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qchar.sip
--- pyqt6-6.8.1/sip/QtCore/qchar.sip 2025-02-03 16:22:09.961596500 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qchar.sip 2025-04-03 02:57:45.188380000 +0200
@@ -218,6 +218,27 @@
Script_Vithkuqi,
Script_Kawi,
Script_NagMundari,
+%If (Qt_6_9_0 -)
+ Script_Garay,
+%End
+%If (Qt_6_9_0 -)
+ Script_GurungKhema,
+%End
+%If (Qt_6_9_0 -)
+ Script_KiratRai,
+%End
+%If (Qt_6_9_0 -)
+ Script_OlOnal,
+%End
+%If (Qt_6_9_0 -)
+ Script_Sunuwar,
+%End
+%If (Qt_6_9_0 -)
+ Script_Todhri,
+%End
+%If (Qt_6_9_0 -)
+ Script_TuluTigalari,
+%End
};
};
diff -ur pyqt6-6.8.1/sip/QtCore/qcommandlineoption.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qcommandlineoption.sip
--- pyqt6-6.8.1/sip/QtCore/qcommandlineoption.sip 2025-02-03 16:22:09.989929400 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qcommandlineoption.sip 2025-04-03 02:57:45.271330800 +0200
@@ -47,6 +47,9 @@
{
HiddenFromHelp,
ShortOptionStyle,
+%If (Qt_6_9_0 -)
+ IgnoreOptionsAfter,
+%End
};
typedef QFlags<QCommandLineOption::Flag> Flags;
diff -ur pyqt6-6.8.1/sip/QtCore/qcommandlineparser.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qcommandlineparser.sip
--- pyqt6-6.8.1/sip/QtCore/qcommandlineparser.sip 2025-02-03 16:22:09.995036800 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qcommandlineparser.sip 2025-04-03 02:57:45.288717000 +0200
@@ -69,6 +69,18 @@
};
void setOptionsAfterPositionalArgumentsMode(QCommandLineParser::OptionsAfterPositionalArgumentsMode mode);
+%If (Qt_6_9_0 -)
+
+ enum class MessageType
+ {
+ Information,
+ Error,
+ };
+
+%End
+%If (Qt_6_9_0 -)
+ static void showMessageAndExit(QCommandLineParser::MessageType type, const QString &message, int exitCode = 0);
+%End
private:
QCommandLineParser(const QCommandLineParser &);
diff -ur pyqt6-6.8.1/sip/QtCore/qconcatenatetablesproxymodel.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qconcatenatetablesproxymodel.sip
--- pyqt6-6.8.1/sip/QtCore/qconcatenatetablesproxymodel.sip 2025-02-03 16:22:09.994344000 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qconcatenatetablesproxymodel.sip 2025-04-03 02:57:45.286523600 +0200
@@ -87,4 +87,7 @@
virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent);
virtual QSize span(const QModelIndex &index) const;
QList<QAbstractItemModel *> sourceModels() const;
+%If (Qt_6_9_0 -)
+ virtual QHash<int, QByteArray> roleNames() const;
+%End
};
diff -ur pyqt6-6.8.1/sip/QtCore/qcoreevent.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qcoreevent.sip
--- pyqt6-6.8.1/sip/QtCore/qcoreevent.sip 2025-02-03 16:22:09.954377400 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qcoreevent.sip 2025-04-03 02:57:45.168305400 +0200
@@ -217,6 +217,9 @@
%If (Qt_6_7_0 -)
ParentWindowChange,
%End
+%If (Qt_6_9_0 -)
+ SafeAreaMarginsChange,
+%End
User,
MaxUser,
};
@@ -263,6 +266,9 @@
%End
%End
+%If (Qt_6_9_0 -)
+ bool matches(const QBasicTimer &timer) const;
+%End
};
class QChildEvent : public QEvent /NoDefaultCtors/
diff -ur pyqt6-6.8.1/sip/QtCore/qdatastream.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qdatastream.sip
--- pyqt6-6.8.1/sip/QtCore/qdatastream.sip 2025-02-03 16:22:09.957884300 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qdatastream.sip 2025-04-03 02:57:45.177929400 +0200
@@ -86,6 +86,9 @@
%If (Qt_6_8_0 -)
Qt_6_8,
%End
+%If (Qt_6_9_0 -)
+ Qt_6_9,
+%End
};
enum ByteOrder
diff -ur pyqt6-6.8.1/sip/QtCore/qfile.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qfile.sip
--- pyqt6-6.8.1/sip/QtCore/qfile.sip 2025-02-03 16:22:10.000608200 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qfile.sip 2025-04-03 02:57:45.306060000 +0200
@@ -28,7 +28,12 @@
public:
QFile();
+%If (Qt_6_9_0 -)
+ explicit QFile(const QString &name);
+%End
+%If (- Qt_6_9_0)
QFile(const QString &name);
+%End
explicit QFile(QObject *parent /TransferThis/);
QFile(const QString &name, QObject *parent /TransferThis/);
virtual ~QFile();
@@ -63,4 +68,7 @@
static bool setPermissions(const QString &filename, QFileDevice::Permissions permissionSpec);
bool moveToTrash();
static bool moveToTrash(const QString &fileName, QString *pathInTrash /Out/ = 0);
+%If (Qt_6_9_0 -)
+ static bool supportsMoveToTrash();
+%End
};
diff -ur pyqt6-6.8.1/sip/QtCore/qiodevice.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qiodevice.sip
--- pyqt6-6.8.1/sip/QtCore/qiodevice.sip 2025-02-03 16:22:09.971150000 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qiodevice.sip 2025-04-03 02:57:45.217384800 +0200
@@ -127,6 +127,9 @@
Py_END_ALLOW_THREADS
%End
+%If (Qt_6_9_0 -)
+ bool readLineInto(QByteArray *result, qint64 maxSize = 0) /ReleaseGIL/;
+%End
QByteArray readAll() /ReleaseGIL/;
virtual bool canReadLine() const;
void startTransaction();
diff -ur pyqt6-6.8.1/sip/QtCore/qjsondocument.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qjsondocument.sip
--- pyqt6-6.8.1/sip/QtCore/qjsondocument.sip 2025-02-03 16:22:09.968941500 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qjsondocument.sip 2025-04-03 02:57:45.211231200 +0200
@@ -20,6 +20,8 @@
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+%If (- Qt_6_9_0)
+
struct QJsonParseError
{
%TypeHeaderCode
@@ -50,6 +52,8 @@
QJsonParseError::ParseError error;
};
+%End
+
class QJsonDocument
{
%TypeHeaderCode
diff -ur pyqt6-6.8.1/sip/QtCore/qjsonvalue.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qjsonvalue.sip
--- pyqt6-6.8.1/sip/QtCore/qjsonvalue.sip 2025-02-03 16:22:09.982108600 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qjsonvalue.sip 2025-04-03 02:57:45.247856100 +0200
@@ -81,6 +81,16 @@
%MethodCode
sipRes = qHash(*sipCpp);
%End
+
+%If (Qt_6_9_0 -)
+ typedef QJsonDocument::JsonFormat JsonFormat;
+%End
+%If (Qt_6_9_0 -)
+ static QJsonValue fromJson(QByteArrayView json, QJsonParseError *error /Out/ = 0);
+%End
+%If (Qt_6_9_0 -)
+ QByteArray toJson(QJsonValue::JsonFormat format = QJsonDocument::Indented) const;
+%End
};
QDataStream &operator<<(QDataStream &, const QJsonValue & /Constrained/) /ReleaseGIL/;
diff -ur pyqt6-6.8.1/sip/QtCore/qlocale.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qlocale.sip
--- pyqt6-6.8.1/sip/QtCore/qlocale.sip 2025-02-03 16:22:09.952786400 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qlocale.sip 2025-04-03 02:57:45.163357700 +0200
@@ -428,6 +428,12 @@
%If (Qt_6_8_0 -)
Kuvi,
%End
+%If (Qt_6_9_0 -)
+ KaraKalpak,
+%End
+%If (Qt_6_9_0 -)
+ SwampyCree,
+%End
};
enum Country
diff -ur pyqt6-6.8.1/sip/QtCore/qmetaobject.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qmetaobject.sip
--- pyqt6-6.8.1/sip/QtCore/qmetaobject.sip 2025-02-03 16:22:09.983637000 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qmetaobject.sip 2025-04-03 02:57:45.252205100 +0200
@@ -164,15 +164,28 @@
int value(int index) const;
const char *scope() const;
int keyToValue(const char *key, bool *ok = 0) const;
+%If (Qt_6_9_0 -)
+ const char *valueToKey(quint64 value) const;
+%End
+%If (- Qt_6_9_0)
const char *valueToKey(int value) const;
+%End
int keysToValue(const char *keys, bool *ok = 0) const;
+%If (Qt_6_9_0 -)
+ QByteArray valueToKeys(quint64 value) const;
+%End
+%If (- Qt_6_9_0)
QByteArray valueToKeys(int value) const;
+%End
bool isValid() const;
bool isScoped() const;
const char *enumName() const;
%If (Qt_6_6_0 -)
QMetaType metaType() const;
%End
+%If (Qt_6_9_0 -)
+ bool is64Bit() const;
+%End
};
class QMetaProperty
diff -ur pyqt6-6.8.1/sip/QtCore/qnamespace.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qnamespace.sip
--- pyqt6-6.8.1/sip/QtCore/qnamespace.sip 2025-02-03 16:22:09.966514300 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qnamespace.sip 2025-04-03 02:57:45.201322600 +0200
@@ -220,6 +220,12 @@
BypassWindowManagerHint,
CoverWindow,
MaximizeUsingFullscreenGeometryHint,
+%If (Qt_6_9_0 -)
+ ExpandedClientAreaHint,
+%End
+%If (Qt_6_9_0 -)
+ NoTitleBarBackgroundHint,
+%End
};
typedef QFlags<Qt::WindowType> WindowFlags;
diff -ur pyqt6-6.8.1/sip/QtCore/qprocess.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qprocess.sip
--- pyqt6-6.8.1/sip/QtCore/qprocess.sip 2025-02-03 16:22:09.998025700 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qprocess.sip 2025-04-03 02:57:45.297494000 +0200
@@ -216,6 +216,9 @@
%If (Qt_6_7_0 -)
ResetIds,
%End
+%If (Qt_6_9_0 -)
+ DisableCoreDumps,
+%End
};
%End
diff -ur pyqt6-6.8.1/sip/QtCore/qsortfilterproxymodel.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qsortfilterproxymodel.sip
--- pyqt6-6.8.1/sip/QtCore/qsortfilterproxymodel.sip 2025-02-03 16:22:09.968030500 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qsortfilterproxymodel.sip 2025-04-03 02:57:45.207497800 +0200
@@ -95,7 +95,12 @@
void setRecursiveFilteringEnabled(bool recursive);
protected:
+%If (Qt_6_9_0 -)
+ void beginFilterChange();
+%End
void invalidateFilter();
+ void invalidateRowsFilter();
+ void invalidateColumnsFilter();
signals:
void dynamicSortFilterChanged(bool dynamicSortFilter);
@@ -110,10 +115,6 @@
bool autoAcceptChildRows() const;
void setAutoAcceptChildRows(bool accept);
-protected:
- void invalidateRowsFilter();
- void invalidateColumnsFilter();
-
signals:
void autoAcceptChildRowsChanged(bool autoAcceptChildRows);
};
diff -ur pyqt6-6.8.1/sip/QtCore/qstringconverter_base.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qstringconverter_base.sip
--- pyqt6-6.8.1/sip/QtCore/qstringconverter_base.sip 2025-02-03 16:22:09.995869200 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qstringconverter_base.sip 2025-04-03 02:57:45.291045000 +0200
@@ -42,6 +42,9 @@
typedef QFlags<QStringConverterBase::Flag> Flags;
protected:
+%If (Qt_6_9_0 -)
+ QStringConverterBase();
+%End
~QStringConverterBase();
};
diff -ur pyqt6-6.8.1/sip/QtCore/QtCoremod.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/QtCoremod.sip
--- pyqt6-6.8.1/sip/QtCore/QtCoremod.sip 2025-02-03 16:22:09.958583400 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/QtCoremod.sip 2025-04-03 02:57:45.180201300 +0200
@@ -22,7 +22,7 @@
%Module(name=PyQt6.QtCore, call_super_init=True, default_VirtualErrorHandler=PyQt6, keyword_arguments="Optional", use_limited_api=True, py_ssize_t_clean=True)
-%Timeline {Qt_6_0_0 Qt_6_1_0 Qt_6_2_0 Qt_6_3_0 Qt_6_4_0 Qt_6_5_0 Qt_6_6_0 Qt_6_7_0 Qt_6_8_0}
+%Timeline {Qt_6_0_0 Qt_6_1_0 Qt_6_2_0 Qt_6_3_0 Qt_6_4_0 Qt_6_5_0 Qt_6_6_0 Qt_6_7_0 Qt_6_8_0 Qt_6_9_0}
%Platforms {Android iOS Linux macOS WebAssembly Windows}
@@ -126,6 +126,7 @@
%Include qiodevicebase.sip
%Include qitemselectionmodel.sip
%Include qjsondocument.sip
+%Include qjsonparseerror.sip
%Include qjsonvalue.sip
%Include qlibrary.sip
%Include qlibraryinfo.sip
@@ -200,6 +201,7 @@
%Include qxmlstream.sip
%Include qyieldcpu.sip
%Include qanystringview.sip
+%Include qpycore_std_chrono_duration.sip
%Include qflags.sip
%Include qstring.sip
%Include qbytearraylist.sip
diff -ur pyqt6-6.8.1/sip/QtCore/qthreadpool.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qthreadpool.sip
--- pyqt6-6.8.1/sip/QtCore/qthreadpool.sip 2025-02-03 16:22:09.946946400 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qthreadpool.sip 2025-04-03 02:57:45.147782300 +0200
@@ -177,4 +177,10 @@
%End
%End
+%If (Qt_6_9_0 -)
+ void setServiceLevel(QThread::QualityOfService serviceLevel);
+%End
+%If (Qt_6_9_0 -)
+ QThread::QualityOfService serviceLevel() const;
+%End
};
diff -ur pyqt6-6.8.1/sip/QtCore/qthread.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/qthread.sip
--- pyqt6-6.8.1/sip/QtCore/qthread.sip 2025-02-03 16:22:09.961955000 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qthread.sip 2025-04-03 02:57:45.189499100 +0200
@@ -88,4 +88,20 @@
%If (Qt_6_8_0 -)
bool isCurrentThread() const;
%End
+%If (Qt_6_9_0 -)
+
+ enum class QualityOfService
+ {
+ Auto,
+ High,
+ Eco,
+ };
+
+%End
+%If (Qt_6_9_0 -)
+ void setServiceLevel(QThread::QualityOfService serviceLevel);
+%End
+%If (Qt_6_9_0 -)
+ QThread::QualityOfService serviceLevel() const;
+%End
};
diff -ur pyqt6-6.8.1/sip/QtCore/quuid.sip pyqt6-6.9.0.dev2504021615/sip/QtCore/quuid.sip
--- pyqt6-6.8.1/sip/QtCore/quuid.sip 2025-02-03 16:22:10.005590700 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/quuid.sip 2025-04-03 02:57:45.319928200 +0200
@@ -45,6 +45,9 @@
Name,
Random,
Sha1,
+%If (Qt_6_9_0 -)
+ UnixEpoch,
+%End
};
enum StringFormat
@@ -106,14 +109,17 @@
%If (- Qt_6_8_0)
static QUuid createUuidV3(const QUuid &ns, const QByteArray &baseData);
%End
+ static QUuid createUuidV3(const QUuid &ns, const QString &baseData);
%If (Qt_6_8_0 -)
static QUuid createUuidV5(QUuid ns, QByteArrayView baseData);
%End
%If (- Qt_6_8_0)
static QUuid createUuidV5(const QUuid &ns, const QByteArray &baseData);
%End
- static QUuid createUuidV3(const QUuid &ns, const QString &baseData);
static QUuid createUuidV5(const QUuid &ns, const QString &baseData);
+%If (Qt_6_9_0 -)
+ static QUuid createUuidV7();
+%End
QUuid::Variant variant() const;
QUuid::Version version() const;
QByteArray toByteArray(QUuid::StringFormat mode = QUuid::WithBraces) const;
diff -ur pyqt6-6.8.1/sip/QtGui/qbrush.sip pyqt6-6.9.0.dev2504021615/sip/QtGui/qbrush.sip
--- pyqt6-6.8.1/sip/QtGui/qbrush.sip 2025-02-03 16:22:09.825863600 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtGui/qbrush.sip 2025-04-03 02:57:44.786477300 +0200
@@ -420,3 +420,28 @@
void setCenter(qreal x, qreal y);
void setAngle(qreal angle);
};
+
+%If (Qt_6_9_0 -)
+bool operator!=(const QBrush &lhs, const Qt::BrushStyle &rhs);
+%End
+%If (Qt_6_9_0 -)
+bool operator!=(const QBrush &lhs, const Qt::GlobalColor &rhs);
+%End
+%If (Qt_6_9_0 -)
+bool operator!=(const QBrush &lhs, const QColor &rhs);
+%End
+%If (Qt_6_9_0 -)
+bool operator!=(const QColor &lhs, const QBrush &rhs);
+%End
+%If (Qt_6_9_0 -)
+bool operator==(const QBrush &lhs, const Qt::BrushStyle &rhs);
+%End
+%If (Qt_6_9_0 -)
+bool operator==(const QBrush &lhs, const Qt::GlobalColor &rhs);
+%End
+%If (Qt_6_9_0 -)
+bool operator==(const QBrush &lhs, const QColor &rhs);
+%End
+%If (Qt_6_9_0 -)
+bool operator==(const QColor &lhs, const QBrush &rhs);
+%End
diff -ur pyqt6-6.8.1/sip/QtGui/qcolorspace.sip pyqt6-6.9.0.dev2504021615/sip/QtGui/qcolorspace.sip
--- pyqt6-6.8.1/sip/QtGui/qcolorspace.sip 2025-02-03 16:22:09.784187800 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtGui/qcolorspace.sip 2025-04-03 02:57:44.664372200 +0200
@@ -117,6 +117,9 @@
QColorSpace(QPointF whitePoint, QColorSpace::TransferFunction transferFunction, float gamma = 0.F);
%End
QColorSpace(const QColorSpace &colorSpace);
+%If (Qt_6_9_0 -)
+ QColorSpace(const QColorSpace::PrimaryPoints &primaryPoints, QColorSpace::TransferFunction transferFunction, float gamma = 0.F);
+%End
~QColorSpace();
void swap(QColorSpace &colorSpace /Constrained/);
QColorSpace::Primaries primaries() const;
@@ -163,6 +166,25 @@
%If (Qt_6_8_0 -)
bool isValidTarget() const;
%End
+%If (Qt_6_9_0 -)
+
+ struct PrimaryPoints
+ {
+%TypeHeaderCode
+#include <qcolorspace.h>
+%End
+
+ static QColorSpace::PrimaryPoints fromPrimaries(QColorSpace::Primaries primaries);
+ bool isValid() const;
+ };
+
+%End
+%If (Qt_6_9_0 -)
+ void setPrimaryPoints(const QColorSpace::PrimaryPoints &primaryPoints);
+%End
+%If (Qt_6_9_0 -)
+ QColorSpace::PrimaryPoints primaryPoints() const;
+%End
};
bool operator==(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2);
diff -ur pyqt6-6.8.1/sip/QtGui/qfontdatabase.sip pyqt6-6.9.0.dev2504021615/sip/QtGui/qfontdatabase.sip
--- pyqt6-6.8.1/sip/QtGui/qfontdatabase.sip 2025-02-03 16:22:09.783621500 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtGui/qfontdatabase.sip 2025-04-03 02:57:44.662661000 +0200
@@ -113,6 +113,18 @@
%If (Qt_6_8_0 -)
static QStringList applicationFallbackFontFamilies(QChar::Script script);
%End
+%If (Qt_6_9_0 -)
+ static void addApplicationEmojiFontFamily(const QString &familyName);
+%End
+%If (Qt_6_9_0 -)
+ static bool removeApplicationEmojiFontFamily(const QString &familyName);
+%End
+%If (Qt_6_9_0 -)
+ static void setApplicationEmojiFontFamilies(const QStringList &familyNames);
+%End
+%If (Qt_6_9_0 -)
+ static QStringList applicationEmojiFontFamilies();
+%End
private:
QFontDatabase();
diff -ur pyqt6-6.8.1/sip/QtGui/qfontinfo.sip pyqt6-6.9.0.dev2504021615/sip/QtGui/qfontinfo.sip
--- pyqt6-6.8.1/sip/QtGui/qfontinfo.sip 2025-02-03 16:22:09.785881500 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtGui/qfontinfo.sip 2025-04-03 02:57:44.669954000 +0200
@@ -43,4 +43,7 @@
bool exactMatch() const;
QString styleName() const;
void swap(QFontInfo &other /Constrained/);
+%If (Qt_6_9_0 -)
+ QList<QFontVariableAxis> variableAxes() const;
+%End
};
diff -ur pyqt6-6.8.1/sip/QtGui/qimage.sip pyqt6-6.9.0.dev2504021615/sip/QtGui/qimage.sip
--- pyqt6-6.8.1/sip/QtGui/qimage.sip 2025-02-03 16:22:09.788226100 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtGui/qimage.sip 2025-04-03 02:57:44.675800600 +0200
@@ -342,6 +342,12 @@
%If (Qt_6_8_0 -)
QImage colorTransformed(const QColorTransform &transform, QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor);
%End
+%If (Qt_6_9_0 -)
+ QImage flipped(Qt::Orientations orient = Qt::Vertical) const;
+%End
+%If (Qt_6_9_0 -)
+ void flip(Qt::Orientations orient = Qt::Vertical);
+%End
};
QDataStream &operator<<(QDataStream &, const QImage &) /ReleaseGIL/;
diff -ur pyqt6-6.8.1/sip/QtGui/qinputdevice.sip pyqt6-6.9.0.dev2504021615/sip/QtGui/qinputdevice.sip
--- pyqt6-6.8.1/sip/QtGui/qinputdevice.sip 2025-02-03 16:22:09.786975400 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtGui/qinputdevice.sip 2025-04-03 02:57:44.672818200 +0200
@@ -81,6 +81,9 @@
signals:
void availableVirtualGeometryChanged(QRect area);
+%If (Qt_6_9_0 -)
+ void capabilitiesChanged(QInputDevice::Capabilities capabilities);
+%End
public:
%If (Qt_6_3_0 -)
diff -ur pyqt6-6.8.1/sip/QtGui/qpdfwriter.sip pyqt6-6.9.0.dev2504021615/sip/QtGui/qpdfwriter.sip
--- pyqt6-6.8.1/sip/QtGui/qpdfwriter.sip 2025-02-03 16:22:09.800499200 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtGui/qpdfwriter.sip 2025-04-03 02:57:44.711406000 +0200
@@ -77,4 +77,10 @@
%If (Qt_6_8_0 -)
void setOutputIntent(const QPdfOutputIntent &intent);
%End
+%If (Qt_6_9_0 -)
+ QString author() const;
+%End
+%If (Qt_6_9_0 -)
+ void setAuthor(const QString &author);
+%End
};
diff -ur pyqt6-6.8.1/sip/QtGui/qpen.sip pyqt6-6.9.0.dev2504021615/sip/QtGui/qpen.sip
--- pyqt6-6.8.1/sip/QtGui/qpen.sip 2025-02-03 16:22:09.781445700 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtGui/qpen.sip 2025-04-03 02:57:44.656217300 +0200
@@ -101,3 +101,21 @@
QDataStream &operator<<(QDataStream &, const QPen &) /ReleaseGIL/;
QDataStream &operator>>(QDataStream &, QPen & /Constrained/) /ReleaseGIL/;
+%If (Qt_6_9_0 -)
+bool operator!=(const QPen &lhs, const Qt::PenStyle &rhs);
+%End
+%If (Qt_6_9_0 -)
+bool operator!=(const QPen &lhs, const QColor &rhs);
+%End
+%If (Qt_6_9_0 -)
+bool operator!=(const QColor &lhs, const QPen &rhs);
+%End
+%If (Qt_6_9_0 -)
+bool operator==(const QPen &lhs, const Qt::PenStyle &rhs);
+%End
+%If (Qt_6_9_0 -)
+bool operator==(const QPen &lhs, const QColor &rhs);
+%End
+%If (Qt_6_9_0 -)
+bool operator==(const QColor &lhs, const QPen &rhs);
+%End
diff -ur pyqt6-6.8.1/sip/QtGui/qtextoption.sip pyqt6-6.9.0.dev2504021615/sip/QtGui/qtextoption.sip
--- pyqt6-6.8.1/sip/QtGui/qtextoption.sip 2025-02-03 16:22:09.815868400 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtGui/qtextoption.sip 2025-04-03 02:57:44.756986100 +0200
@@ -55,6 +55,12 @@
AddSpaceForLineAndParagraphSeparators,
SuppressColors,
ShowDocumentTerminator,
+%If (Qt_6_9_0 -)
+ ShowDefaultIgnorables,
+%End
+%If (Qt_6_9_0 -)
+ DisableEmojiParsing,
+%End
};
typedef QFlags<QTextOption::Flag> Flags;
diff -ur pyqt6-6.8.1/sip/QtGui/QtGuimod.sip pyqt6-6.9.0.dev2504021615/sip/QtGui/QtGuimod.sip
--- pyqt6-6.8.1/sip/QtGui/QtGuimod.sip 2025-02-03 16:22:09.816816800 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtGui/QtGuimod.sip 2025-04-03 02:57:44.759382500 +0200
@@ -66,6 +66,7 @@
%Include qfontdatabase.sip
%Include qfontinfo.sip
%Include qfontmetrics.sip
+%Include qfontvariableaxis.sip
%Include qgenericmatrix.sip
%Include qglyphrun.sip
%Include qguiapplication.sip
@@ -91,6 +92,7 @@
%Include qpaintengine.sip
%Include qpainter.sip
%Include qpainterpath.sip
+%Include qpainterstateguard.sip
%Include qpalette.sip
%Include qpdfoutputintent.sip
%Include qpdfwriter.sip
diff -ur pyqt6-6.8.1/sip/QtGui/qwindow.sip pyqt6-6.9.0.dev2504021615/sip/QtGui/qwindow.sip
--- pyqt6-6.8.1/sip/QtGui/qwindow.sip 2025-02-03 16:22:09.786590300 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtGui/qwindow.sip 2025-04-03 02:57:44.671758700 +0200
@@ -221,4 +221,12 @@
%If (PyQt_Vulkan)
QVulkanInstance *vulkanInstance() const;
%End
+%If (Qt_6_9_0 -)
+ QMargins safeAreaMargins() const;
+%End
+
+signals:
+%If (Qt_6_9_0 -)
+ void safeAreaMarginsChanged(QMargins arg);
+%End
};
diff -ur pyqt6-6.8.1/sip/QtNetwork/qhttp2configuration.sip pyqt6-6.9.0.dev2504021615/sip/QtNetwork/qhttp2configuration.sip
--- pyqt6-6.8.1/sip/QtNetwork/qhttp2configuration.sip 2025-02-03 16:22:09.737575800 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtNetwork/qhttp2configuration.sip 2025-04-03 02:57:44.510913600 +0200
@@ -41,6 +41,12 @@
bool setMaxFrameSize(unsigned int size);
unsigned int maxFrameSize() const;
void swap(QHttp2Configuration &other /Constrained/);
+%If (Qt_6_9_0 -)
+ void setMaxConcurrentStreams(unsigned int value);
+%End
+%If (Qt_6_9_0 -)
+ unsigned int maxConcurrentStreams() const;
+%End
};
bool operator==(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs);
diff -ur pyqt6-6.8.1/sip/QtNetwork/qnetworkrequestfactory.sip pyqt6-6.9.0.dev2504021615/sip/QtNetwork/qnetworkrequestfactory.sip
--- pyqt6-6.8.1/sip/QtNetwork/qnetworkrequestfactory.sip 2025-02-03 16:22:09.732181300 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtNetwork/qnetworkrequestfactory.sip 2025-04-03 02:57:44.493895300 +0200
@@ -58,16 +58,8 @@
QString password() const;
void setPassword(const QString &password);
void clearPassword();
- void setTransferTimeout(qint64 timeout);
-%MethodCode
- sipCpp->setTransferTimeout(std::chrono::milliseconds(a0));
-%End
-
- qint64 transferTimeout() const;
-%MethodCode
- sipRes = sipCpp->transferTimeout().count();
-%End
-
+ void setTransferTimeout(std::chrono::milliseconds timeout);
+ std::chrono::milliseconds transferTimeout() const;
QUrlQuery queryParameters() const;
void setQueryParameters(const QUrlQuery &query);
void clearQueryParameters();
diff -ur pyqt6-6.8.1/sip/QtQuick/qquickitem.sip pyqt6-6.9.0.dev2504021615/sip/QtQuick/qquickitem.sip
--- pyqt6-6.8.1/sip/QtQuick/qquickitem.sip 2025-02-03 16:22:09.842442500 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtQuick/qquickitem.sip 2025-04-03 02:57:44.832864000 +0200
@@ -57,6 +57,12 @@
ItemAntialiasingHasChanged,
ItemDevicePixelRatioHasChanged,
ItemEnabledHasChanged,
+%If (Qt_6_9_0 -)
+ ItemScaleHasChanged,
+%End
+%If (Qt_6_9_0 -)
+ ItemTransformHasChanged,
+%End
};
struct ItemChangeData
diff -ur pyqt6-6.8.1/sip/QtQuickWidgets/qquickwidget.sip pyqt6-6.9.0.dev2504021615/sip/QtQuickWidgets/qquickwidget.sip
--- pyqt6-6.8.1/sip/QtQuickWidgets/qquickwidget.sip 2025-02-03 16:22:09.848888600 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtQuickWidgets/qquickwidget.sip 2025-04-03 02:57:44.851860500 +0200
@@ -34,6 +34,9 @@
explicit QQuickWidget(QWidget *parent /TransferThis/ = 0);
QQuickWidget(QQmlEngine *engine, QWidget *parent /TransferThis/);
QQuickWidget(const QUrl &source, QWidget *parent /TransferThis/ = 0);
+%If (Qt_6_9_0 -)
+ QQuickWidget(QAnyStringView uri, QAnyStringView typeName, QWidget *parent /TransferThis/ = 0);
+%End
virtual ~QQuickWidget();
QUrl source() const;
QQmlEngine *engine() const;
@@ -91,12 +94,16 @@
virtual void dragLeaveEvent(QDragLeaveEvent *);
virtual void dropEvent(QDropEvent *);
virtual void paintEvent(QPaintEvent *event);
+ virtual bool focusNextPrevChild(bool next);
public:
QImage grabFramebuffer() const;
void setClearColor(const QColor &color);
QQuickWindow *quickWindow() const;
-
-protected:
- virtual bool focusNextPrevChild(bool next);
+%If (Qt_6_9_0 -)
+ void setInitialProperties(const QVariantMap &initialProperties);
+%End
+%If (Qt_6_9_0 -)
+ void loadFromModule(QAnyStringView uri, QAnyStringView typeName);
+%End
};
diff -ur pyqt6-6.8.1/sip/QtSerialPort/qserialport.sip pyqt6-6.9.0.dev2504021615/sip/QtSerialPort/qserialport.sip
--- pyqt6-6.8.1/sip/QtSerialPort/qserialport.sip 2025-02-03 16:22:09.830642500 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtSerialPort/qserialport.sip 2025-04-03 02:57:44.799284000 +0200
@@ -277,6 +277,19 @@
signals:
void breakEnabledChanged(bool set);
void errorOccurred(QSerialPort::SerialPortError error);
+
+public:
+%If (Qt_6_9_0 -)
+ bool settingsRestoredOnClose() const;
+%End
+%If (Qt_6_9_0 -)
+ void setSettingsRestoredOnClose(bool restore);
+%End
+
+signals:
+%If (Qt_6_9_0 -)
+ void settingsRestoredOnCloseChanged(bool restore);
+%End
};
%End
diff -ur pyqt6-6.8.1/sip/QtSql/qsqldriver.sip pyqt6-6.9.0.dev2504021615/sip/QtSql/qsqldriver.sip
--- pyqt6-6.8.1/sip/QtSql/qsqldriver.sip 2025-02-03 16:22:09.904885500 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtSql/qsqldriver.sip 2025-04-03 02:57:45.012925000 +0200
@@ -156,4 +156,7 @@
QSqlDriver::DbmsType dbmsType() const;
virtual int maximumIdentifierLength(QSqlDriver::IdentifierType type) const;
+%If (Qt_6_9_0 -)
+ QString connectionName() const;
+%End
};
diff -ur pyqt6-6.8.1/sip/QtSql/qsqlquerymodel.sip pyqt6-6.9.0.dev2504021615/sip/QtSql/qsqlquerymodel.sip
--- pyqt6-6.8.1/sip/QtSql/qsqlquerymodel.sip 2025-02-03 16:22:09.906944300 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtSql/qsqlquerymodel.sip 2025-04-03 02:57:45.020631800 +0200
@@ -72,4 +72,7 @@
public:
virtual QHash<int, QByteArray> roleNames() const;
+%If (Qt_6_9_0 -)
+ void refresh();
+%End
};
diff -ur pyqt6-6.8.1/sip/QtSvg/qtsvgglobal.sip pyqt6-6.9.0.dev2504021615/sip/QtSvg/qtsvgglobal.sip
--- pyqt6-6.8.1/sip/QtSvg/qtsvgglobal.sip 2025-02-03 16:22:09.762099700 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtSvg/qtsvgglobal.sip 2025-04-03 02:57:44.593304900 +0200
@@ -35,6 +35,15 @@
%If (Qt_6_8_0 -)
AssumeTrustedSource,
%End
+%If (Qt_6_9_0 -)
+ DisableSMILAnimations,
+%End
+%If (Qt_6_9_0 -)
+ DisableCSSAnimations,
+%End
+%If (Qt_6_9_0 -)
+ DisableAnimations,
+%End
};
typedef QFlags<QtSvg::Option> Options;
diff -ur pyqt6-6.8.1/sip/QtWidgets/qabstractitemview.sip pyqt6-6.9.0.dev2504021615/sip/QtWidgets/qabstractitemview.sip
--- pyqt6-6.8.1/sip/QtWidgets/qabstractitemview.sip 2025-02-03 16:22:09.860775700 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtWidgets/qabstractitemview.sip 2025-04-03 02:57:44.884064700 +0200
@@ -279,4 +279,12 @@
protected:
virtual void initViewItemOption(QStyleOptionViewItem *option) const;
+
+public:
+%If (Qt_6_9_0 -)
+ int updateThreshold() const;
+%End
+%If (Qt_6_9_0 -)
+ void setUpdateThreshold(int threshold);
+%End
};
diff -ur pyqt6-6.8.1/sip/QtWidgets/qcombobox.sip pyqt6-6.9.0.dev2504021615/sip/QtWidgets/qcombobox.sip
--- pyqt6-6.8.1/sip/QtWidgets/qcombobox.sip 2025-02-03 16:22:09.902630600 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtWidgets/qcombobox.sip 2025-04-03 02:57:45.004056500 +0200
@@ -151,4 +151,19 @@
public:
void setPlaceholderText(const QString &placeholderText);
QString placeholderText() const;
+%If (Qt_6_9_0 -)
+
+ enum class LabelDrawingMode
+ {
+ UseStyle,
+ UseDelegate,
+ };
+
+%End
+%If (Qt_6_9_0 -)
+ QComboBox::LabelDrawingMode labelDrawingMode() const;
+%End
+%If (Qt_6_9_0 -)
+ void setLabelDrawingMode(QComboBox::LabelDrawingMode labelDrawing);
+%End
};
diff -ur pyqt6-6.8.1/sip/QtWidgets/qdockwidget.sip pyqt6-6.9.0.dev2504021615/sip/QtWidgets/qdockwidget.sip
--- pyqt6-6.8.1/sip/QtWidgets/qdockwidget.sip 2025-02-03 16:22:09.896705200 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtWidgets/qdockwidget.sip 2025-04-03 02:57:44.987252200 +0200
@@ -67,4 +67,12 @@
virtual void closeEvent(QCloseEvent *event);
virtual void paintEvent(QPaintEvent *event);
virtual bool event(QEvent *event);
+
+public:
+%If (Qt_6_9_0 -)
+ void setDockLocation(Qt::DockWidgetArea area);
+%End
+%If (Qt_6_9_0 -)
+ Qt::DockWidgetArea dockLocation() const;
+%End
};
diff -ur pyqt6-6.8.1/sip/QtWidgets/qstackedlayout.sip pyqt6-6.9.0.dev2504021615/sip/QtWidgets/qstackedlayout.sip
--- pyqt6-6.8.1/sip/QtWidgets/qstackedlayout.sip 2025-02-03 16:22:09.884046600 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtWidgets/qstackedlayout.sip 2025-04-03 02:57:44.946994300 +0200
@@ -99,6 +99,9 @@
signals:
void widgetRemoved(int index);
void currentChanged(int index);
+%If (Qt_6_9_0 -)
+ void widgetAdded(int index);
+%End
public slots:
void setCurrentIndex(int index);
diff -ur pyqt6-6.8.1/sip/QtWidgets/qstackedwidget.sip pyqt6-6.9.0.dev2504021615/sip/QtWidgets/qstackedwidget.sip
--- pyqt6-6.8.1/sip/QtWidgets/qstackedwidget.sip 2025-02-03 16:22:09.895055300 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtWidgets/qstackedwidget.sip 2025-04-03 02:57:44.982007300 +0200
@@ -44,6 +44,9 @@
signals:
void currentChanged(int);
+%If (Qt_6_9_0 -)
+ void widgetAdded(int index);
+%End
void widgetRemoved(int index);
protected:
diff -ur pyqt6-6.8.1/sip/QtWidgets/qstyleoption.sip pyqt6-6.9.0.dev2504021615/sip/QtWidgets/qstyleoption.sip
--- pyqt6-6.8.1/sip/QtWidgets/qstyleoption.sip 2025-02-03 16:22:09.873474600 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtWidgets/qstyleoption.sip 2025-04-03 02:57:44.914718900 +0200
@@ -464,6 +464,9 @@
{
None,
HasFrame,
+%If (Qt_6_9_0 -)
+ MinimumSizeHint,
+%End
};
typedef QFlags<QStyleOptionTab::TabFeature> TabFeatures;
@@ -619,6 +622,12 @@
HasCheckIndicator,
HasDisplay,
HasDecoration,
+%If (Qt_6_9_0 -)
+ IsDecoratedRootColumn,
+%End
+%If (Qt_6_9_0 -)
+ IsDecorationForRootColumn,
+%End
};
typedef QFlags<QStyleOptionViewItem::ViewItemFeature> ViewItemFeatures;
diff -ur pyqt6-6.8.1/sip/QtWidgets/qwidget.sip pyqt6-6.9.0.dev2504021615/sip/QtWidgets/qwidget.sip
--- pyqt6-6.8.1/sip/QtWidgets/qwidget.sip 2025-02-03 16:22:09.875983500 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtWidgets/qwidget.sip 2025-04-03 02:57:44.921539000 +0200
@@ -515,4 +515,10 @@
void setWindowFlag(Qt::WindowType, bool on = true);
QScreen *screen() const;
void setScreen(QScreen *);
+%If (Qt_6_9_0 -)
+ QString accessibleIdentifier() const;
+%End
+%If (Qt_6_9_0 -)
+ void setAccessibleIdentifier(const QString &identifier);
+%End
};
diff -ur pyqt6-6.8.1/sip/QtXml/qdom.sip pyqt6-6.9.0.dev2504021615/sip/QtXml/qdom.sip
--- pyqt6-6.8.1/sip/QtXml/qdom.sip 2025-02-03 16:22:09.764196200 +0100
+++ pyqt6-6.9.0.dev2504021615/sip/QtXml/qdom.sip 2025-04-03 02:57:44.599672800 +0200
@@ -158,8 +158,12 @@
QDomNodeList();
QDomNodeList(const QDomNodeList &);
~QDomNodeList();
+%If (- Qt_6_9_0)
bool operator==(const QDomNodeList &) const;
+%End
+%If (- Qt_6_9_0)
bool operator!=(const QDomNodeList &) const;
+%End
QDomNode item(int index) const;
QDomNode at(int index) const;
int length() const;
@@ -526,3 +530,9 @@
};
QTextStream &operator<<(QTextStream &, const QDomNode &) /ReleaseGIL/;
+%If (Qt_6_9_0 -)
+bool operator!=(const QDomNodeList &lhs, const QDomNodeList &rhs);
+%End
+%If (Qt_6_9_0 -)
+bool operator==(const QDomNodeList &lhs, const QDomNodeList &rhs);
+%End
diff -ur pyqt6-6.8.1/uic/uiparser.py pyqt6-6.9.0.dev2504021615/uic/uiparser.py
--- pyqt6-6.8.1/uic/uiparser.py 2025-02-03 16:22:08.579204600 +0100
+++ pyqt6-6.9.0.dev2504021615/uic/uiparser.py 2025-04-03 02:57:40.776603200 +0200
@@ -1,4 +1,4 @@
-# Copyright (c) 2023 Riverbank Computing Limited.
+# Copyright (c) 2025 Riverbank Computing Limited.
# Copyright (c) 2006 Thorsten Marek.
# All right reserved.
#
@@ -58,7 +58,7 @@
align_flags = None
for qt_align in alignment.split('|'):
- _, qt_align = qt_align.split('::')
+ *_, qt_align = qt_align.split('::')
align = getattr(QtCore.Qt.AlignmentFlag, qt_align)
if align_flags is None:
--- /dev/null 2025-04-03 18:43:40.396021108 +0200
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qpycore_std_chrono_duration.sip 2025-04-03 02:57:45.093715200 +0200
@@ -0,0 +1,79 @@
+// This is the SIP interface definition for the std::chrono::duration based
+// mapped types.
+//
+// Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
+//
+// This file is part of PyQt6.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file. Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license. For more information contact
+// info@riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_6_8_0 -)
+
+%MappedType std::chrono::milliseconds /TypeHint="int"/
+{
+%TypeHeaderCode
+#include <chrono>
+%End
+
+%ConvertFromTypeCode
+ return PyLong_FromLong(sipCpp->count());
+%End
+
+%ConvertToTypeCode
+ if (!sipIsErr)
+ {
+ PyErr_Clear();
+ sipLong_AsLong(sipPy);
+
+ return !PyErr_Occurred();
+ }
+
+ *sipCppPtr = new std::chrono::milliseconds(sipLong_AsLong(sipPy));
+
+ return sipGetState(sipTransferObj);
+%End
+};
+
+%End
+
+
+%If (Qt_6_9_0 -)
+
+%MappedType std::chrono::seconds /TypeHint="int"/
+{
+%TypeHeaderCode
+#include <chrono>
+%End
+
+%ConvertFromTypeCode
+ return PyLong_FromLong(sipCpp->count());
+%End
+
+%ConvertToTypeCode
+ if (!sipIsErr)
+ {
+ PyErr_Clear();
+ sipLong_AsLong(sipPy);
+
+ return !PyErr_Occurred();
+ }
+
+ *sipCppPtr = new std::chrono::seconds(sipLong_AsLong(sipPy));
+
+ return sipGetState(sipTransferObj);
+%End
+};
+
+%End
--- /dev/null 2025-04-03 18:43:40.396021108 +0200
+++ pyqt6-6.9.0.dev2504021615/sip/QtCore/qjsonparseerror.sip 2025-04-03 02:57:45.306746500 +0200
@@ -0,0 +1,55 @@
+// qjsonparseerror.sip generated by MetaSIP
+//
+// This file is part of the QtCore Python extension module.
+//
+// Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
+//
+// This file is part of PyQt6.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file. Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license. For more information contact
+// info@riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_6_9_0 -)
+
+struct QJsonParseError
+{
+%TypeHeaderCode
+#include <qjsonparseerror.h>
+%End
+
+ enum ParseError
+ {
+ NoError,
+ UnterminatedObject,
+ MissingNameSeparator,
+ UnterminatedArray,
+ MissingValueSeparator,
+ IllegalValue,
+ TerminationByNumber,
+ IllegalNumber,
+ IllegalEscapeSequence,
+ IllegalUTF8String,
+ UnterminatedString,
+ MissingObject,
+ DeepNesting,
+ DocumentTooLarge,
+ GarbageAtEnd,
+ };
+
+ QString errorString() const;
+ int offset;
+ QJsonParseError::ParseError error;
+};
+
+%End
--- /dev/null 2025-04-03 18:43:40.396021108 +0200
+++ pyqt6-6.9.0.dev2504021615/sip/QtGui/qfontvariableaxis.sip 2025-04-03 02:57:44.779524600 +0200
@@ -0,0 +1,48 @@
+// qfontvariableaxis.sip generated by MetaSIP
+//
+// This file is part of the QtGui Python extension module.
+//
+// Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
+//
+// This file is part of PyQt6.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file. Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license. For more information contact
+// info@riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_6_9_0 -)
+
+class QFontVariableAxis
+{
+%TypeHeaderCode
+#include <qfontvariableaxis.h>
+%End
+
+public:
+ QFontVariableAxis();
+ QFontVariableAxis(const QFontVariableAxis &axis);
+ ~QFontVariableAxis();
+ void swap(QFontVariableAxis &other /Constrained/);
+ QFont::Tag tag() const;
+ void setTag(QFont::Tag tag);
+ QString name() const;
+ void setName(const QString &name);
+ qreal minimumValue() const;
+ void setMinimumValue(qreal minimumValue);
+ qreal maximumValue() const;
+ void setMaximumValue(qreal maximumValue);
+ qreal defaultValue() const;
+ void setDefaultValue(qreal defaultValue);
+};
+
+%End
--- /dev/null 2025-04-03 18:43:40.396021108 +0200
+++ pyqt6-6.9.0.dev2504021615/sip/QtGui/qpainterstateguard.sip 2025-04-03 02:57:44.681874000 +0200
@@ -0,0 +1,48 @@
+// qpainterstateguard.sip generated by MetaSIP
+//
+// This file is part of the QtGui Python extension module.
+//
+// Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
+//
+// This file is part of PyQt6.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file. Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license. For more information contact
+// info@riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_6_9_0 -)
+
+class QPainterStateGuard
+{
+%TypeHeaderCode
+#include <qpainterstateguard.h>
+%End
+
+public:
+ enum class InitialState
+ {
+ Save,
+ NoSave,
+ };
+
+ QPainterStateGuard(QPainter *painter, QPainterStateGuard::InitialState state = QPainterStateGuard::InitialState::Save);
+ ~QPainterStateGuard();
+ void swap(QPainterStateGuard &other /Constrained/);
+ void save();
+ void restore();
+
+private:
+ QPainterStateGuard(const QPainterStateGuard &);
+};
+
+%End