diff options
Diffstat (limited to 'kicker/taskbar/taskbar.cpp')
-rw-r--r-- | kicker/taskbar/taskbar.cpp | 146 |
1 files changed, 77 insertions, 69 deletions
diff --git a/kicker/taskbar/taskbar.cpp b/kicker/taskbar/taskbar.cpp index 29c06da89..ac0133668 100644 --- a/kicker/taskbar/taskbar.cpp +++ b/kicker/taskbar/taskbar.cpp @@ -49,7 +49,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "taskbar.h" #include "taskbar.moc" -#define READ_MERGED_TASBKAR_SETTING(x) ((m_settingsObject->useGlobalSettings())?m_globalSettingsObject->x():m_settingsObject->x()) +#define READ_MERGED_TASKBAR_SETTING(x) ((m_settingsObject->useGlobalSettings())?m_globalSettingsObject->x():m_settingsObject->x()) TaskBar::TaskBar( TaskBarSettings* settingsObject, TaskBarSettings* globalSettingsObject, TQWidget *parent, const char *name ) : Panner( parent, name ), @@ -81,7 +81,7 @@ TaskBar::TaskBar( TaskBarSettings* settingsObject, TaskBarSettings* globalSettin // init setSizePolicy( TQSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Expanding ) ); - m_sortByAppPrev = READ_MERGED_TASBKAR_SETTING(sortByApp); + m_sortByAppPrev = READ_MERGED_TASKBAR_SETTING(sortByApp); // setup animation frames for (int i = 1; i < 11; i++) @@ -92,24 +92,24 @@ TaskBar::TaskBar( TaskBarSettings* settingsObject, TaskBarSettings* globalSettin // configure configure(); - connect(&m_relayoutTimer, TQT_SIGNAL(timeout()), - this, TQT_SLOT(reLayout())); + connect(&m_relayoutTimer, TQ_SIGNAL(timeout()), + this, TQ_SLOT(reLayout())); - connect(this, TQT_SIGNAL(contentsMoving(int, int)), TQT_SLOT(setBackground())); + connect(this, TQ_SIGNAL(contentsMoving(int, int)), TQ_SLOT(setBackground())); // connect manager - connect(TaskManager::the(), TQT_SIGNAL(taskAdded(Task::Ptr)), - this, TQT_SLOT(add(Task::Ptr))); - connect(TaskManager::the(), TQT_SIGNAL(taskRemoved(Task::Ptr)), - this, TQT_SLOT(remove(Task::Ptr))); - connect(TaskManager::the(), TQT_SIGNAL(startupAdded(Startup::Ptr)), - this, TQT_SLOT(add(Startup::Ptr))); - connect(TaskManager::the(), TQT_SIGNAL(startupRemoved(Startup::Ptr)), - this, TQT_SLOT(remove(Startup::Ptr))); - connect(TaskManager::the(), TQT_SIGNAL(desktopChanged(int)), - this, TQT_SLOT(desktopChanged(int))); - connect(TaskManager::the(), TQT_SIGNAL(windowChanged(Task::Ptr)), - this, TQT_SLOT(windowChanged(Task::Ptr))); + connect(TaskManager::the(), TQ_SIGNAL(taskAdded(Task::Ptr)), + this, TQ_SLOT(add(Task::Ptr))); + connect(TaskManager::the(), TQ_SIGNAL(taskRemoved(Task::Ptr)), + this, TQ_SLOT(remove(Task::Ptr))); + connect(TaskManager::the(), TQ_SIGNAL(startupAdded(Startup::Ptr)), + this, TQ_SLOT(add(Startup::Ptr))); + connect(TaskManager::the(), TQ_SIGNAL(startupRemoved(Startup::Ptr)), + this, TQ_SLOT(remove(Startup::Ptr))); + connect(TaskManager::the(), TQ_SIGNAL(desktopChanged(int)), + this, TQ_SLOT(desktopChanged(int))); + connect(TaskManager::the(), TQ_SIGNAL(windowChanged(Task::Ptr)), + this, TQ_SLOT(windowChanged(Task::Ptr))); isGrouping = shouldGroup(); @@ -131,8 +131,8 @@ TaskBar::TaskBar( TaskBarSettings* settingsObject, TaskBarSettings* globalSettin blocklayout = false; - connect(kapp, TQT_SIGNAL(settingsChanged(int)), TQT_SLOT(slotSettingsChanged(int))); - keys = new TDEGlobalAccel( TQT_TQOBJECT(this) ); + connect(kapp, TQ_SIGNAL(settingsChanged(int)), TQ_SLOT(slotSettingsChanged(int))); + keys = new TDEGlobalAccel( this ); #include "taskbarbindings.cpp" keys->readSettings(); keys->updateConnections(); @@ -174,31 +174,40 @@ KTextShadowEngine *TaskBar::textShadowEngine() return m_textShadowEngine; } - -TQSize TaskBar::sizeHint() const +int TaskBar::buttonHeight() const { - // get our minimum height based on the minimum button height or the - // height of the font in use, which is largest TQFontMetrics fm(TDEGlobalSettings::taskbarFont()); - int minButtonHeight = fm.height() > READ_MERGED_TASBKAR_SETTING(minimumButtonHeight) ? - fm.height() : READ_MERGED_TASBKAR_SETTING(minimumButtonHeight); + int bh = TQMAX(fm.height(), READ_MERGED_TASKBAR_SETTING(minimumButtonHeight)); + + if(showIcons()) + { + bh = TQMAX(bh, READ_MERGED_TASKBAR_SETTING(iconSize)); + } + + return bh + 2; +} + +int TaskBar::buttonWidth() const +{ + return TQMAX(BUTTON_MIN_WIDTH, READ_MERGED_TASKBAR_SETTING(iconSize)) + 2; +} - return TQSize(BUTTON_MIN_WIDTH, minButtonHeight); + +TQSize TaskBar::sizeHint() const +{ + return TQSize(buttonWidth(), buttonHeight()); } TQSize TaskBar::sizeHint( KPanelExtension::Position p, TQSize maxSize) const { - // get our minimum height based on the minimum button height or the - // height of the font in use, which is largest - TQFontMetrics fm(TDEGlobalSettings::taskbarFont()); - int minButtonHeight = fm.height() > READ_MERGED_TASBKAR_SETTING(minimumButtonHeight) ? - fm.height() : READ_MERGED_TASBKAR_SETTING(minimumButtonHeight); + // get our minimum height based on the minimum button height, the icon size or the + // height of the font in use, whichever is largest if ( p == KPanelExtension::Left || p == KPanelExtension::Right ) { // Vertical layout // Minimum space allows for one icon, the window list button and the up/down scrollers - int minHeight = minButtonHeight*3; + int minHeight = buttonHeight()*3; if (minHeight > maxSize.height()) return maxSize; return TQSize(maxSize.width(), minHeight); @@ -207,7 +216,7 @@ TQSize TaskBar::sizeHint( KPanelExtension::Position p, TQSize maxSize) const { // Horizontal layout // Minimum space allows for one column of icons, the window list button and the left/right scrollers - int min_width=BUTTON_MIN_WIDTH*3; + int min_width=buttonWidth()*3; if (min_width > maxSize.width()) return maxSize; return TQSize(min_width, maxSize.height()); @@ -233,16 +242,18 @@ void TaskBar::configure() bool wasDisplayIconsNText = m_displayIconsNText; bool wasShowOnlyIconified = m_showOnlyIconified; int wasShowTaskStates = m_showTaskStates; + int wasIconSize = m_iconSize; - m_showAllWindows = READ_MERGED_TASBKAR_SETTING(showAllWindows); - m_sortByDesktop = m_showAllWindows && READ_MERGED_TASBKAR_SETTING(sortByDesktop); - m_displayIconsNText = READ_MERGED_TASBKAR_SETTING(displayIconsNText); - m_showOnlyIconified = READ_MERGED_TASBKAR_SETTING(showOnlyIconified); - m_cycleWheel = READ_MERGED_TASBKAR_SETTING(cycleWheel); - m_showTaskStates = READ_MERGED_TASBKAR_SETTING(showTaskStates); + m_showAllWindows = READ_MERGED_TASKBAR_SETTING(showAllWindows); + m_sortByDesktop = m_showAllWindows && READ_MERGED_TASKBAR_SETTING(sortByDesktop); + m_displayIconsNText = READ_MERGED_TASKBAR_SETTING(displayIconsNText); + m_showOnlyIconified = READ_MERGED_TASKBAR_SETTING(showOnlyIconified); + m_cycleWheel = READ_MERGED_TASKBAR_SETTING(cycleWheel); + m_showTaskStates = READ_MERGED_TASKBAR_SETTING(showTaskStates); + m_iconSize = READ_MERGED_TASKBAR_SETTING(iconSize); m_currentScreen = -1; // Show all screens or re-get our screen - m_showOnlyCurrentScreen = (READ_MERGED_TASBKAR_SETTING(showCurrentScreenOnly) && + m_showOnlyCurrentScreen = (READ_MERGED_TASKBAR_SETTING(showCurrentScreenOnly) && TQApplication::desktop()->isVirtualDesktop() && TQApplication::desktop()->numScreens() > 1); @@ -250,12 +261,12 @@ void TaskBar::configure() // are paying attention to the current Xinerama screen // disconnect first in case we've been here before // to avoid multiple connections - disconnect(TaskManager::the(), TQT_SIGNAL(windowChangedGeometry(Task::Ptr)), - this, TQT_SLOT(windowChangedGeometry(Task::Ptr))); + disconnect(TaskManager::the(), TQ_SIGNAL(windowChangedGeometry(Task::Ptr)), + this, TQ_SLOT(windowChangedGeometry(Task::Ptr))); if (m_showOnlyCurrentScreen) { - connect(TaskManager::the(), TQT_SIGNAL(windowChangedGeometry(Task::Ptr)), - this, TQT_SLOT(windowChangedGeometry(Task::Ptr))); + connect(TaskManager::the(), TQ_SIGNAL(windowChangedGeometry(Task::Ptr)), + this, TQ_SLOT(windowChangedGeometry(Task::Ptr))); } TaskManager::the()->trackGeometry(m_showOnlyCurrentScreen); @@ -264,7 +275,8 @@ void TaskBar::configure() wasDisplayIconsNText != m_displayIconsNText || wasCycleWheel != m_cycleWheel || wasShowOnlyIconified != m_showOnlyIconified || - wasShowTaskStates != m_showTaskStates) + wasShowTaskStates != m_showTaskStates || + wasIconSize != m_iconSize) { // relevant settings changed, update our task containers for (TaskContainer::Iterator it = containers.begin(); @@ -275,12 +287,12 @@ void TaskBar::configure() } } - if (m_sortByAppPrev != READ_MERGED_TASBKAR_SETTING(sortByApp)) { - m_sortByAppPrev = READ_MERGED_TASBKAR_SETTING(sortByApp); + if (m_sortByAppPrev != READ_MERGED_TASKBAR_SETTING(sortByApp)) { + m_sortByAppPrev = READ_MERGED_TASKBAR_SETTING(sortByApp); reSort(); } - TaskManager::the()->setXCompositeEnabled(READ_MERGED_TASBKAR_SETTING(showThumbnails)); + TaskManager::the()->setXCompositeEnabled(READ_MERGED_TASKBAR_SETTING(showThumbnails)); reLayoutEventually(); } @@ -374,7 +386,7 @@ void TaskBar::add(Startup::Ptr startup) // create new container TaskContainer *container = new TaskContainer(startup, frames, this, m_settingsObject, m_globalSettingsObject, viewport()); m_hiddenContainers.append(container); - connect(container, TQT_SIGNAL(showMe(TaskContainer*)), this, TQT_SLOT(showTaskContainer(TaskContainer*))); + connect(container, TQ_SIGNAL(showMe(TaskContainer*)), this, TQ_SLOT(showTaskContainer(TaskContainer*))); } void TaskBar::reSort() @@ -409,7 +421,7 @@ void TaskBar::showTaskContainer(TaskContainer* container) } // try to place the container after one of the same app - if (READ_MERGED_TASBKAR_SETTING(sortByApp)) + if (READ_MERGED_TASKBAR_SETTING(sortByApp)) { TaskContainer::Iterator it = containers.begin(); for (; it != containers.end(); ++it) @@ -731,14 +743,12 @@ void TaskBar::reLayout() // number of rows simply depends on our height which is either the // minimum button height or the height of the font in use, whichever is // largest - TQFontMetrics fm(TDEGlobalSettings::taskbarFont()); - int minButtonHeight = fm.height() > READ_MERGED_TASBKAR_SETTING(minimumButtonHeight) ? - fm.height() : READ_MERGED_TASBKAR_SETTING(minimumButtonHeight); + int minButtonHeight = buttonHeight(); // horizontal layout - if (orientation() == Qt::Horizontal) + if (orientation() == TQt::Horizontal) { - int bwidth=BUTTON_MIN_WIDTH; + int bwidth=buttonWidth(); int rows = contentsRect().height() / minButtonHeight; if (rows<1) rows=1; @@ -752,20 +762,20 @@ void TaskBar::reLayout() int bpr = static_cast<int>(ceil(static_cast<double>(list.count()) / rows)); // adjust content size - if ( contentsRect().width() < bpr * BUTTON_MIN_WIDTH ) + if ( contentsRect().width() < bpr * bwidth ) { - resizeContents( bpr * BUTTON_MIN_WIDTH, contentsRect().height() ); + resizeContents( bpr * bwidth, contentsRect().height() ); } // maximum number of buttons per row - int mbpr = contentsRect().width() / BUTTON_MIN_WIDTH; + int mbpr = contentsRect().width() / bwidth; // expand button width if space permits and the taskbar is not in 'icons only' mode if (mbpr > bpr) { if (!showIcons() || showText()) bwidth = contentsRect().width() / bpr; - int maxWidth = READ_MERGED_TASBKAR_SETTING(maximumButtonWidth); + int maxWidth = READ_MERGED_TASKBAR_SETTING(maximumButtonWidth); if (maxWidth > 0 && bwidth > maxWidth) { bwidth = maxWidth; @@ -844,7 +854,7 @@ void TaskBar::reLayout() } } - TQTimer::singleShot(100, this, TQT_SLOT(publishIconGeometry())); + TQTimer::singleShot(100, this, TQ_SLOT(publishIconGeometry())); } void TaskBar::setViewportBackground() @@ -987,9 +997,7 @@ int TaskBar::taskCount() const int TaskBar::maximumButtonsWithoutShrinking() const { - TQFontMetrics fm(TDEGlobalSettings::taskbarFont()); - int minButtonHeight = fm.height() > READ_MERGED_TASBKAR_SETTING(minimumButtonHeight) ? - fm.height() : READ_MERGED_TASBKAR_SETTING(minimumButtonHeight); + int minButtonHeight = buttonHeight(); int rows = contentsRect().height() / minButtonHeight; if (rows < 1) @@ -997,9 +1005,9 @@ int TaskBar::maximumButtonsWithoutShrinking() const rows = 1; } - if ( orientation() == Qt::Horizontal ) { + if ( orientation() == TQt::Horizontal ) { // maxWidth of 0 means no max width, drop back to default - int maxWidth = READ_MERGED_TASBKAR_SETTING(maximumButtonWidth); + int maxWidth = READ_MERGED_TASKBAR_SETTING(maximumButtonWidth); if (maxWidth == 0) { maxWidth = BUTTON_MAX_WIDTH; @@ -1017,8 +1025,8 @@ int TaskBar::maximumButtonsWithoutShrinking() const bool TaskBar::shouldGroup() const { - return READ_MERGED_TASBKAR_SETTING(groupTasks) == m_settingsObject->GroupAlways || - ((READ_MERGED_TASBKAR_SETTING(groupTasks) == m_settingsObject->GroupWhenFull && + return READ_MERGED_TASKBAR_SETTING(groupTasks) == m_settingsObject->GroupAlways || + ((READ_MERGED_TASKBAR_SETTING(groupTasks) == m_settingsObject->GroupWhenFull && taskCount() > maximumButtonsWithoutShrinking())); } @@ -1166,7 +1174,7 @@ void TaskBar::activateNextTask(bool forward) void TaskBar::wheelEvent(TQWheelEvent* e) { - if(READ_MERGED_TASBKAR_SETTING(cycleWheel)) { + if(READ_MERGED_TASKBAR_SETTING(cycleWheel)) { if (e->delta() > 0) { @@ -1246,7 +1254,7 @@ TQImage* TaskBar::blendGradient(const TQSize& size) void TaskBar::sortContainersByDesktop(TaskContainer::List& list) { - typedef TQValueVector<QPair<int, QPair<int, TaskContainer*> > > SortVector; + typedef TQValueVector<TQPair<int, TQPair<int, TaskContainer*> > > SortVector; SortVector sorted; sorted.resize(list.count()); int i = 0; |