Beispiel #1
0
class AbstractFilterListView(AbstractListView):
    no_filter = (lambda wid: True, 'all')
    task_filters = (no_filter,)

    def __init__(self, data_model):
        self._filters_ring = itertools.cycle(self.task_filters)
        self.cur_filter = next(self._filters_ring)

        self.filter_model = FilterListProxyModel(data_model, self.cur_filter[0])

        super().__init__(self.filter_model)

    def switch_to_next_filter(self):
        self.cur_filter = next(self._filters_ring)
        self.set_title(self.title_markup())
        self.filter_model.set_filter(self.cur_filter[0])

    def title_markup(self):
        return '{} ({})'.format(self.list_title, self.cur_filter[1])

    def keypress(self, size, key):
        if key in ACCEL_NEXT_LIST_FILTER:
            self.switch_to_next_filter()
        else:
            return super().keypress(size, key)
Beispiel #2
0
    def __init__(self, data_model):
        self._filters_ring = itertools.cycle(self.task_filters)
        self.cur_filter = next(self._filters_ring)

        self.filter_model = FilterListProxyModel(data_model, self.cur_filter[0])

        super().__init__(self.filter_model)