static PyObject *meth_QsciLexerJava_language(PyObject *sipSelf, PyObject *sipArgs) { PyObject *sipParseErr = NULL; bool sipSelfWasArg = (!sipSelf || sipIsDerived((sipSimpleWrapper *)sipSelf)); { QsciLexerJava *sipCpp; if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QsciLexerJava, &sipCpp)) { const char *sipRes; Py_BEGIN_ALLOW_THREADS sipRes = (sipSelfWasArg ? sipCpp->QsciLexerJava::language() : sipCpp->language()); Py_END_ALLOW_THREADS if (sipRes == NULL) { Py_INCREF(Py_None); return Py_None; } return SIPBytes_FromString(sipRes); } } /* Raise an exception if the arguments couldn't be parsed. */ sipNoMethod(sipParseErr, sipName_QsciLexerJava, sipName_language, doc_QsciLexerJava_language); return NULL; }
static PyObject *meth_QsciLexerCSharp_keywords(PyObject *sipSelf, PyObject *sipArgs) { PyObject *sipParseErr = NULL; bool sipSelfWasArg = (!sipSelf || sipIsDerived((sipSimpleWrapper *)sipSelf)); { int a0; const QsciLexerCSharp *sipCpp; if (sipParseArgs(&sipParseErr, sipArgs, "Bi", &sipSelf, sipType_QsciLexerCSharp, &sipCpp, &a0)) { const char*sipRes; sipRes = (sipSelfWasArg ? sipCpp->QsciLexerCSharp::keywords(a0) : sipCpp->keywords(a0)); if (sipRes == NULL) { Py_INCREF(Py_None); return Py_None; } return SIPBytes_FromString(sipRes); } } /* Raise an exception if the arguments couldn't be parsed. */ sipNoMethod(sipParseErr, sipName_QsciLexerCSharp, sipName_keywords, doc_QsciLexerCSharp_keywords); return NULL; }
static PyObject *meth_QsciLexerFortran_lexer(PyObject *sipSelf, PyObject *sipArgs) { PyObject *sipParseErr = NULL; bool sipSelfWasArg = (!sipSelf || sipIsDerived((sipSimpleWrapper *)sipSelf)); { const QsciLexerFortran *sipCpp; if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QsciLexerFortran, &sipCpp)) { const char*sipRes; sipRes = (sipSelfWasArg ? sipCpp->QsciLexerFortran::lexer() : sipCpp->lexer()); if (sipRes == NULL) { Py_INCREF(Py_None); return Py_None; } return SIPBytes_FromString(sipRes); } } /* Raise an exception if the arguments couldn't be parsed. */ sipNoMethod(sipParseErr, sipName_QsciLexerFortran, sipName_lexer, doc_QsciLexerFortran_lexer); return NULL; }
static PyObject *meth_QMetaType_typeName(PyObject *, PyObject *sipArgs) { PyObject *sipParseErr = NULL; { int a0; if (sipParseArgs(&sipParseErr, sipArgs, "i", &a0)) { const char*sipRes; sipRes = QMetaType::typeName(a0); if (sipRes == NULL) { Py_INCREF(Py_None); return Py_None; } return SIPBytes_FromString(sipRes); } } /* Raise an exception if the arguments couldn't be parsed. */ sipNoMethod(sipParseErr, sipName_QMetaType, sipName_typeName, doc_QMetaType_typeName); return NULL; }
static PyObject *meth_QSGMaterialShader_fragmentShader(PyObject *sipSelf, PyObject *sipArgs, PyObject *sipKwds) { PyObject *sipParseErr = NULL; bool sipSelfWasArg = (!sipSelf || sipIsDerived((sipSimpleWrapper *)sipSelf)); { const sipQSGMaterialShader *sipCpp; if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, NULL, NULL, "B", &sipSelf, sipType_QSGMaterialShader, &sipCpp)) { const char*sipRes; sipRes = sipCpp->sipProtectVirt_fragmentShader(sipSelfWasArg); if (sipRes == NULL) { Py_INCREF(Py_None); return Py_None; } return SIPBytes_FromString(sipRes); } } /* Raise an exception if the arguments couldn't be parsed. */ sipNoMethod(sipParseErr, sipName_QSGMaterialShader, sipName_fragmentShader, doc_QSGMaterialShader_fragmentShader); return NULL; }
static PyObject *meth_QPictureIO_parameters(PyObject *sipSelf, PyObject *sipArgs) { PyObject *sipParseErr = NULL; { const QPictureIO *sipCpp; if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QPictureIO, &sipCpp)) { const char*sipRes; sipRes = sipCpp->parameters(); if (sipRes == NULL) { Py_INCREF(Py_None); return Py_None; } return SIPBytes_FromString(sipRes); } } /* Raise an exception if the arguments couldn't be parsed. */ sipNoMethod(sipParseErr, sipName_QPictureIO, sipName_parameters, doc_QPictureIO_parameters); return NULL; }
static PyObject *meth_QMetaMethod_typeName(PyObject *sipSelf, PyObject *sipArgs) { PyObject *sipParseErr = NULL; { const QMetaMethod *sipCpp; if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QMetaMethod, &sipCpp)) { const char*sipRes; Py_BEGIN_ALLOW_THREADS sipRes = sipCpp->typeName(); Py_END_ALLOW_THREADS if (sipRes == NULL) { Py_INCREF(Py_None); return Py_None; } return SIPBytes_FromString(sipRes); } } /* Raise an exception if the arguments couldn't be parsed. */ sipNoMethod(sipParseErr, sipName_QMetaMethod, sipName_typeName, doc_QMetaMethod_typeName); return NULL; }
static PyObject *meth_QMetaProperty_name(PyObject *sipSelf, PyObject *sipArgs) { PyObject *sipParseErr = NULL; { const QMetaProperty *sipCpp; if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QMetaProperty, &sipCpp)) { const char*sipRes; sipRes = sipCpp->name(); if (sipRes == NULL) { Py_INCREF(Py_None); return Py_None; } return SIPBytes_FromString(sipRes); } } /* Raise an exception if the arguments couldn't be parsed. */ sipNoMethod(sipParseErr, sipName_QMetaProperty, sipName_name, doc_QMetaProperty_name); return NULL; }
// Convert a C++ object at an arbitary address to Python. PyObject *Chimera::toPyObject(void *cpp) const { if (_metatype == PyQt_PyObject::metatype) { if (_type) { // SIP knows the type (therefore it isn't really wrapped in a // PyQt_PyObject) but it's not registered with Qt. if (_name.endsWith('*')) cpp = *reinterpret_cast<void **>(cpp); return sipConvertFromType(cpp, _type, 0); } else { // Otherwise unwrap the Python object. PyQt_PyObject *pyobj_wrapper = reinterpret_cast<PyQt_PyObject *>(cpp); if (!pyobj_wrapper->pyobject) { PyErr_SetString(PyExc_TypeError, "unable to convert a QVariant back to a Python object"); return 0; } Py_INCREF(pyobj_wrapper->pyobject); return pyobj_wrapper->pyobject; } } PyObject *py = 0; switch (_metatype) { case QMetaType::Bool: py = PyBool_FromLong(*reinterpret_cast<bool *>(cpp)); break; case QMetaType::Int: if (isFlag()) { py = sipConvertFromType(cpp, _type, 0); } else if (isEnum()) { py = sipConvertFromEnum(*reinterpret_cast<int *>(cpp), _type); } else { py = SIPLong_FromLong(*reinterpret_cast<int *>(cpp)); } break; case QMetaType::UInt: { long ui = *reinterpret_cast<unsigned int *>(cpp); if (ui < 0) py = PyLong_FromUnsignedLong((unsigned long)ui); else py = SIPLong_FromLong(ui); break; } case QMetaType::Double: py = PyFloat_FromDouble(*reinterpret_cast<double *>(cpp)); break; case QMetaType::VoidStar: py = sipConvertFromVoidPtr(*reinterpret_cast<void **>(cpp)); break; case QMetaType::Long: py = SIPLong_FromLong(*reinterpret_cast<long *>(cpp)); break; case QMetaType::LongLong: py = PyLong_FromLongLong(*reinterpret_cast<qlonglong *>(cpp)); break; case QMetaType::Short: py = SIPLong_FromLong(*reinterpret_cast<short *>(cpp)); break; case QMetaType::Char: case QMetaType::UChar: py = SIPBytes_FromStringAndSize(reinterpret_cast<char *>(cpp), 1); break; case QMetaType::ULong: py = PyLong_FromUnsignedLong(*reinterpret_cast<unsigned long *>(cpp)); break; case QMetaType::ULongLong: py = PyLong_FromUnsignedLongLong(*reinterpret_cast<qulonglong *>(cpp)); break; case QMetaType::UShort: py = SIPLong_FromLong(*reinterpret_cast<unsigned short *>(cpp)); break; case QMetaType::Float: py = PyFloat_FromDouble(*reinterpret_cast<float *>(cpp)); break; case QMetaType::QObjectStar: py = sipConvertFromType(*reinterpret_cast<void **>(cpp), sipType_QObject, 0); break; case QMetaType::QWidgetStar: if (sipType_QWidget) py = sipConvertFromType(*reinterpret_cast<void **>(cpp), sipType_QWidget, 0); break; case QMetaType::QVariantList: { QVariantList *ql = reinterpret_cast<QVariantList *>(cpp); py = PyList_New(ql->size()); if (py) { for (int i = 0; i < ql->size(); ++i) { PyObject *val_obj = toAnyPyObject(ql->at(i)); if (!val_obj) { Py_DECREF(py); py = 0; break; } PyList_SET_ITEM(py, i, val_obj); } } break; } case QMetaType::QVariantMap: { py = PyDict_New(); if (py) { QVariantMap *qm = reinterpret_cast<QVariantMap *>(cpp); for (QVariantMap::const_iterator it = qm->constBegin(); it != qm->constEnd(); ++it) if (!add_variant_to_dict(py, it.key(), it.value())) { Py_DECREF(py); py = 0; break; } } break; } #if QT_VERSION >= 0x040500 case QMetaType::QVariantHash: { py = PyDict_New(); if (py) { QVariantHash *qh = reinterpret_cast<QVariantHash *>(cpp); for (QVariantHash::const_iterator it = qh->constBegin(); it != qh->constEnd(); ++it) if (!add_variant_to_dict(py, it.key(), it.value())) { Py_DECREF(py); py = 0; break; } } break; } #endif case -1: { char *s = *reinterpret_cast<char **>(cpp); if (s) { py = SIPBytes_FromString(s); } else { Py_INCREF(Py_None); py = Py_None; } break; } default: if (_type) { if (_name.endsWith('*')) { py = sipConvertFromType(*reinterpret_cast<void **>(cpp), _type, 0); } else { // Make a copy as it is a value type. void *copy = QMetaType::construct(_metatype, cpp); py = sipConvertFromNewType(copy, _type, 0); if (!py) QMetaType::destroy(_metatype, copy); } } } if (!py) PyErr_Format(PyExc_TypeError, "unable to convert a C++ '%s' instance to a Python object", _name.constData()); return py; }