Hrvoje Senjan 2015-06-28 19:15:06 +00:00 committed by Git OBS Bridge
parent a749e0ac16
commit bf24100fdd

View File

@ -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