diff --git a/gui/azure_config_advanced.py b/gui/azure_config_advanced.py index 34e08c62c..2a8efb640 100644 --- a/gui/azure_config_advanced.py +++ b/gui/azure_config_advanced.py @@ -39,7 +39,8 @@ def __init__(self,configSettings): self.myWindow = QSettings("CloudFUSE", "AzAdvancedWindow") self.initWindowSizePos() self.populateOptions() - + self.saveButtonClicked = False + if platform == 'win32': # Windows directory and filename conventions: # https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#file-and-directory-names diff --git a/gui/azure_config_common.py b/gui/azure_config_common.py index d4f8d3d08..5dd890c05 100644 --- a/gui/azure_config_common.py +++ b/gui/azure_config_common.py @@ -46,6 +46,7 @@ def __init__(self,configSettings): self.showAzureModeSettings() self.showModeSettings() self.populateOptions() + self.saveButtonClicked = False # Set up signals self.dropDown_pipeline.currentIndexChanged.connect(self.showModeSettings) diff --git a/gui/common_qt_functions.py b/gui/common_qt_functions.py index 464b2ce62..383aa7448 100644 --- a/gui/common_qt_functions.py +++ b/gui/common_qt_functions.py @@ -283,6 +283,7 @@ def __init__(self): super().__init__() def exitWindow(self): + self.saveButtonClicked = True self.close() def exitWindowCleanup(self): @@ -309,13 +310,8 @@ def closeEvent(self, event): msg.setText("The settings have been modified.") msg.setStandardButtons(QtWidgets.QMessageBox.Discard | QtWidgets.QMessageBox.Cancel | QtWidgets.QMessageBox.Save) msg.setDefaultButton(QtWidgets.QMessageBox.Cancel) - ret = msg.exec() - if ret == QtWidgets.QMessageBox.Discard: - self.exitWindowCleanup() - event.accept() - elif ret == QtWidgets.QMessageBox.Cancel: - event.ignore() - elif ret == QtWidgets.QMessageBox.Save: + + if self.saveButtonClicked == True: # Insert all settings to yaml file self.exitWindowCleanup() self.updateSettingsFromUIChoices() @@ -323,6 +319,21 @@ def closeEvent(self, event): event.accept() else: event.ignore() + else: + ret = msg.exec() + if ret == QtWidgets.QMessageBox.Discard: + self.exitWindowCleanup() + event.accept() + elif ret == QtWidgets.QMessageBox.Cancel: + event.ignore() + elif ret == QtWidgets.QMessageBox.Save: + # Insert all settings to yaml file + self.exitWindowCleanup() + self.updateSettingsFromUIChoices() + if self.writeConfigFile(self.settings): + event.accept() + else: + event.ignore() def updateSettingsFromUIChoices(self): # Each individual widget will need to override this function diff --git a/gui/requirements.txt b/gui/requirements.txt index eab6147b1..b3f69b015 100644 --- a/gui/requirements.txt +++ b/gui/requirements.txt @@ -1,3 +1,3 @@ pyinstaller==6.10.0 -PySide6==6.8.0 +PySide6==6.8.0.1 PyYAML==6.0.2 diff --git a/gui/s3_config_advanced.py b/gui/s3_config_advanced.py index 71de1c104..7f7be34e1 100644 --- a/gui/s3_config_advanced.py +++ b/gui/s3_config_advanced.py @@ -38,6 +38,7 @@ def __init__(self,configSettings): self.initWindowSizePos() self.setWindowTitle("Advanced S3Cloud Config Settings") self.populateOptions() + self.saveButtonClicked = False if platform == 'win32': # Windows directory and filename conventions: diff --git a/gui/s3_config_common.py b/gui/s3_config_common.py index 43352d347..0affce914 100644 --- a/gui/s3_config_common.py +++ b/gui/s3_config_common.py @@ -42,8 +42,7 @@ def __init__(self, configSettings): self.settings = configSettings self.populateOptions() self.showModeSettings() - - + self.saveButtonClicked = False # S3 naming conventions: # https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html