From 9acddf2f9e008c255375e94b289199208fb48c22 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 5 Nov 2010 14:40:35 -0600 Subject: [PATCH] Add a search button to explicitly run a search with the text currently in the quick search box --- src/calibre/gui2/layout.py | 15 +++++++++------ src/calibre/gui2/search_box.py | 4 ++-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/calibre/gui2/layout.py b/src/calibre/gui2/layout.py index 1ae4085c25..a5da391503 100644 --- a/src/calibre/gui2/layout.py +++ b/src/calibre/gui2/layout.py @@ -8,7 +8,7 @@ __docformat__ = 'restructuredtext en' from functools import partial from PyQt4.Qt import QIcon, Qt, QWidget, QToolBar, QSize, \ - pyqtSignal, QToolButton, \ + pyqtSignal, QToolButton, QPushButton, \ QObject, QVBoxLayout, QSizePolicy, QLabel, QHBoxLayout, QActionGroup, \ QMenu @@ -171,16 +171,20 @@ class SearchBar(QWidget): # {{{ l.addWidget(x) x.setToolTip(_("Advanced search")) - self.label = x = QLabel(_('&Search:')) - l.addWidget(self.label) - x.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) - x = parent.search = SearchBox2(self) x.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum) x.setObjectName("search") x.setToolTip(_("

Search the list of books by title, author, publisher, tags, comments, etc.

Words separated by spaces are ANDed")) l.addWidget(x) + self.search_button = QPushButton(_('S&earch')) + l.addWidget(self.search_button) + self.search_button.setSizePolicy(QSizePolicy.Minimum, + QSizePolicy.Minimum) + self.search_button.clicked.connect(parent.search.do_search) + self.search_button.setToolTip( + _('Do Quick Search (you can also press the Enter key)')) + x = parent.clear_button = QToolButton(self) x.setIcon(QIcon(I('clear_left.png'))) x.setObjectName("clear_button") @@ -211,7 +215,6 @@ class SearchBar(QWidget): # {{{ l.addWidget(x) x.setToolTip(_("Delete current saved search")) - self.label.setBuddy(parent.search) # }}} diff --git a/src/calibre/gui2/search_box.py b/src/calibre/gui2/search_box.py index ef32d14a19..0b85749370 100644 --- a/src/calibre/gui2/search_box.py +++ b/src/calibre/gui2/search_box.py @@ -183,7 +183,7 @@ class SearchBox2(QComboBox): return '' return text - def do_search(self): + def do_search(self, *args): text = unicode(self.currentText()).strip() if not text or text == self.help_text: return self.clear() @@ -372,7 +372,7 @@ class SearchBoxMixin(object): self.search.setMaximumWidth(self.width()-150) self.action_focus_search = QAction(self) shortcuts = QKeySequence.keyBindings(QKeySequence.Find) - shortcuts = list(shortcuts) + [QKeySequence('/')] + shortcuts = list(shortcuts) + [QKeySequence('/'), QKeySequence('Alt+S')] self.action_focus_search.setShortcuts(shortcuts) self.action_focus_search.triggered.connect(lambda x: self.search.setFocus(Qt.OtherFocusReason))