never get full playlist from mpd, always request for changes

This commit is contained in:
Andrzej Rybczak
2009-03-13 12:58:17 +01:00
parent c7689d72d6
commit a20469b403
4 changed files with 20 additions and 15 deletions

View File

@@ -109,7 +109,7 @@ namespace NCurses
void SetGetStringFunctionUserData(void *data) { itsGetStringFunctionUserData = data; } void SetGetStringFunctionUserData(void *data) { itsGetStringFunctionUserData = data; }
void Reserve(size_t size); void Reserve(size_t size);
void ResizeBuffer(size_t size); void ResizeList(size_t size);
void AddOption(const T &item, bool is_bold = 0, bool is_static = 0); void AddOption(const T &item, bool is_bold = 0, bool is_static = 0);
void AddSeparator(); void AddSeparator();
void InsertOption(size_t pos, const T &Item, bool is_bold = 0, bool is_static = 0); void InsertOption(size_t pos, const T &Item, bool is_bold = 0, bool is_static = 0);
@@ -254,12 +254,21 @@ template <typename T> void NCurses::Menu<T>::Reserve(size_t size)
itsOptions.reserve(size); itsOptions.reserve(size);
} }
template <typename T> void NCurses::Menu<T>::ResizeBuffer(size_t size) template <typename T> void NCurses::Menu<T>::ResizeList(size_t size)
{ {
itsOptions.resize(size); if (size > itsOptions.size())
for (size_t i = 0; i < size; i++) {
if (!itsOptions[i]) itsOptions.resize(size);
itsOptions[i] = new Option(); for (size_t i = 0; i < size; i++)
if (!itsOptions[i])
itsOptions[i] = new Option();
}
else if (size < itsOptions.size())
{
for (size_t i = size; i < itsOptions.size(); i++)
delete itsOptions[i];
itsOptions.resize(size);
}
} }
template <typename T> void NCurses::Menu<T>::AddOption(const T &item, bool is_bold, bool is_static) template <typename T> void NCurses::Menu<T>::AddOption(const T &item, bool is_bold, bool is_static)

View File

@@ -345,7 +345,7 @@ void SearchEngine::Prepare()
w->SetTitle(""); w->SetTitle("");
w->Clear(0); w->Clear(0);
w->ResizeBuffer(17); w->ResizeList(17);
w->IntoSeparator(10); w->IntoSeparator(10);
w->IntoSeparator(14); w->IntoSeparator(14);

View File

@@ -189,16 +189,12 @@ void NcmpcppStatusChanged(Connection *Mpd, StatusChanges changed, void *)
bool was_filtered = myPlaylist->Main()->isFiltered(); bool was_filtered = myPlaylist->Main()->isFiltered();
myPlaylist->Main()->ShowAll(); myPlaylist->Main()->ShowAll();
SongList list; SongList list;
size_t playlist_length = Mpd->GetPlaylistLength(); size_t playlist_length = Mpd->GetPlaylistLength();
if (playlist_length < myPlaylist->Main()->Size()) if (playlist_length < myPlaylist->Main()->Size())
{ myPlaylist->Main()->ResizeList(playlist_length);
myPlaylist->Main()->Clear(playlist_length < myPlaylist->Main()->GetHeight() && myScreen == myPlaylist);
Mpd->GetPlaylistChanges(-1, list);
}
else
Mpd->GetPlaylistChanges(Mpd->GetOldPlaylistID(), list);
Mpd->GetPlaylistChanges(Mpd->GetOldPlaylistID(), list);
myPlaylist->Main()->Reserve(playlist_length); myPlaylist->Main()->Reserve(playlist_length);
for (SongList::const_iterator it = list.begin(); it != list.end(); it++) for (SongList::const_iterator it = list.begin(); it != list.end(); it++)
{ {

View File

@@ -245,7 +245,7 @@ bool TinyTagEditor::GetTags()
w->Clear(); w->Clear();
w->Reset(); w->Reset();
w->ResizeBuffer(23); w->ResizeList(23);
for (size_t i = 0; i < 7; i++) for (size_t i = 0; i < 7; i++)
w->Static(i, 1); w->Static(i, 1);