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