Center on last node when doubleclick background
This commit is contained in:
parent
46baaeeabb
commit
9ca70f758a
|
@ -422,24 +422,29 @@ class HierarchicalGraphWidget(QZoomableDraggableGraphicsView):
|
|||
model_v = self.ug_lookup[v]
|
||||
qu = self.qnodes[u]
|
||||
qv = self.qnodes[v]
|
||||
|
||||
if isinstance(model_u, ExternNode):
|
||||
towards_start = current_group in self.ng.succ[model_v]
|
||||
towards_end = model_v in self.ng.succ[current_group]
|
||||
elif isinstance(model_v, ExternNode):
|
||||
towards_start = model_u in self.ng.succ[current_group]
|
||||
towards_end = current_group in self.ng.succ[model_u]
|
||||
else:
|
||||
towards_end = model_v in self.ng.succ[model_u]
|
||||
towards_start = model_u in self.ng.succ[model_v]
|
||||
|
||||
if model_u in qv.edges:
|
||||
assert model_v in qu.edges
|
||||
edge = qv.edges[model_u]
|
||||
edge.prepareGeometryChange()
|
||||
edge.toward_start = edge.start.model in self.ng.succ[edge.end.model]
|
||||
edge.toward_end = edge.end.model in self.ng.succ[edge.start.model]
|
||||
if edge.start is not qu:
|
||||
assert edge.end is qu
|
||||
towards_start, towards_end = towards_end, towards_start
|
||||
edge.toward_start = towards_start
|
||||
edge.toward_end = towards_end
|
||||
else:
|
||||
assert model_v not in qu.edges
|
||||
if isinstance(model_u, ExternNode):
|
||||
towards_start = current_group in self.ng.succ[model_v]
|
||||
towards_end = model_v in self.ng.succ[current_group]
|
||||
elif isinstance(model_v, ExternNode):
|
||||
towards_start = model_u in self.ng.succ[current_group]
|
||||
towards_end = current_group in self.ng.succ[model_u]
|
||||
else:
|
||||
towards_end = model_v in self.ng.succ[model_u]
|
||||
towards_start = model_u in self.ng.succ[model_v]
|
||||
arrow = HGArrow(None, self.qnodes[u], self.qnodes[v], towards_start, towards_end)
|
||||
arrow = HGArrow(None, qu, qv, towards_start, towards_end)
|
||||
qu.edges[model_v] = arrow
|
||||
qv.edges[model_u] = arrow
|
||||
self.scene().addItem(arrow)
|
||||
|
@ -559,10 +564,14 @@ class HierarchicalGraphWidget(QZoomableDraggableGraphicsView):
|
|||
# objectcontainer event handlers
|
||||
|
||||
def _on_change_group(self, **kwargs):
|
||||
self._layouts[self._old_group] = {qnode.model: qnode.center for qnode in self.qnodes}
|
||||
old_group = self._old_group
|
||||
self._old_group = self.current_group.am_obj
|
||||
self._layouts[old_group] = {qnode.model: qnode.center for qnode in self.qnodes}
|
||||
self._layout(600)
|
||||
self._update_scene_rect(True)
|
||||
if old_group in self.ug_reverse:
|
||||
self.qnodes[self.ug_reverse[old_group]].setSelected(True)
|
||||
self.centerOn(self.qnodes[self.ug_reverse[old_group]].center)
|
||||
|
||||
def _on_selection_changed(self, src=None, **kwargs):
|
||||
if src == 'qt':
|
||||
|
|
Loading…
Reference in New Issue