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.
This commit is contained in:
tntscreed 2023-03-09 16:24:35 +01:00
parent 1fd45ba1d2
commit 92b1e0b648

View file

@ -333,19 +333,14 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.refreshBulkAffectedCharacters() self.refreshBulkAffectedCharacters()
# Showing the character names on the label # Showing the character names on the label
labelText = "" labelText = self.createCharacterSelectionString()
for characterName in self.bulkAffectedCharacters:
labelText += characterName + " ; "
bulkPersoInfoManagerUi.lblCharactersDynamic.setText(labelText) bulkPersoInfoManagerUi.lblCharactersDynamic.setText(labelText)
# Making the connections # Making the connections
self.makeBulkInfoConnections(bulkPersoInfoManagerUi) self.makeBulkInfoConnections(bulkPersoInfoManagerUi)
elif enabled and self.BulkManageUi is not None: # If yet another character is selected, refresh the label elif enabled and self.BulkManageUi is not None: # If yet another character is selected, refresh the label
labelText = "" labelText = self.createCharacterSelectionString()
self.refreshBulkAffectedCharacters()
for characterName in self.bulkAffectedCharacters:
labelText += characterName + " ; "
self.BulkManageUi.lblCharactersDynamic.setText(labelText) self.BulkManageUi.lblCharactersDynamic.setText(labelText)
else: # Delete manager tab and restore the others else: # Delete manager tab and restore the others
@ -355,6 +350,17 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.BulkManageUi = None self.BulkManageUi = None
self.bulkAffectedCharacters.clear() 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): def makeBulkInfoConnections(self, bulkUi):
# A lambda has to be used to pass in the argument # A lambda has to be used to pass in the argument
bulkUi.btnPersoBulkAddInfo.clicked.connect(lambda: self.addBulkInfo(bulkUi)) bulkUi.btnPersoBulkAddInfo.clicked.connect(lambda: self.addBulkInfo(bulkUi))
@ -436,8 +442,22 @@ class MainWindow(QMainWindow, Ui_MainWindow):
if len(selectedCharacters) > 1: if len(selectedCharacters) > 1:
self.setPersoBulkMode(True) self.setPersoBulkMode(True)
else: 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) self.tabPersos.setEnabled(True)
def refreshBulkAffectedCharacters(self): #Characters affected by a potential bulk-info modification def refreshBulkAffectedCharacters(self): #Characters affected by a potential bulk-info modification