Skip to content

Commit

Permalink
Better filter swap
Browse files Browse the repository at this point in the history
  • Loading branch information
diegogangl committed Aug 4, 2022
1 parent 78788ff commit 29b863d
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 28 deletions.
2 changes: 0 additions & 2 deletions GTG/gtk/browser/main_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -517,12 +517,10 @@ def on_search_toggled(self, widget=None):
self.search_button.set_active(False)
self.searchbar.set_search_mode(False)
self.search_entry.set_text('')
self.get_pane().toggle_search_filter()
else:
self.search_button.set_active(True)
self.searchbar.set_search_mode(True)
self.search_entry.grab_focus()
self.get_pane().toggle_search_filter()


def _try_filter_by_query(self, query, refresh: bool = True):
Expand Down
49 changes: 23 additions & 26 deletions GTG/gtk/browser/task_pane.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,10 +90,12 @@ def __init__(self, browser, pane):
# Task List
# -------------------------------------------------------------------------------

self.search_filter = SearchTaskFilter(self.ds)
self.task_filter = TaskPaneFilter(self.app.ds, pane)

self.filtered = Gtk.FilterListModel()
self.filter = TaskPaneFilter(self.app.ds, pane)
self.filtered.set_model(self.app.ds.tasks.tree_model)
self.filtered.set_filter(self.filter)
self.filtered.set_filter(self.task_filter)

self.sort_model = Gtk.TreeListRowSorter()

Expand Down Expand Up @@ -125,8 +127,8 @@ def __init__(self, browser, pane):

def set_title(self) -> None:
"""Change pane title."""
if not self.filter.tags:

if not self.task_filter.tags:
if self.pane == 'active':
self.title.set_text(_('All Open Tasks'))
if self.pane == 'workview':
Expand All @@ -135,7 +137,7 @@ def set_title(self) -> None:
self.title.set_text(_('All Closed Tasks'))

else:
tags = ', '.join('@' + t.name for t in self.filter.tags)
tags = ', '.join('@' + t.name for t in self.task_filter.tags)

if self.pane == 'active':
self.title.set_text(_('{0} (Open)'.format(tags)))
Expand All @@ -145,42 +147,37 @@ def set_title(self) -> None:
self.title.set_text(_('{0} (Closed)'.format(tags)))


def toggle_search_filter(self) -> None:
if self.searching:
self.searching = False
self.filter = TaskPaneFilter(self.ds, self.pane)
else:
self.searching = True
self.filter = SearchTaskFilter(self.ds)

self.filtered.set_filter(self.filter)

def set_search_query(self, query) -> None:
"""Change tasks filter."""

try:
self.filter.set_query(query)
self.filter.changed(Gtk.FilterChange.DIFFERENT)
except AttributeError:
# Could happen if toggle_search_filter
# wasn't called first
pass
self.filtered.set_filter(self.search_filter)
self.search_filter.set_query(query)
self.search_filter.changed(Gtk.FilterChange.DIFFERENT)
self.searching = True


def set_filter_pane(self, pane) -> None:
"""Change tasks filter."""

if self.searching:
self.searching = False
self.filtered.set_filter(self.task_filter)

self.pane = pane
self.filter.pane = pane
self.filter.changed(Gtk.FilterChange.DIFFERENT)
self.task_filter.pane = pane
self.task_filter.changed(Gtk.FilterChange.DIFFERENT)
self.set_title()


def set_filter_tags(self, tags=[]) -> None:
"""Change tasks filter."""

self.filter.tags = tags
self.filter.changed(Gtk.FilterChange.DIFFERENT)
if self.searching:
self.searching = False
self.filtered.set_filter(self.task_filter)

self.task_filter.tags = tags
self.task_filter.changed(Gtk.FilterChange.DIFFERENT)
self.set_title()


Expand Down

0 comments on commit 29b863d

Please sign in to comment.