bool CrateDAO::removeTrackFromCrate(const int trackId, const int crateId) { QSqlQuery query(m_database); query.prepare("DELETE FROM " CRATE_TRACKS_TABLE " WHERE " "crate_id = :crate_id AND track_id = :track_id"); query.bindValue(":crate_id", crateId); query.bindValue(":track_id", trackId); if (!query.exec()) { LOG_FAILED_QUERY(query); return false; } emit(trackRemoved(crateId, trackId)); emit(changed(crateId)); return true; }
void PlaylistModel::removeTrack(int position) { if (position < 0 || position >= m_tracks.count()) { return; } m_manager->removeTracks(KUrl::List(m_tracks.at(position))); m_tracks.removeAt(position); if (position <= m_currentTrack) { setCurrentTrack((m_currentTrack - 1), ((position == m_currentTrack && (m_manager->state() != StoppedState && isCurrent()))?StopReaction:NoReaction)); } else { setCurrentTrack(m_currentTrack); } emit trackRemoved(position); emit modified(); }