AppGUI.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:stash-scanner 作者: senuido 项目源码 文件源码
def update_configuration(self, cfg):
        if not isinstance(cfg, AppConfiguration):
            raise TypeError('cfg needs to be of type AppConfiguration')

        try:
            if config.league == cfg.league:
                config.update(cfg)
                config.save()
                self.nb_cfg.onTabChange()
                return

            answer = messagebox.askquestion('Settings',
                                            'Changing league will stop active scans and close other windows, continue?',
                                            parent=self)
            if answer == messagebox.NO:
                return

            self.close_editor_window()
            self.stop_scan()
            # if self.is_scan_active:
            #     self.stop_scan()
            #     ls = LoadingScreen(self)
            #     threading.Thread(target=self._stop_scan, args=(ls,)).start()
            #     self.wait_window(ls)

            try:
                StashScanner.clearLeagueData()
            except Exception as e:
                messagebox.showerror('Settings',
                                     'Failed to clear league data.\nError: {}\n'
                                     'Make sure all files are closed and try again.'.format(e),
                                     parent=self)
                return

            config.update(cfg)
            config.save()

            self.init_error = None
            ls = LoadingScreen(self)
            Thread(target=self.init_scanner, args=(ls,)).start()
            self.wait_window(ls)

            self.focus_set()
            self.lift()

            if self.init_error:
                title, message = self.init_error.args
                message += '\n{}'
                messagebox.showerror(title, message.format('Application will now close.'), parent=self)
                self.on_close()
                return

            self.init_warn()
            self.currency_info = CurrencyInfo()
            self.filters_info = FiltersInfo()

            self.nb_cfg.onTabChange()
        except Exception as e:
            logexception()
            logger.error('Unexpected error while attempting to change league.\n{}'.format(e))
            messagebox.showerror('Save error', 'Unexpected error while trying to save settings:\n{}'.format(e))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号