diff --git a/manuskript/mainWindow.py b/manuskript/mainWindow.py index c2f7887..8df50d2 100644 --- a/manuskript/mainWindow.py +++ b/manuskript/mainWindow.py @@ -514,7 +514,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): pass def deleteCharacter(self): - ID = self.lstCharacters.removeCharacter() + ID = self.lstCharacters.removeCharacters() if ID is None: return for itemID in self.mdlOutline.findItemsByPOV(ID): diff --git a/manuskript/ui/views/characterTreeView.py b/manuskript/ui/views/characterTreeView.py index c02b875..a70c9fd 100644 --- a/manuskript/ui/views/characterTreeView.py +++ b/manuskript/ui/views/characterTreeView.py @@ -2,7 +2,7 @@ # --!-- coding: utf8 --!-- from PyQt5.QtCore import QSize, QModelIndex, Qt from PyQt5.QtGui import QPixmap, QColor, QIcon, QBrush -from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem, QColorDialog, QDialog +from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem, QColorDialog, QDialog, QMessageBox from manuskript.enums import Character from manuskript.functions import iconColor, mainWindow @@ -138,15 +138,29 @@ class characterTreeView(QTreeWidget): self._model.addCharacter(importance=curr_importance) - def removeCharacter(self): + def removeCharacters(self): """ - Removes selected character. + Removes selected characters. """ - ID = self.currentCharacterID() - if ID is None: + IDs = self.currentCharacterIDs() + + # If none of the IDs are valid, do nothing. + if not any(IDs): return None - self._model.removeCharacter(ID) - return ID + + #Get confirmation from user + confirm = QMessageBox.warning( + self, "Delete selected character(s)?", + "Are you sure you want to delete the selected character(s)?", + QMessageBox.Yes | QMessageBox.No + ) + if confirm != QMessageBox.Yes: + return None + + #Delete all selected characters + for ID in IDs: + self._model.removeCharacter(ID) + return IDs def choseCharacterColor(self): ID = self.currentCharacterID()