summaryrefslogtreecommitdiffstats
path: root/src/charts/piechart/piesliceitem.cpp
diff options
context:
space:
mode:
authorTitta Heikkala <titta.heikkala@theqtcompany.com>2014-11-12 10:23:01 +0200
committerTitta Heikkala <titta.heikkala@theqtcompany.com>2014-11-12 13:13:16 +0200
commitf78be8da2422a758e0f50d3ca0cced53f44d0f12 (patch)
tree91dae2e5066bf548817c32f06c26df425a58f82f /src/charts/piechart/piesliceitem.cpp
parent6c4e7f2cd60f47ef5935ed9f21d19bb94db5f048 (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.cpp22
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)