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; };