Eliminate feedback loop between BoxHandle and PendingImportNode

This commit is contained in:
David Vierra 2017-03-30 03:57:29 -10:00
parent 08cfe209c5
commit 204045a3ef

View File

@ -87,6 +87,10 @@ class BoxHandle(scenenode.Node, QtCore.QObject):
if box != self.boxNode.selectionBox: if box != self.boxNode.selectionBox:
self.boxNode.selectionBox = box self.boxNode.selectionBox = box
self.faceDragNode.selectionBox = box self.faceDragNode.selectionBox = box
def changeBounds(self, box):
# Call in response to user input, but not programmatic bounds change
self.bounds = box
self.boundsChanged.emit(box) self.boundsChanged.emit(box)
def moveModifierDown(self, event): def moveModifierDown(self, event):
@ -199,7 +203,7 @@ class BoxHandle(scenenode.Node, QtCore.QObject):
return True return True
else: else:
# Didn't hit - start new selection # Didn't hit - start new selection
self.bounds = None self.changeBounds(None)
def continueResize(self, event): def continueResize(self, event):
# Hilite face being dragged # Hilite face being dragged
@ -209,7 +213,7 @@ class BoxHandle(scenenode.Node, QtCore.QObject):
# Update selection box to resized size in progress # Update selection box to resized size in progress
newBox = self.boxFromDragResize(self.oldBounds, event.ray) newBox = self.boxFromDragResize(self.oldBounds, event.ray)
self.bounds = newBox self.changeBounds(newBox)
def endResize(self, event): def endResize(self, event):
log.info("endResize") log.info("endResize")
@ -235,13 +239,14 @@ class BoxHandle(scenenode.Node, QtCore.QObject):
def continueCreate(self, event): def continueCreate(self, event):
# Show new box being dragged out # Show new box being dragged out
newBox = self.boxFromDragSelect(event) newBox = self.boxFromDragSelect(event)
self.bounds = newBox self.changeBounds(newBox)
def endCreate(self, event): def endCreate(self, event):
newBox = self.boxFromDragSelect(event) newBox = self.boxFromDragSelect(event)
self.isCreating = False self.isCreating = False
self.dragStartPoint = None self.dragStartPoint = None
self.dragResizeFace = None self.dragResizeFace = None
self.bounds = newBox self.bounds = newBox
self.boundsChangedDone.emit(newBox, None) self.boundsChangedDone.emit(newBox, None)