never get full playlist from mpd, always request for changes
This commit is contained in:
13
src/menu.h
13
src/menu.h
@@ -109,7 +109,7 @@ namespace NCurses
|
||||
void SetGetStringFunctionUserData(void *data) { itsGetStringFunctionUserData = data; }
|
||||
|
||||
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 AddSeparator();
|
||||
void InsertOption(size_t pos, const T &Item, bool is_bold = 0, bool is_static = 0);
|
||||
@@ -254,13 +254,22 @@ template <typename T> void NCurses::Menu<T>::Reserve(size_t 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)
|
||||
{
|
||||
if (size > itsOptions.size())
|
||||
{
|
||||
itsOptions.resize(size);
|
||||
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)
|
||||
{
|
||||
|
||||
@@ -345,7 +345,7 @@ void SearchEngine::Prepare()
|
||||
|
||||
w->SetTitle("");
|
||||
w->Clear(0);
|
||||
w->ResizeBuffer(17);
|
||||
w->ResizeList(17);
|
||||
|
||||
w->IntoSeparator(10);
|
||||
w->IntoSeparator(14);
|
||||
|
||||
@@ -189,16 +189,12 @@ void NcmpcppStatusChanged(Connection *Mpd, StatusChanges changed, void *)
|
||||
bool was_filtered = myPlaylist->Main()->isFiltered();
|
||||
myPlaylist->Main()->ShowAll();
|
||||
SongList list;
|
||||
|
||||
size_t playlist_length = Mpd->GetPlaylistLength();
|
||||
|
||||
if (playlist_length < myPlaylist->Main()->Size())
|
||||
{
|
||||
myPlaylist->Main()->Clear(playlist_length < myPlaylist->Main()->GetHeight() && myScreen == myPlaylist);
|
||||
Mpd->GetPlaylistChanges(-1, list);
|
||||
}
|
||||
else
|
||||
Mpd->GetPlaylistChanges(Mpd->GetOldPlaylistID(), list);
|
||||
myPlaylist->Main()->ResizeList(playlist_length);
|
||||
|
||||
Mpd->GetPlaylistChanges(Mpd->GetOldPlaylistID(), list);
|
||||
myPlaylist->Main()->Reserve(playlist_length);
|
||||
for (SongList::const_iterator it = list.begin(); it != list.end(); it++)
|
||||
{
|
||||
|
||||
@@ -245,7 +245,7 @@ bool TinyTagEditor::GetTags()
|
||||
w->Clear();
|
||||
w->Reset();
|
||||
|
||||
w->ResizeBuffer(23);
|
||||
w->ResizeList(23);
|
||||
|
||||
for (size_t i = 0; i < 7; i++)
|
||||
w->Static(i, 1);
|
||||
|
||||
Reference in New Issue
Block a user