void FooPlaylistManager::removePlaylist(QString name, QUuid uuid) { int i = playlistIndex(name, uuid); if (i >= 0) { FooPlaylist* const p = playlists->at(i); if (currentPlayingPlaylist == p) { currentPlayingPlaylist = NULL; } delete p; playlists->removeAt(i); emit playlistRemoved(name, uuid); if (playlists->size() == 0) { createPlaylist(); } } }
bool IpodPlaylistProvider::deletePlaylists( Playlists::PlaylistList playlistlist ) { if( !isWritable() ) return false; foreach( Playlists::PlaylistPtr playlist, playlistlist ) { if( !m_playlists.contains( playlist ) ) continue; if( KSharedPtr<IpodPlaylist>::staticCast( playlist )->type() != IpodPlaylist::Normal ) continue; // special playlists cannot be removed using this method m_playlists.removeOne( playlist ); unsubscribeFrom( playlist ); IpodPlaylist *ipodPlaylist = static_cast<IpodPlaylist *>( playlist.data() ); itdb_playlist_unlink( ipodPlaylist->itdbPlaylist() ); emit playlistRemoved( playlist ); emit startWriteDatabaseTimer(); } return true; }