This commit is contained in:
Andrzej Rybczak
2010-01-31 00:50:43 +01:00
parent a3a40b9ba8
commit 5701853d3a
2 changed files with 14 additions and 7 deletions

View File

@@ -130,7 +130,7 @@ void Display::SongsInColumns(const MPD::Song &s, void *, Menu<MPD::Song> *menu)
if (Config.columns.size() > 1) if (Config.columns.size() > 1)
next2last = Config.columns.end()-2; next2last = Config.columns.end()-2;
bool discard_colors = Config.discard_colors_if_item_is_selected && menu->GetColor() != Config.main_color && menu->isSelected(menu->CurrentlyDrawedPosition()); bool discard_colors = Config.discard_colors_if_item_is_selected && menu->isSelected(menu->CurrentlyDrawedPosition());
for (it = Config.columns.begin(); it != Config.columns.end(); ++it) for (it = Config.columns.begin(); it != Config.columns.end(); ++it)
{ {
@@ -243,7 +243,7 @@ void Display::Songs(const MPD::Song &s, void *data, Menu<MPD::Song> *menu)
if (is_now_playing) if (is_now_playing)
*menu << Config.now_playing_prefix; *menu << Config.now_playing_prefix;
bool discard_colors = Config.discard_colors_if_item_is_selected && menu->GetColor() != Config.main_color && menu->isSelected(menu->CurrentlyDrawedPosition()); bool discard_colors = Config.discard_colors_if_item_is_selected && menu->isSelected(menu->CurrentlyDrawedPosition());
std::string line = s.toString(*static_cast<std::string *>(data), "$"); std::string line = s.toString(*static_cast<std::string *>(data), "$");
for (std::string::const_iterator it = line.begin(); it != line.end(); ++it) for (std::string::const_iterator it = line.begin(); it != line.end(); ++it)
@@ -265,13 +265,11 @@ void Display::Songs(const MPD::Song &s, void *data, Menu<MPD::Song> *menu)
basic_buffer<my_char_t> buf; basic_buffer<my_char_t> buf;
buf << U(" "); buf << U(" ");
String2Buffer(TO_WSTRING(line.substr(it-line.begin()+1)), buf); String2Buffer(TO_WSTRING(line.substr(it-line.begin()+1)), buf);
if (discard_colors)
buf.RemoveFormatting();
if (is_now_playing) if (is_now_playing)
buf << Config.now_playing_suffix; buf << Config.now_playing_suffix;
*menu << XY(menu->GetWidth()-buf.Str().length()-(menu->isSelected(menu->CurrentlyDrawedPosition()) ? Config.selected_item_suffix_length : 0), menu->Y()); *menu << XY(menu->GetWidth()-buf.Str().length()-(menu->isSelected(menu->CurrentlyDrawedPosition()) ? Config.selected_item_suffix_length : 0), menu->Y()) << buf;
if (discard_colors)
*menu << buf.Str();
else
*menu << buf;
return; return;
} }
else // not a color nor right align, just a random character else // not a color nor right align, just a random character

View File

@@ -106,6 +106,10 @@ namespace NCurses
void RemoveFormatting(short val_b, std::basic_string<C> pattern, short val_e, void RemoveFormatting(short val_b, std::basic_string<C> pattern, short val_e,
bool case_sensitive, bool for_each = 1); bool case_sensitive, bool for_each = 1);
/// Removes all formating applied to string in buffer.
///
void RemoveFormatting();
/// Sets the pointer to string, that will be passed in operator<<() to window /// Sets the pointer to string, that will be passed in operator<<() to window
/// object instead of the internal buffer. This is useful if you took the content /// object instead of the internal buffer. This is useful if you took the content
/// of the buffer, modified it somehow and want to print the modified version instead /// of the buffer, modified it somehow and want to print the modified version instead
@@ -253,6 +257,11 @@ template <typename C> void NCurses::basic_buffer<C>::RemoveFormatting( short val
} }
} }
template <typename C> void NCurses::basic_buffer<C>::RemoveFormatting()
{
itsFormat.clear();
}
template <typename C> void NCurses::basic_buffer<C>::SetTemp(std::basic_string<C> *tmp) template <typename C> void NCurses::basic_buffer<C>::SetTemp(std::basic_string<C> *tmp)
{ {
itsTempString = tmp; itsTempString = tmp;