aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2010-07-27 10:01:33 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2010-07-27 10:12:16 -0300
commit505ba23a9d63e7c6d014f3c5bd5b1cdf778aac56 (patch)
treec6999f837b79f16699988e7fd30d49144d7385d4
parente42133e8e715600a948831eb9c29a5437a5f4fa1 (diff)
Fixed glue code for QApplication and QCoreApplication.
The code for QApplication deletion should also invalidate the wrapper for it. Also the similar code for QCoreApplication must perform the same steps as QApplication. Reviewed by Luciano Wolf <luciano.wolf@openbossa.org> Reviewed by Renato Araújo <renato.filho@openbossa.org>
-rw-r--r--PySide/QtCore/glue/qcoreapplication_init.cpp4
-rw-r--r--PySide/QtGui/glue/qapplication_init.cpp1
2 files changed, 4 insertions, 1 deletions
diff --git a/PySide/QtCore/glue/qcoreapplication_init.cpp b/PySide/QtCore/glue/qcoreapplication_init.cpp
index f53db030c..d9bc4cfd1 100644
--- a/PySide/QtCore/glue/qcoreapplication_init.cpp
+++ b/PySide/QtCore/glue/qcoreapplication_init.cpp
@@ -7,7 +7,9 @@ static char** QCoreApplicationArgValues;
*/
void DeleteQCoreApplicationAtExit() {
if (QCoreApplication::instance()) {
- delete QCoreApplication::instance();
+ PySide::SignalManager::instance().clear();
+ BindingManager::instance().invalidateWrapper(QCoreApplication::instance());
+ QCoreApplication::instance()->deleteLater();
for (int i = 0; i < QCoreApplicationArgCount; ++i)
delete[] QCoreApplicationArgValues[i];
}
diff --git a/PySide/QtGui/glue/qapplication_init.cpp b/PySide/QtGui/glue/qapplication_init.cpp
index 00e37b178..9911a11cf 100644
--- a/PySide/QtGui/glue/qapplication_init.cpp
+++ b/PySide/QtGui/glue/qapplication_init.cpp
@@ -8,6 +8,7 @@ void DeleteQApplicationAtExit() {
if (QApplication::instance()) {
//disconnect and decref all widgets used on signals before destroy qApp
PySide::SignalManager::instance().clear();
+ BindingManager::instance().invalidateWrapper(QApplication::instance());
QApplication::instance()->deleteLater();
for (int i = 0; i < QApplicationArgCount; ++i)
delete[] QApplicationArgValues[i];