From 975b277bdb8e7837f8f47f86064272a482804978 Mon Sep 17 00:00:00 2001 From: Santi Date: Fri, 31 Jul 2015 21:38:06 -0300 Subject: [PATCH] Sort by album considers discs and tracks --- src/playlist/playlist.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/playlist/playlist.cpp b/src/playlist/playlist.cpp index 49c73a63f..013f45db5 100644 --- a/src/playlist/playlist.cpp +++ b/src/playlist/playlist.cpp @@ -1402,8 +1402,18 @@ void Playlist::sort(int column, Qt::SortOrder order) { if (dynamic_playlist_ && current_item_index_.isValid()) begin += current_item_index_.row() + 1; - qStableSort(begin, new_items.end(), + if (column == Column_Album) { + // When sorting by album, also take into account discs and tracks. + qStableSort(begin, new_items.end(), + std::bind(&Playlist::CompareItems, Column_Track, order, _1, _2)); + qStableSort(begin, new_items.end(), + std::bind(&Playlist::CompareItems, Column_Disc, order, _1, _2)); + qStableSort(begin, new_items.end(), + std::bind(&Playlist::CompareItems, Column_Album, order, _1, _2)); + } else { + qStableSort(begin, new_items.end(), std::bind(&Playlist::CompareItems, column, order, _1, _2)); + } undo_stack_->push( new PlaylistUndoCommands::SortItems(this, column, order, new_items));