From f2c59b613b28bfc8c1351d09ec7edaaedb174bfc Mon Sep 17 00:00:00 2001 From: Hugo Parente Lima Date: Wed, 6 Oct 2010 16:38:35 -0300 Subject: Move structs tagged as "export C" outside C++ namespaces. Also don't export structs that don't need to be exported. --- libpyside/dynamicqmetaobject.cpp | 2 +- libpyside/qproperty.cpp | 116 +++++++++++++++++++-------------------- libpyside/qproperty.h | 5 -- libpyside/qproperty_p.h | 5 ++ 4 files changed, 64 insertions(+), 64 deletions(-) (limited to 'libpyside') diff --git a/libpyside/dynamicqmetaobject.cpp b/libpyside/dynamicqmetaobject.cpp index ce3ba3b99..3882ea201 100644 --- a/libpyside/dynamicqmetaobject.cpp +++ b/libpyside/dynamicqmetaobject.cpp @@ -388,7 +388,7 @@ DynamicQMetaObject* DynamicQMetaObject::createBasedOn(PyObject* pyObj, PyTypeObj while (PyDict_Next(type->tp_dict, &pos, &key, &value)) { //Register properties - if (value->ob_type == &QProperty_Type) { + if (value->ob_type == &PySideQPropertyType) { mo->addProperty(PyString_AsString(key), value); } diff --git a/libpyside/qproperty.cpp b/libpyside/qproperty.cpp index d7c4d81ee..2c5393231 100644 --- a/libpyside/qproperty.cpp +++ b/libpyside/qproperty.cpp @@ -30,16 +30,34 @@ #define QPROPERTY_CLASS_NAME "Property" -namespace PySide +char* translateTypeName(PyObject* type) { + if (PyType_Check(type)) { + char* typeName = 0; + if (type->ob_type == &Shiboken::SbkBaseWrapperType_Type) { + Shiboken::SbkBaseWrapperType* objType = reinterpret_cast(type); + typeName = strdup(objType->original_name); + } else { + //tp_name return the full name + Shiboken::AutoDecRef otypeName(PyObject_GetAttrString(type, "__name__")); + typeName = strdup(PyString_AS_STRING(otypeName.object())); + } + if (Shiboken::TypeResolver::getType(typeName) == Shiboken::TypeResolver::ObjectType) { + typeName = reinterpret_cast(realloc(typeName, strlen(typeName) + 1)); + typeName = strcat(typeName, "*"); + } + return typeName; + } else if (PyString_Check(type)) { + return strdup(PyString_AS_STRING(type)); + } + return 0; +} -// aux function -static char* translateTypeName(PyObject*); extern "C" { -typedef struct { +struct PySideQPropertyData { PyObject_HEAD char* typeName; PyObject* type; @@ -54,16 +72,16 @@ typedef struct { bool user; bool constant; bool final; -} QPropertyData; +}; static int qpropertyTpInit(PyObject*, PyObject*, PyObject*); static void qpropertyFree(void*); -PyTypeObject QProperty_Type = { +PyTypeObject PySideQPropertyType = { PyObject_HEAD_INIT(0) 0, /*ob_size*/ QPROPERTY_CLASS_NAME, /*tp_name*/ - sizeof(QPropertyData), /*tp_basicsize*/ + sizeof(PySideQPropertyData), /*tp_basicsize*/ 0, /*tp_itemsize*/ 0, /*tp_dealloc*/ 0, /*tp_print*/ @@ -96,7 +114,7 @@ PyTypeObject QProperty_Type = { 0, /*tp_descr_get */ 0, /*tp_descr_set */ 0, /*tp_dictoffset */ - qpropertyTpInit, /*tp_init */ + qpropertyTpInit, /*tp_init */ 0, /*tp_alloc */ PyType_GenericNew, /*tp_new */ qpropertyFree, /*tp_free */ @@ -109,21 +127,10 @@ PyTypeObject QProperty_Type = { 0, /*tp_del */ }; -} // extern "C" - -void initQProperty(PyObject* module) -{ - if (PyType_Ready(&QProperty_Type) < 0) - return; - - Py_INCREF(&QProperty_Type); - PyModule_AddObject(module, QPROPERTY_CLASS_NAME, ((PyObject*)&QProperty_Type)); -} - int qpropertyTpInit(PyObject* self, PyObject* args, PyObject* kwds) { PyObject* type = 0; - QPropertyData *data = reinterpret_cast(self); + PySideQPropertyData *data = reinterpret_cast(self); data->designable = true; data->scriptable = true; data->stored = true; @@ -149,7 +156,7 @@ int qpropertyTpInit(PyObject* self, PyObject* args, PyObject* kwds) void qpropertyFree(void *self) { PyObject *pySelf = reinterpret_cast(self); - QPropertyData *data = reinterpret_cast(self); + PySideQPropertyData *data = reinterpret_cast(self); free(data->typeName); free(data->doc); @@ -157,17 +164,33 @@ void qpropertyFree(void *self) pySelf->ob_type->tp_base->tp_free(self); } + +} // extern "C" + + +namespace PySide +{ + +void initQProperty(PyObject* module) +{ + if (PyType_Ready(&PySideQPropertyType) < 0) + return; + + Py_INCREF(&PySideQPropertyType); + PyModule_AddObject(module, QPROPERTY_CLASS_NAME, ((PyObject*)&PySideQPropertyType)); +} + bool isQPropertyType(PyObject* pyObj) { if (pyObj) { - return pyObj->ob_type == &QProperty_Type; + return pyObj->ob_type == &PySideQPropertyType; } return false; } int qpropertySet(PyObject* self, PyObject* source, PyObject* value) { - QPropertyData *data = reinterpret_cast(self); + PySideQPropertyData *data = reinterpret_cast(self); if (data->fset) { Shiboken::AutoDecRef args(PyTuple_New(2)); PyTuple_SET_ITEM(args, 0, source); @@ -184,7 +207,7 @@ int qpropertySet(PyObject* self, PyObject* source, PyObject* value) PyObject* qpropertyGet(PyObject* self, PyObject* source) { - QPropertyData *data = reinterpret_cast(self); + PySideQPropertyData *data = reinterpret_cast(self); if (data->fget) { Shiboken::AutoDecRef args(PyTuple_New(1)); Py_INCREF(source); @@ -196,7 +219,7 @@ PyObject* qpropertyGet(PyObject* self, PyObject* source) int qpropertyReset(PyObject* self, PyObject* source) { - QPropertyData *data = reinterpret_cast(self); + PySideQPropertyData *data = reinterpret_cast(self); if (data->freset) { Shiboken::AutoDecRef args(PyTuple_New(1)); Py_INCREF(source); @@ -210,7 +233,7 @@ int qpropertyReset(PyObject* self, PyObject* source) const char* qpropertyGetType(PyObject* self) { - QPropertyData *data = reinterpret_cast(self); + PySideQPropertyData *data = reinterpret_cast(self); return data->typeName; } @@ -227,80 +250,57 @@ PyObject* qpropertyGetObject(PyObject* source, PyObject* name) return 0; } -char* translateTypeName(PyObject* type) -{ - if (PyType_Check(type)) { - char *typeName = NULL; - if (type->ob_type == &Shiboken::SbkBaseWrapperType_Type) { - Shiboken::SbkBaseWrapperType *objType = reinterpret_cast(type); - typeName = strdup(objType->original_name); - } else { - //tp_name return the full name - Shiboken::AutoDecRef otypeName(PyObject_GetAttrString(type, "__name__")); - typeName = strdup(PyString_AS_STRING(otypeName.object())); - } - if (Shiboken::TypeResolver::getType(typeName) == Shiboken::TypeResolver::ObjectType) { - typeName = reinterpret_cast(realloc(typeName, strlen(typeName) + 1)); - typeName = strcat(typeName, "*"); - } - return typeName; - } else if (PyString_Check(type)) { - return strdup(PyString_AS_STRING(type)); - } - return 0; -} - bool qpropertyIsReadable(PyObject* self) { - QPropertyData *data = reinterpret_cast(self); + PySideQPropertyData *data = reinterpret_cast(self); return (data->fget != 0); } bool qpropertyIsWritable(PyObject* self) { - QPropertyData *data = reinterpret_cast(self); + PySideQPropertyData *data = reinterpret_cast(self); return (data->fset != 0); } bool qpropertyHasReset(PyObject* self) { - QPropertyData *data = reinterpret_cast(self); + PySideQPropertyData *data = reinterpret_cast(self); return (data->freset != 0); } bool qpropertyIsDesignable(PyObject* self) { - QPropertyData *data = reinterpret_cast(self); + PySideQPropertyData *data = reinterpret_cast(self); return data->designable; } bool qpropertyIsScriptable(PyObject* self) { - QPropertyData *data = reinterpret_cast(self); + PySideQPropertyData *data = reinterpret_cast(self); return data->scriptable; } bool qpropertyIsStored(PyObject* self) { - QPropertyData *data = reinterpret_cast(self); + PySideQPropertyData *data = reinterpret_cast(self); return data->stored; } bool qpropertyIsUser(PyObject* self) { - QPropertyData *data = reinterpret_cast(self); + PySideQPropertyData *data = reinterpret_cast(self); return data->user; } bool qpropertyIsConstant(PyObject* self) { - QPropertyData *data = reinterpret_cast(self); + PySideQPropertyData *data = reinterpret_cast(self); return data->constant; } bool qpropertyIsFinal(PyObject* self) { - QPropertyData *data = reinterpret_cast(self); + PySideQPropertyData *data = reinterpret_cast(self); return data->final; } diff --git a/libpyside/qproperty.h b/libpyside/qproperty.h index bb256b4c0..da031db5e 100644 --- a/libpyside/qproperty.h +++ b/libpyside/qproperty.h @@ -30,11 +30,6 @@ namespace PySide { -extern "C" -{ - extern PYSIDE_API PyTypeObject QProperty_Type; -}; //extern "C" - PYSIDE_API bool isQPropertyType(PyObject* pyObj); /** diff --git a/libpyside/qproperty_p.h b/libpyside/qproperty_p.h index dbd6dd107..85380f687 100644 --- a/libpyside/qproperty_p.h +++ b/libpyside/qproperty_p.h @@ -25,6 +25,11 @@ #include +extern "C" +{ + extern PyTypeObject PySideQPropertyType; +}; //extern "C" + namespace PySide { -- cgit v1.2.3