[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/base/blazer
From: Ian Reinhart Geiser <geiseri () kde ! org>
Date: 2009-02-24 13:23:39
Message-ID: 1235481819.823575.5621.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 930867 by geiseri:
Fixed black style to look better.
Still playing with taskbar layout.
Added window context menus to task bar.
Started adding support for window groups on the taskbar.
M +4 -0 black.css
M +31 -16 taskitembutton.cpp
M +4 -3 taskitembutton.h
M +23 -43 taskmanagerwidget.cpp
M +13 -8 taskmanagerwidget.h
M +1 -3 topbar.cpp
--- trunk/playground/base/blazer/black.css #930866:930867
@@ -15,6 +15,10 @@
color: white;
}
+#QuickLauncher QLabel {
+ color: white;
+}
+
#TopPanel {
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 black, \
stop: 1 gray); color: white;
--- trunk/playground/base/blazer/taskitembutton.cpp #930866:930867
@@ -22,8 +22,11 @@
#include <KDE/KGlobalSettings>
#include <KDE/KIconLoader>
-//#include <taskmanager/taskrmbmenu.h>
+#include <taskmanager/taskactions.h>
+#include <taskmanager/taskitem.h>
+#include <taskmanager/taskgroup.h>
+
#include <QHBoxLayout>
#include <QMouseEvent>
#include <QApplication>
@@ -33,18 +36,19 @@
#include <QFontMetrics>
#include <QStylePainter>
#include <QStyleOptionButton>
+#include <QMenu>
#include <kdebug.h>
-TaskItemButton::TaskItemButton( TaskManager::TaskPtr ptr, QWidget *parent )
- : KPushButton( parent ), m_ptr(ptr)
+TaskItemButton::TaskItemButton( TaskManager::AbstractItemPtr ptr, \
TaskManager::GroupManager *mgr, QWidget *parent ) + : KPushButton( parent ), \
m_ptr(ptr), m_mgr(mgr) {
setStyleSheet("text-align:left;");
setSizePolicy(QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ));
- connect( ptr.data(), SIGNAL(changed(::TaskManager::TaskChanges)), this, \
SLOT(updateTask()));
- connect( ptr.data(), SIGNAL(activated()), this, SLOT(updateTask()));
- connect( ptr.data(), SIGNAL(deactivated()), this, SLOT(updateTask()));
+ connect( ptr, SIGNAL(changed(::TaskManager::TaskChanges)), this, \
SLOT(updateTask())); + connect( ptr, SIGNAL(activated()), this, \
SLOT(updateTask())); + connect( ptr, SIGNAL(deactivated()), this, \
SLOT(updateTask()));
setFont( KGlobalSettings::taskbarFont() );
@@ -62,18 +66,33 @@
{
if( event->button() == Qt::RightButton )
{
- //TaskManager::TaskRMBMenu menu(m_ptr, true, this);
- //menu.exec();
+
+ TaskManager::BasicMenu *menu = 0;
+ if( !m_ptr->isGroupItem() )
+ menu = new TaskManager::BasicMenu(this, \
qobject_cast<TaskManager::TaskItem *>(m_ptr), m_mgr ); + else
+ menu = new TaskManager::BasicMenu(this, \
qobject_cast<TaskManager::TaskGroup *>(m_ptr), m_mgr ); + menu->exec( \
mapToGlobal(event->pos())); + delete menu;
+
}
else if( event->button() == Qt::LeftButton )
{
if( m_ptr->isActive() )
{
- m_ptr->setIconified (true);
+ if( !m_ptr->isGroupItem() )
+ {
+ TaskManager::TaskItem *item = qobject_cast<TaskManager::TaskItem \
*>(m_ptr); + item->task()->setIconified (true);
+ }
}
else
{
- m_ptr->activateRaiseOrIconify();
+ if( !m_ptr->isGroupItem() )
+ {
+ TaskManager::TaskItem *item = qobject_cast<TaskManager::TaskItem \
*>(m_ptr); + item->task()->activateRaiseOrIconify();
+ }
setActive( m_ptr->isActive() );
}
}
@@ -103,9 +122,9 @@
kDebug() << "Update text" << m_ptr->name();
bool gotStaticIcon = false;
QFontMetrics fm( font() );
- QPixmap icn = m_ptr->bestIcon(KIconLoader::SizeSmall, gotStaticIcon);
+ QIcon icn = m_ptr->icon();
setIcon( icn );
- setText( squeezeTextToButton(m_ptr->name(), icn.width() ) );
+ setText( squeezeTextToButton(m_ptr->name(), height() ) );
setActive( m_ptr->isActive() );
@@ -113,10 +132,6 @@
{
kDebug() << m_ptr->name() << "demands attention";
}
- else if( m_ptr->isIconified() )
- {
- kDebug() << m_ptr->name() << "iconified";
- }
update();
}
--- trunk/playground/base/blazer/taskitembutton.h #930866:930867
@@ -26,13 +26,13 @@
#include <KDE/KPushButton>
-#include <taskmanager/taskmanager.h>
+#include <taskmanager/groupmanager.h>
class TaskItemButton : public KPushButton
{
Q_OBJECT
public:
- TaskItemButton(TaskManager::TaskPtr ptr, QWidget *parent);
+ TaskItemButton(TaskManager::AbstractItemPtr ptr, TaskManager::GroupManager *mgr, \
QWidget *parent);
void setActive( bool act );
QSize sizeHint() const;
@@ -46,7 +46,8 @@
virtual void resizeEvent( QResizeEvent *event );
private:
QString squeezeTextToButton( const QString &text, int iconSz );
- TaskManager::TaskPtr m_ptr;
+ TaskManager::AbstractItemPtr m_ptr;
+ TaskManager::GroupManager *m_mgr;
};
#endif // TASKITEMBUTTON_H
--- trunk/playground/base/blazer/taskmanagerwidget.cpp #930866:930867
@@ -27,6 +27,7 @@
#include <KDE/KServiceGroup>
#include <KDE/KIcon>
#include <KDE/KWindowInfo>
+#include <taskmanager/taskgroup.h>
#include <QHBoxLayout>
#include <QLabel>
@@ -40,73 +41,52 @@
m_buttonGroup = new QButtonGroup(this);
m_buttonGroup->setExclusive(true);
+ m_manager = new TaskManager::GroupManager(this);
+
TaskManager::TaskManager* mgr = TaskManager::TaskManager::self();
connect( mgr, SIGNAL(startupAdded(StartupPtr)),
- this, SLOT(onStartupAdded(StartupPtr)));
+ m_manager, SLOT(add(StartupPtr)));
connect( mgr, SIGNAL(startupRemoved(StartupPtr)),
- this, SLOT(onStartupRemoved(StartupPtr)));
+ m_manager, SLOT(remove(StartupPtr)));
connect( mgr, SIGNAL(taskAdded(TaskPtr)),
- this, SLOT(onTaskAdded(TaskPtr)));
+ m_manager, SLOT(add(TaskPtr)));
connect( mgr, SIGNAL(taskRemoved(TaskPtr)),
- this, SLOT(onTaskRemoved(TaskPtr)));
+ m_manager, SLOT(remove(TaskPtr)));
+ connect( m_manager->rootGroup(), SIGNAL(itemAdded(const AbstractItemPtr)),
+ this, SLOT(onItemAdded(AbstractItemPtr)));
+ connect( m_manager->rootGroup(), SIGNAL(itemRemoved(const AbstractItemPtr)),
+ this, SLOT(onItemRemoved(AbstractItemPtr)));
+
m_taskLayout = new QHBoxLayout(this);
m_taskLayout->setMargin(0);
m_taskLayout->setSpacing(0);
-
-
- TaskManager::TaskDict tasks = mgr->tasks();
- foreach( TaskPtr task, tasks )
- {
- if( task->showInTaskbar() )
- {
- TaskItemButton *taskCell = new TaskItemButton(task, this);
- m_tasks[ task ] = taskCell;
- m_taskLayout->addWidget( taskCell , 1 );
- }
- }
-
}
QSize TaskManagerWidget::minimumSizeHint () const
{
QSize sz = QFrame::minimumSizeHint();
+
int goodWidth = 0;
- foreach( TaskItemButton *cell, m_tasks )
+ foreach( TaskItemButton *cell, m_buttons )
{
goodWidth = qMax( goodWidth, cell->minimumSizeHint().width() );
}
- sz.setWidth( goodWidth * m_tasks.count() );
+ sz.setWidth( goodWidth * m_buttons.count() );
+
return sz;
}
-void TaskManagerWidget::onStartupAdded (TaskManager::StartupPtr ptr)
+void TaskManagerWidget::onItemAdded (AbstractItemPtr item)
{
- kDebug() << "app starting";
+ m_buttons[item] = new TaskItemButton(item, m_manager, this);
+ m_buttonGroup->addButton(m_buttons[item]);
+ m_taskLayout->addWidget(m_buttons[item]);
}
-void TaskManagerWidget::onStartupRemoved (TaskManager::StartupPtr ptr)
+void TaskManagerWidget::onItemRemoved (AbstractItemPtr item)
{
- kDebug() << "app done starting";
-}
+ delete m_buttons[item];
+ m_buttons.remove(item);
-void TaskManagerWidget::onTaskAdded (TaskManager::TaskPtr ptr)
-{
- if( ptr->showInTaskbar() )
- {
- TaskItemButton *taskCell = new TaskItemButton(ptr, this);
- m_tasks[ ptr ] = taskCell;
- m_taskLayout->addWidget( taskCell , 1 );
- m_buttonGroup->addButton( taskCell );
- }
}
-
-void TaskManagerWidget::onTaskRemoved (TaskManager::TaskPtr ptr)
-{
- if( m_tasks.contains( ptr ) )
- {
- m_buttonGroup->removeButton( m_tasks[ ptr ] );
- delete m_tasks[ ptr ];
- m_tasks.remove( ptr );
- }
-}
--- trunk/playground/base/blazer/taskmanagerwidget.h #930866:930867
@@ -24,11 +24,15 @@
#include <QFrame>
#include <QMap>
-#include <taskmanager/taskmanager.h>
+#include <taskmanager/groupmanager.h>
class QHBoxLayout;
class TaskItemButton;
class QButtonGroup;
+namespace TaskManager
+{
+ class GroupManager;
+}
class TaskManagerWidget : public QFrame
{
@@ -36,21 +40,22 @@
public:
TaskManagerWidget( QWidget *parent = 0);
virtual QSize minimumSizeHint () const;
+
private:
+ typedef TaskManager::AbstractItemPtr AbstractItemPtr;
+ typedef TaskManager::TaskPtr TaskPtr;
typedef TaskManager::StartupPtr StartupPtr;
- typedef TaskManager::TaskPtr TaskPtr;
+
private slots:
- void onStartupAdded (StartupPtr);
- void onStartupRemoved (StartupPtr);
- void onTaskAdded (TaskPtr);
- void onTaskRemoved (TaskPtr);
+ void onItemAdded (AbstractItemPtr);
+ void onItemRemoved (AbstractItemPtr);
private:
- QMap<TaskPtr,TaskItemButton *> m_tasks;
- QMap<StartupPtr,TaskItemButton *> m_startingTasks;
QHBoxLayout *m_taskLayout;
QButtonGroup *m_buttonGroup;
+ TaskManager::GroupManager *m_manager;
+ QMap<AbstractItemPtr,TaskItemButton*> m_buttons;
};
#endif // TASKMANAGERWIDGET_H
--- trunk/playground/base/blazer/topbar.cpp #930866:930867
@@ -86,14 +86,12 @@
setObjectName("BottomPanel");
m_tasks = new TaskManagerWidget(this);
m_desktopButton = new DesktopButton(this);
- QWidget *spacer = new QWidget(this);
m_pager = new Pager(this);
QHBoxLayout *layout = new QHBoxLayout(this);
layout->addWidget(m_desktopButton);
- layout->addWidget(m_tasks);
- layout->addWidget(spacer, 1);
+ layout->addWidget(m_tasks, 1);
layout->addWidget(m_pager);
layout->setSpacing(0);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic