aboutsummaryrefslogtreecommitdiffstats
path: root/PySide/QtGui/glue/qapplication_init.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'PySide/QtGui/glue/qapplication_init.cpp')
-rw-r--r--PySide/QtGui/glue/qapplication_init.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/PySide/QtGui/glue/qapplication_init.cpp b/PySide/QtGui/glue/qapplication_init.cpp
index e45c4375f..265db256b 100644
--- a/PySide/QtGui/glue/qapplication_init.cpp
+++ b/PySide/QtGui/glue/qapplication_init.cpp
@@ -1,3 +1,6 @@
+// Borrowed reference to QtGui module
+extern PyObject* moduleQtGui;
+
int SbkQApplication_Init(PyObject* self, PyObject* args, PyObject*)
{
int numArgs = PyTuple_GET_SIZE(args);
@@ -16,5 +19,16 @@ int SbkQApplication_Init(PyObject* self, PyObject* args, PyObject*)
SbkBaseWrapper_setCptr(self, new QApplication(argc, argv));
SbkBaseWrapper_setValidCppObject(self, 1);
Shiboken::BindingManager::instance().registerWrapper(reinterpret_cast<SbkBaseWrapper*>(self));
+
+ // Verify if qApp is in main module
+ const char QAPP_MACRO[] = "qApp";
+ PyObject* localsDict = PyEval_GetLocals();
+ if (localsDict) {
+ PyObject* qAppObj = PyDict_GetItemString(localsDict, QAPP_MACRO);
+ if (qAppObj)
+ PyDict_SetItemString(localsDict, QAPP_MACRO, self);
+ }
+ PyObject_SetAttrString(moduleQtGui, QAPP_MACRO, self);
+
return 1;
}