fix bug in refreshing menus and adding songs from library screen

This commit is contained in:
unK
2008-09-05 03:06:01 +02:00
parent b896f31c50
commit 9c3bd9dfb7
2 changed files with 12 additions and 16 deletions

View File

@@ -199,9 +199,7 @@ void Menu<T>::AddOption(const T &item, Location location, bool separator)
new_option->location = location; new_option->location = location;
new_option->have_separator = separator; new_option->have_separator = separator;
itsOptions.push_back(new_option); itsOptions.push_back(new_option);
NeedsRedraw.push_back(itsOptions.size()-1);
if (itsOptions.size() > itsBeginning && itsOptions.size() <= itsBeginning+itsHeight)
NeedsRedraw.push_back(itsOptions.size()-1);
} }
template <class T> template <class T>
@@ -213,9 +211,7 @@ void Menu<T>::AddBoldOption(const T &item, Location location, bool separator)
new_option->have_separator = separator; new_option->have_separator = separator;
new_option->is_bold = 1; new_option->is_bold = 1;
itsOptions.push_back(new_option); itsOptions.push_back(new_option);
NeedsRedraw.push_back(itsOptions.size()-1);
if (itsOptions.size() > itsBeginning && itsOptions.size() <= itsBeginning+itsHeight)
NeedsRedraw.push_back(itsOptions.size()-1);
} }
template <class T> template <class T>
@@ -228,9 +224,7 @@ void Menu<T>::AddStaticOption(const T &item, Location location, bool separator)
new_option->is_static = 1; new_option->is_static = 1;
itsOptions.push_back(new_option); itsOptions.push_back(new_option);
itsStaticsNumber++; itsStaticsNumber++;
NeedsRedraw.push_back(itsOptions.size()-1);
if (itsOptions.size() > itsBeginning && itsOptions.size() <= itsBeginning+itsHeight)
NeedsRedraw.push_back(itsOptions.size()-1);
} }
template <class T> template <class T>
@@ -244,9 +238,7 @@ void Menu<T>::AddStaticBoldOption(const T &item, Location location, bool separat
new_option->is_bold = 1; new_option->is_bold = 1;
itsOptions.push_back(new_option); itsOptions.push_back(new_option);
itsStaticsNumber++; itsStaticsNumber++;
NeedsRedraw.push_back(itsOptions.size()-1);
if (itsOptions.size() > itsBeginning && itsOptions.size() <= itsBeginning+itsHeight)
NeedsRedraw.push_back(itsOptions.size()-1);
} }
template <class T> template <class T>
@@ -264,8 +256,7 @@ void Menu<T>::UpdateOption(int index, const T &item, Location location, bool sep
itsOptions.at(index)->location = location; itsOptions.at(index)->location = location;
itsOptions.at(index)->item = item; itsOptions.at(index)->item = item;
itsOptions.at(index)->have_separator = separator; itsOptions.at(index)->have_separator = separator;
if (index >= itsBeginning && index < itsBeginning+itsHeight) NeedsRedraw.push_back(index);
NeedsRedraw.push_back(index);
} }
catch (std::out_of_range) catch (std::out_of_range)
{ {
@@ -279,8 +270,7 @@ void Menu<T>::BoldOption(int index, bool bold)
try try
{ {
itsOptions.at(index)->is_bold = bold; itsOptions.at(index)->is_bold = bold;
if (index >= itsBeginning && index < itsBeginning+itsHeight) NeedsRedraw.push_back(index);
NeedsRedraw.push_back(index);
} }
catch (std::out_of_range) catch (std::out_of_range)
{ {

View File

@@ -1192,7 +1192,13 @@ int main(int argc, char *argv[])
} }
FreeSongList(list); FreeSongList(list);
if (Keypressed(input, Key.Space)) if (Keypressed(input, Key.Space))
{
wCurrent->Go(wDown); wCurrent->Go(wDown);
if (wCurrent == mLibArtists)
mLibAlbums->Clear(0);
else if (wCurrent == mLibAlbums)
mLibSongs->Clear(0);
}
break; break;
} }
case csPlaylistEditor: case csPlaylistEditor: