##// END OF EJS Templates
added support for QStringRef as return value...
florianlink -
r191:86312d1bca38
parent child
Show More
@@ -61,6 +61,12 int PythonQt::_uniqueModuleCount = 0;
61 61 void PythonQt_init_QtGuiBuiltin(PyObject*);
62 62 void PythonQt_init_QtCoreBuiltin(PyObject*);
63 63
64
65 PyObject* PythonQtConvertFromStringRef(const void* inObject, int /*metaTypeId*/)
66 {
67 return PythonQtConv::QStringToPyObject(((QStringRef*)inObject)->toString());
68 }
69
64 70 void PythonQt::init(int flags, const QByteArray& pythonQtModuleName)
65 71 {
66 72 if (!_self) {
@@ -69,6 +75,9 void PythonQt::init(int flags, const QByteArray& pythonQtModuleName)
69 75 PythonQtMethodInfo::addParameterTypeAlias("QObjectList", "QList<QObject*>");
70 76 qRegisterMetaType<QList<QObject*> >("QList<void*>");
71 77
78 int stringRefId = qRegisterMetaType<QStringRef>("QStringRef");
79 PythonQtConv::registerMetaTypeToPythonConverter(stringRefId, PythonQtConvertFromStringRef);
80
72 81 PythonQtRegisterToolClassesTemplateConverter(int);
73 82 PythonQtRegisterToolClassesTemplateConverter(float);
74 83 PythonQtRegisterToolClassesTemplateConverter(double);
@@ -677,14 +686,20 QVariant PythonQt::evalCode(PyObject* object, PyObject* pycode) {
677 686 QVariant result;
678 687 if (pycode) {
679 688 PyObject* dict = NULL;
689 PyObject* globals = NULL;
680 690 if (PyModule_Check(object)) {
681 691 dict = PyModule_GetDict(object);
692 globals = dict;
682 693 } else if (PyDict_Check(object)) {
683 694 dict = object;
695 globals = dict;
696 } else {
697 dict = PyObject_GetAttrString(object, "__dict__");
698 globals = PyObject_GetAttrString(PyImport_ImportModule(PyString_AS_STRING(PyObject_GetAttrString(object, "__module__"))),"__dict__");
684 699 }
685 700 PyObject* r = NULL;
686 701 if (dict) {
687 r = PyEval_EvalCode((PyCodeObject*)pycode, dict , dict);
702 r = PyEval_EvalCode((PyCodeObject*)pycode, globals , dict);
688 703 }
689 704 if (r) {
690 705 result = PythonQtConv::PyObjToQVariant(r);
General Comments 0
You need to be logged in to leave comments. Login now