Merge remote-tracking branch 'upstream/dev' into dev
This commit is contained in:
commit
51a3731124
1 changed files with 22 additions and 25 deletions
|
|
@ -245,7 +245,7 @@ def end_session(menus):
|
|||
|
||||
def get_entry_settings(group, name):
|
||||
"""Get menu entry settings from the registry, returns dict."""
|
||||
key_path = fr'{AUTO_REPAIR_KEY}\{group}\{strip_colors(name)}'
|
||||
key_path = fr'{AUTO_REPAIR_KEY}\{group}\{name}'
|
||||
settings = {}
|
||||
for value in ('done', 'failed', 'message', 'selected', 'skipped', 'warning'):
|
||||
try:
|
||||
|
|
@ -262,7 +262,7 @@ def get_entry_settings(group, name):
|
|||
return settings
|
||||
|
||||
|
||||
def init(menus):
|
||||
def init(menus, presets):
|
||||
"""Initialize Auto Repairs."""
|
||||
session_started = is_session_started()
|
||||
|
||||
|
|
@ -278,17 +278,18 @@ def init(menus):
|
|||
menus['Options'].options['Use Autologon']['Selected'] = False
|
||||
save_selection_settings(menus)
|
||||
|
||||
# Start or resume a repair session
|
||||
if session_started:
|
||||
load_settings(menus)
|
||||
print_info('Resuming session, press CTRL+c to cancel')
|
||||
for _x in range(AUTO_REPAIR_DELAY_IN_SECONDS, 0, -1):
|
||||
print(f' {_x} second{"" if _x==1 else "s"} remaining... \r', end='')
|
||||
sleep(1)
|
||||
print('')
|
||||
# Start new session
|
||||
if not session_started:
|
||||
load_preset(menus, presets, enable_menu_exit=False)
|
||||
return
|
||||
|
||||
# Done
|
||||
return session_started
|
||||
# Resume session
|
||||
load_settings(menus)
|
||||
print_info('Resuming session, press CTRL+c to cancel')
|
||||
for _x in range(AUTO_REPAIR_DELAY_IN_SECONDS, 0, -1):
|
||||
print(f' {_x} second{"" if _x==1 else "s"} remaining... \r', end='')
|
||||
sleep(1)
|
||||
print('')
|
||||
|
||||
|
||||
def init_run(options):
|
||||
|
|
@ -392,8 +393,7 @@ def load_preset(menus, presets, enable_menu_exit=True):
|
|||
for group, menu in menus.items():
|
||||
group_enabled = group in preset
|
||||
for name in menu.options:
|
||||
name_str = strip_colors(name)
|
||||
value = group_enabled and name_str in preset[group]
|
||||
value = group_enabled and name in preset[group]
|
||||
menu.options[name]['Selected'] = value
|
||||
|
||||
# Re-enable Main Menu action if disabled
|
||||
|
|
@ -406,7 +406,7 @@ def load_settings(menus):
|
|||
if group == 'Main':
|
||||
continue
|
||||
for name in menu.options:
|
||||
menu.options[name].update(get_entry_settings(group, name))
|
||||
menu.options[name].update(get_entry_settings(group, strip_colors(name)))
|
||||
|
||||
|
||||
def run_auto_repairs(base_menus, presets):
|
||||
|
|
@ -422,18 +422,18 @@ def run_auto_repairs(base_menus, presets):
|
|||
print_standard('Initializing...')
|
||||
menus = build_menus(base_menus, title, presets)
|
||||
|
||||
# Get repair preset
|
||||
load_preset(menus, presets, enable_menu_exit=False)
|
||||
|
||||
# Init
|
||||
session_started = False
|
||||
show_menu_again = False
|
||||
try:
|
||||
session_started = init(menus)
|
||||
init(menus, presets)
|
||||
except KeyboardInterrupt:
|
||||
# Assuming session was started and resume countdown was interrupted
|
||||
session_started = None
|
||||
show_menu_again = True
|
||||
session_started = is_session_started()
|
||||
|
||||
# Show Menu
|
||||
if session_started is None or not session_started:
|
||||
if show_menu_again or not session_started:
|
||||
try:
|
||||
show_main_menu(base_menus, menus, presets, title)
|
||||
except SystemExit:
|
||||
|
|
@ -441,10 +441,6 @@ def run_auto_repairs(base_menus, presets):
|
|||
end_session(menus)
|
||||
raise
|
||||
|
||||
# Re-check if a repair session was started
|
||||
if session_started is None:
|
||||
session_started = is_session_started()
|
||||
|
||||
# Start or resume repairs
|
||||
clear_screen()
|
||||
print_standard(title)
|
||||
|
|
@ -545,6 +541,7 @@ def save_settings(group, name, result=None, **kwargs):
|
|||
|
||||
# Write values to registry
|
||||
for value_name, data in kwargs.items():
|
||||
value_name = strip_colors(value_name)
|
||||
if isinstance(data, bool):
|
||||
data = 1 if data else 0
|
||||
if isinstance(data, int):
|
||||
|
|
|
|||
Loading…
Reference in a new issue