lambdas which reference self prevent GC
This commit is contained in:
parent
5b1ac7acaa
commit
7f4f677ce1
@ -446,10 +446,10 @@ class GradientEditorItem(TickSliderItem):
|
|||||||
|
|
||||||
self.rgbAction = QtGui.QAction(translate("GradiantEditorItem", 'RGB'), self)
|
self.rgbAction = QtGui.QAction(translate("GradiantEditorItem", 'RGB'), self)
|
||||||
self.rgbAction.setCheckable(True)
|
self.rgbAction.setCheckable(True)
|
||||||
self.rgbAction.triggered.connect(lambda: self.setColorMode('rgb'))
|
self.rgbAction.triggered.connect(self.setColorModeToRGB)
|
||||||
self.hsvAction = QtGui.QAction(translate("GradiantEditorItem", 'HSV'), self)
|
self.hsvAction = QtGui.QAction(translate("GradiantEditorItem", 'HSV'), self)
|
||||||
self.hsvAction.setCheckable(True)
|
self.hsvAction.setCheckable(True)
|
||||||
self.hsvAction.triggered.connect(lambda: self.setColorMode('hsv'))
|
self.hsvAction.triggered.connect(self.setColorModeToHSV)
|
||||||
|
|
||||||
self.menu = QtGui.QMenu()
|
self.menu = QtGui.QMenu()
|
||||||
|
|
||||||
@ -493,7 +493,7 @@ class GradientEditorItem(TickSliderItem):
|
|||||||
self.updateGradient()
|
self.updateGradient()
|
||||||
self.linkedGradients = {}
|
self.linkedGradients = {}
|
||||||
|
|
||||||
self.sigTicksChanged.connect(lambda *args, **kwargs: self.updateGradient())
|
self.sigTicksChanged.connect(self.updateGradientIgnoreArgs)
|
||||||
self.sigTicksChangeFinished.connect(self.sigGradientChangeFinished.emit)
|
self.sigTicksChangeFinished.connect(self.sigGradientChangeFinished.emit)
|
||||||
|
|
||||||
def showTicks(self, show=True):
|
def showTicks(self, show=True):
|
||||||
@ -567,6 +567,12 @@ class GradientEditorItem(TickSliderItem):
|
|||||||
self.sigTicksChanged.emit(self)
|
self.sigTicksChanged.emit(self)
|
||||||
self.sigGradientChangeFinished.emit(self)
|
self.sigGradientChangeFinished.emit(self)
|
||||||
|
|
||||||
|
def setColorModeToRGB(self):
|
||||||
|
self.setColorMode("rgb")
|
||||||
|
|
||||||
|
def setColorModeToHSV(self):
|
||||||
|
self.setColorMode("hsv")
|
||||||
|
|
||||||
def colorMap(self):
|
def colorMap(self):
|
||||||
"""Return a ColorMap object representing the current state of the editor."""
|
"""Return a ColorMap object representing the current state of the editor."""
|
||||||
if self.colorMode == 'hsv':
|
if self.colorMode == 'hsv':
|
||||||
@ -585,6 +591,9 @@ class GradientEditorItem(TickSliderItem):
|
|||||||
self.gradRect.setBrush(QtGui.QBrush(self.gradient))
|
self.gradRect.setBrush(QtGui.QBrush(self.gradient))
|
||||||
self.sigGradientChanged.emit(self)
|
self.sigGradientChanged.emit(self)
|
||||||
|
|
||||||
|
def updateGradientIgnoreArgs(self, *args, **kwargs):
|
||||||
|
self.updateGradient()
|
||||||
|
|
||||||
def setLength(self, newLen):
|
def setLength(self, newLen):
|
||||||
#private (but maybe public)
|
#private (but maybe public)
|
||||||
TickSliderItem.setLength(self, newLen)
|
TickSliderItem.setLength(self, newLen)
|
||||||
|
@ -110,8 +110,8 @@ class LinearRegionItem(GraphicsObject):
|
|||||||
for l in self.lines:
|
for l in self.lines:
|
||||||
l.setParentItem(self)
|
l.setParentItem(self)
|
||||||
l.sigPositionChangeFinished.connect(self.lineMoveFinished)
|
l.sigPositionChangeFinished.connect(self.lineMoveFinished)
|
||||||
self.lines[0].sigPositionChanged.connect(lambda: self.lineMoved(0))
|
self.lines[0].sigPositionChanged.connect(self.line0Moved)
|
||||||
self.lines[1].sigPositionChanged.connect(lambda: self.lineMoved(1))
|
self.lines[1].sigPositionChanged.connect(self.line1Moved)
|
||||||
|
|
||||||
if brush is None:
|
if brush is None:
|
||||||
brush = QtGui.QBrush(QtGui.QColor(0, 0, 255, 50))
|
brush = QtGui.QBrush(QtGui.QColor(0, 0, 255, 50))
|
||||||
@ -242,6 +242,12 @@ class LinearRegionItem(GraphicsObject):
|
|||||||
self.prepareGeometryChange()
|
self.prepareGeometryChange()
|
||||||
self.sigRegionChanged.emit(self)
|
self.sigRegionChanged.emit(self)
|
||||||
|
|
||||||
|
def line0Moved(self):
|
||||||
|
self.lineMoved(0)
|
||||||
|
|
||||||
|
def line1Moved(self):
|
||||||
|
self.lineMoved(1)
|
||||||
|
|
||||||
def lineMoveFinished(self):
|
def lineMoveFinished(self):
|
||||||
self.sigRegionChangeFinished.emit(self)
|
self.sigRegionChangeFinished.emit(self)
|
||||||
|
|
||||||
|
@ -785,7 +785,10 @@ class ROI(GraphicsObject):
|
|||||||
|
|
||||||
def removeClicked(self):
|
def removeClicked(self):
|
||||||
## Send remove event only after we have exited the menu event handler
|
## Send remove event only after we have exited the menu event handler
|
||||||
QtCore.QTimer.singleShot(0, lambda: self.sigRemoveRequested.emit(self))
|
QtCore.QTimer.singleShot(0, self.emitRemoveRequest)
|
||||||
|
|
||||||
|
def emitRemoveRequest(self):
|
||||||
|
self.sigRemoveRequested.emit(self)
|
||||||
|
|
||||||
def mouseDragEvent(self, ev):
|
def mouseDragEvent(self, ev):
|
||||||
self.mouseDragHandler.mouseDragEvent(ev)
|
self.mouseDragHandler.mouseDragEvent(ev)
|
||||||
|
@ -203,15 +203,15 @@ class Parameter(QtCore.QObject):
|
|||||||
self.opts['default'] = None
|
self.opts['default'] = None
|
||||||
|
|
||||||
## Connect all state changed signals to the general sigStateChanged
|
## Connect all state changed signals to the general sigStateChanged
|
||||||
self.sigValueChanged.connect(lambda param, data: self.emitStateChanged('value', data))
|
self.sigValueChanged.connect(self.emitValueChanged)
|
||||||
self.sigChildAdded.connect(lambda param, *data: self.emitStateChanged('childAdded', data))
|
self.sigChildAdded.connect(self.emitChildAddedChanged)
|
||||||
self.sigChildRemoved.connect(lambda param, data: self.emitStateChanged('childRemoved', data))
|
self.sigChildRemoved.connect(self.emitChildRemovedChanged)
|
||||||
self.sigParentChanged.connect(lambda param, data: self.emitStateChanged('parent', data))
|
self.sigParentChanged.connect(self.emitParentChanged)
|
||||||
self.sigLimitsChanged.connect(lambda param, data: self.emitStateChanged('limits', data))
|
self.sigLimitsChanged.connect(self.emitLimitsChanged)
|
||||||
self.sigDefaultChanged.connect(lambda param, data: self.emitStateChanged('default', data))
|
self.sigDefaultChanged.connect(self.emitDefaultChanged)
|
||||||
self.sigNameChanged.connect(lambda param, data: self.emitStateChanged('name', data))
|
self.sigNameChanged.connect(self.emitNameChanged)
|
||||||
self.sigOptionsChanged.connect(lambda param, data: self.emitStateChanged('options', data))
|
self.sigOptionsChanged.connect(self.emitOptionsChanged)
|
||||||
self.sigContextMenu.connect(lambda param, data: self.emitStateChanged('contextMenu', data))
|
self.sigContextMenu.connect(self.emitContextMenuChanged)
|
||||||
|
|
||||||
|
|
||||||
#self.watchParam(self) ## emit treechange signals if our own state changes
|
#self.watchParam(self) ## emit treechange signals if our own state changes
|
||||||
@ -511,6 +511,33 @@ class Parameter(QtCore.QObject):
|
|||||||
self.treeStateChanges.append((self, changeDesc, data))
|
self.treeStateChanges.append((self, changeDesc, data))
|
||||||
self.emitTreeChanges()
|
self.emitTreeChanges()
|
||||||
|
|
||||||
|
def emitValueChanged(self, param, data):
|
||||||
|
self.emitStateChanged("value", data)
|
||||||
|
|
||||||
|
def emitChildAddedChanged(self, param, *data):
|
||||||
|
self.emitStateChanged("childAdded", data)
|
||||||
|
|
||||||
|
def emitchildRemovedChanged(self, param, data):
|
||||||
|
self.emitStateChanged("childRemoved", data)
|
||||||
|
|
||||||
|
def emitParentChanged(self, param, data):
|
||||||
|
self.emitStateChanged("parent", data)
|
||||||
|
|
||||||
|
def emitLimitsChanged(self, param, data):
|
||||||
|
self.emitStateChanged("limits", data)
|
||||||
|
|
||||||
|
def emitDefaultChanged(self, param, data):
|
||||||
|
self.emitStateChanged("default", data)
|
||||||
|
|
||||||
|
def emitNameChanged(self, param, data):
|
||||||
|
self.emitStateChanged("name", data)
|
||||||
|
|
||||||
|
def emitOptionsChanged(self, param, data):
|
||||||
|
self.emitStateChanged("options", data)
|
||||||
|
|
||||||
|
def emitContextMenuChanged(self, param, data):
|
||||||
|
self.emitStateChanged("contextMenu", data)
|
||||||
|
|
||||||
def makeTreeItem(self, depth):
|
def makeTreeItem(self, depth):
|
||||||
"""
|
"""
|
||||||
Return a TreeWidgetItem suitable for displaying/controlling the content of
|
Return a TreeWidgetItem suitable for displaying/controlling the content of
|
||||||
|
Loading…
Reference in New Issue
Block a user