summaryrefslogtreecommitdiffstats
path: root/src/charts/splinechart/splinechartitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/charts/splinechart/splinechartitem.cpp')
-rw-r--r--src/charts/splinechart/splinechartitem.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/charts/splinechart/splinechartitem.cpp b/src/charts/splinechart/splinechartitem.cpp
index 1365b2a8..2aa9e220 100644
--- a/src/charts/splinechart/splinechartitem.cpp
+++ b/src/charts/splinechart/splinechartitem.cpp
@@ -36,9 +36,11 @@ SplineChartItem::SplineChartItem(QSplineSeries *series, QGraphicsItem *item)
m_pointLabelsVisible(false),
m_pointLabelsFormat(series->pointLabelsFormat()),
m_pointLabelsFont(series->pointLabelsFont()),
- m_pointLabelsColor(series->pointLabelsColor())
+ m_pointLabelsColor(series->pointLabelsColor()),
+ m_mousePressed(false)
{
setAcceptHoverEvents(true);
+ setFlag(QGraphicsItem::ItemIsSelectable);
setZValue(ChartPresenter::SplineChartZValue);
QObject::connect(m_series->d_func(), SIGNAL(updated()), this, SLOT(handleUpdated()));
QObject::connect(series, SIGNAL(visibleChanged()), this, SLOT(handleUpdated()));
@@ -464,7 +466,9 @@ void SplineChartItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *o
void SplineChartItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
- emit XYChart::clicked(domain()->calculateDomainPoint(event->pos()));
+ emit XYChart::pressed(domain()->calculateDomainPoint(event->pos()));
+ m_lastMousePos = event->pos();
+ m_mousePressed = true;
QGraphicsItem::mousePressEvent(event);
}
@@ -480,6 +484,21 @@ void SplineChartItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
QGraphicsItem::hoverLeaveEvent(event);
}
+void SplineChartItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
+{
+ emit XYChart::released(domain()->calculateDomainPoint(event->pos()));
+ if (m_lastMousePos == event->pos() && m_mousePressed)
+ emit XYChart::clicked(domain()->calculateDomainPoint(event->pos()));
+ m_mousePressed = false;
+ QGraphicsItem::mouseReleaseEvent(event);
+}
+
+void SplineChartItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
+{
+ emit XYChart::doubleClicked(domain()->calculateDomainPoint(event->pos()));
+ QGraphicsItem::mouseDoubleClickEvent(event);
+}
+
#include "moc_splinechartitem_p.cpp"
QT_CHARTS_END_NAMESPACE