diff options
Diffstat (limited to 'src/charts/linechart/linechartitem.cpp')
-rw-r--r-- | src/charts/linechart/linechartitem.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/charts/linechart/linechartitem.cpp b/src/charts/linechart/linechartitem.cpp index 65582f32..4bf2d3b8 100644 --- a/src/charts/linechart/linechartitem.cpp +++ b/src/charts/linechart/linechartitem.cpp @@ -40,9 +40,11 @@ LineChartItem::LineChartItem(QLineSeries *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::LineChartZValue); QObject::connect(series->d_func(), SIGNAL(updated()), this, SLOT(handleUpdated())); QObject::connect(series, SIGNAL(visibleChanged()), this, SLOT(handleUpdated())); @@ -382,7 +384,9 @@ void LineChartItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *opt void LineChartItem::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); } @@ -400,6 +404,21 @@ void LineChartItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) QGraphicsItem::hoverEnterEvent(event); } +void LineChartItem::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 LineChartItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +{ + emit XYChart::doubleClicked(domain()->calculateDomainPoint(event->pos())); + QGraphicsItem::mouseDoubleClickEvent(event); +} + #include "moc_linechartitem_p.cpp" QT_CHARTS_END_NAMESPACE |