Merge remote-tracking branch 'upstream/dev' into dev

This commit is contained in:
2Shirt 2021-09-30 18:56:25 -06:00
commit 68418588b7
Signed by: 2Shirt
GPG key ID: 152FAC923B0E132C
2 changed files with 22 additions and 16 deletions

View file

@ -83,6 +83,7 @@ PRESETS = {
'Partitions 4K Aligned', 'Partitions 4K Aligned',
), ),
}, },
'Custom': {}, # Will remain empty at runtime
} }
# Classes # Classes

View file

@ -326,6 +326,7 @@ def build_menus(base_menus, title, presets):
MENU_PRESETS.add_option('Default') MENU_PRESETS.add_option('Default')
for name in presets: for name in presets:
MENU_PRESETS.add_option(name) MENU_PRESETS.add_option(name)
MENU_PRESETS.add_option('Custom')
MENU_PRESETS.add_action('Main Menu') MENU_PRESETS.add_action('Main Menu')
MENU_PRESETS.add_action('Quit') MENU_PRESETS.add_action('Quit')
MENU_PRESETS.update() MENU_PRESETS.update()
@ -360,13 +361,17 @@ def check_os_and_set_menu_title(title):
return f'{title} ({color_string(os_name, color)})' return f'{title} ({color_string(os_name, color)})'
def load_preset(menus, presets): def load_preset(menus, presets, title, enable_menu_exit=True):
"""Load menu settings from preset, returns selection (str).""" """Load menu settings from preset and ask selection question(s)."""
if not enable_menu_exit:
MENU_PRESETS.actions['Main Menu'].update({'Disabled':True, 'Hidden':True})
# Get selection
selection = MENU_PRESETS.simple_select() selection = MENU_PRESETS.simple_select()
# Exit early # Exit early
if 'Main Menu' in selection: if 'Main Menu' in selection:
return None return
if 'Quit' in selection: if 'Quit' in selection:
raise SystemExit raise SystemExit
@ -378,8 +383,15 @@ def load_preset(menus, presets):
value = group_enabled and name in preset[group] value = group_enabled and name in preset[group]
menu.options[name]['Selected'] = value menu.options[name]['Selected'] = value
# Done # Ask selection question(s)
return selection[0] clear_screen()
print_standard(f'{title}')
print('')
if selection[0] == 'Default' and ask('Install LibreOffice?'):
menus['Install Software'].options['LibreOffice']['Selected'] = True
# Re-enable Main Menu action if disabled
MENU_PRESETS.actions['Main Menu'].update({'Disabled':False, 'Hidden':False})
def run_auto_setup(base_menus, presets): def run_auto_setup(base_menus, presets):
@ -399,17 +411,10 @@ def run_auto_setup(base_menus, presets):
menus = build_menus(base_menus, title, presets) menus = build_menus(base_menus, title, presets)
# Get setup preset and ask initial questions # Get setup preset and ask initial questions
MENU_PRESETS.actions['Main Menu'].update({'Disabled':True, 'Hidden':True}) load_preset(menus, presets, title, enable_menu_exit=False)
selection = load_preset(menus, presets)
MENU_PRESETS.actions['Main Menu'].update({'Disabled':False, 'Hidden':False})
clear_screen()
print_standard(f'{title}')
print('')
if selection == 'Default' and ask('Install LibreOffice?'):
menus['Install Software'].options['LibreOffice']['Selected'] = True
# Show Menu # Show Menu
show_main_menu(base_menus, menus, presets) show_main_menu(base_menus, menus, presets, title)
# Start setup # Start setup
clear_screen() clear_screen()
@ -446,7 +451,7 @@ def run_group(group, menu):
details['Function']() details['Function']()
def show_main_menu(base_menus, menus, presets): def show_main_menu(base_menus, menus, presets, title):
"""Show main menu and handle actions.""" """Show main menu and handle actions."""
while True: while True:
update_main_menu(menus) update_main_menu(menus)
@ -454,7 +459,7 @@ def show_main_menu(base_menus, menus, presets):
if selection[0] in base_menus['Groups'] or selection[0] == 'Options': if selection[0] in base_menus['Groups'] or selection[0] == 'Options':
show_sub_menu(menus[selection[0]]) show_sub_menu(menus[selection[0]])
if selection[0] == 'Load Preset': if selection[0] == 'Load Preset':
load_preset(menus, presets) load_preset(menus, presets, title)
elif 'Start' in selection: elif 'Start' in selection:
break break
elif 'Quit' in selection: elif 'Quit' in selection: