artiq/misc/pyqtgraph-do-not-close-nonc...

29 lines
1.2 KiB
Diff

diff --git a/pyqtgraph/dockarea/Dock.py b/pyqtgraph/dockarea/Dock.py
index 4493d07..a05e685 100644
--- a/pyqtgraph/dockarea/Dock.py
+++ b/pyqtgraph/dockarea/Dock.py
@@ -18,6 +18,7 @@ class Dock(QtGui.QWidget, DockDrop):
self.label = DockLabel(name, self, closable)
if closable:
self.label.sigCloseClicked.connect(self.close)
+ self.closable = closable
self.labelHidden = False
self.moveLabel = True ## If false, the dock is no longer allowed to move the label.
self.autoOrient = autoOrientation
diff --git a/pyqtgraph/dockarea/DockArea.py b/pyqtgraph/dockarea/DockArea.py
index ffe75b6..b054b24 100644
--- a/pyqtgraph/dockarea/DockArea.py
+++ b/pyqtgraph/dockarea/DockArea.py
@@ -306,7 +306,10 @@ class DockArea(Container, QtGui.QWidget, DockDrop):
def clear(self):
docks = self.findAll()[1]
for dock in docks.values():
- dock.close()
+ if dock.closable:
+ dock.close()
+ else:
+ self.home.moveDock(dock, "top", None)
## PySide bug: We need to explicitly redefine these methods
## or else drag/drop events will not be delivered.