This commit is contained in:
parent
a749e0ac16
commit
bf24100fdd
@ -1,72 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user