From b6f63e8221d5a2d6a8a3f750cd535eb6106ba832 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 26 Jul 2018 13:14:39 +0530 Subject: [PATCH] More work on lambda slots --- src/calibre/gui2/actions/add.py | 6 +++--- src/calibre/gui2/dialogs/confirm_merge.py | 2 +- src/calibre/gui2/dialogs/tag_editor.py | 4 +++- src/calibre/gui2/preferences/coloring.py | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/calibre/gui2/actions/add.py b/src/calibre/gui2/actions/add.py index 0eae6277a0..1e0009b690 100644 --- a/src/calibre/gui2/actions/add.py +++ b/src/calibre/gui2/actions/add.py @@ -81,9 +81,9 @@ class AddAction(InterfaceAction): arm = self.add_archive_menu = self.add_menu.addMenu(_('Add an empty file to selected book records')) from calibre.ebooks.oeb.polish.create import valid_empty_formats for fmt in sorted(valid_empty_formats): - connect_lambda(self.create_menu_action( - arm, 'add-empty-' + fmt, _('Add empty {}').format(fmt.upper())).triggered, - self, lambda self: self.add_empty_format(fmt)) + ac = self.create_menu_action(arm, 'add-empty-' + fmt, _('Add empty {}').format(fmt.upper())) + ac.setObjectName(fmt) + connect_lambda(ac.triggered, self, lambda self: self.add_empty_format(self.gui.sender().objectName())) self.add_menu.addSeparator() ma('add-config', _('Control the adding of books'), triggered=self.add_config) diff --git a/src/calibre/gui2/dialogs/confirm_merge.py b/src/calibre/gui2/dialogs/confirm_merge.py index 1f50a6d0e0..6608d75caa 100644 --- a/src/calibre/gui2/dialogs/confirm_merge.py +++ b/src/calibre/gui2/dialogs/confirm_merge.py @@ -115,7 +115,7 @@ class ChooseMerge(Dialog): l.addWidget(ans) prefs_key = ans.prefs_key = 'choose-merge-cb-' + name ans.setChecked(gprefs.get(prefs_key, True)) - connect_lambda(ans.stateChanged, self, lambda self, state: self.state_changed(ans, state), type=Qt.QueuedConnection) + connect_lambda(ans.stateChanged, self, lambda self, state: self.state_changed(getattr(self, name), state), type=Qt.QueuedConnection) if tt: ans.setToolTip(tt) setattr(self, name, ans) diff --git a/src/calibre/gui2/dialogs/tag_editor.py b/src/calibre/gui2/dialogs/tag_editor.py index df6ff04234..7368f59398 100644 --- a/src/calibre/gui2/dialogs/tag_editor.py +++ b/src/calibre/gui2/dialogs/tag_editor.py @@ -76,7 +76,9 @@ class TagEditor(QDialog, Ui_TagEditor): # Restore the focus to the last input box used (typed into) for x in ('add_tag_input', 'available_filter_input', 'applied_filter_input'): - connect_lambda(getattr(self, x).textChanged, self, lambda self: self.edit_box_changed(x)) + ibox = getattr(self, x) + ibox.setObjectName(x) + connect_lambda(ibox.textChanged, self, lambda self: self.edit_box_changed(self.sender().objectName())) getattr(self, gprefs.get('tag_editor_last_filter', 'add_tag_input')).setFocus() if islinux: diff --git a/src/calibre/gui2/preferences/coloring.py b/src/calibre/gui2/preferences/coloring.py index 80034cd96d..3ed684b9a9 100644 --- a/src/calibre/gui2/preferences/coloring.py +++ b/src/calibre/gui2/preferences/coloring.py @@ -575,7 +575,7 @@ class RuleEditor(QDialog): # {{{ m.clear() for name in self.icon_file_names: ac = m.addAction(QIcon(os.path.join(self.icon_folder, name)), name) - connect_lambda(ac.triggered, self, lambda self: self.remove_image(name)) + connect_lambda(ac.triggered, self, lambda self: self.remove_image(self.sender().text())) def remove_image(self, name): try: