check for emptiness in some more places

these containers can be empty escpecially if one wants to go for a trip
around ncmpcpp screens while connection to mpd is lost. this is highly
unlikely to happen, but should be secured anyway.
This commit is contained in:
Andrzej Rybczak
2010-03-25 00:51:56 +01:00
parent 37c7acfd3c
commit 2583487ffb
4 changed files with 16 additions and 7 deletions

View File

@@ -254,6 +254,8 @@ void Browser::ReverseSelection()
void Browser::GetSelectedSongs(MPD::SongList &v) void Browser::GetSelectedSongs(MPD::SongList &v)
{ {
if (w->Empty())
return;
std::vector<size_t> selected; std::vector<size_t> selected;
w->GetSelected(selected); w->GetSelected(selected);
if (selected.empty()) if (selected.empty())

View File

@@ -280,6 +280,8 @@ MPD::Song *Playlist::CurrentSong()
void Playlist::GetSelectedSongs(MPD::SongList &v) void Playlist::GetSelectedSongs(MPD::SongList &v)
{ {
if (myPlaylist->Items->Empty())
return;
std::vector<size_t> selected; std::vector<size_t> selected;
Items->GetSelected(selected); Items->GetSelected(selected);
if (selected.empty()) if (selected.empty())

View File

@@ -233,6 +233,8 @@ MPD::Song *SearchEngine::CurrentSong()
void SearchEngine::GetSelectedSongs(MPD::SongList &v) void SearchEngine::GetSelectedSongs(MPD::SongList &v)
{ {
if (w->Empty())
return;
std::vector<size_t> selected; std::vector<size_t> selected;
w->GetSelected(selected); w->GetSelected(selected);
if (selected.empty() && w->Choice() >= StaticOptions) if (selected.empty() && w->Choice() >= StaticOptions)

View File

@@ -284,6 +284,8 @@ void TagEditor::Update()
Tags->Reset(); Tags->Reset();
MPD::SongList list; MPD::SongList list;
if (Config.albums_in_tag_editor) if (Config.albums_in_tag_editor)
{
if (!Albums->Empty())
{ {
Mpd.StartSearch(1); Mpd.StartSearch(1);
Mpd.AddSearch(MPD_TAG_ALBUM, Albums->Current().second); Mpd.AddSearch(MPD_TAG_ALBUM, Albums->Current().second);
@@ -295,6 +297,7 @@ void TagEditor::Update()
Tags->AddOption(**it); Tags->AddOption(**it);
} }
} }
}
else else
{ {
Mpd.GetSongs(Dirs->Current().second, list); Mpd.GetSongs(Dirs->Current().second, list);