mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Preference option to set up preferences on every start (#503)
This commit is contained in:
parent
2d65a038ee
commit
e36f07a3ff
@ -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
|
||||
|
||||
@ -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()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user