From 5e9fdd9682bb41b952eb39b5869cc4dc5fc59ecb Mon Sep 17 00:00:00 2001 From: brenda-br Date: Mon, 6 Feb 2023 20:56:13 +0530 Subject: Undeletable Line Grips --- src/main/python/utils/graphics.py | 11 ++++++++--- src/main/python/utils/undo.py | 11 +++++++++-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/python/utils/graphics.py b/src/main/python/utils/graphics.py index a6910ae..c9dbed7 100644 --- a/src/main/python/utils/graphics.py +++ b/src/main/python/utils/graphics.py @@ -105,13 +105,17 @@ class CustomScene(QGraphicsScene): # (slot) used to delete all selected items, and add undo action for each of them if self.selectedItems(): for item in self.selectedItems(): + if(issubclass(item.__class__,shapes.LineGripItem) or issubclass(item.__class__,shapes.SizeGripItem) ): + itemToDelete = item.parentItem() + else: + itemToDelete = item self.count = 0 - if(issubclass(item.__class__,shapes.NodeItem)): - for i in item.lineGripItems: + if(issubclass(itemToDelete.__class__,shapes.NodeItem)): + for i in itemToDelete.lineGripItems: for j in i.lines: self.count+=1 self.undoStack.push(deleteCommand(j, self)) - self.undoStack.push(deleteCommand(item, self)) + self.undoStack.push(deleteCommand(itemToDelete, self)) def itemMoved(self, movedItem, lastPos): #item move event, checks if item is moved @@ -141,6 +145,7 @@ class CustomScene(QGraphicsScene): self.itemMoved(self.movingItem, self.oldPos) self.movingItem = None #clear movingitem reference return super(CustomScene, self).mouseReleaseEvent(event) + def reInsertLines(self): currentIndex = self.undoStack.index() index = self.count+1 diff --git a/src/main/python/utils/undo.py b/src/main/python/utils/undo.py index 2f28964..8e21fe7 100644 --- a/src/main/python/utils/undo.py +++ b/src/main/python/utils/undo.py @@ -83,8 +83,15 @@ class deleteCommand(QUndoCommand): return startIndex,endIndex def reconnectLines(self): - self.startGrip.lineGripItems[self.indexLGS].lines.append(self.diagramItem) - self.endGrip.lineGripItems[self.indexLGE].lines.append(self.diagramItem) + try: + self.startGrip.lineGripItems[self.indexLGS].lines.append(self.diagramItem) + except: + pass + try: + self.endGrip.lineGripItems[self.indexLGE].lines.append(self.diagramItem) + except: + pass + class moveCommand(QUndoCommand): """ QUndoCommand for move item event -- cgit