* 'Radical List' button check state correctly reflects actual list dialog visibility.
authorUrban Wallasch <urban.wallasch@freenet.de>
Tue, 29 Jun 2021 14:52:00 +0000 (16:52 +0200)
committerUrban Wallasch <urban.wallasch@freenet.de>
Tue, 29 Jun 2021 14:52:00 +0000 (16:52 +0200)
kanjidic.py

index d8c232ed93a9f2c76aba4976f14faded4f085899..2d8e31753f26adfd9b5b1b191ae88fa463fa54ea 100755 (executable)
@@ -512,6 +512,7 @@ class zRadicalButton(zKanjiButton):
 
 class kdRadicalList(QDialog):
     btns = []
+    vis_changed = pyqtSignal(bool)
 
     def __init__(self, *args, toggle_action=None, geo=None, **kwargs):
         super().__init__(*args, **kwargs)
@@ -553,9 +554,14 @@ class kdRadicalList(QDialog):
             self.row += 1
 
     def show(self):
+        self.vis_changed.emit(True)
         self.update_btns(None)
         super().show()
 
+    def reject(self):
+        self.vis_changed.emit(False)
+        super().reject()
+
     def update_btns(self, rads):
         for btn in self.btns:
             if btn.is_sep:
@@ -802,6 +808,7 @@ class kdMainWindow(QDialog):
                 fw = self.frameGeometry().width()
                 geo = QRect(x + fw, y, min(w, 600), max(h, 600))
                 self.radlist = kdRadicalList(toggle_action=self.on_radical_toggled, geo=geo)
+                self.radlist.vis_changed.connect(self.radlist_vis_changed)
                 self.on_rad_search_edit()
                 self.update_search()
             self.radlist.update_btns(None)
@@ -810,6 +817,9 @@ class kdMainWindow(QDialog):
         elif self.radlist:
             self.radlist.hide()
 
+    def radlist_vis_changed(self, visible):
+        self.rad_search_listbtn.setChecked(visible)
+
     def stroke_search_toggle(self):
         en = self.stroke_search_check.isChecked()
         self.stroke_search_num.setEnabled(en)