From: Urban Wallasch Date: Tue, 22 Jun 2021 11:26:24 +0000 (+0200) Subject: * Let Esc key close KanjiDic only when not running standalone. X-Git-Tag: v0.1.0~76 X-Git-Url: https://git.packet-gain.de/?a=commitdiff_plain;h=175c602d7b5dba5346144942587d652b985cefa6;p=jiten-pai.git * Let Esc key close KanjiDic only when not running standalone. --- diff --git a/jiten-pai.py b/jiten-pai.py index 368b9b2..90a1bdd 100755 --- a/jiten-pai.py +++ b/jiten-pai.py @@ -1176,7 +1176,7 @@ class jpMainWindow(QMainWindow): def kanjidic(self, kanji=''): if not self.kanji_dlg: - self.kanji_dlg = kdMainWindow(self) + self.kanji_dlg = kdMainWindow(parent=self) self.kanji_dlg.kanji_click.connect(self.kanjidic_clicked) self.kanji_dlg.show_info(kanji) self.kanji_dlg.showNormal() diff --git a/kanjidic.py b/kanjidic.py index 882ff93..b04172f 100755 --- a/kanjidic.py +++ b/kanjidic.py @@ -530,8 +530,9 @@ class kdMainWindow(QDialog): kanji_click = pyqtSignal(str) dic_ok = True - def __init__(self, *args, title=_KANJIDIC_NAME + ' ' + _KANJIDIC_VERSION, **kwargs): + def __init__(self, *args, parent=None, title=_KANJIDIC_NAME + ' ' + _KANJIDIC_VERSION, **kwargs): super().__init__(*args, **kwargs) + self._parent = parent self.setModal(False) self.setParent(None, self.windowFlags() & ~Qt.WindowStaysOnTopHint) self.init_cfg() @@ -556,7 +557,6 @@ class kdMainWindow(QDialog): self.rad_search_check.setChecked(False) QShortcut('Ctrl+Q', self).activated.connect(lambda: self.close()) QShortcut('Ctrl+W', self).activated.connect(lambda: self.close()) - QShortcut('Esc', self).activated.connect(lambda: self.close()) def init_cfg(self): _load_cfg() @@ -632,6 +632,10 @@ class kdMainWindow(QDialog): main_layout.addSpacing(10) main_layout.addWidget(self.info_group, 40) + def keyPressEvent(self, event): + if event.key() != Qt.Key_Escape or self._parent: + super().keyPressEvent(event) + def show_error(self, msg=''): msg = '%s\n' % msg self.info_pane.setHtml(self.info_pane.toHtml() + msg) @@ -644,10 +648,10 @@ class kdMainWindow(QDialog): self.radlist.show() self.radlist.activateWindow() - def closeEvent(self, event): + def reject(self): if self.radlist: self.radlist.close() - event.accept() + super().reject() def stroke_search_toggle(self): en = self.stroke_search_check.isChecked()