new feature: apply filter to screen (Ctrl-F)

if one applies a filter, only items that contain this
filter will be displayed. works on all screens.
This commit is contained in:
Andrzej Rybczak
2009-02-17 17:57:55 +01:00
parent 2cb9b46135
commit 5d2daab416
27 changed files with 472 additions and 171 deletions

View File

@@ -48,6 +48,7 @@ void Browser::Init()
w->SetSelectPrefix(&Config.selected_item_prefix);
w->SetSelectSuffix(&Config.selected_item_suffix);
w->SetItemDisplayer(Display::Items);
w->SetGetStringFunction(ItemToString);
}
void Browser::Resize()
@@ -437,3 +438,31 @@ void Browser::UpdateItemList()
w->Refresh();
}
std::string Browser::ItemToString(const MPD::Item &item, void *)
{
switch (item.type)
{
case MPD::itDirectory:
{
if (item.song)
return "[..]";
return "[" + ExtractTopDirectory(item.name) + "]";
}
case MPD::itSong:
{
if (!Config.columns_in_browser)
return item.song->toString(Config.song_list_format);
else
return Playlist::SongInColumnsToString(*item.song, &Config.song_columns_list_format);
}
case MPD::itPlaylist:
{
return Config.browser_playlist_prefix.Str() + item.name;
}
default:
{
return "";
}
}
}