diff options
Diffstat (limited to 'sources/pyside6/PySide6/QtCore/glue/core_snippets_p.h')
-rw-r--r-- | sources/pyside6/PySide6/QtCore/glue/core_snippets_p.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/sources/pyside6/PySide6/QtCore/glue/core_snippets_p.h b/sources/pyside6/PySide6/QtCore/glue/core_snippets_p.h index 9a0a8c0ab..11e84b291 100644 --- a/sources/pyside6/PySide6/QtCore/glue/core_snippets_p.h +++ b/sources/pyside6/PySide6/QtCore/glue/core_snippets_p.h @@ -12,11 +12,20 @@ #include <functional> +QT_FORWARD_DECLARE_CLASS(QGenericArgument) +QT_FORWARD_DECLARE_CLASS(QGenericReturnArgument) QT_FORWARD_DECLARE_CLASS(QMetaType) QT_FORWARD_DECLARE_CLASS(QObject) QT_FORWARD_DECLARE_CLASS(QRegularExpression) QT_FORWARD_DECLARE_CLASS(QVariant); +QT_BEGIN_NAMESPACE +namespace QtCoreHelper { +class QGenericArgumentHolder; +class QGenericReturnArgumentHolder; +} +QT_END_NAMESPACE + // Helpers for QVariant conversion QMetaType QVariant_resolveMetaType(PyTypeObject *type); @@ -48,4 +57,49 @@ void qObjectFindChildren(const QObject *parent, const QRegularExpression &patter // Helpers for translation QString qObjectTr(PyTypeObject *type, const char *sourceText, const char *disambiguation, int n); +bool PyDate_ImportAndCheck(PyObject *pyIn); +bool PyDateTime_ImportAndCheck(PyObject *pyIn); +bool PyTime_ImportAndCheck(PyObject *pyIn); + +// Helpers for QMetaObject::invokeMethod(), QMetaMethod::invoke(). The std::function +// serves to abstract from QMetaObject/QMetaMethod invocation parameters. +using InvokeMetaMethodFunc = + std::function<bool(QGenericArgument,QGenericArgument,QGenericArgument,QGenericArgument, + QGenericArgument,QGenericArgument,QGenericArgument,QGenericArgument, + QGenericArgument,QGenericArgument)>; + +using InvokeMetaMethodFuncWithReturn = + std::function<bool(QGenericReturnArgument, + QGenericArgument,QGenericArgument,QGenericArgument,QGenericArgument, + QGenericArgument,QGenericArgument,QGenericArgument,QGenericArgument, + QGenericArgument,QGenericArgument)>; + +// Call a void meta method from Python passing the argument holder helpers. +PyObject *invokeMetaMethod(const InvokeMetaMethodFunc &f, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &); + +// Call a meta method with a return value from Python passing the argument holder +// helpers. +PyObject *invokeMetaMethodWithReturn(const InvokeMetaMethodFuncWithReturn &f, + const QtCoreHelper::QGenericReturnArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &, + const QtCoreHelper::QGenericArgumentHolder &); + #endif // CORE_SNIPPETS_P_H |