[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/4.4/kdelibs/plasma
From: Anne-Marie Mahfouf <annma () kde ! org>
Date: 2010-03-06 14:30:57
Message-ID: 1267885857.818871.24498.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1100005 by annma:
backport Aaron's fixe r1099727 for 229566
CCBUG=229566
M +1 -1 extenders/extender.cpp
M +14 -12 extenders/extenderitem.cpp
M +10 -0 private/extenderitemmimedata.cpp
M +5 -0 private/extenderitemmimedata_p.h
--- branches/KDE/4.4/kdelibs/plasma/extenders/extender.cpp #1100004:1100005
@@ -566,7 +566,7 @@
void ExtenderPrivate::removeExtenderItem(ExtenderItem *item)
{
- attachedExtenderItems.removeOne(item);
+ attachedExtenderItems.removeAll(item);
//collapse the popupapplet if the last item is removed.
if (!q->attachedItems().count()) {
--- branches/KDE/4.4/kdelibs/plasma/extenders/extenderitem.cpp #1100004:1100005
@@ -263,10 +263,11 @@
//and notify the applet of the item being detached, after the config has been moved.
emit d->extender->itemDetached(this);
+ setParentItem(extender);
+ setParent(extender);
d->extender = extender;
//change parent.
- setParentItem(extender);
extender->d->addExtenderItem(this, pos);
//cancel the timer.
@@ -587,7 +588,7 @@
pixmap.fill(Qt::transparent);
QPainter p(&pixmap);
- //the following is necesarry to avoid having an offset when rendering the widget into the
+ //the following is necessary to avoid having an offset when rendering the widget into the
//pixmap.
view.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
@@ -598,9 +599,10 @@
view.setSceneRect(sceneBoundingRect());
view.render(&p, QRectF(QPointF(0, 0), pixmap.size()), QRect(QPoint(0, 0), screenSize));
- //create the necesarry mimedata.
+ //create the necessary mimedata.
ExtenderItemMimeData *mimeData = new ExtenderItemMimeData();
mimeData->setExtenderItem(this);
+ mimeData->setPointerOffset(d->mousePos);
//Hide empty internal extender containers when we drag the last item away. Avoids having
//an ugly empty applet on the desktop temporarily.
@@ -610,10 +612,6 @@
extenderApplet->formFactor() != Plasma::Vertical) {
kDebug() << "leaving the internal extender container, so hide the applet and it's handle.";
extenderApplet->hide();
- AppletHandle *handle = dynamic_cast<AppletHandle*>(extenderApplet->parentItem());
- if (handle) {
- handle->hide();
- }
}
ExtenderGroup *group = qobject_cast<ExtenderGroup*>(this);
@@ -632,17 +630,24 @@
Qt::DropAction action = drag->exec();
corona->removeOffscreenWidget(this);
+ d->dragStarted = false;
if (!action || !drag->target()) {
//we weren't moved, so reinsert the item in our current layout.
+ //TODO: make it into a stand-alone window?
+ d->themeChanged();
d->extender->itemAddedEvent(this, curPos);
+ if (extenderApplet) {
+ extenderApplet->show();
+ }
+
+ d->extender->itemAddedEvent(this, curPos);
}
if (isGroup() && !collapsedGroup) {
group->expandGroup();
}
- d->dragStarted = false;
}
void ExtenderItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
@@ -845,12 +850,9 @@
{
if (dragStarted) {
background->setImagePath("opaque/widgets/extender-background");
+ background->setEnabledBorders(FrameSvg::AllBorders);
} else {
background->setImagePath("widgets/extender-background");
- }
- if (dragStarted) {
- background->setEnabledBorders(FrameSvg::AllBorders);
- } else {
background->setEnabledBorders(extender->enabledBordersForItem(q));
}
background->getMargins(bgLeft, bgTop, bgRight, bgBottom);
--- branches/KDE/4.4/kdelibs/plasma/private/extenderitemmimedata.cpp #1100004:1100005
@@ -51,6 +51,16 @@
m_extenderItem = item;
}
+void ExtenderItemMimeData::setPointerOffset(const QPoint &p)
+{
+ m_offset = p;
+}
+
+QPoint ExtenderItemMimeData::pointerOffset() const
+{
+ return m_offset;
+}
+
ExtenderItem *ExtenderItemMimeData::extenderItem() const
{
return m_extenderItem;
--- branches/KDE/4.4/kdelibs/plasma/private/extenderitemmimedata_p.h #1100004:1100005
@@ -21,6 +21,7 @@
#define EXTENDERITEMMIMEDATA_H
#include <QMimeData>
+#include <QPoint>
namespace Plasma
{
@@ -44,9 +45,13 @@
ExtenderItem *extenderItem() const;
static QString mimeType();
+
+ void setPointerOffset(const QPoint &p);
+ QPoint pointerOffset() const;
private:
ExtenderItem *m_extenderItem;
+ QPoint m_offset;
};
} // namespace Plasma
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic