* Re-initialize KanjiDic child dialog when closing preference dialog with 'Ok'.
authorUrban Wallasch <urban.wallasch@freenet.de>
Fri, 2 Jul 2021 13:51:08 +0000 (15:51 +0200)
committerUrban Wallasch <urban.wallasch@freenet.de>
Fri, 2 Jul 2021 13:54:52 +0000 (15:54 +0200)
jiten-pai.py
kanjidic.py

index 9846832dde695040d75d0eb585d45e0690cfaeb1..bb37a34f27ccc921c6d4c63f7faa54beecf0724e 100755 (executable)
@@ -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']:
index 070943e82b43a976ab3de97b9a1608561cc95859..d7118789ea73f817eae2afef6df151fcda61170c 100755 (executable)
@@ -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()