From 31804c2adcf5b6939c8c5e133d3ae1f378e67bc5 Mon Sep 17 00:00:00 2001 From: Marcelo Lira Date: Fri, 9 Dec 2011 18:48:40 -0300 Subject: Qt::HANDLE is declared only in QtCore, and its specifics depend on the architecture. --- PySide/QtCore/CMakeLists.txt | 16 +- PySide/QtCore/typesystem_core.xml | 4084 ------------------------------ PySide/QtCore/typesystem_core.xml.in | 24 + PySide/QtCore/typesystem_core_common.xml | 4080 +++++++++++++++++++++++++++++ PySide/QtCore/typesystem_core_mac.xml | 23 + PySide/QtCore/typesystem_core_win.xml | 2 +- PySide/QtCore/typesystem_core_x11.xml | 26 + PySide/QtDeclarative/CMakeLists.txt | 2 +- PySide/QtGui/CMakeLists.txt | 3 +- PySide/QtGui/typesystem_gui_win.xml | 1 - PySide/QtHelp/CMakeLists.txt | 2 +- PySide/QtMaemo5/CMakeLists.txt | 2 +- PySide/QtMultimedia/CMakeLists.txt | 2 +- PySide/QtNetwork/CMakeLists.txt | 2 +- PySide/QtOpenGL/CMakeLists.txt | 2 +- PySide/QtScript/CMakeLists.txt | 2 +- PySide/QtScriptTools/CMakeLists.txt | 2 +- PySide/QtSql/CMakeLists.txt | 2 +- PySide/QtSvg/CMakeLists.txt | 2 +- PySide/QtTest/CMakeLists.txt | 2 +- PySide/QtUiTools/CMakeLists.txt | 2 +- PySide/QtWebKit/CMakeLists.txt | 2 +- PySide/QtXml/CMakeLists.txt | 2 +- PySide/QtXmlPatterns/CMakeLists.txt | 2 +- PySide/phonon/CMakeLists.txt | 2 +- 25 files changed, 4181 insertions(+), 4110 deletions(-) delete mode 100644 PySide/QtCore/typesystem_core.xml create mode 100644 PySide/QtCore/typesystem_core.xml.in create mode 100644 PySide/QtCore/typesystem_core_common.xml create mode 100644 PySide/QtCore/typesystem_core_mac.xml create mode 100644 PySide/QtCore/typesystem_core_x11.xml (limited to 'PySide') diff --git a/PySide/QtCore/CMakeLists.txt b/PySide/QtCore/CMakeLists.txt index 86df1d172..a2337c0a5 100644 --- a/PySide/QtCore/CMakeLists.txt +++ b/PySide/QtCore/CMakeLists.txt @@ -37,14 +37,12 @@ else() endif() if(ENABLE_WIN) - set(QtCore_typesystem "typesystem_core_win.xml") - set(QtCore_extra_SRC + set(SPECIFIC_OS_FILES ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/msg_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/point_wrapper.cpp ) else() - set(QtCore_typesystem "typesystem_core.xml") - set(QtCore_extra_SRC "") + set(SPECIFIC_OS_FILES "") endif() set(QtCore_SRC @@ -146,10 +144,14 @@ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qxmlstreamreader_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qxmlstreamwriter_wrapper.cpp ${QtCore_46_SRC} ${QtCore_47_SRC} -${QtCore_extra_SRC} +${SPECIFIC_OS_FILES} ) -set(QtCore_typesystem_path "") +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/typesystem_core.xml.in" + "${CMAKE_CURRENT_BINARY_DIR}/typesystem_core.xml" @ONLY) + +set(QtCore_typesystem_path "${QtCore_SOURCE_DIR}") + set(QtCore_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtCore/ ${QT_INCLUDE_DIR} @@ -168,4 +170,4 @@ create_pyside_module(QtCore QtCore_typesystem_path QtCore_SRC QtCore_gluecode - ${CMAKE_CURRENT_SOURCE_DIR}/${QtCore_typesystem}) + ${CMAKE_CURRENT_BINARY_DIR}/typesystem_core.xml) diff --git a/PySide/QtCore/typesystem_core.xml b/PySide/QtCore/typesystem_core.xml deleted file mode 100644 index 23763194c..000000000 --- a/PySide/QtCore/typesystem_core.xml +++ /dev/null @@ -1,4084 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // qFatal doesn't have a stream version, so we do a - // qWarning call followed by a qFatal() call using a - // literal. - qWarning() << %1; - qFatal("[A qFatal() call was made from Python code]"); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - return PyBool_FromLong((bool)%in); - - - - %out = %OUTTYPE(%in == Py_True); - - - - - - - - - bool py2kStrCheck(PyObject* obj) - { - #ifdef IS_PY3K - return false; - #else - return PyString_Check(obj); - #endif - } - - - - - - - const int N = %in.length(); - wchar_t* str = new wchar_t[N]; - %in.toWCharArray(str); - PyObject* %out = PyUnicode_FromWideChar(str, N); - delete[] str; - return %out; - - - - Py_UNICODE* unicode = PyUnicode_AS_UNICODE(%in); - #if defined(Py_UNICODE_WIDE) - // cast as Py_UNICODE can be a different type - %out = QString::fromUcs4((const uint*)unicode); - #else - %out = QString::fromUtf16(unicode, PyUnicode_GET_SIZE(%in)); - #endif - - - #ifndef IS_PY3K - const char* str = %CONVERTTOCPP[const char*](%in); - %out = %OUTTYPE(str); - #endif - - - %out = %OUTTYPE(); - - - - - - - - - - const int N = %in.toString().length(); - wchar_t* str = new wchar_t[N]; - %in.toString().toWCharArray(str); - PyObject* %out = PyUnicode_FromWideChar(str, N); - delete[] str; - return %out; - - - - %out = %OUTTYPE(); - - - - - - - - wchar_t c = (wchar_t)%in.unicode(); - return PyUnicode_FromWideChar(&c, 1); - - - - char c = %CONVERTTOCPP[char](%in); - %out = %OUTTYPE(c); - - - int i = %CONVERTTOCPP[int](%in); - %out = %OUTTYPE(i); - - - %out = %OUTTYPE(); - - - - - - - - - - if (!%in.isValid()) - Py_RETURN_NONE; - - if (qstrcmp(%in.typeName(), "QVariantList") == 0) { - QList<QVariant> var = %in.value<QVariantList>(); - return %CONVERTTOPYTHON[QList<QVariant>](var); - } - - if (qstrcmp(%in.typeName(), "QStringList") == 0) { - QStringList var = %in.value<QStringList>(); - return %CONVERTTOPYTHON[QList<QString>](var); - } - - if (qstrcmp(%in.typeName(), "QVariantMap") == 0) { - QMap<QString, QVariant> var = %in.value<QVariantMap>(); - return %CONVERTTOPYTHON[QMap<QString, QVariant>](var); - } - - Shiboken::Conversions::SpecificConverter converter(cppInRef.typeName()); - if (converter) { - void* ptr = cppInRef.data(); - return converter.toPython(ptr); - } - PyErr_Format(PyExc_RuntimeError, "Can't find converter for '%s'.", %in.typeName()); - return 0; - - - - %out = %OUTTYPE(%in == Py_True); - - - %out = %OUTTYPE(); - - - QString in = %CONVERTTOCPP[QString](%in); - %out = %OUTTYPE(in); - - - QByteArray in = %CONVERTTOCPP[QByteArray](%in); - %out = %OUTTYPE(in); - - - double in = %CONVERTTOCPP[double](%in); - %out = %OUTTYPE(in); - - - int in = %CONVERTTOCPP[int](%in); - %out = %OUTTYPE(in); - - - qlonglong in = %CONVERTTOCPP[qlonglong](%in); - %out = %OUTTYPE(in); - - - int in = %CONVERTTOCPP[int](%in); - %out = %OUTTYPE(in); - - - // a class supported by QVariant? - int typeCode; - const char* typeName = QVariant_resolveMetaType(%in->ob_type, &typeCode); - if (!typeCode || !typeName) - return; - QVariant var(typeCode, (void*)0); - Shiboken::Conversions::SpecificConverter converter(typeName); - converter.toCpp(pyIn, var.data()); - %out = var; - - - QVariant ret = QVariant_convertToVariantMap(%in); - %out = ret.isValid() ? ret : QVariant::fromValue<PySide::PyObjectWrapper>(%in); - - - %out = QVariant_convertToVariantList(%in); - - - // Is a shiboken type not known by Qt - %out = QVariant::fromValue<PySide::PyObjectWrapper>(%in); - - - - - - static const char* QVariant_resolveMetaType(PyTypeObject* type, int* typeId) - { - if (PyObject_TypeCheck(type, &SbkObjectType_Type)) { - SbkObjectType* sbkType = (SbkObjectType*)type; - const char* typeName = Shiboken::ObjectType::getOriginalName(sbkType); - if (!typeName) - return 0; - bool valueType = '*' != typeName[qstrlen(typeName) - 1]; - // Do not convert user type of value - if (valueType &∓ Shiboken::ObjectType::isUserType(type)) - return 0; - int obTypeId = QMetaType::type(typeName); - if (obTypeId) { - *typeId = obTypeId; - return typeName; - } - // Do not resolve types to value type - if (valueType) - return 0; - // find in base types - if (type->tp_base) { - return QVariant_resolveMetaType(type->tp_base, typeId); - } else if (type->tp_bases) { - for(int i = 0; i < PyTuple_GET_SIZE(type->tp_bases); ++i) { - const char* derivedName = QVariant_resolveMetaType((PyTypeObject*)PyTuple_GET_ITEM(type->tp_bases, i), typeId); - if (derivedName) - return derivedName; - } - } - } - *typeId = 0; - return 0; - } - static QVariant QVariant_convertToValueList(PyObject* list) - { - if (PySequence_Size(list) < 1) - return QVariant(); - Shiboken::AutoDecRef element(PySequence_GetItem(list, 0)); - int typeId; - const char* typeName = QVariant_resolveMetaType(element.cast<PyTypeObject*>(), &typeId); - if (typeName) { - QByteArray listTypeName("QList<"); - listTypeName += typeName; - listTypeName += '>'; - typeId = QMetaType::type(listTypeName); - if (typeId > 0) { - Shiboken::Conversions::SpecificConverter converter(listTypeName); - if (converter) { - QVariant var(typeId, (void*)0); - converter.toCpp(list, &var); - return var; - } - qWarning() << "Type converter for :" << listTypeName << "not registered."; - } - } - return QVariant(); - } - static bool QVariant_isStringList(PyObject *list) - { - bool allString = true; - Shiboken::AutoDecRef fast(PySequence_Fast(list, "Failed to convert QVariantList")); - Py_ssize_t size = PySequence_Fast_GET_SIZE(fast.object()); - for(int i = 0; i < size; ++i) { - PyObject* item = PySequence_Fast_GET_ITEM(fast.object(), i); - if (!%CHECKTYPE[QString](item)) { - allString = false; - break; - } - } - return allString; - } - static QVariant QVariant_convertToVariantMap(PyObject* map) - { - Py_ssize_t pos = 0; - Shiboken::AutoDecRef keys(PyDict_Keys(map)); - if (!QVariant_isStringList(keys)) - return QVariant(); - PyObject* key; - PyObject* value; - QMap<QString,QVariant> ret; - while (PyDict_Next(map, &pos, &key, &value)) { - QString cppKey = %CONVERTTOCPP[QString](key); - QVariant cppValue = %CONVERTTOCPP[QVariant](value); - ret.insert(cppKey, cppValue); - } - return QVariant(ret); - } - static QVariant QVariant_convertToVariantList(PyObject* list) - { - if (QVariant_isStringList(list)) { - QList<QString > lst = %CONVERTTOCPP[QList<QString>](list); - return QVariant(QStringList(lst)); - } - QVariant valueList = QVariant_convertToValueList(list); - if (valueList.isValid()) - return valueList; - QList<QVariant> lst; - Shiboken::AutoDecRef fast(PySequence_Fast(list, "Failed to convert QVariantList")); - Py_ssize_t size = PySequence_Fast_GET_SIZE(fast.object()); - for (int i = 0; i < size; ++i) { - PyObject* pyItem = PySequence_Fast_GET_ITEM(fast.object(), i); - QVariant item = %CONVERTTOCPP[QVariant](pyItem); - lst.append(item); - } - return QVariant(lst); - } - - - - - - const char* typeName = QVariant::typeToName(%in); - PyObject* %out; - PyTypeObject* pyType = 0; - if (typeName) - pyType = Shiboken::Conversions::getPythonTypeObject(typeName); - %out = pyType ? ((PyObject*)pyType) : Py_None; - Py_INCREF(%out); - return %out; - - - - %out = QVariant::Invalid; - - - const char* typeName; - if (Shiboken::String::checkType((PyTypeObject*)%in)) - typeName = "QString"; - else if (%in == (PyObject*)&PyFloat_Type) - typeName = "double"; // float is a UserType in QVariant. - else if (%in == (PyObject*)&PyLong_Type) - typeName = "int"; // long is a UserType in QVariant. - else if (%in->ob_type == &SbkObjectType_Type) - typeName = Shiboken::ObjectType::getOriginalName((SbkObjectType*)%in); - else - typeName = ((PyTypeObject*)%in)->tp_name; - %out = QVariant::nameToType(typeName); - - - %out = QVariant::nameToType(Shiboken::String::toCString(%in)); - - - %out = QVariant::nameToType("QVariantMap"); - - - const char* typeName; - if (QVariantType_isStringList(%in)) - typeName = "QStringList"; - else - typeName = "QVariantList"; - %out = QVariant::nameToType(typeName); - - - - - - - - Shiboken::Conversions::registerConverterName(SbkPySide_QtCoreTypeConverters[SBK_QTCORE_QMAP_QSTRING_QVARIANT_IDX], "QVariantMap"); - - - - static bool QVariantType_isStringList(PyObject* list) - { - bool allString = true; - Shiboken::AutoDecRef fast(PySequence_Fast(list, "Failed to convert QVariantList")); - Py_ssize_t size = PySequence_Fast_GET_SIZE(fast.object()); - for(int i=0; i < size; i++) { - PyObject* item = PySequence_Fast_GET_ITEM(fast.object(), i); - if (!%CHECKTYPE[QString](item)) { - allString = false; - break; - } - } - return allString; - } - static bool QVariantType_checkAllStringKeys(PyObject* dict) - { - Shiboken::AutoDecRef keys(PyDict_Keys(dict)); - return QVariantType_isStringList(keys); - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PyObject* %out = PyTuple_New(2); - PyTuple_SET_ITEM(%out, 0, %CONVERTTOPYTHON[%INTYPE_0](%in.first)); - PyTuple_SET_ITEM(%out, 1, %CONVERTTOPYTHON[%INTYPE_1](%in.second)); - return %out; - - - - %out.first = %CONVERTTOCPP[%OUTTYPE_0](PySequence_Fast_GET_ITEM(%in, 0)); - %out.second = %CONVERTTOCPP[%OUTTYPE_1](PySequence_Fast_GET_ITEM(%in, 1)); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - double _abs = qAbs(%1); - %PYARG_0 = %CONVERTTOPYTHON[double](_abs); - - - - - namespace PySide { - static QStack<PyObject*> globalPostRoutineFunctions; - void globalPostRoutineCallback() - { - foreach(PyObject* callback, globalPostRoutineFunctions) { - Shiboken::AutoDecRef result(PyObject_CallObject(callback, NULL)); - Py_DECREF(callback); - } - globalPostRoutineFunctions.clear(); - } - void addPostRoutine(PyObject* callback) - { - if (PyCallable_Check(callback)) { - globalPostRoutineFunctions << callback; - Py_INCREF(callback); - } else { - PyErr_SetString(PyExc_TypeError, "qAddPostRoutine: The argument must be a callable object."); - } - } - } // namespace - - - - PySide::addPostRoutine(%1); - - - - qAddPostRoutine(PySide::globalPostRoutineCallback); - - - - QList<QByteArray> version = QByteArray(qVersion()).split('.'); - PyObject* pyQtVersion = PyTuple_New(3); - for (int i = 0; i < 3; ++i) - PyTuple_SET_ITEM(pyQtVersion, i, PyInt_FromLong(version[i].toInt())); - PyModule_AddObject(module, "__version_info__", pyQtVersion); - PyModule_AddStringConstant(module, "__version__", qVersion()); - - - - { // Avoid name clash - Shiboken::AutoDecRef atexit(Shiboken::Module::import("atexit")); - Shiboken::AutoDecRef regFunc(PyObject_GetAttrString(atexit, "register")); - PyObject* shutDownFunc = PyObject_GetAttrString(module, "__moduleShutdown"); - Shiboken::AutoDecRef args(PyTuple_New(1)); - PyTuple_SET_ITEM(args, 0, shutDownFunc); - Shiboken::AutoDecRef retval(PyObject_Call(regFunc, args, 0)); - Q_ASSERT(!retval.isNull()); - } - - - - - PySide::runCleanupFunctions(); - - - - - - Shiboken::Conversions::registerConverterName(SbkPySide_QtCoreTypeConverters[SBK_QSTRING_IDX], "unicode"); - Shiboken::Conversions::registerConverterName(SbkPySide_QtCoreTypeConverters[SBK_QSTRING_IDX], "str"); - Shiboken::Conversions::registerConverterName(SbkPySide_QtCoreTypeConverters[SBK_QTCORE_QLIST_QVARIANT_IDX], "QVariantList"); - - PySide::init(module); - Py_AtExit(QtCoreModuleExit); - - - #include <pyside.h> - - - - // Define a global variable to handle qInstallMsgHandler callback - static PyObject* qtmsghandler = 0; - - static void msgHandlerCallback(QtMsgType type, const char* msg) - { - Shiboken::GilState state; - Shiboken::AutoDecRef arglist(PyTuple_New(2)); - PyTuple_SET_ITEM(arglist, 0, %CONVERTTOPYTHON[QtMsgType](type)); - PyTuple_SET_ITEM(arglist, 1, %CONVERTTOPYTHON[const char*](msg)); - Shiboken::AutoDecRef ret(PyObject_CallObject(qtmsghandler, arglist)); - } - static void QtCoreModuleExit() - { - PySide::SignalManager::instance().clear(); - } - - - - if (%PYARG_1 == Py_None) { - qInstallMsgHandler(0); - %PYARG_0 = qtmsghandler ? qtmsghandler : Py_None; - qtmsghandler = 0; - } else if (!PyCallable_Check(%PYARG_1)) { - PyErr_SetString(PyExc_TypeError, "parameter must be callable"); - } else { - %PYARG_0 = qtmsghandler ? qtmsghandler : Py_None; - Py_INCREF(%PYARG_1); - qtmsghandler = %PYARG_1; - qInstallMsgHandler(msgHandlerCallback); - } - - if (%PYARG_0 == Py_None) - Py_INCREF(%PYARG_0); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - namespace PySide { - template<> inline uint hash(const QLine& v) { - return qHash(qMakePair(qMakePair(v.x1(), v.y1()), qMakePair(v.x2(), v.y2()))); - } - }; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - QPointF p; - %RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, &p); - %PYARG_0 = PyTuple_New(2); - PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval)); - PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QPointF](p)); - - - - - - - Returns a read only buffer object pointing to the segment of data that this resource represents. If the resource is compressed the data returns is compressed and qUncompress() must be used to access the data. If the resource is a directory None is returned. - - - - - - const void* d = %CPPSELF.%FUNCTION_NAME(); - if (d) { - %PYARG_0 = Shiboken::Buffer::newObject(d, %CPPSELF.size()); - } else { - Py_INCREF(Py_None); - %PYARG_0 = Py_None; - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %out = %OUTTYPE(); - - - int day = PyDateTime_GET_DAY(%in); - int month = PyDateTime_GET_MONTH(%in); - int year = PyDateTime_GET_YEAR(%in); - %out = %OUTTYPE(year, month, day); - - - - - - - - - - - - - - - - - - - - - - - - - - - if (!PyDateTimeAPI) PyDateTime_IMPORT; - %PYARG_0 = PyDate_FromDate(%CPPSELF.year(), %CPPSELF.month(), %CPPSELF.day()); - - - - - - - - - - - - - - - - - int year, month, day; - %BEGIN_ALLOW_THREADS - %CPPSELF.%FUNCTION_NAME(&year, &month, &day); - %END_ALLOW_THREADS - %PYARG_0 = PyTuple_New(3); - PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[int](year)); - PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[int](month)); - PyTuple_SET_ITEM(%PYARG_0, 2, %CONVERTTOPYTHON[int](day)); - - - - - - - - - - - int yearNumber; - %BEGIN_ALLOW_THREADS - int week = %CPPSELF.%FUNCTION_NAME(&yearNumber); - %END_ALLOW_THREADS - %PYARG_0 = PyTuple_New(2); - PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[int](week)); - PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[int](yearNumber)); - - - - - - - - - - - - - - - %out = %OUTTYPE(); - - - int day = PyDateTime_GET_DAY(%in); - int month = PyDateTime_GET_MONTH(%in); - int year = PyDateTime_GET_YEAR(%in); - int hour = PyDateTime_DATE_GET_HOUR(%in); - int min = PyDateTime_DATE_GET_MINUTE(%in); - int sec = PyDateTime_DATE_GET_SECOND(%in); - int usec = PyDateTime_DATE_GET_MICROSECOND(%in); - %out = %OUTTYPE(QDate(year, month, day), QTime(hour, min, sec, usec/1000)); - - - - - - - - - - - - - QDate date(%1, %2, %3); - QTime time(%4, %5, %6, %7); - %0 = new %TYPE(date, time, Qt::TimeSpec(%8)); - - - - - - - - - - - - - - - - - - - - - QDate date = %CPPSELF.date(); - QTime time = %CPPSELF.time(); - if (!PyDateTimeAPI) PyDateTime_IMPORT; - %PYARG_0 = PyDateTime_FromDateAndTime(date.year(), date.month(), date.day(), time.hour(), time.minute(), time.second(), time.msec()*1000); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - namespace PySide { - template<> inline uint hash(const QPoint& v) { - return qHash(qMakePair(v.x(), v.y())); - } - }; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - namespace PySide { - template<> inline uint hash(const QRect& v) { - return qHash(qMakePair(qMakePair(v.x(), v.y()), qMakePair(v.width(), v.height()))); - } - }; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - namespace PySide { - template<> inline uint hash(const QSize& v) { - return qHash(qMakePair(v.width(), v.height())); - } - }; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %out = %OUTTYPE(); - - - int hour = PyDateTime_TIME_GET_HOUR(%in); - int min = PyDateTime_TIME_GET_MINUTE(%in); - int sec = PyDateTime_TIME_GET_SECOND(%in); - int usec = PyDateTime_TIME_GET_MICROSECOND(%in); - %out = %OUTTYPE(hour, min, sec, usec/1000); - - - - - - - - - - - - - - - - - - - - - - - - - - - if (!PyDateTimeAPI) PyDateTime_IMPORT; - %PYARG_0 = PyTime_FromTime(%CPPSELF.hour(), %CPPSELF.minute(), %CPPSELF.second(), %CPPSELF.msec()*1000); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - return %CPPSELF.size(); - - - - - if (_i < 0 || _i >= %CPPSELF.size()) { - PyErr_SetString(PyExc_IndexError, "index out of bounds"); - return 0; - } - bool ret = %CPPSELF.at(_i); - return %CONVERTTOPYTHON[bool](ret); - - - - - PyObject* args = Py_BuildValue("(iiO)", _i, 1, _value); - PyObject* result = Sbk_QBitArrayFunc_setBit(self, args); - Py_DECREF(args); - Py_XDECREF(result); - return !result ? -1 : 0; - - - - - - - - - - - - - - - - - - - - - - %CPPSELF.unlock(); - - - - - - - - - - - - - - %CPPSELF.unlock(); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(%1, %2, %PYARG_3); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - - - Creates a model index for the given row and column with the internal pointer ptr. - When using a QSortFilterProxyModel, its indexes have their own internal pointer. It is not advisable to access this internal pointer outside of the model. Use the data() function instead. - This function provides a consistent interface that model subclasses must use to create model indexes. - - .. warning:: Because of some Qt/Python itegration rules, the ptr argument do not get the reference incremented during the QModelIndex life time. So it is necessary to keep the object used on ptr argument alive during the whole process. Do not destroy the object if you are not sure about that. - - - - - - - - - - - - - - - - - - - - - - - - %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // %FUNCTION_NAME() - disable generation of function call. - %RETURN_TYPE %0 = qobjectConnect(%1, %2, %CPPSELF, %3, %4); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - - - - - - - - // %FUNCTION_NAME() - disable generation of function call. - %RETURN_TYPE %0 = qobjectConnect(%1, %2, %3, %4, %5); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - - - - - - - - - - // %FUNCTION_NAME() - disable generation of function call. - %RETURN_TYPE %0 = qobjectConnectCallback(%1, %2, %PYARG_3, %4); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - - - - - - - - - - // %FUNCTION_NAME() - disable generation of function call. - %RETURN_TYPE %0 = qobjectConnectCallback(%CPPSELF, %1, %PYARG_2, %3); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - - - - - - - - - // %FUNCTION_NAME() - disable generation of function call. - %RETURN_TYPE %0 = qobjectConnect(%CPPSELF, %1, %2, %3, %4); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - - - - - %RETURN_TYPE %0 = PySide::SignalManager::instance().emitSignal(%CPPSELF, %1, %PYARG_2); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - - - - - // %FUNCTION_NAME() - disable generation of function call. - %RETURN_TYPE %0 = qobjectDisconnectCallback(%CPPSELF, %1, %2); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - - - - - // %FUNCTION_NAME() - disable generation of function call. - %RETURN_TYPE %0 = qobjectDisconnectCallback(%1, %2, %3); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - - - - - - QObject* child = _findChildHelper(%CPPSELF, %2, (PyTypeObject*)%PYARG_1); - %PYARG_0 = %CONVERTTOPYTHON[QObject*](child); - - - - - - - - - - - %PYARG_0 = PyList_New(0); - _findChildrenHelper(%CPPSELF, %2, (PyTypeObject*)%PYARG_1, %PYARG_0); - - - - - - - - - - - %PYARG_0 = PyList_New(0); - _findChildrenHelper(%CPPSELF, %2, (PyTypeObject*)%PYARG_1, %PYARG_0); - - - - - - - - - - - - - - - - QString result; - if (QCoreApplication::instance()) { - PyObject *klass = PyObject_GetAttrString(%PYSELF, "__class__"); - PyObject *cname = PyObject_GetAttrString(klass, "__name__"); - result = QString(QCoreApplication::instance()->translate(Shiboken::String::toCString(cname), %1, %2, QCoreApplication::CodecForTr, %3)); - - Py_DECREF(klass); - Py_DECREF(cname); - } else { - result = QString(QString::fromLatin1(%1)); - } - %PYARG_0 = %CONVERTTOPYTHON[QString](result); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Avoid return +1 because SignalManager connect to "destroyed()" signal to control object timelife - int ret = %CPPSELF.%FUNCTION_NAME(%1); - if (ret > 0 && ((strcmp(%1, SIGNAL(destroyed())) == 0) || (strcmp(%1, SIGNAL(destroyed(QObject*))) == 0))) - ret -= PySide::SignalManager::instance().countConnectionsWith(%CPPSELF); - - %PYARG_0 = %CONVERTTOPYTHON[int](ret); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <para>URLs can be represented in two forms: encoded or unencoded. The unencoded representation is suitable for showing to users, but the encoded representation is typically what you would send to a web server. For example, the unencoded URL "http://bühler.example.com" would be sent to the server as "http://xn--bhler-kva.example.com/List%20of%20applicants.xml".</para> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Replaces every occurrence of the regular expression in *sourceString* with *after*. - Returns a new Python string with the modified contents. For example: - - :: - - s = "Banana" - re = QRegExp("a[mn]") - s = re.replace(s, "ox") - # s == "Boxoxa" - - - For regular expressions containing capturing parentheses, occurrences of \1, \2, ..., in *after* - are replaced with rx.cap(1), cap(2), ... - - :: - - t = "A <i>bon mot</i>." - re = QRegExp("<i>([^<]*)</i>") - t = re.replace(t, "\\emph{\\1}") - # t == "A \\emph{bon mot}." - - - - %1.replace(*%CPPSELF, %2); - %PYARG_0 = %CONVERTTOPYTHON[QString](%1); - - - - - - - - - - - - - - - - - - - - - - %out = %OUTTYPE(); - - - %out = %OUTTYPE(Shiboken::String::toCString(%in), Shiboken::String::len(%in)); - - - #ifdef IS_PY3K - %out = %OUTTYPE(PyBytes_AS_STRING(%in), PyBytes_GET_SIZE(%in)); - #endif - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Shiboken::AutoDecRef str(PyUnicode_AsASCIIString(%PYARG_1)); - if (!str.isNull()) { - QByteArray b(PyBytes_AS_STRING(str.object()), PyBytes_GET_SIZE (str.object())); - b.prepend(*%CPPSELF); - %PYARG_0 = %CONVERTTOPYTHON[QByteArray](b); - } - - - - - Shiboken::AutoDecRef str(PyUnicode_AsASCIIString(%PYARG_1)); - if (!str.isNull()) { - QByteArray b(PyBytes_AS_STRING(str.object()), PyBytes_GET_SIZE(str.object())); - b.append(*%CPPSELF); - %PYARG_0 = %CONVERTTOPYTHON[QByteArray](b); - } - - - - - QByteArray ba = QByteArray(PyBytes_AS_STRING(%PYARG_1), PyBytes_GET_SIZE(%PYARG_1)) + *%CPPSELF; - %PYARG_0 = %CONVERTTOPYTHON[QByteArray](ba); - - - - - - - QByteArray b(((PyObject*)%PYSELF)->ob_type->tp_name); - PyObject* aux = Shiboken::String::fromStringAndSize(%CPPSELF.constData(), %CPPSELF.size()); - if (PyUnicode_CheckExact(aux)) { - PyObject* tmp = PyUnicode_AsASCIIString(aux); - Py_DECREF(aux); - aux = tmp; - } - b += "('"; - b += QByteArray(PyBytes_AS_STRING(aux), PyBytes_GET_SIZE(aux)); - b += "')"; - %PYARG_0 = Shiboken::String::fromStringAndSize(b.constData(), b.size()); - - - - - - - - - - - - - - - if (PyBytes_Check(%PYARG_1)) { - %0 = new QByteArray(PyBytes_AsString(%PYARG_1), PyBytes_GET_SIZE(%PYARG_1)); - } if (PyUnicode_CheckExact(%PYARG_1)) { - Shiboken::AutoDecRef data(PyUnicode_AsASCIIString(%PYARG_1)); - %0 = new QByteArray(PyBytes_AsString(data.object()), PyBytes_GET_SIZE(data.object())); - } else if (Shiboken::String::check(%PYARG_1)) { - %0 = new QByteArray(Shiboken::String::toCString(%PYARG_1), Shiboken::String::len(%PYARG_1)); - } - - - - - - #if PY_VERSION_HEX < 0x03000000 - Shiboken::SbkType<QByteArray>()->tp_as_buffer = &SbkQByteArrayBufferProc; - Shiboken::SbkType<QByteArray>()->tp_flags |= Py_TPFLAGS_HAVE_GETCHARBUFFER; - #endif - - - - - %PYARG_0 = PyBytes_FromStringAndSize(%CPPSELF.%FUNCTION_NAME(), %CPPSELF.size()); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(PyBytes_AsString(%PYARG_1), PyBytes_GET_SIZE(%PYARG_1)); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - - - - - - - - - - - - - - - - - - - - - %PYARG_0 = Shiboken::String::fromStringAndSize(%CPPSELF.constData(), %CPPSELF.size()); - - - - - return %CPPSELF.count(); - - - - - if (_i < 0 || _i >= %CPPSELF.size()) { - PyErr_SetString(PyExc_IndexError, "index out of bounds"); - return 0; - } else { - char res[2]; - res[0] = %CPPSELF.at(_i); - res[1] = 0; - return PyBytes_FromStringAndSize(res, 1); - } - - - - - %CPPSELF.remove(_i, 1); - PyObject* args = Py_BuildValue("(nO)", _i, _value); - PyObject* result = Sbk_QByteArrayFunc_insert(self, args); - Py_DECREF(args); - Py_XDECREF(result); - return !result ? -1 : 0; - - - - - Py_ssize_t max = %CPPSELF.count(); - _i1 = qBound(Py_ssize_t(0), _i1, max); - _i2 = qBound(Py_ssize_t(0), _i2, max); - QByteArray ba; - if (_i1 < _i2) - ba = %CPPSELF.mid(_i1, _i2 - _i1); - return %CONVERTTOPYTHON[QByteArray](ba); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - uchar* ptr = (uchar*) Shiboken::Buffer::getPointer(%PYARG_1); - %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(ptr); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - - - - - - - - %PYARG_0 = Shiboken::Buffer::newObject(%CPPSELF.%FUNCTION_NAME(%1, %2, %3), %2, Shiboken::Buffer::ReadWrite); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(%1, Shiboken::String::len(%PYARG_1)); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - - - - - - - - - - - - - - QByteArray ba; - ba.resize(%2); - %CPPSELF.%FUNCTION_NAME(ba.data(), ba.size()); - %PYARG_0 = %CONVERTTOPYTHON[QByteArray](ba); - - - - - - - - %RETURN_TYPE %out; - if (PyBytes_Check(%PYARG_0)) { - %out = PyBytes_GET_SIZE((PyObject*)%PYARG_0); - memcpy(%1, PyBytes_AS_STRING((PyObject*)%PYARG_0), %out); - } else if (Shiboken::String::check(%PYARG_0)) { - %out = Shiboken::String::len((PyObject*)%PYARG_0); - memcpy(%1, Shiboken::String::toCString((PyObject*)%PYARG_0), %out); - } - - - - - - QByteArray ba; - ba.resize(%2); - %CPPSELF.%FUNCTION_NAME(ba.data(), ba.size()); - %PYARG_0 = %CONVERTTOPYTHON[QByteArray](ba); - - - - - - - - %RETURN_TYPE %out; - if (!PyBytes_Check(%PYARG_0)) { - %out = -1; - } else { - %out = PyBytes_GET_SIZE((PyObject*)%PYARG_0); - memcpy(%1, PyBytes_AS_STRING((PyObject*)%PYARG_0), %out); - } - - - - - - - - - - - - %CPPSELF.%FUNCTION_NAME(Shiboken::String::toCString(%PYARG_1), Shiboken::String::len(%PYARG_1)); - - - - - - - - - - - - - - - - - - - - - - %CPPSELF.unlock(); - - - - - - - - - - - - - - - - - - - - - - - Shiboken::AutoDecRef fileNo(PyObject_GetAttrString(%PYARG_1, "fileno")); - if (!fileNo.isNull()) { - Shiboken::AutoDecRef fileNoValue(PyObject_CallObject(fileNo, 0)); - if (%CHECKTYPE[int](fileNoValue)) { - int cppFileNoValue = %CONVERTTOCPP[int](fileNoValue); - %0 = new %TYPE(cppFileNoValue, %2, %3); - } - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Py_ssize_t size; - uchar* ptr = (uchar*) Shiboken::Buffer::getPointer(%PYARG_1, &size); - %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(const_cast<const uchar*>(ptr), size); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - - - - - - - - - - - - - - - - - - - - // %FUNCTION_NAME() - disable generation of c++ function call - (void) %2; // remove warning about unused variable - Shiboken::AutoDecRef emptyTuple(PyTuple_New(0)); - PyObject* pyTimer = Shiboken::SbkType<QTimer>()->tp_new(Shiboken::SbkType<QTimer>(), emptyTuple, 0); - Shiboken::SbkType<QTimer>()->tp_init(pyTimer, emptyTuple, 0); - - QTimer* timer = %CONVERTTOCPP[QTimer*](pyTimer); - Shiboken::AutoDecRef result( - PyObject_CallMethod(pyTimer, - const_cast<char*>("connect"), - const_cast<char*>("OsOs"), - pyTimer, - SIGNAL(timeout()), - %PYARG_2, - %3) - ); - Shiboken::Object::releaseOwnership((SbkObject*)pyTimer); - Py_XDECREF(pyTimer); - timer->setSingleShot(true); - timer->connect(timer, SIGNAL(timeout()), timer, SLOT(deleteLater())); - timer->start(%1); - - - - - // %FUNCTION_NAME() - disable generation of c++ function call - Shiboken::AutoDecRef emptyTuple(PyTuple_New(0)); - PyObject *pyTimer = Shiboken::SbkType<QTimer>()->tp_new(Shiboken::SbkType<QTimer>(), emptyTuple, 0); - Shiboken::SbkType<QTimer>()->tp_init(pyTimer, emptyTuple, 0); - QTimer* timer = %CONVERTTOCPP[QTimer*](pyTimer); - timer->setSingleShot(true); - - if (PyObject_TypeCheck(%2, &PySideSignalInstanceType)) { - PySideSignalInstance* signalInstance = reinterpret_cast<PySideSignalInstance*>(%2); - Shiboken::AutoDecRef signalSignature(Shiboken::String::fromFormat("2%s", PySide::Signal::getSignature(signalInstance))); - Shiboken::AutoDecRef result( - PyObject_CallMethod(pyTimer, - const_cast<char*>("connect"), - const_cast<char*>("OsOO"), - pyTimer, - SIGNAL(timeout()), - PySide::Signal::getObject(signalInstance), - signalSignature.object()) - ); - } else { - Shiboken::AutoDecRef result( - PyObject_CallMethod(pyTimer, - const_cast<char*>("connect"), - const_cast<char*>("OsO"), - pyTimer, - SIGNAL(timeout()), - %PYARG_2) - ); - } - - timer->connect(timer, SIGNAL(timeout()), timer, SLOT(deleteLater()), Qt::DirectConnection); - Shiboken::Object::releaseOwnership((SbkObject*)pyTimer); - Py_XDECREF(pyTimer); - timer->start(%1); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - uchar* ptr = (uchar*)Shiboken::Buffer::getPointer(%PYARG_1); - %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(ptr); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - - - - - - - - %PYARG_0 = Shiboken::Buffer::newObject(%CPPSELF.%FUNCTION_NAME(%1, %2, %3), %2, Shiboken::Buffer::ReadWrite); - - - - - - QByteArray ba; - ba.resize(%2); - %CPPSELF.%FUNCTION_NAME(ba.data(), ba.size()); - %PYARG_0 = PyBytes_FromStringAndSize(ba.constData(), ba.size()); - - - - - - - - %RETURN_TYPE %out; - if (!Shiboken::String::check(%PYARG_0)) { - %out = -1; - } else { - %out = PyBytes_GET_SIZE((PyObject*)%PYARG_0); - memcpy(%1, PyBytes_AS_STRING((PyObject*)%PYARG_0), %out); - } - - - - - - QByteArray ba; - ba.resize(%2); - %CPPSELF.%FUNCTION_NAME(ba.data(), ba.size()); - %PYARG_0 = PyBytes_FromStringAndSize(ba.constData(), ba.size()); - - - - - - - - %RETURN_TYPE %out; - if (!Shiboken::String::check(%PYARG_0)) { - %out = -1; - } else { - %out = PyBytes_GET_SIZE((PyObject*)%PYARG_0); - memcpy(%1, PyBytes_AS_STRING((PyObject*)%PYARG_0), %out); - } - - - - - - - - - - - - - - - - - - - - - - - - - - - qint64 pid; - %RETURN_TYPE retval = %TYPE::%FUNCTION_NAME(%1, %2, %3, &pid); - %PYARG_0 = PyTuple_New(2); - PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval)); - PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[qint64](pid)); - - - - - - - long result; - #ifdef WIN32 - _PROCESS_INFORMATION* procInfo = %CPPSELF.%FUNCTION_NAME(); - result = procInfo ? procInfo->dwProcessId : 0; - #else - result = %CPPSELF.%FUNCTION_NAME(); - #endif - %PYARG_0 = %CONVERTTOPYTHON[long](result); - - - - - - - - - - - - - - - - - - -.. class:: QCoreApplication(args) - - Constructs a Qt kernel application. Kernel applications are applications - without a graphical user interface. These type of applications are used - at the console or as server processes. - - The *args* argument is processed by the application, and made available - in a more convenient form by the :meth:`~QCoreApplication.arguments()` - method. - - - - QCoreApplication_constructor(%PYSELF, args, &%0); - - - - - - - - - - - - QCoreApplication* app = QCoreApplication::instance(); - PyObject* pyApp = Py_None; - if (app) { - pyApp = reinterpret_cast<PyObject*>(Shiboken::BindingManager::instance().retrieveWrapper(app)); - if (!pyApp) - pyApp = %CONVERTTOPYTHON[QCoreApplication*](app); // this will keep app live after python exit (extra ref) - } - %PYARG_0 = pyApp; - Py_XINCREF(%PYARG_0); - - - - - - - - - - - - - - - - - - - - - - - - - - - - long *%out = new long; - %out = 0; - - - - - - %RETURN_TYPE %out = false; - if (PySequence_Check(%PYARG_0) && (PySequence_Size(%PYARG_0) == 2)) { - Shiboken::AutoDecRef pyResult(PySequence_GetItem(%PYARG_0, 0)); - %out = %CONVERTTOCPP[bool](pyResult); - } - - - - %PYARG_0 = PyTuple_New(2); - PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](%0)); - PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[long](*result_out)); - delete result_out; - - - - - - - - - - - - - - - - - - - - - - .. warning:: QSettings.value can return different types (QVariant types) depending on the platform it's running on, so the safest way to use it is always casting the result to the desired type, e.g.: int(settings.value("myKey")) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - QByteArray data; - data.resize(%2); - int result = %CPPSELF.%FUNCTION_NAME(data.data(), data.size()); - if (result == -1) { - Py_INCREF(Py_None); - %PYARG_0 = Py_None; - } else { - %PYARG_0 = PyBytes_FromStringAndSize(data.data(), result); - } - - - - - - - - int r = %CPPSELF.%FUNCTION_NAME(%1, Shiboken::String::len(%PYARG_1)); - %PYARG_0 = %CONVERTTOPYTHON[int](r); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - QString& res = *%0; - %PYARG_0 = %CONVERTTOPYTHON[QString](res); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Shiboken::Object::releaseOwnership(%PYARG_0); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - for(int counter = 0; counter < %CPPSELF.animationCount(); ++counter ) { - QAbstractAnimation* animation = %CPPSELF.animationAt(counter); - PyObject* obj = %CONVERTTOPYTHON[QAbstractAnimation*](animation); - Shiboken::Object::setParent(NULL, obj); - Py_DECREF(obj); - } - %CPPSELF.clear(); - - - - - - - - - - - - - - PySideEasingCurveFunctor::init(); - - - - - QEasingCurve::EasingFunction func = PySideEasingCurveFunctor::createCustomFuntion(%PYSELF, %PYARG_1); - if (func) - %CPPSELF.%FUNCTION_NAME(func); - - - - - //%FUNCTION_NAME() - %PYARG_0 = PySideEasingCurveFunctor::callable(%PYSELF); - - - - - - - - - - - - - - - - - - - - - - - - - <code>machine = QStateMachine() - -s1 = new QState() -s11 = new QState(s1) -s12 = new QState(s1) - -s1h = QHistoryState(s1) -s1h.setDefaultState(s11) - -machine.addState(s1) - -s2 = QState() -machine.addState(s2) - -button = QPushButton() -# Clicking the button will cause the state machine to enter the child state -# that s1 was in the last time s1 was exited, or the history state's default -# state if s1 has never been entered. -s1.addTransition(button.clicked, s1h)</code> - - - - - - - - - - - - - - - - - - - - - - if (PyObject_TypeCheck(%1, &PySideSignalInstanceType)) { - PyObject* dataSource = PySide::Signal::getObject((PySideSignalInstance*) %PYARG_1); - Shiboken::AutoDecRef obType(PyObject_Type(dataSource)); - QObject* sender = %CONVERTTOCPP[QObject*](dataSource); - if (sender) { - const char* dataSignature = PySide::Signal::getSignature((PySideSignalInstance*) %PYARG_1); - QByteArray signature(dataSignature); // Append SIGNAL flag (2) - %0 = new QSignalTransitionWrapper(sender, "2" + signature, %2); - } - } - - - - - - - - - - - - - - - - - - QString signalName(%2); - if (PySide::SignalManager::registerMetaMethod(%1, signalName.mid(1).toAscii().data(), QMetaMethod::Signal)) { - QSignalTransition* %0 = %CPPSELF->addTransition(%1, %2, %3); - %PYARG_0 = %CONVERTTOPYTHON[QSignalTransition*](%0); - } else { - Py_INCREF(Py_None); - %PYARG_0 = Py_None; - } - - - - - - - - - - - - - - - // Obviously the label used by the following goto is a very awkward solution, - // since it refers to a name very tied to the generator implementation. - // Check bug #362 for more information on this - // http://bugs.openbossa.org/show_bug.cgi?id=362 - if (!PyObject_TypeCheck(%1, &PySideSignalInstanceType)) - goto Sbk_%TYPEFunc_%FUNCTION_NAME_TypeError; - PySideSignalInstance* signalInstance = reinterpret_cast<PySideSignalInstance*>(%1); - QObject* sender = %CONVERTTOCPP[QObject*](PySide::Signal::getObject(signalInstance)); - QSignalTransition* %0 = %CPPSELF->%FUNCTION_NAME(sender, PySide::Signal::getSignature(signalInstance), %2); - %PYARG_0 = %CONVERTTOPYTHON[QSignalTransition*](%0); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %PYARG_0 = PySet_New(0); - foreach(QAbstractState* abs_state, %CPPSELF.configuration()) { - Shiboken::AutoDecRef obj(%CONVERTTOPYTHON[QAbstractState*](abs_state)); - Shiboken::Object::setParent(self, obj); - PySet_Add(%PYARG_0, obj); - } - - - - - - - - %PYARG_0 = PyList_New(0); - foreach(QAbstractAnimation* abs_anim, %CPPSELF.defaultAnimations()) { - Shiboken::AutoDecRef obj(%CONVERTTOPYTHON[QAbstractAnimation*](abs_anim)); - Shiboken::Object::setParent(self, obj); - PyList_Append(%PYARG_0, obj); - } - - - - - - - - - - - %PYARG_0 = Shiboken::String::fromFormat("2%s", QMetaObject::normalizedSignature(%1).constData()); - - - - - - %PYARG_0 = Shiboken::String::fromFormat("1%s", QMetaObject::normalizedSignature(%1).constData()); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - extern bool - qRegisterResourceData(int, - const unsigned char *, - const unsigned char *, - const unsigned char *); - - extern bool - qUnregisterResourceData(int, - const unsigned char *, - const unsigned char *, - const unsigned char *); - - - - %RETURN_TYPE %0 = %FUNCTION_NAME(%1, (uchar*)PyBytes_AS_STRING(%PYARG_2), - (uchar*)PyBytes_AS_STRING(%PYARG_3), - (uchar*)PyBytes_AS_STRING(%PYARG_4)); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - - - - - %RETURN_TYPE %0 = %FUNCTION_NAME(%1, (uchar*)PyBytes_AS_STRING(%PYARG_2), - (uchar*)PyBytes_AS_STRING(%PYARG_3), - (uchar*)PyBytes_AS_STRING(%PYARG_4)); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PySide/QtCore/typesystem_core.xml.in b/PySide/QtCore/typesystem_core.xml.in new file mode 100644 index 000000000..9de2082f5 --- /dev/null +++ b/PySide/QtCore/typesystem_core.xml.in @@ -0,0 +1,24 @@ + + + + + + diff --git a/PySide/QtCore/typesystem_core_common.xml b/PySide/QtCore/typesystem_core_common.xml new file mode 100644 index 000000000..965433b8d --- /dev/null +++ b/PySide/QtCore/typesystem_core_common.xml @@ -0,0 +1,4080 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + // qFatal doesn't have a stream version, so we do a + // qWarning call followed by a qFatal() call using a + // literal. + qWarning() << %1; + qFatal("[A qFatal() call was made from Python code]"); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + return PyBool_FromLong((bool)%in); + + + + %out = %OUTTYPE(%in == Py_True); + + + + + + + + + bool py2kStrCheck(PyObject* obj) + { + #ifdef IS_PY3K + return false; + #else + return PyString_Check(obj); + #endif + } + + + + + + + const int N = %in.length(); + wchar_t* str = new wchar_t[N]; + %in.toWCharArray(str); + PyObject* %out = PyUnicode_FromWideChar(str, N); + delete[] str; + return %out; + + + + Py_UNICODE* unicode = PyUnicode_AS_UNICODE(%in); + #if defined(Py_UNICODE_WIDE) + // cast as Py_UNICODE can be a different type + %out = QString::fromUcs4((const uint*)unicode); + #else + %out = QString::fromUtf16(unicode, PyUnicode_GET_SIZE(%in)); + #endif + + + #ifndef IS_PY3K + const char* str = %CONVERTTOCPP[const char*](%in); + %out = %OUTTYPE(str); + #endif + + + %out = %OUTTYPE(); + + + + + + + + + + const int N = %in.toString().length(); + wchar_t* str = new wchar_t[N]; + %in.toString().toWCharArray(str); + PyObject* %out = PyUnicode_FromWideChar(str, N); + delete[] str; + return %out; + + + + %out = %OUTTYPE(); + + + + + + + + wchar_t c = (wchar_t)%in.unicode(); + return PyUnicode_FromWideChar(&c, 1); + + + + char c = %CONVERTTOCPP[char](%in); + %out = %OUTTYPE(c); + + + int i = %CONVERTTOCPP[int](%in); + %out = %OUTTYPE(i); + + + %out = %OUTTYPE(); + + + + + + + + + + if (!%in.isValid()) + Py_RETURN_NONE; + + if (qstrcmp(%in.typeName(), "QVariantList") == 0) { + QList<QVariant> var = %in.value<QVariantList>(); + return %CONVERTTOPYTHON[QList<QVariant>](var); + } + + if (qstrcmp(%in.typeName(), "QStringList") == 0) { + QStringList var = %in.value<QStringList>(); + return %CONVERTTOPYTHON[QList<QString>](var); + } + + if (qstrcmp(%in.typeName(), "QVariantMap") == 0) { + QMap<QString, QVariant> var = %in.value<QVariantMap>(); + return %CONVERTTOPYTHON[QMap<QString, QVariant>](var); + } + + Shiboken::Conversions::SpecificConverter converter(cppInRef.typeName()); + if (converter) { + void* ptr = cppInRef.data(); + return converter.toPython(ptr); + } + PyErr_Format(PyExc_RuntimeError, "Can't find converter for '%s'.", %in.typeName()); + return 0; + + + + %out = %OUTTYPE(%in == Py_True); + + + %out = %OUTTYPE(); + + + QString in = %CONVERTTOCPP[QString](%in); + %out = %OUTTYPE(in); + + + QByteArray in = %CONVERTTOCPP[QByteArray](%in); + %out = %OUTTYPE(in); + + + double in = %CONVERTTOCPP[double](%in); + %out = %OUTTYPE(in); + + + int in = %CONVERTTOCPP[int](%in); + %out = %OUTTYPE(in); + + + qlonglong in = %CONVERTTOCPP[qlonglong](%in); + %out = %OUTTYPE(in); + + + int in = %CONVERTTOCPP[int](%in); + %out = %OUTTYPE(in); + + + // a class supported by QVariant? + int typeCode; + const char* typeName = QVariant_resolveMetaType(%in->ob_type, &typeCode); + if (!typeCode || !typeName) + return; + QVariant var(typeCode, (void*)0); + Shiboken::Conversions::SpecificConverter converter(typeName); + converter.toCpp(pyIn, var.data()); + %out = var; + + + QVariant ret = QVariant_convertToVariantMap(%in); + %out = ret.isValid() ? ret : QVariant::fromValue<PySide::PyObjectWrapper>(%in); + + + %out = QVariant_convertToVariantList(%in); + + + // Is a shiboken type not known by Qt + %out = QVariant::fromValue<PySide::PyObjectWrapper>(%in); + + + + + + static const char* QVariant_resolveMetaType(PyTypeObject* type, int* typeId) + { + if (PyObject_TypeCheck(type, &SbkObjectType_Type)) { + SbkObjectType* sbkType = (SbkObjectType*)type; + const char* typeName = Shiboken::ObjectType::getOriginalName(sbkType); + if (!typeName) + return 0; + bool valueType = '*' != typeName[qstrlen(typeName) - 1]; + // Do not convert user type of value + if (valueType &∓ Shiboken::ObjectType::isUserType(type)) + return 0; + int obTypeId = QMetaType::type(typeName); + if (obTypeId) { + *typeId = obTypeId; + return typeName; + } + // Do not resolve types to value type + if (valueType) + return 0; + // find in base types + if (type->tp_base) { + return QVariant_resolveMetaType(type->tp_base, typeId); + } else if (type->tp_bases) { + for(int i = 0; i < PyTuple_GET_SIZE(type->tp_bases); ++i) { + const char* derivedName = QVariant_resolveMetaType((PyTypeObject*)PyTuple_GET_ITEM(type->tp_bases, i), typeId); + if (derivedName) + return derivedName; + } + } + } + *typeId = 0; + return 0; + } + static QVariant QVariant_convertToValueList(PyObject* list) + { + if (PySequence_Size(list) < 1) + return QVariant(); + Shiboken::AutoDecRef element(PySequence_GetItem(list, 0)); + int typeId; + const char* typeName = QVariant_resolveMetaType(element.cast<PyTypeObject*>(), &typeId); + if (typeName) { + QByteArray listTypeName("QList<"); + listTypeName += typeName; + listTypeName += '>'; + typeId = QMetaType::type(listTypeName); + if (typeId > 0) { + Shiboken::Conversions::SpecificConverter converter(listTypeName); + if (converter) { + QVariant var(typeId, (void*)0); + converter.toCpp(list, &var); + return var; + } + qWarning() << "Type converter for :" << listTypeName << "not registered."; + } + } + return QVariant(); + } + static bool QVariant_isStringList(PyObject *list) + { + bool allString = true; + Shiboken::AutoDecRef fast(PySequence_Fast(list, "Failed to convert QVariantList")); + Py_ssize_t size = PySequence_Fast_GET_SIZE(fast.object()); + for(int i = 0; i < size; ++i) { + PyObject* item = PySequence_Fast_GET_ITEM(fast.object(), i); + if (!%CHECKTYPE[QString](item)) { + allString = false; + break; + } + } + return allString; + } + static QVariant QVariant_convertToVariantMap(PyObject* map) + { + Py_ssize_t pos = 0; + Shiboken::AutoDecRef keys(PyDict_Keys(map)); + if (!QVariant_isStringList(keys)) + return QVariant(); + PyObject* key; + PyObject* value; + QMap<QString,QVariant> ret; + while (PyDict_Next(map, &pos, &key, &value)) { + QString cppKey = %CONVERTTOCPP[QString](key); + QVariant cppValue = %CONVERTTOCPP[QVariant](value); + ret.insert(cppKey, cppValue); + } + return QVariant(ret); + } + static QVariant QVariant_convertToVariantList(PyObject* list) + { + if (QVariant_isStringList(list)) { + QList<QString > lst = %CONVERTTOCPP[QList<QString>](list); + return QVariant(QStringList(lst)); + } + QVariant valueList = QVariant_convertToValueList(list); + if (valueList.isValid()) + return valueList; + QList<QVariant> lst; + Shiboken::AutoDecRef fast(PySequence_Fast(list, "Failed to convert QVariantList")); + Py_ssize_t size = PySequence_Fast_GET_SIZE(fast.object()); + for (int i = 0; i < size; ++i) { + PyObject* pyItem = PySequence_Fast_GET_ITEM(fast.object(), i); + QVariant item = %CONVERTTOCPP[QVariant](pyItem); + lst.append(item); + } + return QVariant(lst); + } + + + + + + const char* typeName = QVariant::typeToName(%in); + PyObject* %out; + PyTypeObject* pyType = 0; + if (typeName) + pyType = Shiboken::Conversions::getPythonTypeObject(typeName); + %out = pyType ? ((PyObject*)pyType) : Py_None; + Py_INCREF(%out); + return %out; + + + + %out = QVariant::Invalid; + + + const char* typeName; + if (Shiboken::String::checkType((PyTypeObject*)%in)) + typeName = "QString"; + else if (%in == (PyObject*)&PyFloat_Type) + typeName = "double"; // float is a UserType in QVariant. + else if (%in == (PyObject*)&PyLong_Type) + typeName = "int"; // long is a UserType in QVariant. + else if (%in->ob_type == &SbkObjectType_Type) + typeName = Shiboken::ObjectType::getOriginalName((SbkObjectType*)%in); + else + typeName = ((PyTypeObject*)%in)->tp_name; + %out = QVariant::nameToType(typeName); + + + %out = QVariant::nameToType(Shiboken::String::toCString(%in)); + + + %out = QVariant::nameToType("QVariantMap"); + + + const char* typeName; + if (QVariantType_isStringList(%in)) + typeName = "QStringList"; + else + typeName = "QVariantList"; + %out = QVariant::nameToType(typeName); + + + + + + + + Shiboken::Conversions::registerConverterName(SbkPySide_QtCoreTypeConverters[SBK_QTCORE_QMAP_QSTRING_QVARIANT_IDX], "QVariantMap"); + + + + static bool QVariantType_isStringList(PyObject* list) + { + bool allString = true; + Shiboken::AutoDecRef fast(PySequence_Fast(list, "Failed to convert QVariantList")); + Py_ssize_t size = PySequence_Fast_GET_SIZE(fast.object()); + for(int i=0; i < size; i++) { + PyObject* item = PySequence_Fast_GET_ITEM(fast.object(), i); + if (!%CHECKTYPE[QString](item)) { + allString = false; + break; + } + } + return allString; + } + static bool QVariantType_checkAllStringKeys(PyObject* dict) + { + Shiboken::AutoDecRef keys(PyDict_Keys(dict)); + return QVariantType_isStringList(keys); + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PyObject* %out = PyTuple_New(2); + PyTuple_SET_ITEM(%out, 0, %CONVERTTOPYTHON[%INTYPE_0](%in.first)); + PyTuple_SET_ITEM(%out, 1, %CONVERTTOPYTHON[%INTYPE_1](%in.second)); + return %out; + + + + %out.first = %CONVERTTOCPP[%OUTTYPE_0](PySequence_Fast_GET_ITEM(%in, 0)); + %out.second = %CONVERTTOCPP[%OUTTYPE_1](PySequence_Fast_GET_ITEM(%in, 1)); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + double _abs = qAbs(%1); + %PYARG_0 = %CONVERTTOPYTHON[double](_abs); + + + + + namespace PySide { + static QStack<PyObject*> globalPostRoutineFunctions; + void globalPostRoutineCallback() + { + foreach(PyObject* callback, globalPostRoutineFunctions) { + Shiboken::AutoDecRef result(PyObject_CallObject(callback, NULL)); + Py_DECREF(callback); + } + globalPostRoutineFunctions.clear(); + } + void addPostRoutine(PyObject* callback) + { + if (PyCallable_Check(callback)) { + globalPostRoutineFunctions << callback; + Py_INCREF(callback); + } else { + PyErr_SetString(PyExc_TypeError, "qAddPostRoutine: The argument must be a callable object."); + } + } + } // namespace + + + + PySide::addPostRoutine(%1); + + + + qAddPostRoutine(PySide::globalPostRoutineCallback); + + + + QList<QByteArray> version = QByteArray(qVersion()).split('.'); + PyObject* pyQtVersion = PyTuple_New(3); + for (int i = 0; i < 3; ++i) + PyTuple_SET_ITEM(pyQtVersion, i, PyInt_FromLong(version[i].toInt())); + PyModule_AddObject(module, "__version_info__", pyQtVersion); + PyModule_AddStringConstant(module, "__version__", qVersion()); + + + + { // Avoid name clash + Shiboken::AutoDecRef atexit(Shiboken::Module::import("atexit")); + Shiboken::AutoDecRef regFunc(PyObject_GetAttrString(atexit, "register")); + PyObject* shutDownFunc = PyObject_GetAttrString(module, "__moduleShutdown"); + Shiboken::AutoDecRef args(PyTuple_New(1)); + PyTuple_SET_ITEM(args, 0, shutDownFunc); + Shiboken::AutoDecRef retval(PyObject_Call(regFunc, args, 0)); + Q_ASSERT(!retval.isNull()); + } + + + + + PySide::runCleanupFunctions(); + + + + + + Shiboken::Conversions::registerConverterName(SbkPySide_QtCoreTypeConverters[SBK_QSTRING_IDX], "unicode"); + Shiboken::Conversions::registerConverterName(SbkPySide_QtCoreTypeConverters[SBK_QSTRING_IDX], "str"); + Shiboken::Conversions::registerConverterName(SbkPySide_QtCoreTypeConverters[SBK_QTCORE_QLIST_QVARIANT_IDX], "QVariantList"); + + PySide::init(module); + Py_AtExit(QtCoreModuleExit); + + + #include <pyside.h> + + + + // Define a global variable to handle qInstallMsgHandler callback + static PyObject* qtmsghandler = 0; + + static void msgHandlerCallback(QtMsgType type, const char* msg) + { + Shiboken::GilState state; + Shiboken::AutoDecRef arglist(PyTuple_New(2)); + PyTuple_SET_ITEM(arglist, 0, %CONVERTTOPYTHON[QtMsgType](type)); + PyTuple_SET_ITEM(arglist, 1, %CONVERTTOPYTHON[const char*](msg)); + Shiboken::AutoDecRef ret(PyObject_CallObject(qtmsghandler, arglist)); + } + static void QtCoreModuleExit() + { + PySide::SignalManager::instance().clear(); + } + + + + if (%PYARG_1 == Py_None) { + qInstallMsgHandler(0); + %PYARG_0 = qtmsghandler ? qtmsghandler : Py_None; + qtmsghandler = 0; + } else if (!PyCallable_Check(%PYARG_1)) { + PyErr_SetString(PyExc_TypeError, "parameter must be callable"); + } else { + %PYARG_0 = qtmsghandler ? qtmsghandler : Py_None; + Py_INCREF(%PYARG_1); + qtmsghandler = %PYARG_1; + qInstallMsgHandler(msgHandlerCallback); + } + + if (%PYARG_0 == Py_None) + Py_INCREF(%PYARG_0); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + namespace PySide { + template<> inline uint hash(const QLine& v) { + return qHash(qMakePair(qMakePair(v.x1(), v.y1()), qMakePair(v.x2(), v.y2()))); + } + }; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + QPointF p; + %RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, &p); + %PYARG_0 = PyTuple_New(2); + PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval)); + PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QPointF](p)); + + + + + + + Returns a read only buffer object pointing to the segment of data that this resource represents. If the resource is compressed the data returns is compressed and qUncompress() must be used to access the data. If the resource is a directory None is returned. + + + + + + const void* d = %CPPSELF.%FUNCTION_NAME(); + if (d) { + %PYARG_0 = Shiboken::Buffer::newObject(d, %CPPSELF.size()); + } else { + Py_INCREF(Py_None); + %PYARG_0 = Py_None; + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %out = %OUTTYPE(); + + + int day = PyDateTime_GET_DAY(%in); + int month = PyDateTime_GET_MONTH(%in); + int year = PyDateTime_GET_YEAR(%in); + %out = %OUTTYPE(year, month, day); + + + + + + + + + + + + + + + + + + + + + + + + + + + if (!PyDateTimeAPI) PyDateTime_IMPORT; + %PYARG_0 = PyDate_FromDate(%CPPSELF.year(), %CPPSELF.month(), %CPPSELF.day()); + + + + + + + + + + + + + + + + + int year, month, day; + %BEGIN_ALLOW_THREADS + %CPPSELF.%FUNCTION_NAME(&year, &month, &day); + %END_ALLOW_THREADS + %PYARG_0 = PyTuple_New(3); + PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[int](year)); + PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[int](month)); + PyTuple_SET_ITEM(%PYARG_0, 2, %CONVERTTOPYTHON[int](day)); + + + + + + + + + + + int yearNumber; + %BEGIN_ALLOW_THREADS + int week = %CPPSELF.%FUNCTION_NAME(&yearNumber); + %END_ALLOW_THREADS + %PYARG_0 = PyTuple_New(2); + PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[int](week)); + PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[int](yearNumber)); + + + + + + + + + + + + + + + %out = %OUTTYPE(); + + + int day = PyDateTime_GET_DAY(%in); + int month = PyDateTime_GET_MONTH(%in); + int year = PyDateTime_GET_YEAR(%in); + int hour = PyDateTime_DATE_GET_HOUR(%in); + int min = PyDateTime_DATE_GET_MINUTE(%in); + int sec = PyDateTime_DATE_GET_SECOND(%in); + int usec = PyDateTime_DATE_GET_MICROSECOND(%in); + %out = %OUTTYPE(QDate(year, month, day), QTime(hour, min, sec, usec/1000)); + + + + + + + + + + + + + QDate date(%1, %2, %3); + QTime time(%4, %5, %6, %7); + %0 = new %TYPE(date, time, Qt::TimeSpec(%8)); + + + + + + + + + + + + + + + + + + + + + QDate date = %CPPSELF.date(); + QTime time = %CPPSELF.time(); + if (!PyDateTimeAPI) PyDateTime_IMPORT; + %PYARG_0 = PyDateTime_FromDateAndTime(date.year(), date.month(), date.day(), time.hour(), time.minute(), time.second(), time.msec()*1000); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + namespace PySide { + template<> inline uint hash(const QPoint& v) { + return qHash(qMakePair(v.x(), v.y())); + } + }; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + namespace PySide { + template<> inline uint hash(const QRect& v) { + return qHash(qMakePair(qMakePair(v.x(), v.y()), qMakePair(v.width(), v.height()))); + } + }; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + namespace PySide { + template<> inline uint hash(const QSize& v) { + return qHash(qMakePair(v.width(), v.height())); + } + }; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %out = %OUTTYPE(); + + + int hour = PyDateTime_TIME_GET_HOUR(%in); + int min = PyDateTime_TIME_GET_MINUTE(%in); + int sec = PyDateTime_TIME_GET_SECOND(%in); + int usec = PyDateTime_TIME_GET_MICROSECOND(%in); + %out = %OUTTYPE(hour, min, sec, usec/1000); + + + + + + + + + + + + + + + + + + + + + + + + + + + if (!PyDateTimeAPI) PyDateTime_IMPORT; + %PYARG_0 = PyTime_FromTime(%CPPSELF.hour(), %CPPSELF.minute(), %CPPSELF.second(), %CPPSELF.msec()*1000); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + return %CPPSELF.size(); + + + + + if (_i < 0 || _i >= %CPPSELF.size()) { + PyErr_SetString(PyExc_IndexError, "index out of bounds"); + return 0; + } + bool ret = %CPPSELF.at(_i); + return %CONVERTTOPYTHON[bool](ret); + + + + + PyObject* args = Py_BuildValue("(iiO)", _i, 1, _value); + PyObject* result = Sbk_QBitArrayFunc_setBit(self, args); + Py_DECREF(args); + Py_XDECREF(result); + return !result ? -1 : 0; + + + + + + + + + + + + + + + + + + + + + + %CPPSELF.unlock(); + + + + + + + + + + + + + + %CPPSELF.unlock(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(%1, %2, %PYARG_3); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + + + Creates a model index for the given row and column with the internal pointer ptr. + When using a QSortFilterProxyModel, its indexes have their own internal pointer. It is not advisable to access this internal pointer outside of the model. Use the data() function instead. + This function provides a consistent interface that model subclasses must use to create model indexes. + + .. warning:: Because of some Qt/Python itegration rules, the ptr argument do not get the reference incremented during the QModelIndex life time. So it is necessary to keep the object used on ptr argument alive during the whole process. Do not destroy the object if you are not sure about that. + + + + + + + + + + + + + + + + + + + + + + + + %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + // %FUNCTION_NAME() - disable generation of function call. + %RETURN_TYPE %0 = qobjectConnect(%1, %2, %CPPSELF, %3, %4); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + + + + + + + + // %FUNCTION_NAME() - disable generation of function call. + %RETURN_TYPE %0 = qobjectConnect(%1, %2, %3, %4, %5); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + + + + + + + + + + // %FUNCTION_NAME() - disable generation of function call. + %RETURN_TYPE %0 = qobjectConnectCallback(%1, %2, %PYARG_3, %4); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + + + + + + + + + + // %FUNCTION_NAME() - disable generation of function call. + %RETURN_TYPE %0 = qobjectConnectCallback(%CPPSELF, %1, %PYARG_2, %3); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + + + + + + + + + // %FUNCTION_NAME() - disable generation of function call. + %RETURN_TYPE %0 = qobjectConnect(%CPPSELF, %1, %2, %3, %4); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + + + + + %RETURN_TYPE %0 = PySide::SignalManager::instance().emitSignal(%CPPSELF, %1, %PYARG_2); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + + + + + // %FUNCTION_NAME() - disable generation of function call. + %RETURN_TYPE %0 = qobjectDisconnectCallback(%CPPSELF, %1, %2); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + + + + + // %FUNCTION_NAME() - disable generation of function call. + %RETURN_TYPE %0 = qobjectDisconnectCallback(%1, %2, %3); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + + + + + + QObject* child = _findChildHelper(%CPPSELF, %2, (PyTypeObject*)%PYARG_1); + %PYARG_0 = %CONVERTTOPYTHON[QObject*](child); + + + + + + + + + + + %PYARG_0 = PyList_New(0); + _findChildrenHelper(%CPPSELF, %2, (PyTypeObject*)%PYARG_1, %PYARG_0); + + + + + + + + + + + %PYARG_0 = PyList_New(0); + _findChildrenHelper(%CPPSELF, %2, (PyTypeObject*)%PYARG_1, %PYARG_0); + + + + + + + + + + + + + + + + QString result; + if (QCoreApplication::instance()) { + PyObject *klass = PyObject_GetAttrString(%PYSELF, "__class__"); + PyObject *cname = PyObject_GetAttrString(klass, "__name__"); + result = QString(QCoreApplication::instance()->translate(Shiboken::String::toCString(cname), %1, %2, QCoreApplication::CodecForTr, %3)); + + Py_DECREF(klass); + Py_DECREF(cname); + } else { + result = QString(QString::fromLatin1(%1)); + } + %PYARG_0 = %CONVERTTOPYTHON[QString](result); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + // Avoid return +1 because SignalManager connect to "destroyed()" signal to control object timelife + int ret = %CPPSELF.%FUNCTION_NAME(%1); + if (ret > 0 && ((strcmp(%1, SIGNAL(destroyed())) == 0) || (strcmp(%1, SIGNAL(destroyed(QObject*))) == 0))) + ret -= PySide::SignalManager::instance().countConnectionsWith(%CPPSELF); + + %PYARG_0 = %CONVERTTOPYTHON[int](ret); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <para>URLs can be represented in two forms: encoded or unencoded. The unencoded representation is suitable for showing to users, but the encoded representation is typically what you would send to a web server. For example, the unencoded URL "http://bühler.example.com" would be sent to the server as "http://xn--bhler-kva.example.com/List%20of%20applicants.xml".</para> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Replaces every occurrence of the regular expression in *sourceString* with *after*. + Returns a new Python string with the modified contents. For example: + + :: + + s = "Banana" + re = QRegExp("a[mn]") + s = re.replace(s, "ox") + # s == "Boxoxa" + + + For regular expressions containing capturing parentheses, occurrences of \1, \2, ..., in *after* + are replaced with rx.cap(1), cap(2), ... + + :: + + t = "A <i>bon mot</i>." + re = QRegExp("<i>([^<]*)</i>") + t = re.replace(t, "\\emph{\\1}") + # t == "A \\emph{bon mot}." + + + + %1.replace(*%CPPSELF, %2); + %PYARG_0 = %CONVERTTOPYTHON[QString](%1); + + + + + + + + + + + + + + + + + + + + + + %out = %OUTTYPE(); + + + %out = %OUTTYPE(Shiboken::String::toCString(%in), Shiboken::String::len(%in)); + + + #ifdef IS_PY3K + %out = %OUTTYPE(PyBytes_AS_STRING(%in), PyBytes_GET_SIZE(%in)); + #endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Shiboken::AutoDecRef str(PyUnicode_AsASCIIString(%PYARG_1)); + if (!str.isNull()) { + QByteArray b(PyBytes_AS_STRING(str.object()), PyBytes_GET_SIZE (str.object())); + b.prepend(*%CPPSELF); + %PYARG_0 = %CONVERTTOPYTHON[QByteArray](b); + } + + + + + Shiboken::AutoDecRef str(PyUnicode_AsASCIIString(%PYARG_1)); + if (!str.isNull()) { + QByteArray b(PyBytes_AS_STRING(str.object()), PyBytes_GET_SIZE(str.object())); + b.append(*%CPPSELF); + %PYARG_0 = %CONVERTTOPYTHON[QByteArray](b); + } + + + + + QByteArray ba = QByteArray(PyBytes_AS_STRING(%PYARG_1), PyBytes_GET_SIZE(%PYARG_1)) + *%CPPSELF; + %PYARG_0 = %CONVERTTOPYTHON[QByteArray](ba); + + + + + + + QByteArray b(((PyObject*)%PYSELF)->ob_type->tp_name); + PyObject* aux = Shiboken::String::fromStringAndSize(%CPPSELF.constData(), %CPPSELF.size()); + if (PyUnicode_CheckExact(aux)) { + PyObject* tmp = PyUnicode_AsASCIIString(aux); + Py_DECREF(aux); + aux = tmp; + } + b += "('"; + b += QByteArray(PyBytes_AS_STRING(aux), PyBytes_GET_SIZE(aux)); + b += "')"; + %PYARG_0 = Shiboken::String::fromStringAndSize(b.constData(), b.size()); + + + + + + + + + + + + + + + if (PyBytes_Check(%PYARG_1)) { + %0 = new QByteArray(PyBytes_AsString(%PYARG_1), PyBytes_GET_SIZE(%PYARG_1)); + } if (PyUnicode_CheckExact(%PYARG_1)) { + Shiboken::AutoDecRef data(PyUnicode_AsASCIIString(%PYARG_1)); + %0 = new QByteArray(PyBytes_AsString(data.object()), PyBytes_GET_SIZE(data.object())); + } else if (Shiboken::String::check(%PYARG_1)) { + %0 = new QByteArray(Shiboken::String::toCString(%PYARG_1), Shiboken::String::len(%PYARG_1)); + } + + + + + + #if PY_VERSION_HEX < 0x03000000 + Shiboken::SbkType<QByteArray>()->tp_as_buffer = &SbkQByteArrayBufferProc; + Shiboken::SbkType<QByteArray>()->tp_flags |= Py_TPFLAGS_HAVE_GETCHARBUFFER; + #endif + + + + + %PYARG_0 = PyBytes_FromStringAndSize(%CPPSELF.%FUNCTION_NAME(), %CPPSELF.size()); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(PyBytes_AsString(%PYARG_1), PyBytes_GET_SIZE(%PYARG_1)); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + + + + + + + + + + + + + + + + + + + + + %PYARG_0 = Shiboken::String::fromStringAndSize(%CPPSELF.constData(), %CPPSELF.size()); + + + + + return %CPPSELF.count(); + + + + + if (_i < 0 || _i >= %CPPSELF.size()) { + PyErr_SetString(PyExc_IndexError, "index out of bounds"); + return 0; + } else { + char res[2]; + res[0] = %CPPSELF.at(_i); + res[1] = 0; + return PyBytes_FromStringAndSize(res, 1); + } + + + + + %CPPSELF.remove(_i, 1); + PyObject* args = Py_BuildValue("(nO)", _i, _value); + PyObject* result = Sbk_QByteArrayFunc_insert(self, args); + Py_DECREF(args); + Py_XDECREF(result); + return !result ? -1 : 0; + + + + + Py_ssize_t max = %CPPSELF.count(); + _i1 = qBound(Py_ssize_t(0), _i1, max); + _i2 = qBound(Py_ssize_t(0), _i2, max); + QByteArray ba; + if (_i1 < _i2) + ba = %CPPSELF.mid(_i1, _i2 - _i1); + return %CONVERTTOPYTHON[QByteArray](ba); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uchar* ptr = (uchar*) Shiboken::Buffer::getPointer(%PYARG_1); + %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(ptr); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + + + + + + + + %PYARG_0 = Shiboken::Buffer::newObject(%CPPSELF.%FUNCTION_NAME(%1, %2, %3), %2, Shiboken::Buffer::ReadWrite); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(%1, Shiboken::String::len(%PYARG_1)); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + + + + + + + + + + + + + + QByteArray ba; + ba.resize(%2); + %CPPSELF.%FUNCTION_NAME(ba.data(), ba.size()); + %PYARG_0 = %CONVERTTOPYTHON[QByteArray](ba); + + + + + + + + %RETURN_TYPE %out; + if (PyBytes_Check(%PYARG_0)) { + %out = PyBytes_GET_SIZE((PyObject*)%PYARG_0); + memcpy(%1, PyBytes_AS_STRING((PyObject*)%PYARG_0), %out); + } else if (Shiboken::String::check(%PYARG_0)) { + %out = Shiboken::String::len((PyObject*)%PYARG_0); + memcpy(%1, Shiboken::String::toCString((PyObject*)%PYARG_0), %out); + } + + + + + + QByteArray ba; + ba.resize(%2); + %CPPSELF.%FUNCTION_NAME(ba.data(), ba.size()); + %PYARG_0 = %CONVERTTOPYTHON[QByteArray](ba); + + + + + + + + %RETURN_TYPE %out; + if (!PyBytes_Check(%PYARG_0)) { + %out = -1; + } else { + %out = PyBytes_GET_SIZE((PyObject*)%PYARG_0); + memcpy(%1, PyBytes_AS_STRING((PyObject*)%PYARG_0), %out); + } + + + + + + + + + + + + %CPPSELF.%FUNCTION_NAME(Shiboken::String::toCString(%PYARG_1), Shiboken::String::len(%PYARG_1)); + + + + + + + + + + + + + + + + + + + + + + %CPPSELF.unlock(); + + + + + + + + + + + + + + + + + + + + + + + Shiboken::AutoDecRef fileNo(PyObject_GetAttrString(%PYARG_1, "fileno")); + if (!fileNo.isNull()) { + Shiboken::AutoDecRef fileNoValue(PyObject_CallObject(fileNo, 0)); + if (%CHECKTYPE[int](fileNoValue)) { + int cppFileNoValue = %CONVERTTOCPP[int](fileNoValue); + %0 = new %TYPE(cppFileNoValue, %2, %3); + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Py_ssize_t size; + uchar* ptr = (uchar*) Shiboken::Buffer::getPointer(%PYARG_1, &size); + %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(const_cast<const uchar*>(ptr), size); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + + + + + + + + + + + + + + + + + + + + // %FUNCTION_NAME() - disable generation of c++ function call + (void) %2; // remove warning about unused variable + Shiboken::AutoDecRef emptyTuple(PyTuple_New(0)); + PyObject* pyTimer = Shiboken::SbkType<QTimer>()->tp_new(Shiboken::SbkType<QTimer>(), emptyTuple, 0); + Shiboken::SbkType<QTimer>()->tp_init(pyTimer, emptyTuple, 0); + + QTimer* timer = %CONVERTTOCPP[QTimer*](pyTimer); + Shiboken::AutoDecRef result( + PyObject_CallMethod(pyTimer, + const_cast<char*>("connect"), + const_cast<char*>("OsOs"), + pyTimer, + SIGNAL(timeout()), + %PYARG_2, + %3) + ); + Shiboken::Object::releaseOwnership((SbkObject*)pyTimer); + Py_XDECREF(pyTimer); + timer->setSingleShot(true); + timer->connect(timer, SIGNAL(timeout()), timer, SLOT(deleteLater())); + timer->start(%1); + + + + + // %FUNCTION_NAME() - disable generation of c++ function call + Shiboken::AutoDecRef emptyTuple(PyTuple_New(0)); + PyObject *pyTimer = Shiboken::SbkType<QTimer>()->tp_new(Shiboken::SbkType<QTimer>(), emptyTuple, 0); + Shiboken::SbkType<QTimer>()->tp_init(pyTimer, emptyTuple, 0); + QTimer* timer = %CONVERTTOCPP[QTimer*](pyTimer); + timer->setSingleShot(true); + + if (PyObject_TypeCheck(%2, &PySideSignalInstanceType)) { + PySideSignalInstance* signalInstance = reinterpret_cast<PySideSignalInstance*>(%2); + Shiboken::AutoDecRef signalSignature(Shiboken::String::fromFormat("2%s", PySide::Signal::getSignature(signalInstance))); + Shiboken::AutoDecRef result( + PyObject_CallMethod(pyTimer, + const_cast<char*>("connect"), + const_cast<char*>("OsOO"), + pyTimer, + SIGNAL(timeout()), + PySide::Signal::getObject(signalInstance), + signalSignature.object()) + ); + } else { + Shiboken::AutoDecRef result( + PyObject_CallMethod(pyTimer, + const_cast<char*>("connect"), + const_cast<char*>("OsO"), + pyTimer, + SIGNAL(timeout()), + %PYARG_2) + ); + } + + timer->connect(timer, SIGNAL(timeout()), timer, SLOT(deleteLater()), Qt::DirectConnection); + Shiboken::Object::releaseOwnership((SbkObject*)pyTimer); + Py_XDECREF(pyTimer); + timer->start(%1); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uchar* ptr = (uchar*)Shiboken::Buffer::getPointer(%PYARG_1); + %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(ptr); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + + + + + + + + %PYARG_0 = Shiboken::Buffer::newObject(%CPPSELF.%FUNCTION_NAME(%1, %2, %3), %2, Shiboken::Buffer::ReadWrite); + + + + + + QByteArray ba; + ba.resize(%2); + %CPPSELF.%FUNCTION_NAME(ba.data(), ba.size()); + %PYARG_0 = PyBytes_FromStringAndSize(ba.constData(), ba.size()); + + + + + + + + %RETURN_TYPE %out; + if (!Shiboken::String::check(%PYARG_0)) { + %out = -1; + } else { + %out = PyBytes_GET_SIZE((PyObject*)%PYARG_0); + memcpy(%1, PyBytes_AS_STRING((PyObject*)%PYARG_0), %out); + } + + + + + + QByteArray ba; + ba.resize(%2); + %CPPSELF.%FUNCTION_NAME(ba.data(), ba.size()); + %PYARG_0 = PyBytes_FromStringAndSize(ba.constData(), ba.size()); + + + + + + + + %RETURN_TYPE %out; + if (!Shiboken::String::check(%PYARG_0)) { + %out = -1; + } else { + %out = PyBytes_GET_SIZE((PyObject*)%PYARG_0); + memcpy(%1, PyBytes_AS_STRING((PyObject*)%PYARG_0), %out); + } + + + + + + + + + + + + + + + + + + + + + + + + + + + qint64 pid; + %RETURN_TYPE retval = %TYPE::%FUNCTION_NAME(%1, %2, %3, &pid); + %PYARG_0 = PyTuple_New(2); + PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval)); + PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[qint64](pid)); + + + + + + + long result; + #ifdef WIN32 + _PROCESS_INFORMATION* procInfo = %CPPSELF.%FUNCTION_NAME(); + result = procInfo ? procInfo->dwProcessId : 0; + #else + result = %CPPSELF.%FUNCTION_NAME(); + #endif + %PYARG_0 = %CONVERTTOPYTHON[long](result); + + + + + + + + + + + + + + + + + + +.. class:: QCoreApplication(args) + + Constructs a Qt kernel application. Kernel applications are applications + without a graphical user interface. These type of applications are used + at the console or as server processes. + + The *args* argument is processed by the application, and made available + in a more convenient form by the :meth:`~QCoreApplication.arguments()` + method. + + + + QCoreApplication_constructor(%PYSELF, args, &%0); + + + + + + + + + + + + QCoreApplication* app = QCoreApplication::instance(); + PyObject* pyApp = Py_None; + if (app) { + pyApp = reinterpret_cast<PyObject*>(Shiboken::BindingManager::instance().retrieveWrapper(app)); + if (!pyApp) + pyApp = %CONVERTTOPYTHON[QCoreApplication*](app); // this will keep app live after python exit (extra ref) + } + %PYARG_0 = pyApp; + Py_XINCREF(%PYARG_0); + + + + + + + + + + + + + + + + + + + + + + + + + + + + long *%out = new long; + %out = 0; + + + + + + %RETURN_TYPE %out = false; + if (PySequence_Check(%PYARG_0) && (PySequence_Size(%PYARG_0) == 2)) { + Shiboken::AutoDecRef pyResult(PySequence_GetItem(%PYARG_0, 0)); + %out = %CONVERTTOCPP[bool](pyResult); + } + + + + %PYARG_0 = PyTuple_New(2); + PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](%0)); + PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[long](*result_out)); + delete result_out; + + + + + + + + + + + + + + + + + + + + + + .. warning:: QSettings.value can return different types (QVariant types) depending on the platform it's running on, so the safest way to use it is always casting the result to the desired type, e.g.: int(settings.value("myKey")) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + QByteArray data; + data.resize(%2); + int result = %CPPSELF.%FUNCTION_NAME(data.data(), data.size()); + if (result == -1) { + Py_INCREF(Py_None); + %PYARG_0 = Py_None; + } else { + %PYARG_0 = PyBytes_FromStringAndSize(data.data(), result); + } + + + + + + + + int r = %CPPSELF.%FUNCTION_NAME(%1, Shiboken::String::len(%PYARG_1)); + %PYARG_0 = %CONVERTTOPYTHON[int](r); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + QString& res = *%0; + %PYARG_0 = %CONVERTTOPYTHON[QString](res); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Shiboken::Object::releaseOwnership(%PYARG_0); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + for(int counter = 0; counter < %CPPSELF.animationCount(); ++counter ) { + QAbstractAnimation* animation = %CPPSELF.animationAt(counter); + PyObject* obj = %CONVERTTOPYTHON[QAbstractAnimation*](animation); + Shiboken::Object::setParent(NULL, obj); + Py_DECREF(obj); + } + %CPPSELF.clear(); + + + + + + + + + + + + + + PySideEasingCurveFunctor::init(); + + + + + QEasingCurve::EasingFunction func = PySideEasingCurveFunctor::createCustomFuntion(%PYSELF, %PYARG_1); + if (func) + %CPPSELF.%FUNCTION_NAME(func); + + + + + //%FUNCTION_NAME() + %PYARG_0 = PySideEasingCurveFunctor::callable(%PYSELF); + + + + + + + + + + + + + + + + + + + + + + + + + <code>machine = QStateMachine() + +s1 = new QState() +s11 = new QState(s1) +s12 = new QState(s1) + +s1h = QHistoryState(s1) +s1h.setDefaultState(s11) + +machine.addState(s1) + +s2 = QState() +machine.addState(s2) + +button = QPushButton() +# Clicking the button will cause the state machine to enter the child state +# that s1 was in the last time s1 was exited, or the history state's default +# state if s1 has never been entered. +s1.addTransition(button.clicked, s1h)</code> + + + + + + + + + + + + + + + + + + + + + + if (PyObject_TypeCheck(%1, &PySideSignalInstanceType)) { + PyObject* dataSource = PySide::Signal::getObject((PySideSignalInstance*) %PYARG_1); + Shiboken::AutoDecRef obType(PyObject_Type(dataSource)); + QObject* sender = %CONVERTTOCPP[QObject*](dataSource); + if (sender) { + const char* dataSignature = PySide::Signal::getSignature((PySideSignalInstance*) %PYARG_1); + QByteArray signature(dataSignature); // Append SIGNAL flag (2) + %0 = new QSignalTransitionWrapper(sender, "2" + signature, %2); + } + } + + + + + + + + + + + + + + + + + + QString signalName(%2); + if (PySide::SignalManager::registerMetaMethod(%1, signalName.mid(1).toAscii().data(), QMetaMethod::Signal)) { + QSignalTransition* %0 = %CPPSELF->addTransition(%1, %2, %3); + %PYARG_0 = %CONVERTTOPYTHON[QSignalTransition*](%0); + } else { + Py_INCREF(Py_None); + %PYARG_0 = Py_None; + } + + + + + + + + + + + + + + + // Obviously the label used by the following goto is a very awkward solution, + // since it refers to a name very tied to the generator implementation. + // Check bug #362 for more information on this + // http://bugs.openbossa.org/show_bug.cgi?id=362 + if (!PyObject_TypeCheck(%1, &PySideSignalInstanceType)) + goto Sbk_%TYPEFunc_%FUNCTION_NAME_TypeError; + PySideSignalInstance* signalInstance = reinterpret_cast<PySideSignalInstance*>(%1); + QObject* sender = %CONVERTTOCPP[QObject*](PySide::Signal::getObject(signalInstance)); + QSignalTransition* %0 = %CPPSELF->%FUNCTION_NAME(sender, PySide::Signal::getSignature(signalInstance), %2); + %PYARG_0 = %CONVERTTOPYTHON[QSignalTransition*](%0); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %PYARG_0 = PySet_New(0); + foreach(QAbstractState* abs_state, %CPPSELF.configuration()) { + Shiboken::AutoDecRef obj(%CONVERTTOPYTHON[QAbstractState*](abs_state)); + Shiboken::Object::setParent(self, obj); + PySet_Add(%PYARG_0, obj); + } + + + + + + + + %PYARG_0 = PyList_New(0); + foreach(QAbstractAnimation* abs_anim, %CPPSELF.defaultAnimations()) { + Shiboken::AutoDecRef obj(%CONVERTTOPYTHON[QAbstractAnimation*](abs_anim)); + Shiboken::Object::setParent(self, obj); + PyList_Append(%PYARG_0, obj); + } + + + + + + + + + + + %PYARG_0 = Shiboken::String::fromFormat("2%s", QMetaObject::normalizedSignature(%1).constData()); + + + + + + %PYARG_0 = Shiboken::String::fromFormat("1%s", QMetaObject::normalizedSignature(%1).constData()); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + extern bool + qRegisterResourceData(int, + const unsigned char *, + const unsigned char *, + const unsigned char *); + + extern bool + qUnregisterResourceData(int, + const unsigned char *, + const unsigned char *, + const unsigned char *); + + + + %RETURN_TYPE %0 = %FUNCTION_NAME(%1, (uchar*)PyBytes_AS_STRING(%PYARG_2), + (uchar*)PyBytes_AS_STRING(%PYARG_3), + (uchar*)PyBytes_AS_STRING(%PYARG_4)); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + + + + + %RETURN_TYPE %0 = %FUNCTION_NAME(%1, (uchar*)PyBytes_AS_STRING(%PYARG_2), + (uchar*)PyBytes_AS_STRING(%PYARG_3), + (uchar*)PyBytes_AS_STRING(%PYARG_4)); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PySide/QtCore/typesystem_core_mac.xml b/PySide/QtCore/typesystem_core_mac.xml new file mode 100644 index 000000000..0f9c51196 --- /dev/null +++ b/PySide/QtCore/typesystem_core_mac.xml @@ -0,0 +1,23 @@ + + + + + diff --git a/PySide/QtCore/typesystem_core_win.xml b/PySide/QtCore/typesystem_core_win.xml index b55f04d5f..a9663c9b8 100644 --- a/PySide/QtCore/typesystem_core_win.xml +++ b/PySide/QtCore/typesystem_core_win.xml @@ -19,6 +19,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA --> + @@ -50,5 +51,4 @@ - diff --git a/PySide/QtCore/typesystem_core_x11.xml b/PySide/QtCore/typesystem_core_x11.xml new file mode 100644 index 000000000..eba223c73 --- /dev/null +++ b/PySide/QtCore/typesystem_core_x11.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/PySide/QtDeclarative/CMakeLists.txt b/PySide/QtDeclarative/CMakeLists.txt index 01cf87798..c9ea9313c 100644 --- a/PySide/QtDeclarative/CMakeLists.txt +++ b/PySide/QtDeclarative/CMakeLists.txt @@ -23,7 +23,7 @@ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtDeclarative/qdeclarativeview_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtDeclarative/qtdeclarative_module_wrapper.cpp ) -set(QtDeclarative_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtNetwork_SOURCE_DIR}${PATH_SEP}${QtDeclarative_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") +set(QtDeclarative_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtNetwork_SOURCE_DIR}${PATH_SEP}${QtDeclarative_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") set(QtDeclarative_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} ${QT_QTCORE_INCLUDE_DIR} diff --git a/PySide/QtGui/CMakeLists.txt b/PySide/QtGui/CMakeLists.txt index 8f8ff9703..6023a326e 100644 --- a/PySide/QtGui/CMakeLists.txt +++ b/PySide/QtGui/CMakeLists.txt @@ -404,7 +404,8 @@ ${QtGui_OPTIONAL_SRC} configure_file("${CMAKE_CURRENT_SOURCE_DIR}/typesystem_gui.xml.in" "${CMAKE_CURRENT_BINARY_DIR}/typesystem_gui.xml" @ONLY) -set(QtGui_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}") +set(QtGui_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}") + set(QtGui_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/ ${pyside_SOURCE_DIR} diff --git a/PySide/QtGui/typesystem_gui_win.xml b/PySide/QtGui/typesystem_gui_win.xml index 5f4c57657..416c5e5ba 100644 --- a/PySide/QtGui/typesystem_gui_win.xml +++ b/PySide/QtGui/typesystem_gui_win.xml @@ -19,7 +19,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA --> - diff --git a/PySide/QtHelp/CMakeLists.txt b/PySide/QtHelp/CMakeLists.txt index 0ca0272af..041ef635b 100644 --- a/PySide/QtHelp/CMakeLists.txt +++ b/PySide/QtHelp/CMakeLists.txt @@ -15,7 +15,7 @@ set(QtHelp_SRC ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtHelp/qthelp_module_wrapper.cpp ) -set(QtHelp_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtHelp_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") +set(QtHelp_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtHelp_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") set(QtHelp_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} ${QT_QTCORE_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR} diff --git a/PySide/QtMaemo5/CMakeLists.txt b/PySide/QtMaemo5/CMakeLists.txt index 30bf15c6b..41397f4c8 100644 --- a/PySide/QtMaemo5/CMakeLists.txt +++ b/PySide/QtMaemo5/CMakeLists.txt @@ -11,7 +11,7 @@ ${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtMaemo5/qmaemo5valuebutton_wrapper. ${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtMaemo5/qtmaemo5_module_wrapper.cpp ) -set(QtMaemo5_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtMaemo5_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") +set(QtMaemo5_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtMaemo5_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") # QT_QTMAEMO5_* variables are not defined by CMake if(NOT QT_QTMAEMO5_INCLUDE_DIR) diff --git a/PySide/QtMultimedia/CMakeLists.txt b/PySide/QtMultimedia/CMakeLists.txt index 882383865..ea37c8047 100644 --- a/PySide/QtMultimedia/CMakeLists.txt +++ b/PySide/QtMultimedia/CMakeLists.txt @@ -17,7 +17,7 @@ set(QtMultimedia_SRC ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qvideoframe_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qtmultimedia_module_wrapper.cpp ) -set(QtMultimedia_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") +set(QtMultimedia_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") set(QtMultimedia_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/ diff --git a/PySide/QtNetwork/CMakeLists.txt b/PySide/QtNetwork/CMakeLists.txt index 9149202ac..c18d70afb 100644 --- a/PySide/QtNetwork/CMakeLists.txt +++ b/PySide/QtNetwork/CMakeLists.txt @@ -56,7 +56,7 @@ ${QtNetwork_47_SRC} ${QtNetwork_OPTIONAL_SRC} ) -set(QtNetwork_typesystem_path "${QtCore_SOURCE_DIR}") +set(QtNetwork_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}") set(QtNetwork_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtNetwork/ ${QT_INCLUDE_DIR} diff --git a/PySide/QtOpenGL/CMakeLists.txt b/PySide/QtOpenGL/CMakeLists.txt index 44ba1c1ad..3f977db18 100644 --- a/PySide/QtOpenGL/CMakeLists.txt +++ b/PySide/QtOpenGL/CMakeLists.txt @@ -32,7 +32,7 @@ set(QtOpenGL_SRC ${QtOpenGL_47_SRC} ) -set(QtOpenGL_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtOpenGL_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") +set(QtOpenGL_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtOpenGL_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") set(QtOpenGL_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} ${QT_QTCORE_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR} diff --git a/PySide/QtScript/CMakeLists.txt b/PySide/QtScript/CMakeLists.txt index 024d51f32..48dc85f4a 100644 --- a/PySide/QtScript/CMakeLists.txt +++ b/PySide/QtScript/CMakeLists.txt @@ -25,7 +25,7 @@ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtScript/qscriptvalueiterator_wrapper.cpp ${QtScript_47_SRC} ) -set(QtScript_typesystem_path "${QtCore_SOURCE_DIR}") +set(QtScript_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}") set(QtScript_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtScript ${QT_INCLUDE_DIR} diff --git a/PySide/QtScriptTools/CMakeLists.txt b/PySide/QtScriptTools/CMakeLists.txt index 575dcc36a..0a9804274 100644 --- a/PySide/QtScriptTools/CMakeLists.txt +++ b/PySide/QtScriptTools/CMakeLists.txt @@ -5,7 +5,7 @@ set(QtScriptTools_SRC ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtScriptTools/qscriptenginedebugger_wrapper.cpp ) -set(QtScriptTools_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtScript_SOURCE_DIR}${PATH_SEP}${QtScriptTools_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") +set(QtScriptTools_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtScript_SOURCE_DIR}${PATH_SEP}${QtScriptTools_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") set(QtScriptTools_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} ${QT_QTCORE_INCLUDE_DIR} diff --git a/PySide/QtSql/CMakeLists.txt b/PySide/QtSql/CMakeLists.txt index 7da42d438..f1dc384fc 100644 --- a/PySide/QtSql/CMakeLists.txt +++ b/PySide/QtSql/CMakeLists.txt @@ -21,7 +21,7 @@ set(QtSql_SRC ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtSql/qtsql_module_wrapper.cpp ) -set(QtSql_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtSql_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") +set(QtSql_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtSql_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") set(QtSql_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} ${QT_QTCORE_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR} diff --git a/PySide/QtSvg/CMakeLists.txt b/PySide/QtSvg/CMakeLists.txt index b1e54778b..eb0f9a25e 100644 --- a/PySide/QtSvg/CMakeLists.txt +++ b/PySide/QtSvg/CMakeLists.txt @@ -8,7 +8,7 @@ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtSvg/qsvgwidget_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtSvg/qtsvg_module_wrapper.cpp ) -set(QtSvg_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") +set(QtSvg_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") set(QtSvg_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtSvg/ ${QT_INCLUDE_DIR} diff --git a/PySide/QtTest/CMakeLists.txt b/PySide/QtTest/CMakeLists.txt index 6ef7a42c3..bf86ad559 100644 --- a/PySide/QtTest/CMakeLists.txt +++ b/PySide/QtTest/CMakeLists.txt @@ -14,7 +14,7 @@ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtTest/qttest_module_wrapper.cpp ${QtTest_46_SRC} ) -set(QtTest_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") +set(QtTest_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") set(QtTest_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtTest/ ${QT_INCLUDE_DIR} diff --git a/PySide/QtUiTools/CMakeLists.txt b/PySide/QtUiTools/CMakeLists.txt index 85e33c507..89d29887c 100644 --- a/PySide/QtUiTools/CMakeLists.txt +++ b/PySide/QtUiTools/CMakeLists.txt @@ -5,7 +5,7 @@ set(QtUiTools_SRC ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtUiTools/quiloader_wrapper.cpp ) -set(QtUiTools_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtXml_SOURCE_DIR}${PATH_SEP}${QtUiTools_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") +set(QtUiTools_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtXml_SOURCE_DIR}${PATH_SEP}${QtUiTools_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") set(QtUiTools_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} ${QT_QTCORE_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR} diff --git a/PySide/QtWebKit/CMakeLists.txt b/PySide/QtWebKit/CMakeLists.txt index 83445db0d..74d89f8c2 100644 --- a/PySide/QtWebKit/CMakeLists.txt +++ b/PySide/QtWebKit/CMakeLists.txt @@ -37,7 +37,7 @@ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/webcore_wrapper.cpp ${QtWebKit_46_SRC} ) -set(QtWebKit_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtNetwork_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") +set(QtWebKit_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtNetwork_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") set(QtWebkit_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebkit/ ${QT_INCLUDE_DIR} diff --git a/PySide/QtXml/CMakeLists.txt b/PySide/QtXml/CMakeLists.txt index a06c7109b..3e5a7c712 100644 --- a/PySide/QtXml/CMakeLists.txt +++ b/PySide/QtXml/CMakeLists.txt @@ -35,7 +35,7 @@ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtXml/qxmlreader_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtXml/qxmlsimplereader_wrapper.cpp ) -set(QtXml_typesystem_path "${QtCore_SOURCE_DIR}") +set(QtXml_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}") set(QtXml_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtXml ${CMAKE_SOURCE_DIR} diff --git a/PySide/QtXmlPatterns/CMakeLists.txt b/PySide/QtXmlPatterns/CMakeLists.txt index 0d789ff2d..6efa4b05d 100644 --- a/PySide/QtXmlPatterns/CMakeLists.txt +++ b/PySide/QtXmlPatterns/CMakeLists.txt @@ -26,7 +26,7 @@ set(QtXmlPatterns_SRC ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtXmlPatterns/qxmlserializer_wrapper.cpp ${QtXmlPatterns_46_SRC} ) -set(QtXmlPatterns_typesystem_path "${QtCore_SOURCE_DIR}") +set(QtXmlPatterns_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}") set(QtXmlPatterns_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} ${QT_QTCORE_INCLUDE_DIR} ${QT_QTXMLPATTERNS_INCLUDE_DIR} diff --git a/PySide/phonon/CMakeLists.txt b/PySide/phonon/CMakeLists.txt index c11fe43f3..056402980 100644 --- a/PySide/phonon/CMakeLists.txt +++ b/PySide/phonon/CMakeLists.txt @@ -49,7 +49,7 @@ ${CMAKE_CURRENT_BINARY_DIR}/PySide/phonon/phonon_backendcapabilities_notifierwra ${phonon_OPTIONAL_SRC} ) -set(phonon_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${phonon_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") +set(phonon_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${phonon_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") set(phonon_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} ${QT_QTCORE_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR} -- cgit v1.2.3