|
From: <ds...@us...> - 2009-12-31 12:51:53
|
Revision: 8056
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8056&view=rev
Author: dsdale
Date: 2009-12-31 12:51:43 +0000 (Thu, 31 Dec 2009)
Log Message:
-----------
workaround for a regression in PyQt4-4.6.{0,1}
Modified Paths:
--------------
trunk/matplotlib/CHANGELOG
trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py
Modified: trunk/matplotlib/CHANGELOG
===================================================================
--- trunk/matplotlib/CHANGELOG 2009-12-28 01:34:06 UTC (rev 8055)
+++ trunk/matplotlib/CHANGELOG 2009-12-31 12:51:43 UTC (rev 8056)
@@ -1,3 +1,5 @@
+2009-12-31 Commit a workaround for a regression in PyQt4-4.6.{0,1} - DSD
+
2009-12-22 Fix cmap data for gist_earth_r, etc. -JJL
2009-12-20 spines: put spines in data coordinates, add set_bounds()
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py 2009-12-28 01:34:06 UTC (rev 8055)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py 2009-12-31 12:51:43 UTC (rev 8056)
@@ -206,6 +206,22 @@
self._idle = True
if d: QtCore.QTimer.singleShot(0, idle_draw)
+
+# XXX Hackish fix: There's a bug in PyQt. See this thread for details:
+# http://old.nabble.com/Qt4-backend:-critical-bug-with-PyQt4-v4.6%2B-td26205716.html
+# Once a release of Qt/PyQt is available without the bug, the version check
+# below can be tightened further to only be applied in the necessary versions.
+if Qt.PYQT_VERSION_STR.startswith('4.6'):
+ class FigureWindow(QtGui.QMainWindow):
+ def __init__(self):
+ super(FigureWindow, self).__init__()
+ def closeEvent(self, event):
+ super(FigureWindow, self).closeEvent(event)
+ self.emit(Qt.SIGNAL('destroyed()'))
+else:
+ FigureWindow = QtGui.QMainWindow
+# /end pyqt hackish bugfix
+
class FigureManagerQT( FigureManagerBase ):
"""
Public attributes
@@ -220,7 +236,7 @@
if DEBUG: print 'FigureManagerQT.%s' % fn_name()
FigureManagerBase.__init__( self, canvas, num )
self.canvas = canvas
- self.window = QtGui.QMainWindow()
+ self.window = FigureWindow()
self.window.setAttribute(QtCore.Qt.WA_DeleteOnClose)
self.window.setWindowTitle("Figure %d" % num)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|