From bdc700d3dad380ca7260755978b1412c868ff8dc Mon Sep 17 00:00:00 2001 From: KenanZhu <3471685733@qq.com> Date: Tue, 4 Nov 2025 00:17:59 +0800 Subject: [PATCH] fix(ALConfigWidget): prevent config load from overriding unsaved UI changes The previous implementation directly replaced the current in-memory state of system and user configurations during file loading. This behavior did not align with user expectations, as it could discard unsaved changes made in the UI. The fix ensures that loading a configuration file only updates the internal in-memory state of system and user configurations, preserving any unsaved UI modifications. --- gui/ALConfigWidget.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gui/ALConfigWidget.py b/gui/ALConfigWidget.py index f03e875..96a8436 100644 --- a/gui/ALConfigWidget.py +++ b/gui/ALConfigWidget.py @@ -489,16 +489,12 @@ class ALConfigWidget(QWidget, Ui_ALConfigWidget): system_config = self.loadSystemConfig(config_path) users_config = self.loadUsersConfig(config_path) if system_config is not None: - self.__config_paths["system"] = config_path self.__system_config_data.update(system_config) self.setSystemConfigToWidget(self.__system_config_data) - self.CurrentSystemConfigEdit.setText(config_path) return True if users_config is not None: - self.__config_paths["users"] = config_path self.__users_config_data.update(users_config) self.fillUsersList(self.__users_config_data) - self.CurrentUserConfigEdit.setText(config_path) return True except: return False @@ -644,7 +640,9 @@ class ALConfigWidget(QWidget, Ui_ALConfigWidget): )[0] if system_config_path: system_config_path = QDir.toNativeSeparators(system_config_path) - self.loadConfig(system_config_path) + if self.loadConfig(system_config_path): + self.__config_paths["system"] = system_config_path + self.CurrentSystemConfigEdit.setText(system_config_path) @Slot() def onBrowseCurrentUserConfigButtonClicked( @@ -659,7 +657,9 @@ class ALConfigWidget(QWidget, Ui_ALConfigWidget): )[0] if users_config_path: users_config_path = QDir.toNativeSeparators(users_config_path) - self.loadConfig(users_config_path) + if self.loadConfig(users_config_path): + self.__config_paths["users"] = users_config_path + self.CurrentUserConfigEdit.setText(users_config_path) @Slot() def onBrowseExportSystemConfigButtonClicked(