Fix Dock close event QLabel still running with no parent
This commit is contained in:
parent
8bd2fa87e1
commit
1f9ccccfd0
@ -5,10 +5,10 @@ from ..widgets.VerticalLabel import VerticalLabel
|
||||
from ..python2_3 import asUnicode
|
||||
|
||||
class Dock(QtGui.QWidget, DockDrop):
|
||||
|
||||
|
||||
sigStretchChanged = QtCore.Signal()
|
||||
sigClosed = QtCore.Signal(object)
|
||||
|
||||
|
||||
def __init__(self, name, area=None, size=(10, 10), widget=None, hideTitle=False, autoOrientation=True, closable=False):
|
||||
QtGui.QWidget.__init__(self)
|
||||
DockDrop.__init__(self)
|
||||
@ -68,9 +68,9 @@ class Dock(QtGui.QWidget, DockDrop):
|
||||
}"""
|
||||
self.setAutoFillBackground(False)
|
||||
self.widgetArea.setStyleSheet(self.hStyle)
|
||||
|
||||
|
||||
self.setStretch(*size)
|
||||
|
||||
|
||||
if widget is not None:
|
||||
self.addWidget(widget)
|
||||
|
||||
@ -82,7 +82,7 @@ class Dock(QtGui.QWidget, DockDrop):
|
||||
return ['dock']
|
||||
else:
|
||||
return name == 'dock'
|
||||
|
||||
|
||||
def setStretch(self, x=None, y=None):
|
||||
"""
|
||||
Set the 'target' size for this Dock.
|
||||
@ -109,7 +109,7 @@ class Dock(QtGui.QWidget, DockDrop):
|
||||
if 'center' in self.allowedAreas:
|
||||
self.allowedAreas.remove('center')
|
||||
self.updateStyle()
|
||||
|
||||
|
||||
def showTitleBar(self):
|
||||
"""
|
||||
Show the title bar for this Dock.
|
||||
@ -130,7 +130,7 @@ class Dock(QtGui.QWidget, DockDrop):
|
||||
Sets the text displayed in title bar for this Dock.
|
||||
"""
|
||||
self.label.setText(text)
|
||||
|
||||
|
||||
def setOrientation(self, o='auto', force=False):
|
||||
"""
|
||||
Sets the orientation of the title bar for this Dock.
|
||||
@ -149,7 +149,7 @@ class Dock(QtGui.QWidget, DockDrop):
|
||||
self.orientation = o
|
||||
self.label.setOrientation(o)
|
||||
self.updateStyle()
|
||||
|
||||
|
||||
def updateStyle(self):
|
||||
## updates orientation and appearance of title bar
|
||||
if self.labelHidden:
|
||||
@ -192,7 +192,7 @@ class Dock(QtGui.QWidget, DockDrop):
|
||||
self.update()
|
||||
action = self.drag.exec_()
|
||||
self.updateStyle()
|
||||
|
||||
|
||||
def float(self):
|
||||
self.area.floatDock(self)
|
||||
|
||||
@ -223,6 +223,7 @@ class Dock(QtGui.QWidget, DockDrop):
|
||||
def close(self):
|
||||
"""Remove this dock from the DockArea it lives inside."""
|
||||
self.setParent(None)
|
||||
QtGui.QLabel.close(self.label)
|
||||
self.label.setParent(None)
|
||||
self._container.apoptose()
|
||||
self._container = None
|
||||
@ -247,10 +248,10 @@ class Dock(QtGui.QWidget, DockDrop):
|
||||
|
||||
|
||||
class DockLabel(VerticalLabel):
|
||||
|
||||
|
||||
sigClicked = QtCore.Signal(object, object)
|
||||
sigCloseClicked = QtCore.Signal()
|
||||
|
||||
|
||||
def __init__(self, text, dock, showCloseButton):
|
||||
self.dim = False
|
||||
self.fixedWidth = False
|
||||
@ -277,7 +278,7 @@ class DockLabel(VerticalLabel):
|
||||
fg = '#fff'
|
||||
bg = '#66c'
|
||||
border = '#55B'
|
||||
|
||||
|
||||
if self.orientation == 'vertical':
|
||||
self.vStyle = """DockLabel {
|
||||
background-color : %s;
|
||||
@ -311,7 +312,7 @@ class DockLabel(VerticalLabel):
|
||||
if self.dim != d:
|
||||
self.dim = d
|
||||
self.updateStyle()
|
||||
|
||||
|
||||
def setOrientation(self, o):
|
||||
VerticalLabel.setOrientation(self, o)
|
||||
self.updateStyle()
|
||||
@ -321,12 +322,12 @@ class DockLabel(VerticalLabel):
|
||||
self.pressPos = ev.pos()
|
||||
self.startedDrag = False
|
||||
ev.accept()
|
||||
|
||||
|
||||
def mouseMoveEvent(self, ev):
|
||||
if not self.startedDrag and (ev.pos() - self.pressPos).manhattanLength() > QtGui.QApplication.startDragDistance():
|
||||
self.dock.startDrag()
|
||||
ev.accept()
|
||||
|
||||
|
||||
def mouseReleaseEvent(self, ev):
|
||||
ev.accept()
|
||||
if not self.startedDrag:
|
||||
@ -335,7 +336,7 @@ class DockLabel(VerticalLabel):
|
||||
def mouseDoubleClickEvent(self, ev):
|
||||
if ev.button() == QtCore.Qt.LeftButton:
|
||||
self.dock.float()
|
||||
|
||||
|
||||
def resizeEvent (self, ev):
|
||||
if self.closeButton:
|
||||
if self.orientation == 'vertical':
|
||||
|
Loading…
Reference in New Issue
Block a user