From 92b1e0b648f5dce9f66ee58082a6b4252bd19b86 Mon Sep 17 00:00:00 2001 From: tntscreed Date: Thu, 9 Mar 2023 16:24:35 +0100 Subject: [PATCH] Made small improvements to the bulk detail manager. -Cleaned the code up a bit. -Added warning message before discarding unapplied entries in the bulk manager. The bulk manager now doesn't automatically close when selecting a single (or no) character, but asks for the user's consent. --- manuskript/mainWindow.py | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/manuskript/mainWindow.py b/manuskript/mainWindow.py index 2fea4b4..65e2eac 100644 --- a/manuskript/mainWindow.py +++ b/manuskript/mainWindow.py @@ -333,19 +333,14 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.refreshBulkAffectedCharacters() # Showing the character names on the label - labelText = "" - for characterName in self.bulkAffectedCharacters: - labelText += characterName + " ; " + labelText = self.createCharacterSelectionString() bulkPersoInfoManagerUi.lblCharactersDynamic.setText(labelText) # Making the connections self.makeBulkInfoConnections(bulkPersoInfoManagerUi) elif enabled and self.BulkManageUi is not None: # If yet another character is selected, refresh the label - labelText = "" - self.refreshBulkAffectedCharacters() - for characterName in self.bulkAffectedCharacters: - labelText += characterName + " ; " + labelText = self.createCharacterSelectionString() self.BulkManageUi.lblCharactersDynamic.setText(labelText) else: # Delete manager tab and restore the others @@ -355,6 +350,17 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.BulkManageUi = None self.bulkAffectedCharacters.clear() + def createCharacterSelectionString(self): + self.refreshBulkAffectedCharacters() + labelText = "" + length = len(self.bulkAffectedCharacters) + for i in range(length-1): + labelText += '"' + self.bulkAffectedCharacters[i] + '"' + ", " + + labelText += '"' + self.bulkAffectedCharacters[length-1] + '"' + + return labelText + def makeBulkInfoConnections(self, bulkUi): # A lambda has to be used to pass in the argument bulkUi.btnPersoBulkAddInfo.clicked.connect(lambda: self.addBulkInfo(bulkUi)) @@ -436,8 +442,22 @@ class MainWindow(QMainWindow, Ui_MainWindow): if len(selectedCharacters) > 1: self.setPersoBulkMode(True) else: - self.setPersoBulkMode(False) + if self.BulkManageUi is not None: + self.refreshBulkAffectedCharacters() + self.BulkManageUi.lblCharactersDynamic.setText( self.createCharacterSelectionString() ) + tableview_model = self.BulkManageUi.tableView.model() + if tableview_model.rowCount() > 0: + confirm = QMessageBox.warning( + self, "Un-applied data!", + "There are un-applied entries in this tab. Discard them?", + QMessageBox.Yes | QMessageBox.No, + defaultButton = QMessageBox.No + ) + if confirm != QMessageBox.Yes: + return + + self.setPersoBulkMode(False) self.tabPersos.setEnabled(True) def refreshBulkAffectedCharacters(self): #Characters affected by a potential bulk-info modification