sort albums in media library by year (and display it)

This commit is contained in:
unK
2008-08-29 17:09:01 +02:00
parent 4d4b6de3e0
commit ceff30c9ec

View File

@@ -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;
}