From 359ce4fa9c5f475bae8997eba828d2faa7f3a409 Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Sun, 24 Jan 2010 01:21:07 +0100 Subject: [PATCH] discard column colors if item is selected (optional) --- doc/config | 2 ++ doc/ncmpcpp.1 | 3 +++ src/display.cpp | 8 +++++--- src/settings.cpp | 5 +++++ src/settings.h | 1 + 5 files changed, 16 insertions(+), 3 deletions(-) diff --git a/doc/config b/doc/config index 70a35a75..002f8d64 100644 --- a/doc/config +++ b/doc/config @@ -222,6 +222,8 @@ # #search_engine_display_mode = "classic" (classic/columns) # +#discard_column_colors_if_item_is_selected = "yes" +# #incremental_seeking = "yes" # #seek_time = "1" diff --git a/doc/ncmpcpp.1 b/doc/ncmpcpp.1 index 95cde168..df5c8ce4 100644 --- a/doc/ncmpcpp.1 +++ b/doc/ncmpcpp.1 @@ -177,6 +177,9 @@ Default display mode for Browser. .B search_engine_display_mode = classic/columns Default display mode for Search engine. .TP +.B discard_column_colors_if_item_is_selected = yes/no +Indicates whether colors in column view have to be discarded if item is selected or not. +.TP .B header_visibility = yes/no If enabled, header window will be displayed, otherwise hidden. .TP diff --git a/src/display.cpp b/src/display.cpp index 4ee61b0c..d45c238c 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -130,13 +130,15 @@ void Display::SongsInColumns(const MPD::Song &s, void *, Menu *menu) if (Config.columns.size() > 1) next2last = Config.columns.end()-2; + bool discard_colors = Config.discard_column_colors_if_item_is_selected && menu->isSelected(menu->CurrentlyDrawedPosition()); + for (it = Config.columns.begin(); it != Config.columns.end(); ++it) { if (where) { menu->GotoXY(where, menu->Y()); *menu << ' '; - if ((it-1)->color != clDefault) + if (!discard_colors && (it-1)->color != clDefault) *menu << clEnd; } @@ -203,7 +205,7 @@ void Display::SongsInColumns(const MPD::Song &s, void *, Menu *menu) default: break; } - if (it->color != clDefault) + if (!discard_colors && it->color != clDefault) *menu << it->color; whline(menu->Raw(), 32, menu->GetWidth()-where); std::string tag = get ? s.GetTags(get) : ""; @@ -226,7 +228,7 @@ void Display::SongsInColumns(const MPD::Song &s, void *, Menu *menu) } where += width; } - if ((--it)->color != clDefault) + if (!discard_colors && (--it)->color != clDefault) *menu << clEnd; if (is_now_playing) *menu << Config.now_playing_suffix; diff --git a/src/settings.cpp b/src/settings.cpp index 54153935..83d3e762 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -373,6 +373,7 @@ void DefaultConfiguration(ncmpcpp_config &conf) conf.browser_sort_by_mtime = false; conf.tag_editor_extended_numeration = false; conf.media_library_display_date = true; + conf.discard_column_colors_if_item_is_selected = true; conf.set_window_title = true; conf.mpd_port = 6600; conf.mpd_connection_timeout = 15; @@ -952,6 +953,10 @@ void ReadConfiguration(ncmpcpp_config &conf) { conf.media_library_display_date = v == "yes"; } + else if (cl.find("discard_column_colors_if_item_is_selected") != std::string::npos) + { + conf.discard_column_colors_if_item_is_selected = v == "yes"; + } else if (cl.find("enable_window_title") != std::string::npos) { conf.set_window_title = v == "yes"; diff --git a/src/settings.h b/src/settings.h index c506ac24..a91642aa 100644 --- a/src/settings.h +++ b/src/settings.h @@ -220,6 +220,7 @@ struct ncmpcpp_config bool browser_sort_by_mtime; bool tag_editor_extended_numeration; bool media_library_display_date; + bool discard_column_colors_if_item_is_selected; int mpd_port; int mpd_connection_timeout;