From 2c8f3d4d616bad6ff9b8a32fc96a8b4e0d58c02a Mon Sep 17 00:00:00 2001 From: craig Date: Fri, 23 Mar 2012 20:35:34 +0000 Subject: [PATCH] Make play list menu order consistent with view order --- models/playlistsmodel.cpp | 3 ++- models/playlistsproxymodel.cpp | 7 ++++++- models/playlistsproxymodel.h | 1 + models/proxymodel.h | 8 ++++---- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/models/playlistsmodel.cpp b/models/playlistsmodel.cpp index 558a1c0e4..2aa82c0d9 100644 --- a/models/playlistsmodel.cpp +++ b/models/playlistsmodel.cpp @@ -28,6 +28,7 @@ #include #include #include "playlistsmodel.h" +#include "playlistsproxymodel.h" #include "itemview.h" #include "groupedview.h" #ifdef ENABLE_KDE_SUPPORT @@ -729,7 +730,7 @@ void PlaylistsModel::updateItemMenu() foreach (const PlaylistItem *p, items) { names << p->name; } - qSort(names); + qSort(names.begin(), names.end(), PlaylistsProxyModel::compareNames); foreach (const QString &n, names) { itemMenu->addAction(n, this, SLOT(emitAddToExisting())); } diff --git a/models/playlistsproxymodel.cpp b/models/playlistsproxymodel.cpp index e0ab88a6a..dc59d02e6 100644 --- a/models/playlistsproxymodel.cpp +++ b/models/playlistsproxymodel.cpp @@ -76,13 +76,18 @@ bool PlaylistsProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &sou return false; } +bool PlaylistsProxyModel::compareNames(const QString &l, const QString &r) +{ + return compareStrings(l, r)<0; +} + bool PlaylistsProxyModel::lessThan(const QModelIndex &left, const QModelIndex &right) const { PlaylistsModel::Item *l=static_cast(left.internalPointer()); PlaylistsModel::Item *r=static_cast(right.internalPointer()); if (l->isPlaylist() && r->isPlaylist()) { - return compareStrings(static_cast(l)->name, static_cast(r)->name)<0; + return compareNames(static_cast(l)->name, static_cast(r)->name); } else if(!l->isPlaylist() && !r->isPlaylist()) { return left.row()