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):
|
def get_entry_settings(group, name):
|
||||||
"""Get menu entry settings from the registry, returns dict."""
|
"""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 = {}
|
settings = {}
|
||||||
for value in ('done', 'failed', 'message', 'selected', 'skipped', 'warning'):
|
for value in ('done', 'failed', 'message', 'selected', 'skipped', 'warning'):
|
||||||
try:
|
try:
|
||||||
|
|
@ -262,7 +262,7 @@ def get_entry_settings(group, name):
|
||||||
return settings
|
return settings
|
||||||
|
|
||||||
|
|
||||||
def init(menus):
|
def init(menus, presets):
|
||||||
"""Initialize Auto Repairs."""
|
"""Initialize Auto Repairs."""
|
||||||
session_started = is_session_started()
|
session_started = is_session_started()
|
||||||
|
|
||||||
|
|
@ -278,8 +278,12 @@ def init(menus):
|
||||||
menus['Options'].options['Use Autologon']['Selected'] = False
|
menus['Options'].options['Use Autologon']['Selected'] = False
|
||||||
save_selection_settings(menus)
|
save_selection_settings(menus)
|
||||||
|
|
||||||
# Start or resume a repair session
|
# Start new session
|
||||||
if session_started:
|
if not session_started:
|
||||||
|
load_preset(menus, presets, enable_menu_exit=False)
|
||||||
|
return
|
||||||
|
|
||||||
|
# Resume session
|
||||||
load_settings(menus)
|
load_settings(menus)
|
||||||
print_info('Resuming session, press CTRL+c to cancel')
|
print_info('Resuming session, press CTRL+c to cancel')
|
||||||
for _x in range(AUTO_REPAIR_DELAY_IN_SECONDS, 0, -1):
|
for _x in range(AUTO_REPAIR_DELAY_IN_SECONDS, 0, -1):
|
||||||
|
|
@ -287,9 +291,6 @@ def init(menus):
|
||||||
sleep(1)
|
sleep(1)
|
||||||
print('')
|
print('')
|
||||||
|
|
||||||
# Done
|
|
||||||
return session_started
|
|
||||||
|
|
||||||
|
|
||||||
def init_run(options):
|
def init_run(options):
|
||||||
"""Initialize Auto Repairs Run."""
|
"""Initialize Auto Repairs Run."""
|
||||||
|
|
@ -392,8 +393,7 @@ def load_preset(menus, presets, enable_menu_exit=True):
|
||||||
for group, menu in menus.items():
|
for group, menu in menus.items():
|
||||||
group_enabled = group in preset
|
group_enabled = group in preset
|
||||||
for name in menu.options:
|
for name in menu.options:
|
||||||
name_str = strip_colors(name)
|
value = group_enabled and name in preset[group]
|
||||||
value = group_enabled and name_str in preset[group]
|
|
||||||
menu.options[name]['Selected'] = value
|
menu.options[name]['Selected'] = value
|
||||||
|
|
||||||
# Re-enable Main Menu action if disabled
|
# Re-enable Main Menu action if disabled
|
||||||
|
|
@ -406,7 +406,7 @@ def load_settings(menus):
|
||||||
if group == 'Main':
|
if group == 'Main':
|
||||||
continue
|
continue
|
||||||
for name in menu.options:
|
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):
|
def run_auto_repairs(base_menus, presets):
|
||||||
|
|
@ -422,18 +422,18 @@ def run_auto_repairs(base_menus, presets):
|
||||||
print_standard('Initializing...')
|
print_standard('Initializing...')
|
||||||
menus = build_menus(base_menus, title, presets)
|
menus = build_menus(base_menus, title, presets)
|
||||||
|
|
||||||
# Get repair preset
|
|
||||||
load_preset(menus, presets, enable_menu_exit=False)
|
|
||||||
|
|
||||||
# Init
|
# Init
|
||||||
|
session_started = False
|
||||||
|
show_menu_again = False
|
||||||
try:
|
try:
|
||||||
session_started = init(menus)
|
init(menus, presets)
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
# Assuming session was started and resume countdown was interrupted
|
# Assuming session was started and resume countdown was interrupted
|
||||||
session_started = None
|
show_menu_again = True
|
||||||
|
session_started = is_session_started()
|
||||||
|
|
||||||
# Show Menu
|
# Show Menu
|
||||||
if session_started is None or not session_started:
|
if show_menu_again or not session_started:
|
||||||
try:
|
try:
|
||||||
show_main_menu(base_menus, menus, presets, title)
|
show_main_menu(base_menus, menus, presets, title)
|
||||||
except SystemExit:
|
except SystemExit:
|
||||||
|
|
@ -441,10 +441,6 @@ def run_auto_repairs(base_menus, presets):
|
||||||
end_session(menus)
|
end_session(menus)
|
||||||
raise
|
raise
|
||||||
|
|
||||||
# Re-check if a repair session was started
|
|
||||||
if session_started is None:
|
|
||||||
session_started = is_session_started()
|
|
||||||
|
|
||||||
# Start or resume repairs
|
# Start or resume repairs
|
||||||
clear_screen()
|
clear_screen()
|
||||||
print_standard(title)
|
print_standard(title)
|
||||||
|
|
@ -545,6 +541,7 @@ def save_settings(group, name, result=None, **kwargs):
|
||||||
|
|
||||||
# Write values to registry
|
# Write values to registry
|
||||||
for value_name, data in kwargs.items():
|
for value_name, data in kwargs.items():
|
||||||
|
value_name = strip_colors(value_name)
|
||||||
if isinstance(data, bool):
|
if isinstance(data, bool):
|
||||||
data = 1 if data else 0
|
data = 1 if data else 0
|
||||||
if isinstance(data, int):
|
if isinstance(data, int):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue