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) if (wCurrent == mLibArtists)
{ {
TagList list; TagList list;
mLibAlbums->Clear(); mLibAlbums->Clear(0);
Mpd->GetAlbums(mLibArtists->GetCurrentOption(), list); 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++) for (TagList::const_iterator it = list.begin(); it != list.end(); it++)
mLibAlbums->AddOption(*it); mLibAlbums->AddOption(*it);
mLibAlbums->Window::Clear();
} }
FreeSongList(vSongs); 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_ARTIST, mLibArtists->GetCurrentOption());
Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, mLibAlbums->GetCurrentOption()); Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, mLibAlbums->GetCurrentOption());
Mpd->CommitSearch(vSongs); 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); sort(vSongs.begin(), vSongs.end(), SortSongsByTrack);
bool bold = 0; bool bold = 0;
@@ -472,9 +499,9 @@ int main(int argc, char *argv[])
} }
mLibAlbums->Refresh(); mLibAlbums->Refresh();
mLibSongs->Hide(); mLibSongs->Window::Clear();
mLibSongs->Display(); mLibSongs->Refresh();
block_library_update = 1; block_library_update = 1;
} }