sort albums in media library by year (and display it)
This commit is contained in:
@@ -430,10 +430,29 @@ int main(int argc, char *argv[])
|
||||
if (wCurrent == mLibArtists)
|
||||
{
|
||||
TagList list;
|
||||
mLibAlbums->Clear();
|
||||
mLibAlbums->Clear(0);
|
||||
Mpd->GetAlbums(mLibArtists->GetCurrentOption(), list);
|
||||
for (TagList::iterator it = list.begin(); it != list.end(); it++)
|
||||
{
|
||||
SongList l;
|
||||
Mpd->StartSearch(1);
|
||||
Mpd->AddSearch(MPD_TAG_ITEM_ARTIST, mLibArtists->GetCurrentOption());
|
||||
Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, *it);
|
||||
Mpd->CommitSearch(l);
|
||||
for (SongList::const_iterator j = l.begin(); j != l.end(); j++)
|
||||
{
|
||||
if ((*j)->GetYear() != EMPTY_TAG)
|
||||
{
|
||||
*it = "(" + (*j)->GetYear() + ") " + *it;
|
||||
break;
|
||||
}
|
||||
}
|
||||
FreeSongList(l);
|
||||
}
|
||||
sort(list.begin(), list.end());
|
||||
for (TagList::const_iterator it = list.begin(); it != list.end(); it++)
|
||||
mLibAlbums->AddOption(*it);
|
||||
mLibAlbums->Window::Clear();
|
||||
}
|
||||
|
||||
FreeSongList(vSongs);
|
||||
@@ -453,6 +472,14 @@ int main(int argc, char *argv[])
|
||||
Mpd->AddSearch(MPD_TAG_ITEM_ARTIST, mLibArtists->GetCurrentOption());
|
||||
Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, mLibAlbums->GetCurrentOption());
|
||||
Mpd->CommitSearch(vSongs);
|
||||
if (vSongs.empty())
|
||||
{
|
||||
const string &album = mLibAlbums->GetCurrentOption();
|
||||
Mpd->StartSearch(1);
|
||||
Mpd->AddSearch(MPD_TAG_ITEM_ARTIST, mLibArtists->GetCurrentOption());
|
||||
Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, album.substr(7, album.length()-7));
|
||||
Mpd->CommitSearch(vSongs);
|
||||
}
|
||||
}
|
||||
sort(vSongs.begin(), vSongs.end(), SortSongsByTrack);
|
||||
bool bold = 0;
|
||||
@@ -472,9 +499,9 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
mLibAlbums->Refresh();
|
||||
mLibSongs->Hide();
|
||||
mLibSongs->Display();
|
||||
|
||||
mLibSongs->Window::Clear();
|
||||
mLibSongs->Refresh();
|
||||
|
||||
block_library_update = 1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user