Create new group
This commit is contained in:
parent
ea3f528dda
commit
32d7cfff53
|
@ -115,6 +115,10 @@ class HierarchicalGraphWidget(QZoomableDraggableGraphicsView):
|
|||
self._action_rename.setShortcut("N")
|
||||
self._action_rename.triggered.connect(self.rename_selected_node)
|
||||
self.viewport().addAction(self._action_rename)
|
||||
self._action_create = QAction("Create Group")
|
||||
self._action_create.setShortcut("C")
|
||||
self._action_create.triggered.connect(self.new_group)
|
||||
self.viewport().addAction(self._action_create)
|
||||
|
||||
self.setScene(QGraphicsScene())
|
||||
self.scene().selectionChanged.connect(self._on_selection_changed_internal)
|
||||
|
@ -362,6 +366,18 @@ class HierarchicalGraphWidget(QZoomableDraggableGraphicsView):
|
|||
self._labels[self.selected_node] = text
|
||||
self.qnodes[self.ug_reverse[self.selected_node]].layout()
|
||||
|
||||
def new_group(self):
|
||||
if len(self.selected_nodes) > 0:
|
||||
new_pos = sum((self.qnodes[self.ug_reverse[model]].center for model in self.selected_nodes), QPointF()) / len(self.selected_nodes)
|
||||
else:
|
||||
new_pos = self.mapToScene(self.viewport().rect().center())
|
||||
|
||||
grp = self.hg.create_group([model for model in self.selected_nodes if isinstance(model, (RelativeAtom, RelativeAtomGroup))], self.current_group.am_obj)
|
||||
self._layouts[self.current_group.am_obj][grp] = new_pos.toPoint()
|
||||
self._labels[grp] = 'New Group'
|
||||
self._layout(0)
|
||||
self.qnodes[self.ug_reverse[grp]].setSelected(True)
|
||||
|
||||
# private interfaces
|
||||
|
||||
def _rekey_externs(self, old_qnode: 'PropChartHG', new_qnode: 'PropChartHG'):
|
||||
|
|
Loading…
Reference in New Issue