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

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/netbook/containments/sal
From:       Marco Martin <notmart () gmail ! com>
Date:       2010-03-12 18:23:14
Message-ID: 1268418194.937890.27044.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1102512 by mart:

icons have corner actions again (still not working)


 M  +28 -0     itemcontainer.cpp  
 M  +2 -0      itemcontainer.h  


--- trunk/KDE/kdebase/workspace/plasma/netbook/containments/sal/itemcontainer.cpp \
#1102511:1102512 @@ -21,6 +21,7 @@
 #include "itemview.h"
 #include "resultwidget.h"
 #include "models/commonmodel.h"
+#include "iconactioncollection.h"
 
 #include <QGraphicsGridLayout>
 #include <QGraphicsScene>
@@ -31,9 +32,12 @@
 #include <QWeakPointer>
 #include <QAbstractItemModel>
 #include <QPropertyAnimation>
+#include <QAction>
 
 #include <KIconLoader>
+#include <KIcon>
 
+#include <Plasma/Applet>
 #include <Plasma/IconWidget>
 #include <Plasma/ItemBackground>
 #include <Plasma/ToolTipContent>
@@ -58,6 +62,18 @@
     m_positionAnimation->setDuration(250);
     m_layout = new QGraphicsGridLayout(this);
 
+    QGraphicsItem *pi = parent->parentItem();
+    Plasma::Applet *applet = 0;
+    while (pi) {
+        applet = dynamic_cast<Plasma::Applet *>(pi);
+        if (applet) {
+            break;
+        } else {
+            pi = pi->parentItem();
+        }
+    }
+    m_iconActionCollection = new IconActionCollection(applet, this);
+
     setFocusPolicy(Qt::StrongFocus);
     setAcceptHoverEvents(true);
     m_hoverIndicator = new Plasma::ItemBackground(this);
@@ -611,6 +627,18 @@
             Plasma::ToolTipManager::self()->registerWidget(this);
             Plasma::ToolTipManager::self()->setContent(icon, toolTipData);
 
+            CommonModel::ActionType actionType = \
(CommonModel::ActionType)index.data(CommonModel::ActionTypeRole).value<int>(); +      \
if (actionType != CommonModel::NoAction) { +                QAction *action = new \
QAction(icon); +                if (actionType == CommonModel::AddAction) {
+                    action->setIcon(KIcon("favorites"));
+                } else {
+                    action->setIcon(KIcon("list-remove"));
+                }
+                icon->addIconAction(action);
+                m_iconActionCollection->addAction(action);
+            }
+
             qreal left, top, right, bottom;
             m_hoverIndicator->getContentsMargins(&left, &top, &right, &bottom);
             icon->setContentsMargins(left, top, right, bottom);
--- trunk/KDE/kdebase/workspace/plasma/netbook/containments/sal/itemcontainer.h \
#1102511:1102512 @@ -39,6 +39,7 @@
 }
 
 class ItemView;
+class IconActionCollection;
 
 class ItemContainer : public QGraphicsWidget
 {
@@ -129,6 +130,7 @@
     QAbstractItemModel *m_model;
     QModelIndex m_rootIndex;
     ItemView *m_itemView;
+    IconActionCollection *m_iconActionCollection;
 };
 
 #endif


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

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