def add_packages_to_window(window: sg.Window): packages = sg.user_settings_get_entry('-packages-', []) for i, package in enumerate(packages): in_elem = window.find_element(('-ID-', i), silent_on_error=True) if isinstance(in_elem, sg.ErrorElement): window.metadata += 1 window.extend_layout(window['-TRACKING SECTION-'], [package_row(window.metadata)]) in_elem = window.find_element(('-ID-', window.metadata), silent_on_error=True) in_elem.update(package[0]) else: in_elem.update(package[0]) desc_elem = window.find_element(('-DESC-', i), silent_on_error=True) if not isinstance(desc_elem, sg.ErrorElement): desc_elem.update(package[1])
def w_total_event(self, window: sg.Window, new: int): w = self.quest['wave'] old, w['total'] = w['total'], new if old > new: # fewer for N in map(str, range(new + 1, old + 1)): window[f'{self.__prefix_key}_wave{N}_auto_'].hide_row() del w[N], window.AllKeysDict[f'{self.__prefix_key}_wave{N}_auto_'] del window.AllKeysDict[f'{self.__prefix_key}_wave{N}_sp_weight_enable_'] for p in pos: del window.AllKeysDict[f'{self.__prefix_key}_wave{N}_character_{p}_skill_priority_'], del window.AllKeysDict[f'{self.__prefix_key}_wave{N}_character_{p}_sp_weight_'] elif old < new: uData.padding_wave(w) for N in map(str, range(old + 1, new + 1)): window.extend_layout(window[f'{self.__prefix_key}_wave_frame_'], self.__a_wave_row(w, N))