diff options
Diffstat (limited to 'sources/shiboken2/libshiboken/basewrapper.h')
-rw-r--r-- | sources/shiboken2/libshiboken/basewrapper.h | 55 |
1 files changed, 38 insertions, 17 deletions
diff --git a/sources/shiboken2/libshiboken/basewrapper.h b/sources/shiboken2/libshiboken/basewrapper.h index 7faf223bd..2f0c22e9f 100644 --- a/sources/shiboken2/libshiboken/basewrapper.h +++ b/sources/shiboken2/libshiboken/basewrapper.h @@ -64,6 +64,9 @@ struct LIBSHIBOKEN_API SbkObject }; +/// PYSIDE-939: A general replacement for object_dealloc. +LIBSHIBOKEN_API void Sbk_object_dealloc(PyObject *self); + /// Dealloc the python object \p pyObj and the C++ object represented by it. LIBSHIBOKEN_API void SbkDeallocWrapper(PyObject *pyObj); LIBSHIBOKEN_API void SbkDeallocQAppWrapper(PyObject *pyObj); @@ -83,9 +86,6 @@ typedef void *(*SpecialCastFunction)(void *, SbkObjectType *); typedef SbkObjectType *(*TypeDiscoveryFunc)(void *, SbkObjectType *); typedef void *(*TypeDiscoveryFuncV2)(void *, SbkObjectType *); -typedef void *(*ExtendedToCppFunc)(PyObject *); // DEPRECATED. -typedef bool (*ExtendedIsConvertibleFunc)(PyObject *); // DEPRECATED. - // Used in userdata dealloc function typedef void (*DeleteUserDataFunc)(void *); @@ -93,6 +93,23 @@ typedef void (*ObjectDestructor)(void *); typedef void (*SubTypeInitHook)(SbkObjectType *, PyObject *, PyObject *); +/// PYSIDE-1019: Set the function to select the current feature. +/// Return value is the previous content. +typedef PyObject *(*SelectableFeatureHook)(PyTypeObject *); +LIBSHIBOKEN_API SelectableFeatureHook initSelectableFeature(SelectableFeatureHook func); + +// PYSIDE-1019: Get access to PySide reserved bits. +LIBSHIBOKEN_API int SbkObjectType_GetReserved(PyTypeObject *type); +LIBSHIBOKEN_API void SbkObjectType_SetReserved(PyTypeObject *type, int value); + +// PYSIDE-1019: Get access to PySide property strings. +LIBSHIBOKEN_API const char **SbkObjectType_GetPropertyStrings(PyTypeObject *type); +LIBSHIBOKEN_API void SbkObjectType_SetPropertyStrings(PyTypeObject *type, const char **strings); + +/// PYSIDE-1470: Set the function to kill a Q*Application. +typedef void(*DestroyQAppHook)(); +LIBSHIBOKEN_API void setDestroyQApplication(DestroyQAppHook func); + extern LIBSHIBOKEN_API PyTypeObject *SbkObjectType_TypeF(void); extern LIBSHIBOKEN_API SbkObjectType *SbkObject_TypeF(void); @@ -105,8 +122,12 @@ struct LIBSHIBOKEN_API SbkObjectType }; LIBSHIBOKEN_API PyObject *SbkObjectTpNew(PyTypeObject *subtype, PyObject *, PyObject *); -// the special case of a switchable singleton -LIBSHIBOKEN_API PyObject *SbkQAppTpNew(PyTypeObject *subtype, PyObject *args, PyObject *kwds); + +/// The special case of a switchable singleton Q*Application. +LIBSHIBOKEN_API PyObject *SbkQAppTpNew(PyTypeObject *subtype, PyObject *, PyObject *); + +/// Create a new Q*Application wrapper and monitor it. +LIBSHIBOKEN_API PyObject *MakeQAppWrapper(PyTypeObject *type); /** * PYSIDE-832: Use object_dealloc instead of nullptr. @@ -116,9 +137,16 @@ LIBSHIBOKEN_API PyObject *SbkQAppTpNew(PyTypeObject *subtype, PyObject *args, Py * nullptr. But the default before conversion to heaptypes was to assign * object_dealloc. This seems to be a bug in the Limited API. */ -LIBSHIBOKEN_API void object_dealloc(PyObject *); +/// PYSIDE-939: Replaced by Sbk_object_dealloc. LIBSHIBOKEN_API PyObject *SbkDummyNew(PyTypeObject *type, PyObject *, PyObject *); +/// PYSIDE-1286: Generate correct __module__ and __qualname__ +LIBSHIBOKEN_API PyObject *SbkType_FromSpec(PyType_Spec *); +LIBSHIBOKEN_API PyObject *SbkType_FromSpecWithBases(PyType_Spec *, PyObject *); + +/// PYSIDE-74: Fallback used in all types now. +LIBSHIBOKEN_API PyObject *FallbackRichCompare(PyObject *self, PyObject *other, int op); + } // extern "C" namespace Shiboken @@ -137,13 +165,10 @@ void callCppDestructor(void *cptr) delete reinterpret_cast<T *>(cptr); } -/** - * Shiboken::importModule is DEPRECATED. Use Shiboken::Module::import() instead. - */ -SBK_DEPRECATED(LIBSHIBOKEN_API bool importModule(const char *moduleName, PyTypeObject *** cppApiPtr)); - -// setErrorAboutWrongArguments now gets overload info from the signature module. -LIBSHIBOKEN_API void setErrorAboutWrongArguments(PyObject *args, const char *funcName); +// setErrorAboutWrongArguments now gets overload information from the signature module. +// The extra info argument can contain additional data about the error. +LIBSHIBOKEN_API void setErrorAboutWrongArguments(PyObject *args, const char *funcName, + PyObject *info); namespace ObjectType { @@ -219,7 +244,6 @@ LIBSHIBOKEN_API SbkObjectType *introduceWrapperType(PyObject *enclosingObject, const char *typeName, const char *originalName, PyType_Spec *typeSpec, - const char *signatureStrings[], ObjectDestructor cppObjDtor, SbkObjectType *baseType, PyObject *baseTypes, @@ -419,9 +443,6 @@ LIBSHIBOKEN_API void invalidate(PyObject *pyobj); */ LIBSHIBOKEN_API void makeValid(SbkObject *self); -/// \deprecated Use destroy(SbkObject *, void *) -SBK_DEPRECATED(LIBSHIBOKEN_API void destroy(SbkObject *self)); - /** * Destroy any data in Shiboken structure and c++ pointer if the pyboject has the ownership */ |