From 00a2793e18ad72bb6a107e18c59d54c05e42a682 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Math=C3=AFs=20F=C3=A9d=C3=A9rico?= Date: Sun, 14 Nov 2021 19:34:49 +0100 Subject: [PATCH] :tada: Add select pasted items --- opencodeblocks/graphics/scene/clipboard.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/opencodeblocks/graphics/scene/clipboard.py b/opencodeblocks/graphics/scene/clipboard.py index b377359e..c8e02fd6 100644 --- a/opencodeblocks/graphics/scene/clipboard.py +++ b/opencodeblocks/graphics/scene/clipboard.py @@ -79,11 +79,13 @@ def _find_bbox_center(self, blocks_data): ymax = y return (xmin + xmax) / 2, (ymin + ymax) / 2 - def _deserializeData(self, data:OrderedDict): + def _deserializeData(self, data:OrderedDict, set_selected=True): hashmap = {} view = self.scene.views()[0] mouse_pos = view.lastMousePos + if set_selected: + self.scene.clearSelection() # Finding pasting bbox center bbox_center_x, bbox_center_y = self._find_bbox_center(data['blocks']) @@ -103,6 +105,8 @@ def _deserializeData(self, data:OrderedDict): block_pos = block.pos() block.setPos(block_pos.x() + offset_x, block_pos.y() + offset_y) + if set_selected: + block.setSelected(True) self.scene.addItem(block) hashmap.update({block.id: block}) @@ -110,11 +114,15 @@ def _deserializeData(self, data:OrderedDict): for edge_data in data['edges']: edge = OCBEdge() edge.deserialize(edge_data, hashmap, restore_id=False) + + if set_selected: + edge.setSelected(True) self.scene.addItem(edge) hashmap.update({edge_data['id']: edge}) self.scene.history.checkpoint('Desiralized elements into scene', set_modified=True) + def _store(self, data:OrderedDict): str_data = json.dumps(data, indent=4) QApplication.instance().clipboard().setText(str_data)