diff --git a/doc/config b/doc/config index 002f8d64..8979b47b 100644 --- a/doc/config +++ b/doc/config @@ -222,7 +222,7 @@ # #search_engine_display_mode = "classic" (classic/columns) # -#discard_column_colors_if_item_is_selected = "yes" +#discard_colors_if_item_is_selected = "yes" # #incremental_seeking = "yes" # diff --git a/doc/ncmpcpp.1 b/doc/ncmpcpp.1 index df5c8ce4..766e42c1 100644 --- a/doc/ncmpcpp.1 +++ b/doc/ncmpcpp.1 @@ -177,8 +177,8 @@ 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. +.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 .B header_visibility = yes/no If enabled, header window will be displayed, otherwise hidden. diff --git a/src/display.cpp b/src/display.cpp index 50d7471a..8882d0eb 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -130,7 +130,7 @@ 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()); + bool discard_colors = Config.discard_colors_if_item_is_selected && menu->GetColor() != Config.main_color && menu->isSelected(menu->CurrentlyDrawedPosition()); for (it = Config.columns.begin(); it != Config.columns.end(); ++it) { @@ -243,6 +243,8 @@ void Display::Songs(const MPD::Song &s, void *data, Menu *menu) if (is_now_playing) *menu << Config.now_playing_prefix; + bool discard_colors = Config.discard_colors_if_item_is_selected && menu->GetColor() != Config.main_color && menu->isSelected(menu->CurrentlyDrawedPosition()); + std::string line = s.toString(*static_cast(data), "$"); for (std::string::const_iterator it = line.begin(); it != line.end(); ++it) { @@ -255,7 +257,8 @@ void Display::Songs(const MPD::Song &s, void *data, Menu *menu) } else if (isdigit(*it)) // color { - *menu << Color(*it-'0'); + if (!discard_colors) + *menu << Color(*it-'0'); } else if (*it == 'R') // right align { @@ -264,7 +267,11 @@ void Display::Songs(const MPD::Song &s, void *data, Menu *menu) String2Buffer(TO_WSTRING(line.substr(it-line.begin()+1)), buf); if (is_now_playing) buf << Config.now_playing_suffix; - *menu << XY(menu->GetWidth()-buf.Str().length()-(menu->isSelected(menu->CurrentlyDrawedPosition()) ? Config.selected_item_suffix_length : 0), menu->Y()) << buf; + *menu << XY(menu->GetWidth()-buf.Str().length()-(menu->isSelected(menu->CurrentlyDrawedPosition()) ? Config.selected_item_suffix_length : 0), menu->Y()); + if (discard_colors) + *menu << buf.Str(); + else + *menu << buf; return; } else // not a color nor right align, just a random character diff --git a/src/settings.cpp b/src/settings.cpp index 68f07c46..e8d0cdd9 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -373,7 +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.discard_colors_if_item_is_selected = true; conf.set_window_title = true; conf.mpd_port = 6600; conf.mpd_connection_timeout = 15; @@ -953,9 +953,9 @@ 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) + else if (cl.find("discard_colors_if_item_is_selected") != std::string::npos) { - conf.discard_column_colors_if_item_is_selected = v == "yes"; + conf.discard_colors_if_item_is_selected = v == "yes"; } else if (cl.find("enable_window_title") != std::string::npos) { diff --git a/src/settings.h b/src/settings.h index 8c1adf07..572a2286 100644 --- a/src/settings.h +++ b/src/settings.h @@ -220,7 +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; + bool discard_colors_if_item_is_selected; int mpd_port; int mpd_connection_timeout;