diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-10-09 09:22:56 +0200 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-10-23 12:26:07 +0200 |
| commit | 4d09403f7167afbee285155177e2c1c9e4857e14 (patch) | |
| tree | 1f5b5895e1834c862e18ba33ac69b1073ffdf48f /sources/pyside6/libpyside/pysideclassinfo.h | |
| parent | b77586da0e7041501c5456f229d1c80b68a78e64 (diff) | |
QML registration code: Extract a setter from the ClassInfo decorator
Change it to operate on a list of key/value pairs instead of a QMap
(no use in enforcing sorting) and extract a setter for setting
QMetaClassInfo data on a PyTypeObject of a QObject.
To be used for QML decorators.
As a drive-by, fix some static analysis warnings about implicit bool
casts.
Task-number: PYSIDE-2484
Change-Id: Ia759bb42740ed279f36c0850306ebd9bee526ecf
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/pyside6/libpyside/pysideclassinfo.h')
| -rw-r--r-- | sources/pyside6/libpyside/pysideclassinfo.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/sources/pyside6/libpyside/pysideclassinfo.h b/sources/pyside6/libpyside/pysideclassinfo.h index 82580e0f0..e04865829 100644 --- a/sources/pyside6/libpyside/pysideclassinfo.h +++ b/sources/pyside6/libpyside/pysideclassinfo.h @@ -8,13 +8,25 @@ #include <sbkpython.h> -#include <QtCore/QMap> #include <QtCore/QByteArray> +#include <QtCore/QList> namespace PySide::ClassInfo { +struct ClassInfo +{ + QByteArray key; + QByteArray value; +}; + +using ClassInfoList = QList<ClassInfo>; + PYSIDE_API bool checkType(PyObject* pyObj); -PYSIDE_API QMap<QByteArray, QByteArray> getMap(PyObject *obj); +PYSIDE_API ClassInfoList getClassInfoList(PyObject *decorator); + +PYSIDE_API bool setClassInfo(PyTypeObject *type, const QByteArray &key, + const QByteArray &value); +PYSIDE_API bool setClassInfo(PyTypeObject *type, const ClassInfoList &list); } // namespace PySide::ClassInfo |
