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()