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():
|
with pyqtgraph.BusyCursor():
|
||||||
doLongOperation()
|
doLongOperation()
|
||||||
|
|
||||||
May be nested.
|
May be nested. If called from a non-gui thread, then the cursor will not be affected.
|
||||||
"""
|
"""
|
||||||
active = []
|
active = []
|
||||||
|
|
||||||
def __enter__(self):
|
def __enter__(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))
|
QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.WaitCursor))
|
||||||
BusyCursor.active.append(self)
|
BusyCursor.active.append(self)
|
||||||
|
self._active = True
|
||||||
|
else:
|
||||||
|
self._active = False
|
||||||
|
|
||||||
def __exit__(self, *args):
|
def __exit__(self, *args):
|
||||||
|
if self._active:
|
||||||
BusyCursor.active.pop(-1)
|
BusyCursor.active.pop(-1)
|
||||||
if len(BusyCursor.active) == 0:
|
|
||||||
QtGui.QApplication.restoreOverrideCursor()
|
QtGui.QApplication.restoreOverrideCursor()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user