=== modified file 'mixxx/src/library/baseplaylistfeature.cpp' --- mixxx/src/library/baseplaylistfeature.cpp 2012-07-25 17:20:41 +0000 +++ mixxx/src/library/baseplaylistfeature.cpp 2012-08-07 16:50:37 +0000 @@ -357,7 +357,7 @@ if (m_lastRightClickedIndex.isValid()) { int playlistId = m_playlistDao.getPlaylistIdFromName( - m_lastRightClickedIndex.data().toString()); + m_lastRightClickedIndex.data().toString()); if (playlistId >= 0) { // Insert this playlist m_playlistDao.addToAutoDJQueue(playlistId, bTop); === modified file 'mixxx/src/library/dao/playlistdao.cpp' --- mixxx/src/library/dao/playlistdao.cpp 2012-07-25 17:20:41 +0000 +++ mixxx/src/library/dao/playlistdao.cpp 2012-08-07 16:55:54 +0000 @@ -495,9 +495,10 @@ //qDebug() << "Adding tracks from playlist " << playlistId << " to the Auto-DJ Queue"; // Query the PlaylistTracks database to locate tracks in the selected playlist + // tracks are automatically sorted by position QSqlQuery query(m_database); query.prepare("SELECT track_id FROM PlaylistTracks " - "WHERE playlist_id = :plid"); + "WHERE playlist_id = :plid ORDER BY position ASC"); query.bindValue(":plid", playlistId); if (!query.exec()) { LOG_FAILED_QUERY(query); @@ -509,16 +510,15 @@ // Loop through the tracks, adding them to the Auto-DJ Queue. Start at // position 2 because position 1 was already loaded to the deck - int i = 2; - + QList ids; while (query.next()) { - if (bTop) { - insertTrackIntoPlaylist(query.value(0).toInt(), autoDJId, i++); - } - else { - appendTrackToPlaylist(query.value(0).toInt(), autoDJId); - } + ids.append(query.value(0).toInt()); } + if (bTop) { + insertTracksIntoPlaylist(ids, autoDJId, 2); + } else { + appendTracksToPlaylist(ids, autoDJId); + } } int PlaylistDAO::getPreviousPlaylist(int currentPlaylistId, HiddenType hidden) {