summaryrefslogtreecommitdiffstats
path: root/kicker
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-04-11 22:13:39 -0500
committerSlávek Banko <slavek.banko@axis.cz>2013-04-13 13:54:57 +0200
commit04388957c0d278aa091507fe11188d67c1944a17 (patch)
tree1dcf34d3a37353f67eda8dc912ef9aaa695435de /kicker
parentfbf56eb68b272f190a5146fdea73c620247ccae2 (diff)
downloadtdebase-04388957c0d278aa091507fe11188d67c1944a17.tar.gz
tdebase-04388957c0d278aa091507fe11188d67c1944a17.zip
Alphabetize applications on taskbar when requested in taskbar configuration module
Resort applications on taskbar sorting configuration option change (cherry picked from commit fe303335daa50ee2c5a5745eb2acd2858e6c2616)
Diffstat (limited to 'kicker')
-rw-r--r--kicker/taskbar/taskbar.cpp34
-rw-r--r--kicker/taskbar/taskbar.h2
2 files changed, 36 insertions, 0 deletions
diff --git a/kicker/taskbar/taskbar.cpp b/kicker/taskbar/taskbar.cpp
index b13760c1f..a91d9a107 100644
--- a/kicker/taskbar/taskbar.cpp
+++ b/kicker/taskbar/taskbar.cpp
@@ -67,6 +67,7 @@ TaskBar::TaskBar( TQWidget *parent, const char *name )
// init
setSizePolicy( TQSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Expanding ) );
+ m_sortByAppPrev = TaskBarSettings::sortByApp();
// setup animation frames
for (int i = 1; i < 11; i++)
@@ -273,6 +274,11 @@ void TaskBar::configure()
}
}
+ if (m_sortByAppPrev != TaskBarSettings::sortByApp()) {
+ m_sortByAppPrev = TaskBarSettings::sortByApp();
+ reSort();
+ }
+
TaskManager::the()->setXCompositeEnabled(TaskBarSettings::showThumbnails());
reLayoutEventually();
@@ -370,6 +376,24 @@ void TaskBar::add(Startup::Ptr startup)
connect(container, TQT_SIGNAL(showMe(TaskContainer*)), this, TQT_SLOT(showTaskContainer(TaskContainer*)));
}
+void TaskBar::reSort()
+{
+ TaskContainer::List originalContainers = containers;
+ TaskContainer::Iterator it = originalContainers.begin();
+ for (; it != originalContainers.end(); ++it)
+ {
+ removeChild(*it);
+ }
+ containers.clear();
+ it = originalContainers.begin();
+ for (; it != originalContainers.end(); ++it)
+ {
+ showTaskContainer(*it);
+ }
+ reLayoutEventually();
+ emit containerCountChanged();
+}
+
void TaskBar::showTaskContainer(TaskContainer* container)
{
TaskContainer::List::iterator it = m_hiddenContainers.find(container);
@@ -407,6 +431,16 @@ void TaskBar::showTaskContainer(TaskContainer* container)
}
}
+ // alphabetize containers
+ it = containers.begin();
+ for (; it != containers.end(); ++it)
+ {
+ TaskContainer* c = *it;
+ if (TQString::localeAwareCompare(container->id().lower(), c->id().lower()) < 0) {
+ break;
+ }
+ }
+
if (it != containers.end())
{
containers.insert(it, container);
diff --git a/kicker/taskbar/taskbar.h b/kicker/taskbar/taskbar.h
index 9f56565e3..f597a8038 100644
--- a/kicker/taskbar/taskbar.h
+++ b/kicker/taskbar/taskbar.h
@@ -90,6 +90,7 @@ protected slots:
void slotActivatePreviousTask();
void slotSettingsChanged(int);
void reLayout();
+ void reSort();
protected:
void reLayoutEventually();
@@ -129,6 +130,7 @@ private:
KTextShadowEngine* m_textShadowEngine;
TQTimer m_relayoutTimer;
bool m_ignoreUpdates;
+ bool m_sortByAppPrev;
TQImage m_blendGradient;
};