111
111
/** Delete a playlist */
112
112
void PlaylistDAO::deletePlaylist(int playlistId)
114
// qDebug() << "PlaylistDAO::deletePlaylist" << QThread::currentThread() << m_database.connectionName();
114
qDebug() << "PlaylistDAO::deletePlaylist()";
115
115
m_database.transaction();
117
//Get the playlist id for this
118
QSqlQuery query(m_database);
120
//Delete the row in the Playlists table.
121
query.prepare("DELETE FROM Playlists "
123
query.bindValue(":id", playlistId);
125
qDebug() << "deletePlaylist" << query.lastError();
126
m_database.rollback();
131
//Delete the tracks in this playlist from the PlaylistTracks table.
132
query.prepare("DELETE FROM PlaylistTracks "
133
"WHERE playlist_id = :id");
134
query.bindValue(":id", playlistId);
136
qDebug() << "deletePlaylist" << query.lastError();
137
m_database.rollback();
117
if (deleteSubPlaylists(playlistId)) {
121
m_database.rollback();
143
124
//TODO: Crap, we need to shuffle the positions of all the playlists?
128
bool PlaylistDAO::deleteSubPlaylists(int parentId) {
129
qDebug() << "deleteSubPlaylists of" << parentId;
130
QList<int> subPlaylists = getPlaylists(parentId).values();
133
foreach(int subPlaylist, subPlaylists) {
135
bool subPlaylistsDeleted = deleteSubPlaylists(subPlaylist);
137
if ( !subPlaylistsDeleted ) {
142
QSqlQuery deletePlaylist(m_database);
143
deletePlaylist.prepare("DELETE FROM Playlists WHERE id= :id");
144
deletePlaylist.bindValue(":id", parentId);
145
bool playlistDeleted = deletePlaylist.exec();
147
QSqlQuery deletePlaylistTracks(m_database);
148
deletePlaylistTracks.prepare("DELETE FROM PlaylistTracks WHERE playlist_id = :id");
149
deletePlaylistTracks.bindValue(":id", parentId);
150
bool tracksDeleted = deletePlaylistTracks.exec();
152
return (playlistDeleted && tracksDeleted);
147
156
void PlaylistDAO::renamePlaylist(int playlistId, const QString& newName) {
148
157
m_database.transaction();
149
158
QSqlQuery query(m_database);