Preference option to set up preferences on every start (#503)

This commit is contained in:
Raffson 2025-05-07 20:00:31 +02:00
parent 2d65a038ee
commit e36f07a3ff
No known key found for this signature in database
GPG Key ID: B0402B2C9B764D99
2 changed files with 35 additions and 4 deletions

View File

@ -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

View File

@ -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("<strong>Server port (restart required):</strong>"),
QLabel("<strong>Setup preferences on every start:</strong>"),
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("<strong>Server port (restart required):</strong>"),
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()