implement ProxySongList for handling general operations on lists

This commit is contained in:
Andrzej Rybczak
2012-09-02 20:51:20 +02:00
parent 0cfe5d8f01
commit 5e8d1673e0
22 changed files with 297 additions and 220 deletions

View File

@@ -32,10 +32,22 @@ inline HasSongs *hasSongs(BasicScreen *screen)
return dynamic_cast<HasSongs *>(screen);
}
template <typename Iterator> void removeSelectionHelper(Iterator first, Iterator last)
inline std::shared_ptr<ProxySongList> proxySongList(BasicScreen *screen)
{
for (; first != last; ++first)
first->setSelected(false);
auto ptr = nullProxySongList();
auto hs = hasSongs(screen);
if (hs)
ptr = hs->getProxySongList();
return ptr;
}
inline MPD::Song *currentSong(BasicScreen *screen)
{
MPD::Song *ptr = 0;
auto pl = proxySongList(screen);
if (pl)
ptr = pl->currentSong();
return ptr;
}
template <typename Iterator> void reverseSelectionHelper(Iterator first, Iterator last)