diff --git a/src/calibre/gui2/tweak_book/char_select.py b/src/calibre/gui2/tweak_book/char_select.py index 0da63804e7..3fdd6ae5e2 100644 --- a/src/calibre/gui2/tweak_book/char_select.py +++ b/src/calibre/gui2/tweak_book/char_select.py @@ -760,7 +760,7 @@ class CharSelect(Dialog): self.match_any = mm = QCheckBox(_('Match any word')) mm.setToolTip(_('When searching return characters whose names match any of the specified words')) mm.setChecked(tprefs.get('char_select_match_any', True)) - mm.stateChanged.connect(lambda: tprefs.set('char_select_match_any', self.match_any.isChecked())) + connect_lambda(mm.stateChanged, self, lambda self: tprefs.set('char_select_match_any', self.match_any.isChecked())) h.addWidget(mm), h.addStretch(), h.addWidget(self.bb) l.addLayout(h, 4, 0, 1, 3) self.char_view.setFocus(Qt.OtherFocusReason) diff --git a/src/calibre/gui2/tweak_book/download.py b/src/calibre/gui2/tweak_book/download.py index 0d868c0cbb..8a8b405e19 100644 --- a/src/calibre/gui2/tweak_book/download.py +++ b/src/calibre/gui2/tweak_book/download.py @@ -227,7 +227,7 @@ class DownloadResources(Dialog): b = self.bb.button(self.bb.Ok) b.setText(_('See what &changed')) b.setIcon(QIcon(I('diff.png'))) - b.clicked.connect(lambda : setattr(self, 'show_diff', True)) + connect_lambda(b.clicked, self, lambda self: setattr(self, 'show_diff', True)) self.bb.setVisible(True) def accept(self): diff --git a/src/calibre/gui2/tweak_book/search.py b/src/calibre/gui2/tweak_book/search.py index 07d7ee05c6..baa22e4c80 100644 --- a/src/calibre/gui2/tweak_book/search.py +++ b/src/calibre/gui2/tweak_book/search.py @@ -1474,10 +1474,13 @@ def run_search( det_msg += _('{0}: {1} occurrences').format(k, count_map[k]) + '\n' if show_diff and count > 0: d = MessageBox(MessageBox.INFO, _('Searching done'), prepare_string_for_xml(msg), parent=gui_parent, show_copy_button=False, det_msg=det_msg) - d.diffb = b = d.bb.addButton(_('See what &changed'), d.bb.ActionRole) + d.diffb = b = d.bb.addButton(_('See what &changed'), d.bb.AcceptRole) + d.show_changes = False b.setIcon(QIcon(I('diff.png'))), b.clicked.connect(d.accept) - b.clicked.connect(partial(show_current_diff, allow_revert=True), type=Qt.QueuedConnection) + connect_lambda(b.clicked, d, lambda d: setattr(d, 'show_changes', True)) d.exec_() + if d.show_changes: + show_current_diff(allow_revert=True) else: info_dialog(gui_parent, _('Searching done'), prepare_string_for_xml(msg), show=True, det_msg=det_msg)