Create new group

This commit is contained in:
Audrey 2022-11-17 14:08:03 -07:00
parent ea3f528dda
commit 32d7cfff53
1 changed files with 16 additions and 0 deletions

View File

@ -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'):