def update_gui(cls, node_selects): node_selects_backup = str(node_selects) node_selects = node_selects.split(',') while '' in node_selects: node_selects.remove('') popup_window = sg.Window('Node Selects', cls.get_layout(node_selects), use_default_focus=False, element_padding=(0, (0, 3))) while True: event, values = popup_window.Read(timeout=100) if event in (None, 'save'): popup_window.Close() return ','.join(popup_window['node_selects'].Values) if event == 'cancel': popup_window.Close() return node_selects_backup if event == 'node_selects.add': lb_values = popup_window['node_selects'].Values lb_values.append( f"{values['node_1_combo']}>{values['node_2_combo']}") popup_window['node_selects'].Update(values=lb_values) popup_window['node_1_combo'].Update( value=None, values=[ x.display_name for x in NamedNodeEnum if x.display_name not in [y.split('>')[0] for y in lb_values] ], set_to_index=None) cls.check_listbox_related_events( popup_window, event, values, 'node_selects', enabled_events=['remove', 'clear']) if event in ('node_selects.remove', 'node_selects.clear'): popup_window['node_1_combo'].Update( value=None, values=[ x.display_name for x in NamedNodeEnum if x.display_name not in [ y.split('>')[0] for y in popup_window['node_selects'].Values ] ], set_to_index=None) if values['node_1_combo'] == values['node_2_combo']: popup_window['node_selects.add'].Update(disabled=True) else: popup_window['node_selects.add'].Update(disabled=False) LayoutBase.update_widgets(popup_window)
def update_gui(cls, fleet_id, expeditions, other_expeditions): expeditions_backup = str(expeditions) initial_expeditions = expeditions.split(',') other_expeditions = other_expeditions.split(',') while '' in initial_expeditions: initial_expeditions.remove('') while '' in other_expeditions: other_expeditions.remove('') popup_window = sg.Window(f"Fleet {fleet_id} Expeditions", cls.get_layout(fleet_id, initial_expeditions, other_expeditions), use_default_focus=False, element_padding=(0, (0, 3))) while True: event, values = popup_window.Read(timeout=100) if event in (None, 'save'): popup_window.Close() return ','.join(popup_window['expeditions'].Values) if event == 'cancel': popup_window.Close() return expeditions_backup if event == 'expeditions.add': lb_values = popup_window['expeditions'].Values lb_values.append(values['expedition_combo']) popup_window['expeditions'].Update(values=lb_values) popup_window['expedition_combo'].Update( value=None, values=[ x.display_name for x in ExpeditionEnum if x.display_name not in lb_values + other_expeditions ], set_to_index=None) cls.check_listbox_related_events( popup_window, event, values, 'expeditions', enabled_events=['remove', 'clear']) if event in ('expeditions.remove', 'expeditions.clear'): popup_window['expedition_combo'].Update( value=None, values=[ x.display_name for x in ExpeditionEnum if x.display_name not in popup_window['expeditions'].Values + other_expeditions ], set_to_index=None) LayoutBase.update_widgets(popup_window)
def update_gui(window, event, values): """Wrapper method that calls the various update_gui methods. """ KcautoControls.update_gui(window, event, values) GuiTabButtonsLayout.update_gui(window, event, values) Config.update_gui(window, event, values) RuntimeLogger.update_gui(window, event, values) ClickPlotter.update_gui(window, event, values) Settings.update_gui(window, event, values) About.update_gui(window, event, values) # for tkinter-level modifications LayoutBase.update_widgets(window)
def update_gui(cls, presets): presets_backup = str(presets) presets = presets.split(',') while '' in presets: presets.remove('') popup_window = sg.Window('Combat Fleet Presets', cls.get_layout(presets), use_default_focus=False, element_padding=(0, (0, 3))) while True: event, values = popup_window.Read(timeout=100) if event in (None, 'save'): popup_window.Close() return ','.join(popup_window['presets'].Values) if event == 'cancel': popup_window.Close() return presets_backup if event == 'presets.add': lb_values = popup_window['presets'].Values lb_values.append(values['preset_combo']) popup_window['presets'].Update(values=lb_values) popup_window['preset_combo'].Update( value=None, values=[ str(x) for x in range(1, MAX_FLEET_PRESETS + 1) if str(x) not in lb_values ], set_to_index=None) cls.check_listbox_related_events( popup_window, event, values, 'presets', enabled_events=['remove', 'clear']) if event in ('presets.remove', 'presets.clear'): popup_window['preset_combo'].Update( value=None, values=[ str(x) for x in range(1, 15) if str(x) not in popup_window['presets'].Values ], set_to_index=None) LayoutBase.update_widgets(popup_window)
def update_gui(cls, slot_id, parent_value): parent_value_backup = str(parent_value) popup_window = sg.Window(f'Ship Switcher Slot {slot_id} Config', cls.get_layout(slot_id, parent_value), use_default_focus=parent_value, element_padding=(0, (0, 3))) while True: event, values = popup_window.Read(timeout=100) if event in (None, 'save'): popup_window.Close() return popup_window['rule'].Get() if event == 'cancel': popup_window.Close() return parent_value_backup cls.check_listbox_related_events( popup_window, event, values, 'conditions', value_generator=cls.generate_condition_string, value_unpacker=cls.unpack_condition_string, enabled_events=['add', 'update', 'remove', 'unpack']) cls.check_listbox_related_events( popup_window, event, values, 'criteria', value_generator=cls.generate_criterion_string, value_unpacker=cls.unpack_criterion_string, enabled_events=['add', 'update', 'remove', 'unpack']) if (len(popup_window['conditions'].Values) > 0 and len(popup_window['criteria'].Values) > 0): cls.generate_rule_string(popup_window) else: popup_window['rule'].Update('') if (values['cond_slot0'] == ShipSwitcherConditionSlot0Enum.LEVEL.display_name): popup_window['cond_slot2_level_col'].Update(visible=True) popup_window['cond_slot2_damage_col'].Update(visible=False) popup_window['cond_slot2_morale_col'].Update(visible=False) elif (values['cond_slot0'] == ShipSwitcherConditionSlot0Enum.DAMAGE.display_name): popup_window['cond_slot2_level_col'].Update(visible=False) popup_window['cond_slot2_damage_col'].Update(visible=True) popup_window['cond_slot2_morale_col'].Update(visible=False) elif (values['cond_slot0'] == ShipSwitcherConditionSlot0Enum.MORALE.display_name): popup_window['cond_slot2_level_col'].Update(visible=False) popup_window['cond_slot2_damage_col'].Update(visible=False) popup_window['cond_slot2_morale_col'].Update(visible=True) if (values['crit_slot0'] == ShipSwitcherCriteriaSlot0Enum.SHIP.display_name): popup_window['crit_slot1_ship_col'].Update(visible=True) popup_window['crit_slot1_class_col'].Update(visible=False) else: popup_window['crit_slot1_ship_col'].Update(visible=False) popup_window['crit_slot1_class_col'].Update(visible=True) if values['crit_slot2']: popup_window['crit_slot3'].Update(disabled=False) else: popup_window['crit_slot3'].Update(disabled=True) if values['crit_slot4']: popup_window['crit_slot5'].Update(disabled=False) else: popup_window['crit_slot5'].Update(disabled=True) if values['crit_slot6']: popup_window['crit_slot7'].Update(disabled=False) else: popup_window['crit_slot7'].Update(disabled=True) cls.correct_to_value_range(popup_window, values, 'cond_slot2_level', cls.MIN_LEVEL, cls.MAX_LEVEL, cls.DEF_LEVEL) cls.correct_to_value_range(popup_window, values, 'cond_slot2_morale', cls.MIN_MORALE, cls.MAX_MORALE, cls.DEF_MORALE) cls.correct_to_value_range(popup_window, values, 'crit_slot1_ship', cls.MIN_SHIP_ID, cls.MAX_SHIP_ID, cls.DEF_SHIP_ID) cls.correct_to_value_range(popup_window, values, 'crit_slot3', cls.MIN_LEVEL, cls.MAX_LEVEL, cls.DEF_LEVEL) cls.correct_to_value_range(popup_window, values, 'crit_slot7', cls.MIN_MORALE, cls.MAX_MORALE, cls.DEF_MORALE) LayoutBase.update_widgets(popup_window)
def update_gui(cls, parent_values): parent_values_backup = list(parent_values) popup_window = sg.Window('Scheduler Config', cls.get_layout(parent_values), use_default_focus=False, element_padding=(0, (0, 3))) while True: event, values = popup_window.Read(timeout=100) if event in (None, 'save'): popup_window.Close() return popup_window['rules'].Values if event == 'cancel': popup_window.Close() return parent_values_backup cls.check_listbox_related_events( popup_window, event, values, 'rules', value_generator=cls.generate_rule_string, value_unpacker=cls.unpack_rule_string, enabled_events=['add', 'update', 'remove', 'unpack']) if values['slot0'] == SchedulerSlot0Enum.TIME.display_name: popup_window['slot1_time_col'].Update(visible=True) popup_window['slot1_time_run_col'].Update(visible=False) popup_window['slot1_runs_col'].Update(visible=False) popup_window['slot1_rescue_col'].Update(visible=False) elif values['slot0'] == SchedulerSlot0Enum.TIME_RUN.display_name: popup_window['slot1_time_col'].Update(visible=False) popup_window['slot1_time_run_col'].Update(visible=True) popup_window['slot1_runs_col'].Update(visible=False) popup_window['slot1_rescue_col'].Update(visible=False) elif values['slot0'] in ( SchedulerSlot0Enum.SORTIES_RUN.display_name, SchedulerSlot0Enum.EXPEDITIONS_RUN.display_name, SchedulerSlot0Enum.PVP_RUN.display_name): popup_window['slot1_time_col'].Update(visible=False) popup_window['slot1_time_run_col'].Update(visible=False) popup_window['slot1_runs_col'].Update(visible=True) popup_window['slot1_rescue_col'].Update(visible=False) elif values['slot0'] == SchedulerSlot0Enum.RESCUE.display_name: popup_window['slot1_time_col'].Update(visible=False) popup_window['slot1_time_run_col'].Update(visible=False) popup_window['slot1_runs_col'].Update(visible=False) popup_window['slot1_rescue_col'].Update(visible=True) else: popup_window['slot1_time_col'].Update(visible=False) popup_window['slot1_time_run_col'].Update(visible=False) popup_window['slot1_runs_col'].Update(visible=False) popup_window['slot1_rescue_col'].Update(visible=False) if values['slot2'] == SchedulerSlot2Enum.SLEEP.display_name: popup_window['slot4_col'].Update(visible=True) else: popup_window['slot4_col'].Update(visible=False) cls.correct_to_value_range(popup_window, values, 'slot1_time_1', cls.MIN_TIME_HOURS, cls.MAX_TIME_HOURS, 0) cls.correct_to_value_range(popup_window, values, 'slot1_time_2', cls.MIN_MINUTES, cls.MAX_MINUTES, 0) cls.correct_to_value_range(popup_window, values, 'slot1_time_run_1', cls.MIN_TIME_LIMIT_HOURS, cls.MAX_TIME_LIMIT_HOURS, 0) cls.correct_to_value_range(popup_window, values, 'slot1_time_run_2', cls.MIN_MINUTES, cls.MAX_MINUTES, 0) cls.correct_to_value_range(popup_window, values, 'slot4_1', cls.MIN_TIME_LIMIT_HOURS, cls.MAX_TIME_LIMIT_HOURS, 0) cls.correct_to_value_range(popup_window, values, 'slot4_2', cls.MIN_MINUTES, cls.MAX_MINUTES, 0) LayoutBase.update_widgets(popup_window)