Fixe movement of DiveHandlers when moving the NotificationArea

The QGraphicsView system moves every selected item when the user
clicks and drags one. This patch makes a cache of all selected
items and removes the selection on them. When the user stops dragging
the Notification, the selection is restored.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Tomaz Canabrava 2014-05-23 21:06:30 -03:00 committed by Dirk Hohndel
parent ea4d4ac020
commit 963178d3d4
2 changed files with 14 additions and 0 deletions

View file

@ -1,5 +1,6 @@
#include "divetooltipitem.h"
#include "divecartesianaxis.h"
#include "profilewidget2.h"
#include "profile.h"
#include "dive.h"
#include "membuffer.h"
@ -180,6 +181,9 @@ void ToolTipItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
persistPos();
QGraphicsPathItem::mouseReleaseEvent(event);
Q_FOREACH (QGraphicsItem *item, oldSelection) {
item->setSelected(true);
}
}
void ToolTipItem::persistPos()
@ -231,3 +235,10 @@ void ToolTipItem::refresh(const QPointF &pos)
addToolTip(item->toolTip());
}
}
void ToolTipItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
oldSelection = scene()->selectedItems();
scene()->clearSelection();
QGraphicsItem::mousePressEvent(event);
}