summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTitta Heikkala <titta.heikkala@digia.com>2014-04-01 12:40:41 +0300
committerTitta Heikkala <titta.heikkala@digia.com>2014-04-01 12:50:13 +0300
commite4b34f179cba63380ed9503ac80ea588c9b74832 (patch)
treea3fd87d5c46bd6ad06200889b16d7cf87c97f4e0 /src
parentfc7673506633fcac1b8b00cc394180e5b851d1b7 (diff)
Fix mouse event handling for pie
When changing model for PieSeries, there can be situtations where the slice no longer exists. Therefore we need to check if the slices exist when hover event comes. Also we don't need to propagate the mousePressEvent for PieSliceItem to parent because it's already handled. Task-number: QTRD-2949 Change-Id: I7787b381834ec8932ef154fab47aefe651b9dfe5 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/piechart/piesliceitem.cpp1
-rw-r--r--src/piechart/qpieseries.cpp8
2 files changed, 5 insertions, 4 deletions
diff --git a/src/piechart/piesliceitem.cpp b/src/piechart/piesliceitem.cpp
index db19d80c..63611f06 100644
--- a/src/piechart/piesliceitem.cpp
+++ b/src/piechart/piesliceitem.cpp
@@ -109,7 +109,6 @@ void PieSliceItem::hoverLeaveEvent(QGraphicsSceneHoverEvent * /*event*/)
void PieSliceItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
emit clicked(event->buttons());
- QGraphicsItem::mousePressEvent(event);
}
void PieSliceItem::setLayout(const PieSliceData &sliceData)
diff --git a/src/piechart/qpieseries.cpp b/src/piechart/qpieseries.cpp
index 4648747c..0de443ae 100644
--- a/src/piechart/qpieseries.cpp
+++ b/src/piechart/qpieseries.cpp
@@ -844,9 +844,11 @@ void QPieSeriesPrivate::sliceClicked()
void QPieSeriesPrivate::sliceHovered(bool state)
{
QPieSlice *slice = qobject_cast<QPieSlice *>(sender());
- Q_ASSERT(m_slices.contains(slice));
- Q_Q(QPieSeries);
- emit q->hovered(slice, state);
+ if (!m_slices.isEmpty()) {
+ Q_ASSERT(m_slices.contains(slice));
+ Q_Q(QPieSeries);
+ emit q->hovered(slice, state);
+ }
}
void QPieSeriesPrivate::initializeDomain()