[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/applets/tasks
From:       Aaron J. Seigo <aseigo () kde ! org>
Date:       2009-06-26 6:41:02
Message-ID: 1245998462.673630.6080.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 987463 by aseigo:

make the tooltips clickable .. this means you can hover the tip, click on a window \
preview and it activates that window. too cool.


 M  +21 -0     abstracttaskitem.cpp  
 M  +1 -0      abstracttaskitem.h  
 M  +1 -1      taskgroupitem.cpp  
 M  +1 -1      taskgroupitem.h  
 M  +1 -0      windowtaskitem.cpp  


--- trunk/KDE/kdebase/workspace/plasma/applets/tasks/abstracttaskitem.cpp \
#987462:987463 @@ -1,3 +1,5 @@
+#ifndef ABSTRACTTASKITEM_CPP
+#define ABSTRACTTASKITEM_CPP
 /***************************************************************************
  *   Copyright (C) 2007 by Robert Knight <robertknight@gmail.com>          *
  *   Copyright (C) 2008 by Alexis Ménard <darktears31@gmail.com>           *
@@ -248,6 +250,9 @@
     if (m_showTooltip) {
         m_showingTooltip = true;
         updateToolTip();
+        connect(Plasma::ToolTipManager::self(),
+                SIGNAL(windowPreviewActivated(WId,Qt::MouseButtons,Qt::KeyboardModifiers,QPoint)),
 +                this, SLOT(activateWindow(WId,Qt::MouseButtons)));
     } else {
         Plasma::ToolTipManager::self()->clearContent(this);
     }
@@ -257,8 +262,23 @@
 {
     m_showingTooltip = false;
     Plasma::ToolTipManager::self()->clearContent(this);
+    disconnect(Plasma::ToolTipManager::self(),
+               SIGNAL(windowPreviewActivated(WId,Qt::MouseButtons,Qt::KeyboardModifiers,QPoint)),
 +               this, SLOT(activateWindow(WId,Qt::MouseButtons)));
 }
 
+void AbstractTaskItem::activateWindow(WId id, Qt::MouseButtons buttons)
+{
+    if (buttons & Qt::LeftButton) {
+        if (parentGroup()) {
+            AbstractTaskItem *item = parentGroup()->taskItemForWId(id);
+            if (item) {
+                item->activate();
+            }
+        }
+    }
+}
+
 void AbstractTaskItem::queueUpdate()
 {
     if (m_updateTimerId || m_attentionTimerId) {
@@ -1002,3 +1022,4 @@
 }
 
 #include "abstracttaskitem.moc"
+#endif // ABSTRACTTASKITEM_CPP
--- trunk/KDE/kdebase/workspace/plasma/applets/tasks/abstracttaskitem.h \
#987462:987463 @@ -138,6 +138,7 @@
     virtual void activate() = 0;
     void toolTipAboutToShow();
     void toolTipHidden();
+    void activateWindow(WId id, Qt::MouseButtons buttons);
 
 protected:
     void dragEnterEvent(QGraphicsSceneDragDropEvent *event);
--- trunk/KDE/kdebase/workspace/plasma/applets/tasks/taskgroupitem.cpp #987462:987463
@@ -273,8 +273,8 @@
     }
 
     data.setWindowsToPreview(windows);
+    data.setClickable(true);
 
-
     Plasma::ToolTipManager::self()->setContent(this, data);
 }
 
--- trunk/KDE/kdebase/workspace/plasma/applets/tasks/taskgroupitem.h #987462:987463
@@ -111,6 +111,7 @@
     void publishIconGeometry() const;
     void publishIconGeometry(const QRect &rect) const;
     QWidget *popupDialog() const;
+    AbstractTaskItem *taskItemForWId(WId id);
 
 signals:
     /** Emitted when a window is selected for activation, minimization, \
iconification */ @@ -133,7 +134,6 @@
     void updateActive(AbstractTaskItem *);
 
 protected:
-    AbstractTaskItem *taskItemForWId(WId id);
     virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
     virtual void paint(QPainter *painter,const QStyleOptionGraphicsItem \
*option,QWidget *widget);  
--- trunk/KDE/kdebase/workspace/plasma/applets/tasks/windowtaskitem.cpp \
#987462:987463 @@ -197,6 +197,7 @@
                                 i18nc("Which virtual desktop a window is currently \
                on", "On %1",
                                       \
KWindowSystem::desktopName(m_task->desktop())), p);  \
data.setWindowToPreview(m_task->task()->window()); +    data.setClickable(true);
 
     Plasma::ToolTipManager::self()->setContent(this, data);
 }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic