update artists' list if database has changed
This commit is contained in:
@@ -365,7 +365,11 @@ int main(int argc, char *argv[])
|
||||
MpdData *data;
|
||||
|
||||
if (wCurrent == mLibAlbums && mLibAlbums->Empty())
|
||||
{
|
||||
mLibAlbums->HighlightColor(Config.main_color);
|
||||
mLibArtists->HighlightColor(Config.library_active_column_color);
|
||||
wCurrent = mLibArtists;
|
||||
}
|
||||
|
||||
if (wCurrent == mLibArtists)
|
||||
{
|
||||
@@ -1009,11 +1013,14 @@ int main(int argc, char *argv[])
|
||||
|
||||
if (wCurrent == mLibSongs)
|
||||
{
|
||||
Song &s = vSongs[mLibSongs->GetChoice()-1];
|
||||
ShowMessage("Added to playlist: " + OmitBBCodes(DisplaySong(s)));
|
||||
mpd_playlist_add(conn, (char *) s.GetFile().c_str());
|
||||
if (input == ENTER && s.GetHash() == vPlaylist.back()->GetHash())
|
||||
mpd_player_play_id(conn, vPlaylist.back()->GetID());
|
||||
if (!vSongs.empty())
|
||||
{
|
||||
Song &s = vSongs[mLibSongs->GetChoice()-1];
|
||||
ShowMessage("Added to playlist: " + OmitBBCodes(DisplaySong(s)));
|
||||
mpd_playlist_add(conn, (char *) s.GetFile().c_str());
|
||||
if (input == ENTER && s.GetHash() == vPlaylist.back()->GetHash())
|
||||
mpd_player_play_id(conn, vPlaylist.back()->GetID());
|
||||
}
|
||||
}
|
||||
|
||||
if (input == KEY_SPACE)
|
||||
@@ -1240,7 +1247,7 @@ int main(int argc, char *argv[])
|
||||
ShowMessage("Playlist saved as: " + playlist_name);
|
||||
break;
|
||||
case MPD_DATABASE_PLAYLIST_EXIST:
|
||||
ShowMessage("Playlist already exist!");
|
||||
ShowMessage("Playlist already exists!");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,6 +43,8 @@ extern vector<Song *> vPlaylist;
|
||||
extern vector<Song> vSearched;
|
||||
extern vector<BrowsedItem> vBrowser;
|
||||
|
||||
extern vector<string> vArtists;
|
||||
|
||||
extern time_t block_delay;
|
||||
extern time_t timer;
|
||||
extern time_t now;
|
||||
@@ -251,6 +253,25 @@ void NcmpcppStatusChanged(MpdObj *conn, ChangedStatusType what)
|
||||
if(what & MPD_CST_DATABASE)
|
||||
{
|
||||
GetDirectory(browsed_dir);
|
||||
if (!mLibArtists->Empty())
|
||||
{
|
||||
ShowMessage("Updating artists' list...");
|
||||
mLibArtists->Clear(0);
|
||||
vArtists.clear();
|
||||
MpdData *data = mpd_database_get_artists(conn);
|
||||
FOR_EACH_MPD_DATA(data)
|
||||
vArtists.push_back(data->tag);
|
||||
mpd_data_free(data);
|
||||
sort(vArtists.begin(), vArtists.end(), CaseInsensitiveComparison);
|
||||
for (vector<string>::const_iterator it = vArtists.begin(); it != vArtists.end(); it++)
|
||||
mLibArtists->AddOption(*it);
|
||||
if (current_screen == csLibrary)
|
||||
{
|
||||
mLibArtists->Hide();
|
||||
mLibArtists->Display();
|
||||
}
|
||||
ShowMessage("List updated!");
|
||||
}
|
||||
block_library_update = 0;
|
||||
}
|
||||
if (what & MPD_CST_STATE)
|
||||
|
||||
Reference in New Issue
Block a user