[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