Merge pull request #672 from campagnola/busy-cursor-fix
Busy cursor fix
This commit is contained in:
commit
43209593c8
@ -9,16 +9,22 @@ class BusyCursor(object):
|
||||
with pyqtgraph.BusyCursor():
|
||||
doLongOperation()
|
||||
|
||||
May be nested.
|
||||
May be nested. If called from a non-gui thread, then the cursor will not be affected.
|
||||
"""
|
||||
active = []
|
||||
|
||||
def __enter__(self):
|
||||
QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.WaitCursor))
|
||||
BusyCursor.active.append(self)
|
||||
app = QtCore.QCoreApplication.instance()
|
||||
isGuiThread = (app is not None) and (QtCore.QThread.currentThread() == app.thread())
|
||||
if isGuiThread and QtGui.QApplication.instance() is not None:
|
||||
QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.WaitCursor))
|
||||
BusyCursor.active.append(self)
|
||||
self._active = True
|
||||
else:
|
||||
self._active = False
|
||||
|
||||
def __exit__(self, *args):
|
||||
BusyCursor.active.pop(-1)
|
||||
if len(BusyCursor.active) == 0:
|
||||
if self._active:
|
||||
BusyCursor.active.pop(-1)
|
||||
QtGui.QApplication.restoreOverrideCursor()
|
||||
|
Loading…
Reference in New Issue
Block a user