From 77eee852de73c6c38266f1173197caba6143c572 Mon Sep 17 00:00:00 2001 From: TheJackiMonster Date: Tue, 30 Nov 2021 23:40:31 +0100 Subject: [PATCH] Fixed issue #808 by resetting POV once the character gets deleted Signed-off-by: TheJackiMonster --- manuskript/mainWindow.py | 13 +++++++++++-- manuskript/models/outlineItem.py | 3 +++ manuskript/ui/views/characterTreeView.py | 6 ++++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/manuskript/mainWindow.py b/manuskript/mainWindow.py index 4778490..cba1130 100644 --- a/manuskript/mainWindow.py +++ b/manuskript/mainWindow.py @@ -392,6 +392,15 @@ class MainWindow(QMainWindow, Ui_MainWindow): #don't know what's up with this pass + def deleteCharacter(self): + ID = self.lstCharacters.removeCharacter() + if ID is None: + return + for itemID in self.mdlOutline.findItemsByPOV(ID): + item = self.mdlOutline.getItemByID(itemID) + if item: + item.resetPOV() + ############################################################################### # PLOTS ############################################################################### @@ -965,7 +974,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.tblPersoInfos.setModel(self.mdlCharacter) try: self.btnAddPerso.clicked.connect(self.lstCharacters.addCharacter, F.AUC) - self.btnRmPerso.clicked.connect(self.lstCharacters.removeCharacter, F.AUC) + self.btnRmPerso.clicked.connect(self.deleteCharacter, F.AUC) self.btnPersoColor.clicked.connect(self.lstCharacters.choseCharacterColor, F.AUC) self.chkPersoPOV.stateChanged.connect(self.lstCharacters.changeCharacterPOVState, F.AUC) @@ -1122,7 +1131,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): # Characters self.disconnectAll(self.btnAddPerso.clicked, self.lstCharacters.addCharacter) - self.disconnectAll(self.btnRmPerso.clicked, self.lstCharacters.removeCharacter) + self.disconnectAll(self.btnRmPerso.clicked, self.deleteCharacter) self.disconnectAll(self.btnPersoColor.clicked, self.lstCharacters.choseCharacterColor) self.disconnectAll(self.chkPersoPOV.stateChanged, self.lstCharacters.changeCharacterPOVState) diff --git a/manuskript/models/outlineItem.py b/manuskript/models/outlineItem.py index bcb46ae..a25511a 100644 --- a/manuskript/models/outlineItem.py +++ b/manuskript/models/outlineItem.py @@ -71,6 +71,9 @@ class outlineItem(abstractItem, searchableItem): def POV(self): return self.data(self.enum.POV) + def resetPOV(self): + self.setData(self.enum.POV, None) + def status(self): return self.data(self.enum.status) diff --git a/manuskript/ui/views/characterTreeView.py b/manuskript/ui/views/characterTreeView.py index 4091a35..2bcc9f9 100644 --- a/manuskript/ui/views/characterTreeView.py +++ b/manuskript/ui/views/characterTreeView.py @@ -142,8 +142,10 @@ class characterTreeView(QTreeWidget): Removes selected character. """ ID = self.currentCharacterID() - if ID: - self._model.removeCharacter(ID) + if ID is None: + return None + self._model.removeCharacter(ID) + return ID def choseCharacterColor(self): ID = self.currentCharacterID()