summaryrefslogtreecommitdiffstats
path: root/src/charts/linechart/linechartitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/charts/linechart/linechartitem.cpp')
-rw-r--r--src/charts/linechart/linechartitem.cpp23
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