diff options
author | Titta Heikkala <titta.heikkala@theqtcompany.com> | 2014-11-12 10:23:01 +0200 |
---|---|---|
committer | Titta Heikkala <titta.heikkala@theqtcompany.com> | 2014-11-12 13:13:16 +0200 |
commit | f78be8da2422a758e0f50d3ca0cced53f44d0f12 (patch) | |
tree | 91dae2e5066bf548817c32f06c26df425a58f82f /src/charts/piechart/piesliceitem.cpp | |
parent | 6c4e7f2cd60f47ef5935ed9f21d19bb94db5f048 (diff) |
Add pressed, released and doubleClicked signals
Added pressed, released and doubleClicked signals for all series. The
signals are also added to QPieSlice and QBoxPlotSet.
Change-Id: If94948be439a3b53ed48c02d0092091e836222a4
Task-number: QTRD-2384
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com>
Diffstat (limited to 'src/charts/piechart/piesliceitem.cpp')
-rw-r--r-- | src/charts/piechart/piesliceitem.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/charts/piechart/piesliceitem.cpp b/src/charts/piechart/piesliceitem.cpp index 09c8a578..b42fb078 100644 --- a/src/charts/piechart/piesliceitem.cpp +++ b/src/charts/piechart/piesliceitem.cpp @@ -41,11 +41,13 @@ QPointF offset(qreal angle, qreal length) PieSliceItem::PieSliceItem(QGraphicsItem *parent) : QGraphicsObject(parent), - m_hovered(false) + m_hovered(false), + m_mousePressed(false) { setAcceptHoverEvents(true); setAcceptedMouseButtons(Qt::MouseButtonMask); setZValue(ChartPresenter::PieSeriesZValue); + setFlag(QGraphicsItem::ItemIsSelectable); m_labelItem = new QGraphicsTextItem(this); m_labelItem->document()->setDocumentMargin(1.0); } @@ -108,7 +110,23 @@ void PieSliceItem::hoverLeaveEvent(QGraphicsSceneHoverEvent * /*event*/) void PieSliceItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { - emit clicked(event->buttons()); + emit pressed(event->buttons()); + m_lastMousePos = event->pos(); + m_mousePressed = true; +} + +void PieSliceItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + emit released(event->buttons()); + if (m_lastMousePos == event->pos() && m_mousePressed) + emit clicked(event->buttons()); +} + +void PieSliceItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +{ + // For Pie slice a press signal needs to be explicitly fired for mouseDoubleClickEvent + emit pressed(event->buttons()); + emit doubleClicked(event->buttons()); } void PieSliceItem::setLayout(const PieSliceData &sliceData) |