diff options
author | Titta Heikkala <titta.heikkala@digia.com> | 2014-04-01 12:40:41 +0300 |
---|---|---|
committer | Titta Heikkala <titta.heikkala@digia.com> | 2014-04-01 12:50:13 +0300 |
commit | e4b34f179cba63380ed9503ac80ea588c9b74832 (patch) | |
tree | a3fd87d5c46bd6ad06200889b16d7cf87c97f4e0 /src | |
parent | fc7673506633fcac1b8b00cc394180e5b851d1b7 (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.cpp | 1 | ||||
-rw-r--r-- | src/piechart/qpieseries.cpp | 8 |
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() |