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)
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user