Estou tentando fazer algo semelhante para o escopo clementine e acho que fiz algum progresso. Eu modifiquei o do_get_filters da seguinte maneira
def do_get_filters(self):
'''
Adds filters
'''
fs = Unity.FilterSet.new()
if FILTERS:
fil = Unity.MultiRangeFilter.new(FILTERS[0]['id'], FILTERS[0]['name'],
Gio.ThemedIcon.new(FILTERS[0]['icon']),
FILTERS[0]['collapsed'])
fs.add(fil)
fil = Unity.RadioOptionFilter.new(FILTERS[1]['id'], FILTERS[1]['name'],
Gio.ThemedIcon.new(FILTERS[1]['icon']),
FILTERS[1]['collapsed'])
fs.add(fil)
return fs
depois de definir FILTERS como
f1 = {'id': 'decade',
'name': _('Decade'),
'icon': '',
'collapsed': True}
f2 = {'id': 'genre',
'name': _('Genre'),
'icon': '',
'collapsed': True}
FILTERS = [f1, f2]
Neste ponto, você pode fazer algo parecido com isto no método do_run da classe MySearch
def do_run(self):
'''
Adds results to the model
'''
try:
decade, genre = self.search_context.filter_state.get_filters()
if decade.get_first_active():
start_year = int( decade.get_first_active().get_property('id') )
else:
start_year = 0
if decade.get_last_active():
if decade.get_last_active().get_property('id') == '0':
end_year = 1950 + 9
else:
end_year = int( decade.get_last_active().get_property('id') ) + 9
else:
end_year = 3000
e depois disso %código% A parte de gênero deveria ser semelhante, eu tenho que implementar isto entretanto.