format: implement generic format parser and printer

This commit is contained in:
Andrzej Rybczak
2014-11-10 00:31:53 +01:00
parent 25708093e6
commit 8d24c42261
31 changed files with 640 additions and 408 deletions

View File

@@ -83,10 +83,14 @@ PlaylistEditor::PlaylistEditor()
switch (Config.playlist_editor_display_mode)
{
case DisplayMode::Classic:
Content.setItemDisplayer(boost::bind(Display::Songs, _1, contentProxyList(), Config.song_list_format));
Content.setItemDisplayer(
boost::bind(Display::Songs, _1, contentProxyList(), Config.song_list_format
));
break;
case DisplayMode::Columns:
Content.setItemDisplayer(boost::bind(Display::SongsInColumns, _1, contentProxyList()));
Content.setItemDisplayer(
boost::bind(Display::SongsInColumns, _1, contentProxyList())
);
break;
}
@@ -491,7 +495,7 @@ void PlaylistEditor::Locate(const MPD::Playlist &playlist)
}
}
namespace {//
namespace {
std::string SongToString(const MPD::Song &s)
{
@@ -499,10 +503,10 @@ std::string SongToString(const MPD::Song &s)
switch (Config.playlist_display_mode)
{
case DisplayMode::Classic:
result = s.toString(Config.song_list_format_dollar_free, Config.tags_separator);
result = Format::stringify<char>(Config.song_list_format, &s);
break;
case DisplayMode::Columns:
result = s.toString(Config.song_in_columns_to_string_format, Config.tags_separator);
result = Format::stringify<char>(Config.song_columns_mode_format, &s);
break;
}
return result;