diff --git a/qt_ui/liberation_install.py b/qt_ui/liberation_install.py index 290a394b..fef0ad7b 100644 --- a/qt_ui/liberation_install.py +++ b/qt_ui/liberation_install.py @@ -12,6 +12,7 @@ global __dcs_saved_game_directory global __dcs_installation_directory global __last_save_file global __prefer_liberation_payloads +global __setup_preferences_on_every_start global __server_port @@ -26,6 +27,7 @@ def init(): global __last_save_file global __ignore_empty_install_directory global __prefer_liberation_payloads + global __setup_preferences_on_every_start global __server_port if PREFERENCES_PATH.exists(): @@ -42,20 +44,25 @@ def init(): __prefer_liberation_payloads = pref_data.get( "prefer_liberation_payloads", False ) + __setup_preferences_on_every_start = pref_data.get( + "setup_preferences_on_every_start", False + ) __server_port = pref_data.get("server_port", 16880) - is_first_start = False + is_first_start = __setup_preferences_on_every_start except (KeyError, json.JSONDecodeError): __dcs_saved_game_directory = "" __dcs_installation_directory = "" __last_save_file = "" __ignore_empty_install_directory = False __prefer_liberation_payloads = False + __setup_preferences_on_every_start = False __server_port = 16880 is_first_start = True else: __last_save_file = "" __ignore_empty_install_directory = False __prefer_liberation_payloads = False + __setup_preferences_on_every_start = False __server_port = 16880 try: __dcs_saved_game_directory = ( @@ -79,14 +86,16 @@ def init(): return is_first_start -def setup(saved_game_dir, install_dir, prefer_liberation_payloads, port): +def setup(saved_game_dir, install_dir, prefer_liberation_payloads, setup_preferences_on_every_start, port): global __dcs_saved_game_directory global __dcs_installation_directory global __prefer_liberation_payloads + global __setup_preferences_on_every_start global __server_port __dcs_saved_game_directory = saved_game_dir __dcs_installation_directory = install_dir __prefer_liberation_payloads = prefer_liberation_payloads + __setup_preferences_on_every_start = setup_preferences_on_every_start __server_port = port persistency.setup(saved_game_dir, prefer_liberation_payloads, port) @@ -108,6 +117,7 @@ def save_config(): "last_save_file": __last_save_file, "ignore_empty_install_directory": __ignore_empty_install_directory, "prefer_liberation_payloads": __prefer_liberation_payloads, + "setup_preferences_on_every_start": __setup_preferences_on_every_start, "server_port": __server_port, } PREFERENCES_PATH.parent.mkdir(exist_ok=True, parents=True) @@ -130,6 +140,10 @@ def prefer_liberation_payloads(): return __prefer_liberation_payloads +def setup_preferences_on_every_start(): + global __setup_preferences_on_every_start + return __setup_preferences_on_every_start + def server_port(): global __server_port return __server_port diff --git a/qt_ui/windows/preferences/QLiberationPreferences.py b/qt_ui/windows/preferences/QLiberationPreferences.py index 072e2417..835bda63 100644 --- a/qt_ui/windows/preferences/QLiberationPreferences.py +++ b/qt_ui/windows/preferences/QLiberationPreferences.py @@ -47,6 +47,13 @@ class QLiberationPreferences(QFrame): self.payloads_cb = QCheckBox() self.payloads_cb.setChecked(self.prefer_liberation_payloads) + setup_on_startup = liberation_install.setup_preferences_on_every_start() + self.setup_preferences_on_every_start = ( + setup_on_startup if setup_on_startup else False + ) + self.setup_every_start_cb = QCheckBox() + self.setup_every_start_cb.setChecked(self.setup_preferences_on_every_start) + self.port = liberation_install.server_port() self.port_input = QSpinBox() @@ -92,12 +99,20 @@ class QLiberationPreferences(QFrame): layout.addWidget(self.payloads_cb, 5, 1, alignment=Qt.AlignmentFlag.AlignRight) layout.addWidget( - QLabel("Server port (restart required):"), + QLabel("Setup preferences on every start:"), 6, 0, alignment=Qt.AlignmentFlag.AlignLeft, ) - layout.addWidget(self.port_input, 6, 1, alignment=Qt.AlignmentFlag.AlignRight) + layout.addWidget(self.setup_every_start_cb, 6, 1, alignment=Qt.AlignmentFlag.AlignRight) + + layout.addWidget( + QLabel("Server port (restart required):"), + 7, + 0, + alignment=Qt.AlignmentFlag.AlignLeft, + ) + layout.addWidget(self.port_input, 7, 1, alignment=Qt.AlignmentFlag.AlignRight) self.port_input.setRange(1, 2**16 - 1) self.port_input.setValue(self.port) self.port_input.setStyleSheet("QSpinBox{ width: 50 }") @@ -127,6 +142,7 @@ class QLiberationPreferences(QFrame): self.saved_game_dir = self.edit_saved_game_dir.text() self.dcs_install_dir = self.edit_dcs_install_dir.text() self.prefer_liberation_payloads = self.payloads_cb.isChecked() + self.setup_preferences_on_every_start = self.setup_every_start_cb.isChecked() self.port = self.port_input.value() set_theme_index(self.themeSelect.currentIndex()) @@ -187,6 +203,7 @@ class QLiberationPreferences(QFrame): self.saved_game_dir, self.dcs_install_dir, self.prefer_liberation_payloads, + self.setup_preferences_on_every_start, self.port, ) liberation_install.save_config()