From 95d69594118f92005cd8ba5ef2e904027a86eff0 Mon Sep 17 00:00:00 2001
From: inso <insomniak.fr@gmaiL.com>
Date: Sun, 22 Oct 2017 16:07:59 +0200
Subject: [PATCH] Fix parameters handling in non-default profiles

---
 src/sakia/app.py                             | 2 +-
 src/sakia/data/files/user_parameters.py      | 5 +++--
 src/sakia/gui/preferences.py                 | 3 ++-
 tests/unit/data/test_user_parameters_file.py | 2 +-
 4 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/sakia/app.py b/src/sakia/app.py
index 287996e2..ed0a1388 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 f0011606..9b51dda8 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 0976b485..a5bd871d 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 a001f199..900ba8ca 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
-- 
GitLab