menu: make Menu::drawn return ConstIterator
This commit is contained in:
@@ -76,22 +76,23 @@ template <typename T>
|
||||
void setProperties(NC::Menu<T> &menu, const MPD::Song &s, HasSongs &screen, bool &separate_albums,
|
||||
bool &is_now_playing, bool &is_selected, bool &discard_colors)
|
||||
{
|
||||
size_t drawn_pos = menu.drawn() - menu.begin();
|
||||
separate_albums = false;
|
||||
if (Config.playlist_separate_albums)
|
||||
{
|
||||
auto pl = screen.getProxySongList();
|
||||
assert(pl);
|
||||
auto next = pl->getSong(menu.drawnPosition()+1);
|
||||
auto next = pl->getSong(drawn_pos+1);
|
||||
if (next && next->getAlbum() != s.getAlbum())
|
||||
separate_albums = true;
|
||||
}
|
||||
if (separate_albums)
|
||||
menu << NC::fmtUnderline;
|
||||
|
||||
int song_pos = menu.isFiltered() ? s.getPosition() : menu.drawnPosition();
|
||||
int song_pos = menu.isFiltered() ? s.getPosition() : drawn_pos;
|
||||
is_now_playing = static_cast<void *>(&menu) == myPlaylist->Items
|
||||
&& song_pos == myPlaylist->NowPlaying;
|
||||
is_selected = menu.drawn().isSelected();
|
||||
is_selected = menu.drawn()->isSelected();
|
||||
discard_colors = Config.discard_colors_if_item_is_selected && is_selected;
|
||||
}
|
||||
|
||||
@@ -337,17 +338,17 @@ std::string Display::Columns(size_t list_width)
|
||||
|
||||
void Display::SongsInColumns(NC::Menu<MPD::Song> &menu, HasSongs &screen)
|
||||
{
|
||||
showSongsInColumns(menu, menu.drawn().value(), screen);
|
||||
showSongsInColumns(menu, menu.drawn()->value(), screen);
|
||||
}
|
||||
|
||||
void Display::Songs(NC::Menu<MPD::Song> &menu, HasSongs &screen, const std::string &format)
|
||||
{
|
||||
showSongs(menu, menu.drawn().value(), screen, format);
|
||||
showSongs(menu, menu.drawn()->value(), screen, format);
|
||||
}
|
||||
|
||||
void Display::Tags(NC::Menu<MPD::MutableSong> &menu)
|
||||
{
|
||||
const MPD::MutableSong &s = menu.drawn().value();
|
||||
const MPD::MutableSong &s = menu.drawn()->value();
|
||||
size_t i = myTagEditor->TagTypes->choice();
|
||||
if (i < 11)
|
||||
{
|
||||
@@ -364,12 +365,12 @@ void Display::Tags(NC::Menu<MPD::MutableSong> &menu)
|
||||
|
||||
void Display::Outputs(NC::Menu<MPD::Output> &menu)
|
||||
{
|
||||
menu << menu.drawn().value().name();
|
||||
menu << menu.drawn()->value().name();
|
||||
}
|
||||
|
||||
void Display::Items(NC::Menu<MPD::Item> &menu)
|
||||
{
|
||||
const MPD::Item &item = menu.drawn().value();
|
||||
const MPD::Item &item = menu.drawn()->value();
|
||||
switch (item.type)
|
||||
{
|
||||
case MPD::itDirectory:
|
||||
@@ -389,7 +390,7 @@ void Display::Items(NC::Menu<MPD::Item> &menu)
|
||||
|
||||
void Display::SearchEngine(NC::Menu<SEItem> &menu)
|
||||
{
|
||||
const SEItem &si = menu.drawn().value();
|
||||
const SEItem &si = menu.drawn()->value();
|
||||
if (si.isSong())
|
||||
{
|
||||
if (!Config.columns_in_search_engine)
|
||||
|
||||
Reference in New Issue
Block a user