From 0e7239d153022a0c3cf67a83acb1e63d85246efd Mon Sep 17 00:00:00 2001 From: Urban Wallasch Date: Fri, 2 Jul 2021 15:51:08 +0200 Subject: [PATCH] * Re-initialize KanjiDic child dialog when closing preference dialog with 'Ok'. --- jiten-pai.py | 2 ++ kanjidic.py | 30 +++++++++++++++++++----------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/jiten-pai.py b/jiten-pai.py index 9846832..bb37a34 100755 --- a/jiten-pai.py +++ b/jiten-pai.py @@ -1248,6 +1248,8 @@ class jpMainWindow(QMainWindow): if res == QDialog.Accepted: if self.kanji_dlg: self.kanji_dlg.init_cfg() + self.kanji_dlg.init_dic() + self.kanji_dlg.update_search() idx = self.genopt_dictsel.currentIndex() self.genopt_dictsel.clear() for d in cfg['dicts']: diff --git a/kanjidic.py b/kanjidic.py index 070943e..d711878 100755 --- a/kanjidic.py +++ b/kanjidic.py @@ -118,6 +118,10 @@ _radk = dict() # format: { 'radical': [stroke_cnt, 'kanji_list'], ... } _krad = dict() # format: { 'kanji': 'radical_list', ... } def _rad_load(version): + for x in range(len(_srad)): + _srad[x] = '' + _radk.clear() + _krad.clear() res = True for v in range(version): radk_name = _KANJIDIC_RADK[v] @@ -309,6 +313,7 @@ def _kanjidic2_load(dict_fname): return True, 2, 2 def _kanjidic_load(dict_fname): + _kanjidic.clear() tag_line = '' try: with open(dict_fname) as f: @@ -687,25 +692,28 @@ class kdMainWindow(QDialog): QShortcut('Ctrl+C', self).activated.connect(self.kbd_copy) QShortcut('Ctrl+V', self).activated.connect(self.kbd_paste) QApplication.processEvents() + # load dic files + self.init_dic() + # evaluate command line arguments + if cl_args is not None: + if cl_args.kanji_lookup: + self.show_info(cl_args.kanji_lookup) + elif cl_args.clip_kanji: + self.show_info(self.clipboard.text()) + + def init_dic(self): # load radkfile, kradfile, kanjidic self.dic_ok, version, krad_set = _kanjidic_load(cfg['kanjidic']) if not self.dic_ok: self.show_error('Error loading kanjidic!') return - if version > 1: - # disable full text search for the XML version - self.text_search_check.hide() - self.text_search_box.hide() - self.text_search_clearbtn.hide() + # disable full text search for the XML version + self.text_search_check.setVisible(version < 2) + self.text_search_box.setVisible(version < 2) + self.text_search_clearbtn.setVisible(version < 2) if not _rad_load(krad_set): self.show_error('Error loading radkfile/kradfile!') self.dic_ok = False - # evaluate command line arguments - if cl_args is not None: - if cl_args.kanji_lookup: - self.show_info(cl_args.kanji_lookup) - elif cl_args.clip_kanji: - self.show_info(self.clipboard.text()) def init_cfg(self): _load_cfg() -- 2.30.2