##// END OF EJS Templates
Fix mouse event interception by scatter chart....
Fix mouse event interception by scatter chart. The scatter chart itself shouldn't be selectable. The scatter chart occupies the entire plot area of the chart, and therefore blocks mouse events from all items below it. Only the individual scatter markers need to be selectable. Change-Id: I664c16ced24e3fc4c068b850c8c612e2d797ee4b Reviewed-by: Titta Heikkala <titta.heikkala@theqtcompany.com>

File last commit:

r2740:377e4516d036
r2747:31ef05db7ba9
Show More
legendscroller.cpp
72 lines | 1.9 KiB | text/x-c | CppLexer
/ src / charts / legend / legendscroller.cpp
sauimone
Legend can now handle clicked and do scrolling
r2183 /****************************************************************************
**
Titta Heikkala
Update copyright year...
r2688 ** Copyright (C) 2014 Digia Plc
sauimone
Legend can now handle clicked and do scrolling
r2183 ** All rights reserved.
Titta Heikkala
Updated license headers...
r2740 ** For any questions to Digia, please use contact form at http://qt.io
sauimone
Legend can now handle clicked and do scrolling
r2183 **
Titta Heikkala
Updated license headers...
r2740 ** This file is part of the Qt Charts module.
sauimone
Legend can now handle clicked and do scrolling
r2183 **
Titta Heikkala
Updated license headers...
r2740 ** Licensees holding valid commercial license for Qt may use this file in
** accordance with the Qt License Agreement provided with the Software
** or, alternatively, in accordance with the terms contained in a written
** agreement between you and Digia.
sauimone
Legend can now handle clicked and do scrolling
r2183 **
** If you have questions regarding the use of this file, please use
Titta Heikkala
Updated license headers...
r2740 ** contact form at http://qt.io
sauimone
Legend can now handle clicked and do scrolling
r2183 **
****************************************************************************/
Titta Heikkala
Fix include syntax...
r2714 #include <QtCore/QDebug>
#include <QtWidgets/QGraphicsSceneMouseEvent>
#include <QtWidgets/QGraphicsScene>
#include <QtCharts/QLegendMarker>
#include <private/qlegendmarker_p.h>
#include <private/legendmarkeritem_p.h>
#include <private/legendscroller_p.h>
sauimone
Legend can now handle clicked and do scrolling
r2183
Titta Heikkala
Qt Charts project file structure change...
r2712 QT_CHARTS_BEGIN_NAMESPACE
sauimone
Legend can now handle clicked and do scrolling
r2183
sauimone
moving mouse event handling logic to scroller
r2199 LegendScroller::LegendScroller(QChart *chart) : QLegend(chart)
sauimone
Legend can now handle clicked and do scrolling
r2183 {
}
sauimone
better implementation of mouse event handling in legend
r2197 void LegendScroller::setOffset(const QPointF &point)
sauimone
Legend can now handle clicked and do scrolling
r2183 {
sauimone
better implementation of mouse event handling in legend
r2197 d_ptr->setOffset(point);
sauimone
Legend can now handle clicked and do scrolling
r2183 }
sauimone
better implementation of mouse event handling in legend
r2197 QPointF LegendScroller::offset() const
{
return d_ptr->offset();
}
void LegendScroller::mousePressEvent(QGraphicsSceneMouseEvent *event)
sauimone
Legend can now handle clicked and do scrolling
r2183 {
sauimone
moving mouse event handling logic to scroller
r2199 Scroller::handleMousePressEvent(event);
sauimone
Legend can now handle clicked and do scrolling
r2183 }
sauimone
better implementation of mouse event handling in legend
r2197 void LegendScroller::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
sauimone
Legend can now handle clicked and do scrolling
r2183 {
sauimone
moving mouse event handling logic to scroller
r2199 Scroller::handleMouseMoveEvent(event);
sauimone
Legend can now handle clicked and do scrolling
r2183 }
sauimone
better implementation of mouse event handling in legend
r2197 void LegendScroller::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
sauimone
Legend can now handle clicked and do scrolling
r2183 {
sauimone
moving mouse event handling logic to scroller
r2199 Scroller::handleMouseReleaseEvent(event);
sauimone
Legend can now handle clicked and do scrolling
r2183
sauimone
moving mouse event handling logic to scroller
r2199 if (!event->isAccepted()) {
sauimone
better implementation of mouse event handling in legend
r2197 QList<QGraphicsItem *> items = scene()->items(event->scenePos());
foreach (QGraphicsItem *i, items) {
if (d_ptr->m_markerHash.contains(i)) {
QLegendMarker *marker = d_ptr->m_markerHash.value(i);
emit marker->clicked();
}
}
sauimone
moving mouse event handling logic to scroller
r2199 event->accept();
sauimone
Legend can now handle clicked and do scrolling
r2183 }
}
sauimone
better implementation of mouse event handling in legend
r2197
#include "moc_legendscroller_p.cpp"
Titta Heikkala
Qt Charts project file structure change...
r2712 QT_CHARTS_END_NAMESPACE