73 lines
2.5 KiB
Diff
73 lines
2.5 KiB
Diff
From c66f30f6ddb3420e3c2fb62e404c684d6231d264 Mon Sep 17 00:00:00 2001
|
|
From: Eike Hein <hein@kde.org>
|
|
Date: Thu, 28 May 2015 20:11:31 +0200
|
|
Subject: [PATCH 5/5] Fix launcher sorting the by-activity sorting strategy.
|
|
|
|
BUG:348324
|
|
---
|
|
.../strategies/activitysortingstrategy.cpp | 30 ++++++++++++++++++++--
|
|
1 file changed, 28 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/libtaskmanager/strategies/activitysortingstrategy.cpp b/libtaskmanager/strategies/activitysortingstrategy.cpp
|
|
index 29207329b91a859219c7ce26c875d0ca0ab32efd..cfe916c7624a537da993b1f46eb41009c2d29092 100644
|
|
--- a/libtaskmanager/strategies/activitysortingstrategy.cpp
|
|
+++ b/libtaskmanager/strategies/activitysortingstrategy.cpp
|
|
@@ -33,11 +33,36 @@ ActivitySortingStrategy::ActivitySortingStrategy(QObject *parent)
|
|
|
|
class ActivitySortingStrategy::Comparator {
|
|
public:
|
|
- Comparator(QStringList *activitiesOrder) {
|
|
+ Comparator(QStringList *activitiesOrder, GroupManager *groupManager) {
|
|
m_activitiesOrder = activitiesOrder;
|
|
+ m_groupManager = groupManager;
|
|
}
|
|
|
|
bool operator()(const AbstractGroupableItem *i1, const AbstractGroupableItem *i2) {
|
|
+ if (m_groupManager && m_groupManager->separateLaunchers()) {
|
|
+ if (i1->isStartupItem()) {
|
|
+ if (i2->isStartupItem()) {
|
|
+ return i1->name().toLower() < i2->name().toLower();
|
|
+ }
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ if (i2->isStartupItem()) {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ if (i1->itemType() == LauncherItemType) {
|
|
+ if (i2->itemType() == LauncherItemType) {
|
|
+ return i1->name().toLower() < i2->name().toLower();
|
|
+ }
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ if (i2->itemType() == LauncherItemType) {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
if (!m_priorityCache.contains(i1->id())) {
|
|
addToCache(i1);
|
|
}
|
|
@@ -97,6 +122,7 @@ private:
|
|
m_priorityCache[item->id()] = cacheEntry;
|
|
}
|
|
|
|
+ GroupManager *m_groupManager;
|
|
const QStringList *m_activitiesOrder;
|
|
QHash<int, QList<int> > m_priorityCache;
|
|
};
|
|
@@ -111,7 +137,7 @@ void ActivitySortingStrategy::sortItems(ItemList& items)
|
|
checkActivitiesOrder(items);
|
|
}
|
|
|
|
- Comparator comparator(&m_activitiesOrder);
|
|
+ Comparator comparator(&m_activitiesOrder, qobject_cast<GroupManager *>(parent()));
|
|
|
|
qStableSort(items.begin(), items.end(), comparator);
|
|
}
|
|
--
|
|
2.4.1
|
|
|