From 00a7743a34ba4690bcb20f61690e8a4b97510430 Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Sun, 13 Nov 2011 16:43:53 +0100 Subject: [PATCH] playlist editor: add support for columns display mode --- doc/config | 2 ++ doc/ncmpcpp.1 | 3 +++ src/ncmpcpp.cpp | 15 +++++++++++++++ src/playlist_editor.cpp | 4 ++-- src/settings.cpp | 5 +++++ src/settings.h | 1 + 6 files changed, 28 insertions(+), 2 deletions(-) diff --git a/doc/config b/doc/config index 82ffcda2..398fb178 100644 --- a/doc/config +++ b/doc/config @@ -258,6 +258,8 @@ # #search_engine_display_mode = "classic" (classic/columns) # +#playlist_editor_display_mode = "classic" (classic/columns) +# #discard_colors_if_item_is_selected = "yes" # #incremental_seeking = "yes" diff --git a/doc/ncmpcpp.1 b/doc/ncmpcpp.1 index d984e21f..93358fe0 100644 --- a/doc/ncmpcpp.1 +++ b/doc/ncmpcpp.1 @@ -192,6 +192,9 @@ Default display mode for Browser. .B search_engine_display_mode = classic/columns Default display mode for Search engine. .TP +.B playlist_editor_display_mode = classic/columns +Default display mode for Playlist editor. +.TP .B discard_colors_if_item_is_selected = yes/no Indicates whether custom colors of tags have to be discarded if item is selected or not. .TP diff --git a/src/ncmpcpp.cpp b/src/ncmpcpp.cpp index 1c4bfd59..eba09c46 100644 --- a/src/ncmpcpp.cpp +++ b/src/ncmpcpp.cpp @@ -1399,6 +1399,21 @@ int main(int argc, char *argv[]) if (mySearcher->Main()->Size() > SearchEngine::StaticOptions) mySearcher->Main()->SetTitle(Config.columns_in_search_engine && Config.titles_visibility ? Display::Columns(mySearcher->Main()->GetWidth()) : ""); } + else if (myScreen->ActiveWindow() == myPlaylistEditor->Content) + { + Config.columns_in_playlist_editor = !Config.columns_in_playlist_editor; + ShowMessage("Playlist editor display mode: %s", Config.columns_in_playlist_editor ? "Columns" : "Classic"); + if (Config.columns_in_playlist_editor) + { + myPlaylistEditor->Content->SetItemDisplayer(Display::SongsInColumns); + myPlaylistEditor->Content->SetGetStringFunction(Playlist::SongInColumnsToString); + } + else + { + myPlaylistEditor->Content->SetItemDisplayer(Display::Songs); + myPlaylistEditor->Content->SetGetStringFunction(Playlist::SongToString); + } + } } else if (Keypressed(input, Key.ToggleSeparatorsInPlaylist)) { diff --git a/src/playlist_editor.cpp b/src/playlist_editor.cpp index 7c588791..9983218f 100644 --- a/src/playlist_editor.cpp +++ b/src/playlist_editor.cpp @@ -60,9 +60,9 @@ void PlaylistEditor::Init() Content->CenteredCursor(Config.centered_cursor); Content->SetSelectPrefix(&Config.selected_item_prefix); Content->SetSelectSuffix(&Config.selected_item_suffix); - Content->SetItemDisplayer(Display::Songs); + Content->SetItemDisplayer(Config.columns_in_playlist_editor ? Display::SongsInColumns : Display::Songs); Content->SetItemDisplayerUserData(&sf); - Content->SetGetStringFunction(Playlist::SongToString); + Content->SetGetStringFunction(Config.columns_in_playlist_editor ? Playlist::SongInColumnsToString : Playlist::SongToString); Content->SetGetStringFunctionUserData(&Config.song_list_format_dollar_free); w = Playlists; diff --git a/src/settings.cpp b/src/settings.cpp index 68677458..2c3e4671 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -405,6 +405,7 @@ void NcmpcppConfig::SetDefaults() columns_in_playlist = false; columns_in_browser = false; columns_in_search_engine = false; + columns_in_playlist_editor = false; header_visibility = true; header_text_scrolling = true; statusbar_visibility = true; @@ -932,6 +933,10 @@ void NcmpcppConfig::Read() { columns_in_search_engine = v == "columns"; } + else if (name == "playlist_editor_display_mode") + { + columns_in_playlist_editor = v == "columns"; + } else if (name == "header_visibility") { header_visibility = v == "yes"; diff --git a/src/settings.h b/src/settings.h index 1f1e8558..0df7dfde 100644 --- a/src/settings.h +++ b/src/settings.h @@ -215,6 +215,7 @@ struct NcmpcppConfig bool columns_in_playlist; bool columns_in_browser; bool columns_in_search_engine; + bool columns_in_playlist_editor; bool set_window_title; bool header_visibility; bool header_text_scrolling;