From 4ff529003e1187f641aca590819b8c3daf378227 Mon Sep 17 00:00:00 2001
From: Brian Granger <ellisonbg@gmail.com>
Date: Thu, 26 Aug 2010 20:07:19 -0700
Subject: [PATCH] Qt4 backend now checks for preexisting QApplication.

In some cases, an existing QApplication has already been created
and should be used. This patch uses QApplication.instance() to
perform this check and if one already exists, it is used.
---
 lib/matplotlib/backends/backend_qt4.py |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/lib/matplotlib/backends/backend_qt4.py b/lib/matplotlib/backends/backend_qt4.py
index 7c2d22c..30d36ca 100644
--- a/lib/matplotlib/backends/backend_qt4.py
+++ b/lib/matplotlib/backends/backend_qt4.py
@@ -50,11 +50,16 @@ def _create_qApp():
     if QtGui.QApplication.startingUp():
         if DEBUG: print "Starting up QApplication"
         global qApp
-        qApp = QtGui.QApplication( [" "] )
-        QtCore.QObject.connect( qApp, QtCore.SIGNAL( "lastWindowClosed()" ),
-                            qApp, QtCore.SLOT( "quit()" ) )
-        #remember that matplotlib created the qApp - will be used by show()
-        _create_qApp.qAppCreatedHere = True
+        app = QtGui.QApplication.instance()
+        if app is None:
+            qApp = QtGui.QApplication( [" "] )
+            QtCore.QObject.connect( qApp, QtCore.SIGNAL( "lastWindowClosed()" ),
+                                qApp, QtCore.SLOT( "quit()" ) )
+            #remember that matplotlib created the qApp - will be used by show()
+            _create_qApp.qAppCreatedHere = True
+        else:
+            qApp = app
+            _create_qApp.qAppCreatedHere = False
 
 _create_qApp.qAppCreatedHere = False
 
-- 
1.7.0.2

