diff --git a/src/calibre/gui2/tweak_book/preferences.py b/src/calibre/gui2/tweak_book/preferences.py index 2a2bb3f4ab..059414c9a6 100644 --- a/src/calibre/gui2/tweak_book/preferences.py +++ b/src/calibre/gui2/tweak_book/preferences.py @@ -10,7 +10,6 @@ from operator import attrgetter, methodcaller from collections import namedtuple from future_builtins import map from itertools import product -from functools import partial from copy import copy, deepcopy from PyQt5.Qt import ( @@ -185,7 +184,7 @@ class EditorSettings(BasicSettings): self.tb = b = QPushButton(_('Change &templates')) l.addRow(_('Templates for new files:'), b) - b.clicked.connect(lambda : TemplatesDialog(self).exec_()) + connect_lambda(b.clicked, self, lambda self: TemplatesDialog(self).exec_()) lw = self('editor_line_wrap') lw.setText(_('&Wrap long lines in the editor')) @@ -415,10 +414,10 @@ class ToolbarSettings(QWidget): l.addWidget(gb1, 0, 0, -1, 1), l.addWidget(gb2, 0, 2, -1, 1) self.available, self.current = ToolbarList(self), ToolbarList(self) self.ub = b = QToolButton(self) - b.clicked.connect(partial(self.move, up=True)) + connect_lambda(b.clicked, self, lambda self: self.move(up=True)) b.setToolTip(_('Move selected action up')), b.setIcon(QIcon(I('arrow-up.png'))) self.db = b = QToolButton(self) - b.clicked.connect(partial(self.move, up=False)) + connect_lambda(b.clicked, self, lambda self: self.move(up=False)) b.setToolTip(_('Move selected action down')), b.setIcon(QIcon(I('arrow-down.png'))) self.gl1 = gl1 = QVBoxLayout() gl1.addWidget(self.available), gb1.setLayout(gl1) diff --git a/src/calibre/gui2/tweak_book/preview.py b/src/calibre/gui2/tweak_book/preview.py index 18ed430b46..073c6d30bc 100644 --- a/src/calibre/gui2/tweak_book/preview.py +++ b/src/calibre/gui2/tweak_book/preview.py @@ -474,12 +474,12 @@ class Preview(QWidget): self.search = HistoryLineEdit2(self) self.search.initialize('tweak_book_preview_search') self.search.setPlaceholderText(_('Search in preview')) - self.search.returnPressed.connect(partial(self.find, 'next')) + connect_lambda(self.search.returnPressed, self, lambda self: self.find('next')) self.bar.addSeparator() self.bar.addWidget(self.search) for d in ('next', 'prev'): ac = actions['find-%s-preview' % d] - ac.triggered.connect(partial(self.find, d)) + ac.triggered.connect(getattr(self, 'find_' + d)) self.bar.addAction(ac) def find(self, direction): @@ -487,6 +487,12 @@ class Preview(QWidget): self.view.findText(text, QWebPage.FindWrapsAroundDocument | ( QWebPage.FindBackward if direction == 'prev' else QWebPage.FindFlags(0))) + def find_next(self): + self.find('next') + + def find_prev(self): + self.find('prev') + def request_sync(self, tagname, href, lnum): if self.current_name: c = current_container() diff --git a/src/calibre/gui2/tweak_book/spell.py b/src/calibre/gui2/tweak_book/spell.py index 8629aca4f2..5fee7aaa1e 100644 --- a/src/calibre/gui2/tweak_book/spell.py +++ b/src/calibre/gui2/tweak_book/spell.py @@ -934,7 +934,7 @@ class SpellCheck(Dialog): b = self.bb.addButton(_('&Refresh'), self.bb.ActionRole) b.setToolTip('

' + _('Re-scan the book for words, useful if you have edited the book since opening this dialog')) b.setIcon(QIcon(I('view-refresh.png'))) - b.clicked.connect(partial(self.refresh, change_request=None)) + connect_lambda(b.clicked, self, lambda self: self.refresh(change_request=None)) b = self.bb.addButton(_('&Undo last change'), self.bb.ActionRole) b.setToolTip('

' + _('Undo the last spell check word replacement, if any')) b.setIcon(QIcon(I('edit-undo.png'))) diff --git a/src/calibre/gui2/tweak_book/text_search.py b/src/calibre/gui2/tweak_book/text_search.py index d00ecc530c..33f453aabe 100644 --- a/src/calibre/gui2/tweak_book/text_search.py +++ b/src/calibre/gui2/tweak_book/text_search.py @@ -4,7 +4,6 @@ from __future__ import (unicode_literals, division, absolute_import, print_function) -from functools import partial from PyQt5.Qt import ( QWidget, QHBoxLayout, QVBoxLayout, QLabel, QComboBox, QPushButton, QIcon, @@ -127,10 +126,12 @@ class TextSearch(QWidget): h.addStretch(10) self.next_button = b = QPushButton(QIcon(I('arrow-down.png')), _('&Next'), self) b.setToolTip(_('Find next match')) - h.addWidget(b), b.clicked.connect(partial(self.do_search, 'down')) + h.addWidget(b) + connect_lambda(b.clicked, self, lambda self: self.do_search('down')) self.prev_button = b = QPushButton(QIcon(I('arrow-up.png')), _('&Previous'), self) b.setToolTip(_('Find previous match')) - h.addWidget(b), b.clicked.connect(partial(self.do_search, 'up')) + h.addWidget(b) + connect_lambda(b.clicked, self, lambda self: self.do_search('up')) state = tprefs.get('text_search_widget_state') self.state = state or {} diff --git a/src/calibre/gui2/tweak_book/widgets.py b/src/calibre/gui2/tweak_book/widgets.py index 8a92c8badf..20180deaca 100644 --- a/src/calibre/gui2/tweak_book/widgets.py +++ b/src/calibre/gui2/tweak_book/widgets.py @@ -570,7 +570,7 @@ class NamesModel(QAbstractListModel): def create_filterable_names_list(names, filter_text=None, parent=None, model=NamesModel): nl = QListView(parent) nl.m = m = model(names, parent=nl) - m.filtered.connect(lambda all_items: nl.scrollTo(m.index(0))) + connect_lambda(m.filtered, nl, lambda nl, all_items: nl.scrollTo(m.index(0))) nl.setModel(m) if model is NamesModel: nl.d = NamesDelegate(nl)