diff --git a/src/sakia/app.py b/src/sakia/app.py index 287996e2340fa17e5689d48a312b0fcaa8f5a36b..ed0a138827d2d7025ffbefb231dfaab36dfb2fed 100644 --- a/src/sakia/app.py +++ b/src/sakia/app.py @@ -101,7 +101,7 @@ class Application(QObject): :return: """ self.plugins_dir = PluginsDirectory.in_config_path(self.options.config_path, profile_name).load_or_init(self.options.with_plugin) - self.parameters = UserParametersFile.in_config_path(self.options.config_path, profile_name).load_or_init() + self.parameters = UserParametersFile.in_config_path(self.options.config_path, profile_name).load_or_init(profile_name) self.db = SakiaDatabase.load_or_init(self.options, profile_name) self.instanciate_services() diff --git a/src/sakia/data/files/user_parameters.py b/src/sakia/data/files/user_parameters.py index f00116060ce20954552163d7682e7d06c8283cc8..9b51dda8e81bff126970c0f8db90d6d9432c76dd 100644 --- a/src/sakia/data/files/user_parameters.py +++ b/src/sakia/data/files/user_parameters.py @@ -31,7 +31,7 @@ class UserParametersFile: json.dump(attr.asdict(user_parameters), outfile, indent=4) return user_parameters - def load_or_init(self): + def load_or_init(self, profile_name): """ Update an existing user_parameters in the database :param sakia.data.entities.UserParameters user_parameters: the user_parameters to update @@ -39,6 +39,7 @@ class UserParametersFile: try: with open(self._file, 'r') as json_data: user_parameters = UserParameters(**json.load(json_data)) + user_parameters.profile_name = profile_name except OSError: - user_parameters = UserParameters() + user_parameters = UserParameters(profile_name=profile_name) return user_parameters diff --git a/src/sakia/gui/preferences.py b/src/sakia/gui/preferences.py index 0976b485a4677dffbbd4dc5aed933fcc09bed385..a5bd871d0dd82e82bf4711649256e3055eb2a8ed 100644 --- a/src/sakia/gui/preferences.py +++ b/src/sakia/gui/preferences.py @@ -56,7 +56,8 @@ class PreferencesDialog(QDialog, Ui_PreferencesDialog): self.edit_proxy_address.setEnabled(self.checkbox_proxy.isChecked()) def accept(self): - parameters = UserParameters(lang=self.combo_language.currentText(), + parameters = UserParameters(profile_name=self.app.parameters.profile_name, + lang=self.combo_language.currentText(), referential=self.combo_referential.currentIndex(), expert_mode=self.checkbox_expertmode.isChecked(), maximized=self.checkbox_maximize.isChecked(), diff --git a/tests/unit/data/test_user_parameters_file.py b/tests/unit/data/test_user_parameters_file.py index a001f1998c106de489924fa1e9e786436673bba7..900ba8ca183b1dce77c0804ea430aa8db431b626 100644 --- a/tests/unit/data/test_user_parameters_file.py +++ b/tests/unit/data/test_user_parameters_file.py @@ -10,5 +10,5 @@ def test_init_save_load(): user_parameters_file = UserParametersFile(file) user_parameters.proxy_address = "test.fr" user_parameters_file.save(user_parameters) - user_parameters_2 = user_parameters_file.load_or_init() + user_parameters_2 = user_parameters_file.load_or_init("Default Profile") assert user_parameters == user_parameters_2