From 92dcb7ae3a92416b4129d549625eba0512e02426 Mon Sep 17 00:00:00 2001 From: Hugo Parente Lima Date: Wed, 10 Nov 2010 17:22:32 -0200 Subject: Changes needed to compile QtCore with libshiboken v1.0 --- libpyside/pyside.cpp | 8 ++++---- libpyside/pysideconversions.h | 8 ++++---- libpyside/pysidesignal.cpp | 6 +++--- libpyside/pysidesignal.h | 27 ++++++++++++--------------- libpyside/signalmanager.cpp | 8 ++++---- 5 files changed, 27 insertions(+), 30 deletions(-) (limited to 'libpyside') diff --git a/libpyside/pyside.cpp b/libpyside/pyside.cpp index 7f2e96add..7866fc6ae 100644 --- a/libpyside/pyside.cpp +++ b/libpyside/pyside.cpp @@ -110,15 +110,15 @@ void destroyQCoreApplication() return; Shiboken::BindingManager& bm = Shiboken::BindingManager::instance(); - PyObject* pyQApp = bm.retrieveWrapper(app); + SbkObject* pyQApp = bm.retrieveWrapper(app); PyTypeObject* pyQObjectType = Shiboken::TypeResolver::get("QObject*")->pythonType(); assert(pyQObjectType); - foreach (PyObject* pyObj, bm.getAllPyObjects()) { + foreach (SbkObject* pyObj, bm.getAllPyObjects()) { if (pyObj != pyQApp && PyObject_TypeCheck(pyObj, pyQObjectType)) { - if (SbkBaseWrapper_hasOwnership(pyObj)) { + if (Shiboken::Wrapper::hasOwnership(pyObj)) { bm.destroyWrapper(pyObj); - delete static_cast(Shiboken::getCppPointer(pyObj, Shiboken::SbkType())); + delete static_cast(Shiboken::Wrapper::cppPointer(pyObj, Shiboken::SbkType())); } } } diff --git a/libpyside/pysideconversions.h b/libpyside/pysideconversions.h index e92828a9d..e8c70dc80 100644 --- a/libpyside/pysideconversions.h +++ b/libpyside/pysideconversions.h @@ -73,7 +73,7 @@ struct QtDictConverter static inline QtDict toCpp(PyObject* pyobj) { if (PyObject_TypeCheck(pyobj, Shiboken::SbkType())) - return *reinterpret_cast(Shiboken::getCppPointer(pyobj, Shiboken::SbkType())); + return *reinterpret_cast(Shiboken::Wrapper::cppPointer((SbkObject*)pyobj, Shiboken::SbkType())); QtDict result; @@ -150,7 +150,7 @@ struct QtMultiMapConverter static inline MultiMap toCpp(PyObject* pyObj) { if (PyObject_TypeCheck(pyObj, Shiboken::SbkType())) - return *reinterpret_cast(Shiboken::getCppPointer(pyObj, Shiboken::SbkType())); + return *reinterpret_cast(Shiboken::Wrapper::cppPointer((SbkObject*)pyObj, Shiboken::SbkType())); MultiMap result; @@ -199,7 +199,7 @@ struct QSequenceConverter static T toCpp(PyObject* pyobj) { if (PyObject_TypeCheck(pyobj, Shiboken::SbkType())) - return *reinterpret_cast(Shiboken::getCppPointer(pyobj, Shiboken::SbkType())); + return *reinterpret_cast(Shiboken::Wrapper::cppPointer((SbkObject*)pyobj, Shiboken::SbkType())); Shiboken::AutoDecRef fastSequence(PySequence_Fast(pyobj, "Invalid sequence object")); T result; @@ -240,7 +240,7 @@ struct QFlagsConverter static inline T toCpp(PyObject* pyObj) { if (Shiboken::isShibokenEnum(pyObj)) - return T(QFlag(reinterpret_cast(pyObj)->ob_ival)); + return T(QFlag(Shiboken::Enum::getValue(pyObj))); else return T(QFlag(reinterpret_cast(pyObj)->ob_ival)); } diff --git a/libpyside/pysidesignal.cpp b/libpyside/pysidesignal.cpp index 41750aa37..81d23ddc8 100644 --- a/libpyside/pysidesignal.cpp +++ b/libpyside/pysidesignal.cpp @@ -493,8 +493,8 @@ char* getTypeName(PyObject* type) { if (PyType_Check(type)) { char *typeName = NULL; - if (type->ob_type == &Shiboken::SbkBaseWrapperType_Type) { - Shiboken::SbkBaseWrapperType *objType = reinterpret_cast(type); + if (type->ob_type == &SbkObjectType_Type) { + SbkObjectType* objType = reinterpret_cast(type); Q_ASSERT(objType->original_name); typeName = strdup(objType->original_name); } else { @@ -670,7 +670,7 @@ PyObject* buildQtCompatible(const char* signature) return ret; } -void addSignalToWrapper(Shiboken::SbkBaseWrapperType* wrapperType, const char* signalName, PySideSignal* signal) +void addSignalToWrapper(SbkObjectType* wrapperType, const char* signalName, PySideSignal* signal) { PyObject* typeDict = wrapperType->super.ht_type.tp_dict; PyObject* homonymousMethod; diff --git a/libpyside/pysidesignal.h b/libpyside/pysidesignal.h index 8a590a1b7..cc4a862d1 100644 --- a/libpyside/pysidesignal.h +++ b/libpyside/pysidesignal.h @@ -30,10 +30,7 @@ #include #include -namespace Shiboken -{ - struct SbkBaseWrapperType; -} +struct SbkObjectType; extern "C" { @@ -60,7 +57,7 @@ namespace PySide { namespace Signal { * @param signatures a list of signatures supported by this signal, ended with a NULL pointer * @return Return a new reference to PyObject* of type PySideSignal **/ -PYSIDE_API PySideSignal* newObject(const char* name, ...); +PYSIDE_API PySideSignal* newObject(const char* name, ...); /** * This function creates a Signal object which stay attached to QObject class based on a list of QMetaMethod @@ -69,7 +66,7 @@ PYSIDE_API PySideSignal* newObject(const char* name, ...); * @param methods a list of QMetaMethod wich contains the supported signature * @return Return a new reference to PyObject* of type PySideSignal **/ -PYSIDE_API PySideSignalInstance* newObjectFromMethod(PyObject* source, const QList& methods); +PYSIDE_API PySideSignalInstance* newObjectFromMethod(PyObject* source, const QList& methods); /** * This function initializes the Signal object creating a PySideSignalInstance @@ -79,7 +76,7 @@ PYSIDE_API PySideSignalInstance* newObjectFromMethod(PyObject* source, const * @param object the PyObject where the signal will be attached * @return Return a new reference to PySideSignalInstance **/ -PYSIDE_API PySideSignalInstance* initialize(PySideSignal* signal, PyObject* name, PyObject *object); +PYSIDE_API PySideSignalInstance* initialize(PySideSignal* signal, PyObject* name, PyObject *object); /** * This function is used to retrieve the object in which the sigal is attached @@ -87,7 +84,7 @@ PYSIDE_API PySideSignalInstance* initialize(PySideSignal* signal, PyObject* n * @param self The Signal object * @return Return the internal reference to parent object of the signal **/ -PYSIDE_API PyObject* getObject(PySideSignalInstance* signal); +PYSIDE_API PyObject* getObject(PySideSignalInstance* signal); /** * This function is used to retrieve the signal signature @@ -95,7 +92,7 @@ PYSIDE_API PyObject* getObject(PySideSignalInstance* signal); * @param self The Signal object * @return Return the signal signature **/ -PYSIDE_API const char* getSignature(PySideSignalInstance* signal); +PYSIDE_API const char* getSignature(PySideSignalInstance* signal); /** * This function is used to retrieve the signal signature @@ -103,7 +100,7 @@ PYSIDE_API const char* getSignature(PySideSignalInstance* signal); * @param self The Signal object * @return Return the signal signature **/ -PYSIDE_API void updateSourceObject(PyObject* source); +PYSIDE_API void updateSourceObject(PyObject* source); /** * This function is used to retrieve the signal signature @@ -111,21 +108,21 @@ PYSIDE_API void updateSourceObject(PyObject* source); * @param self The Signal object * @return Return the signal signature **/ -PYSIDE_API void addSignalToWrapper(Shiboken::SbkBaseWrapperType* wrapperType, const char* signalName, PySideSignal* signal); +PYSIDE_API void addSignalToWrapper(SbkObjectType* wrapperType, const char* signalName, PySideSignal* signal); /** * This function verify if the signature is a QtSignal base on SIGNAL flag * @param signature The signal signature * @return Return true if this is a Qt Signal of false if not **/ -PYSIDE_API bool isQtSignal(const char* signature); +PYSIDE_API bool isQtSignal(const char* signature); /** * This function is similar as isQtSignal but this reaise a Python error if this faisl * @param signature The signal signature * @return Return true if this is a Qt Signal of false if not **/ -PYSIDE_API bool checkQtSignal(const char* signature); +PYSIDE_API bool checkQtSignal(const char* signature); /** * This function is used to retrieve the signature base on Signal and receiver callback @@ -135,7 +132,7 @@ PYSIDE_API bool checkQtSignal(const char* signature); * @param encodeName Used to specify if the returned signature will be encoded with Qt signal/slot style * @return Return the callback signature **/ -PYSIDE_API QString getCallbackSignature(const char* signal, QObject* receiver, PyObject* callback, bool encodeName); +PYSIDE_API QString getCallbackSignature(const char* signal, QObject* receiver, PyObject* callback, bool encodeName); /** * Function to parese the signature and return a list of argument types @@ -143,7 +140,7 @@ PYSIDE_API QString getCallbackSignature(const char* signal, QOb * @param isShortCircuit If this is a shortCircuit(python<->python) signal * @return Return true if this is a Qt Signal of false if not **/ -QStringList getArgsFromSignature(const char* signature, bool* isShortCircuit = 0); +QStringList getArgsFromSignature(const char* signature, bool* isShortCircuit = 0); } //namespace Signal } //namespace PySide diff --git a/libpyside/signalmanager.cpp b/libpyside/signalmanager.cpp index 8765136d3..c08c52943 100644 --- a/libpyside/signalmanager.cpp +++ b/libpyside/signalmanager.cpp @@ -251,7 +251,7 @@ int SignalManager::qt_metacall(QObject* object, QMetaObject::Call call, int id, return id - metaObject->methodCount(); Shiboken::GilState gil; - pySelf = Shiboken::BindingManager::instance().retrieveWrapper(object); + pySelf = (PyObject*)Shiboken::BindingManager::instance().retrieveWrapper(object); Q_ASSERT(pySelf); pp_name = PyString_FromString(mp.name()); pp = Property::getObject(pySelf, pp_name); @@ -334,7 +334,7 @@ static int PySide::callMethod(QObject* object, int id, void** args) // call python slot Shiboken::GilState gil; QList paramTypes = method.parameterTypes(); - PyObject* self = Shiboken::BindingManager::instance().retrieveWrapper(object); + PyObject* self = (PyObject*)Shiboken::BindingManager::instance().retrieveWrapper(object); PyObject* preparedArgs = NULL; Py_ssize_t args_size = paramTypes.count(); @@ -378,8 +378,8 @@ bool SignalManager::registerMetaMethod(QObject* source, const char* signature, Q int methodIndex = metaObject->indexOfMethod(signature); // Create the dynamic signal is needed if (methodIndex == -1) { - Shiboken::SbkBaseWrapper* self = (Shiboken::SbkBaseWrapper*) Shiboken::BindingManager::instance().retrieveWrapper(source); - if (!self->containsCppWrapper) { + SbkObject* self = Shiboken::BindingManager::instance().retrieveWrapper(source); + if (!Shiboken::Wrapper::hasCppWrapper(self)) { qWarning() << "Invalid Signal signature:" << signature; return false; } else { -- cgit v1.2.3