Allow opening saved searches dialog directly via right click

This commit is contained in:
Kovid Goyal 2014-03-22 10:39:14 +05:30
parent 1379bbf852
commit cfad8a5076
2 changed files with 12 additions and 1 deletions

View File

@ -108,6 +108,7 @@ class Boss(QObject):
self.gui.checkpoints.compare_requested.connect(self.compare_requested) self.gui.checkpoints.compare_requested.connect(self.compare_requested)
self.gui.saved_searches.run_saved_searches.connect(self.run_saved_searches) self.gui.saved_searches.run_saved_searches.connect(self.run_saved_searches)
self.gui.central.search_panel.save_search.connect(self.save_search) self.gui.central.search_panel.save_search.connect(self.save_search)
self.gui.central.search_panel.show_saved_searches.connect(self.show_saved_searches)
def preferences(self): def preferences(self):
p = Preferences(self.gui) p = Preferences(self.gui)
@ -690,9 +691,12 @@ class Boss(QObject):
def save_search(self): def save_search(self):
state = self.gui.central.search_panel.state state = self.gui.central.search_panel.state
self.gui.saved_searches.show(), self.gui.saved_searches.raise_() self.show_saved_searches()
self.gui.saved_searches.add_predefined_search(state) self.gui.saved_searches.add_predefined_search(state)
def show_saved_searches(self):
self.gui.saved_searches.show(), self.gui.saved_searches.raise_()
def run_saved_searches(self, searches, action): def run_saved_searches(self, searches, action):
ed = self.gui.central.current_editor ed = self.gui.central.current_editor
name = None name = None

View File

@ -41,6 +41,7 @@ class HistoryLineEdit(HistoryLineEdit2):
max_history_items = 100 max_history_items = 100
save_search = pyqtSignal() save_search = pyqtSignal()
show_saved_searches = pyqtSignal()
def __init__(self, parent, clear_msg): def __init__(self, parent, clear_msg):
HistoryLineEdit2.__init__(self, parent) HistoryLineEdit2.__init__(self, parent)
@ -55,6 +56,7 @@ class HistoryLineEdit(HistoryLineEdit2):
'Disable completion based on search history')), self.toggle_popups) 'Disable completion based on search history')), self.toggle_popups)
menu.addSeparator() menu.addSeparator()
menu.addAction(_('Save current search'), self.save_search.emit) menu.addAction(_('Save current search'), self.save_search.emit)
menu.addAction(_('Show saved searches'), self.show_saved_searches.emit)
menu.exec_(event.globalPos()) menu.exec_(event.globalPos())
def toggle_popups(self): def toggle_popups(self):
@ -150,6 +152,7 @@ class SearchWidget(QWidget):
search_triggered = pyqtSignal(object) search_triggered = pyqtSignal(object)
save_search = pyqtSignal() save_search = pyqtSignal()
show_saved_searches = pyqtSignal()
def __init__(self, parent=None): def __init__(self, parent=None):
QWidget.__init__(self, parent) QWidget.__init__(self, parent)
@ -161,6 +164,7 @@ class SearchWidget(QWidget):
fl.setAlignment(Qt.AlignRight | Qt.AlignCenter) fl.setAlignment(Qt.AlignRight | Qt.AlignCenter)
self.find_text = ft = HistoryLineEdit(self, _('Clear search history')) self.find_text = ft = HistoryLineEdit(self, _('Clear search history'))
ft.save_search.connect(self.save_search) ft.save_search.connect(self.save_search)
ft.show_saved_searches.connect(self.show_saved_searches)
ft.initialize('tweak_book_find_edit') ft.initialize('tweak_book_find_edit')
ft.returnPressed.connect(lambda : self.search_triggered.emit('find')) ft.returnPressed.connect(lambda : self.search_triggered.emit('find'))
fl.setBuddy(ft) fl.setBuddy(ft)
@ -171,6 +175,7 @@ class SearchWidget(QWidget):
rl.setAlignment(Qt.AlignRight | Qt.AlignCenter) rl.setAlignment(Qt.AlignRight | Qt.AlignCenter)
self.replace_text = rt = HistoryLineEdit(self, _('Clear replace history')) self.replace_text = rt = HistoryLineEdit(self, _('Clear replace history'))
rt.save_search.connect(self.save_search) rt.save_search.connect(self.save_search)
rt.show_saved_searches.connect(self.show_saved_searches)
rt.initialize('tweak_book_replace_edit') rt.initialize('tweak_book_replace_edit')
rl.setBuddy(rt) rl.setBuddy(rt)
l.addWidget(rl, 1, 0) l.addWidget(rl, 1, 0)
@ -319,6 +324,7 @@ class SearchPanel(QWidget): # {{{
search_triggered = pyqtSignal(object) search_triggered = pyqtSignal(object)
save_search = pyqtSignal() save_search = pyqtSignal()
show_saved_searches = pyqtSignal()
def __init__(self, parent=None): def __init__(self, parent=None):
QWidget.__init__(self, parent) QWidget.__init__(self, parent)
@ -338,6 +344,7 @@ class SearchPanel(QWidget): # {{{
self.restore_state, self.save_state = self.widget.restore_state, self.widget.save_state self.restore_state, self.save_state = self.widget.restore_state, self.widget.save_state
self.widget.search_triggered.connect(self.search_triggered) self.widget.search_triggered.connect(self.search_triggered)
self.widget.save_search.connect(self.save_search) self.widget.save_search.connect(self.save_search)
self.widget.show_saved_searches.connect(self.show_saved_searches)
self.pre_fill = self.widget.pre_fill self.pre_fill = self.widget.pre_fill
def hide_panel(self): def hide_panel(self):