def save_settings(self, component: TabGroupComponent) -> Tuple[bool, List[str]]: ti = time.time() save_threads, warnings, success_map = [], [], {} save_core = Thread(target=self._save_core_settings, args=(component, success_map, warnings), daemon=True) save_core.start() save_threads.append(save_core) for man in self.managers: if man: modname = man.__module__.split('.')[-2] tab = component.get_tab(modname) if not tab: self.logger.warning("Tab for {} was not found".format( man.__class__.__name__)) else: save_man = Thread(target=self._save_manager_settings( man, tab.content, success_map, warnings), daemon=True) save_man.start() save_threads.append(save_man) for t in save_threads: t.join() success = all(success_map.values()) tf = time.time() self.logger.info("Saving all settings took {0:.8f} seconds".format(tf - ti)) return success, warnings
def save_settings(self, component: TabGroupComponent) -> Tuple[bool, List[str]]: saved, warnings = True, [] bkp = component.get_tab('core.bkp') success, errors = self._save_settings( general=component.get_tab('core.gen').content, advanced=component.get_tab('core.adv').content, tray=component.get_tab('core.tray').content, backup=bkp.content if bkp else None, ui=component.get_tab('core.ui').content, gems_panel=component.get_tab('core.types').content) if not success: saved = False if errors: warnings.extend(errors) for man in self.managers: if man: modname = man.__module__.split('.')[-2] tab = component.get_tab(modname) if not tab: self.logger.warning("Tab for {} was not found".format( man.__class__.__name__)) else: res = man.save_settings(tab.content) if res: success, errors = res[0], res[1] if not success: saved = False if errors: warnings.extend(errors) return saved, warnings
def _save_core_settings(self, root_component: TabGroupComponent, success_map: Dict[str, bool], warnings: List[str]): success = False try: bkp = root_component.get_tab('core.bkp') success, errors = self._save_settings( general=root_component.get_tab('core.gen').content, advanced=root_component.get_tab('core.adv').content, tray=root_component.get_tab('core.tray').content, backup=bkp.content if bkp else None, ui=root_component.get_tab('core.ui').content, gems_panel=root_component.get_tab('core.types').content) if errors: warnings.extend(errors) except: self.logger.error( "An exception happened while saving the core settings") traceback.print_exc() finally: success_map[self.__class__.__name__] = success
def _save_core_settings(self, tabs: TabGroupComponent, success_list: List[bool], warnings: List[str]): success = False try: bkp = tabs.get_tab('core.bkp') success, errors = self._save_settings( general=tabs.get_tab('core.gen').get_content(PanelComponent), advanced=tabs.get_tab('core.adv').get_content(PanelComponent), tray=tabs.get_tab('core.tray').get_content(PanelComponent), backup=bkp.get_content(PanelComponent) if bkp else None, ui=tabs.get_tab('core.ui').get_content(PanelComponent), gems_panel=tabs.get_tab('core.types').get_content( PanelComponent)) if errors: warnings.extend(errors) except Exception: self.logger.error( "An exception happened while saving the core settings") traceback.print_exc() finally: success_list.append(success)