From f134c7ab4cce6efb1a72bebe599ac0e71e8d0895 Mon Sep 17 00:00:00 2001 From: Tannin Date: Wed, 18 Mar 2015 19:40:12 +0100 Subject: - plugin list can now be sorted by flags - sorting by mod index now puts the disabled mods to one end of the list --- src/pluginlistsortproxy.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/pluginlistsortproxy.cpp b/src/pluginlistsortproxy.cpp index b8ac220a..342b3744 100644 --- a/src/pluginlistsortproxy.cpp +++ b/src/pluginlistsortproxy.cpp @@ -85,9 +85,24 @@ bool PluginListSortProxy::lessThan(const QModelIndex &left, case PluginList::COL_NAME: { return QString::compare(plugins->getName(left.row()), plugins->getName(right.row()), Qt::CaseInsensitive) < 0; } break; - case PluginList::COL_PRIORITY: + case PluginList::COL_FLAGS: { + QVariantList lhsList = left.data(Qt::UserRole + 1).toList(); + QVariantList rhsList = right.data(Qt::UserRole + 1).toList(); + if (lhsList.size() != rhsList.size()) { + return lhsList.size() < rhsList.size(); + } else { + for (int i = 0; i < lhsList.size(); ++i) { + if (lhsList.at(i) != rhsList.at(i)) { + return lhsList.at(i) < rhsList.at(i); + } + } + return false; + } + } break; case PluginList::COL_MODINDEX: { - return plugins->getPriority(left.row()) < plugins->getPriority(right.row()); + int leftVal = plugins->isEnabled(left.row()) ? plugins->getPriority(left.row()) : -1; + int rightVal = plugins->isEnabled(right.row()) ? plugins->getPriority(right.row()) : -1; + return leftVal < rightVal; } break; default: { return plugins->getPriority(left.row()) < plugins->getPriority(right.row()); -- cgit v1.3.1