search engine: fix assertion failure

master
Andrzej Rybczak 10 years ago
parent 133a794cb1
commit f482e97962
  1. 1
      NEWS
  2. 31
      src/search_engine.cpp

@ -1,4 +1,5 @@
ncmpcpp-0.7.2 (????-??-??)
* Attempt to add non-song item to playlist from search engine doesn't trigger assertion failure anymore.
ncmpcpp-0.7.1 (2016-01-01)
* Selected songs in media library can now be added to playlists.

@ -127,7 +127,19 @@ ConstSongIterator SearchEngineWindow::endS() const
std::vector<MPD::Song> SearchEngineWindow::getSelectedSongs()
{
return {}; // TODO
std::vector<MPD::Song> result;
for (auto &item : *this)
{
if (item.isSelected())
{
assert(item.value().isSong());
result.push_back(item.value().song());
}
}
// If no item is selected, add the current one if it's a song.
if (result.empty() && !empty() && current()->value().isSong())
result.push_back(current()->value().song());
return result;
}
/**********************************************************************/
@ -336,22 +348,7 @@ bool SearchEngine::addItemToPlaylist(bool play)
std::vector<MPD::Song> SearchEngine::getSelectedSongs()
{
std::vector<MPD::Song> result;
for (auto it = w.begin(); it != w.end(); ++it)
{
if (it->isSelected())
{
assert(it->value().isSong());
result.push_back(it->value().song());
}
}
// if no item is selected, add current one
if (result.empty() && !w.empty())
{
assert(w.current()->value().isSong());
result.push_back(w.current()->value().song());
}
return result;
return w.getSelectedSongs();
}
/***********************************************************************/

Loading…
Cancel
Save