Skip to content

Commit de6d483

Browse files
committed
Persistent search entry
Fixes issue getting-things-gnome#952
1 parent 25dfa55 commit de6d483

File tree

2 files changed

+21
-10
lines changed

2 files changed

+21
-10
lines changed

GTG/gtk/browser/main_window.py

+20-9
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,8 @@ def _set_actions(self):
176176
('expand_all_tasks', self.on_expand_all_tasks, None),
177177
('change_tags', self.on_modify_tags, ('win.change_tags', ['<ctrl>T'])),
178178
('focus_sidebar', self.focus_sidebar, ('win.focus_sidebar', ['<ctrl>B'])),
179-
('search', self.toggle_search, ('win.search', ['<ctrl>F'])),
179+
('toggle_search', self.toggle_search, None),
180+
('focus_search', self.focus_search, ('win.focus_search', ['<ctrl>F'])),
180181
('focus_quickentry', self.focus_quickentry, ('win.focus_quickentry', ['<ctrl>L'])),
181182
('delete_task', self.on_delete_tasks, ('win.delete_task', ['<ctrl>Delete'])),
182183
('help_overlay', None, ('win.show-help-overlay', ['<ctrl>question'])),
@@ -456,21 +457,31 @@ def _init_signal_connections(self):
456457

457458
# HELPER FUNCTIONS ##########################################################
458459

460+
def focus_search(self, action, param):
461+
"""Callback to focus search entry"""
462+
463+
if self.searchbar.get_search_mode():
464+
if self.search_entry.has_focus():
465+
self._set_searchbar_visibility(False)
466+
else:
467+
self.search_entry.grab_focus()
468+
else:
469+
self._set_searchbar_visibility(True)
470+
459471
def toggle_search(self, action, param):
460472
"""Callback to toggle search bar."""
461473

462-
self.on_search_toggled()
474+
self._set_searchbar_visibility(not self.searchbar.get_search_mode())
463475

464-
def on_search_toggled(self, widget=None):
465-
if self.searchbar.get_search_mode():
466-
self.search_button.set_active(False)
467-
self.searchbar.set_search_mode(False)
468-
self.search_entry.set_text('')
469-
self.get_selected_tree().unapply_filter(SEARCH_TAG)
470-
else:
476+
def _set_searchbar_visibility(self, visible: bool):
477+
if visible:
471478
self.search_button.set_active(True)
472479
self.searchbar.set_search_mode(True)
473480
self.search_entry.grab_focus()
481+
else:
482+
self.search_button.set_active(False)
483+
self.searchbar.set_search_mode(False)
484+
self.get_selected_tree().unapply_filter(SEARCH_TAG)
474485

475486
def _try_filter_by_query(self, query, refresh: bool = True):
476487
log.debug("Searching for %r", query)

GTG/gtk/data/main_window.ui

+1-1
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@
353353
<property name="receives_default">False</property>
354354
<property name="tooltip_text" translatable="yes">Activate Search Entry</property>
355355
<property name="valign">center</property>
356-
<property name="action_name">win.search</property>
356+
<property name="action_name">win.toggle_search</property>
357357
<child>
358358
<object class="GtkImage" id="search_icon">
359359
<property name="visible">True</property>

0 commit comments

Comments
 (0)