##// END OF EJS Templates
Added option to set labels clipping...
Added option to set labels clipping It's now possible to enable and disable the point label clipping. The clipping is enabled by default. Clipping cuts the point labels on the edge of the plot area. Change-Id: Ifaa6017b4c6d55fe030effeec8b336a7fc317adf Task-number: QTRD-3520 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com>

File last commit:

r2815:4c1d3bc34edb
r2815:4c1d3bc34edb
Show More
scatterchartitem_p.h
190 lines | 5.3 KiB | text/x-c | CLexer
Jani Honkonen
Add license headers
r794 /****************************************************************************
**
Titta Heikkala
Copyright header changes...
r2776 ** Copyright (C) 2015 The Qt Company Ltd
Jani Honkonen
Add license headers
r794 ** All rights reserved.
Titta Heikkala
Copyright header changes...
r2776 ** For any questions to The Qt Company, please use contact form at http://qt.io
Jani Honkonen
Add license headers
r794 **
Titta Heikkala
Updated license headers...
r2740 ** This file is part of the Qt Charts module.
Jani Honkonen
Add license headers
r794 **
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
Titta Heikkala
Copyright header changes...
r2776 ** agreement between you and The Qt Company.
Jani Honkonen
Add license headers
r794 **
** If you have questions regarding the use of this file, please use
Titta Heikkala
Updated license headers...
r2740 ** contact form at http://qt.io
Jani Honkonen
Add license headers
r794 **
****************************************************************************/
unknown
Added missing warning about private implementation
r1366 // W A R N I N G
// -------------
//
Titta Heikkala
Updated private header warning...
r2807 // This file is not part of the Qt Chart API. It exists purely as an
unknown
Added missing warning about private implementation
r1366 // implementation detail. This header file may change from version to
// version without notice, or even be removed.
//
// We mean it.
Michal Klocek
Fixes header guard style issues
r969 #ifndef SCATTERCHARTITEM_H
#define SCATTERCHARTITEM_H
Michal Klocek
Refactor scatter chart to fit the other classes...
r470
Titta Heikkala
Fix include syntax...
r2714 #include <QtCharts/QChartGlobal>
#include <private/xychart_p.h>
#include <QtWidgets/QGraphicsEllipseItem>
#include <QtGui/QPen>
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 #include <QtWidgets/QGraphicsSceneMouseEvent>
Michal Klocek
Refactor scatter chart to fit the other classes...
r470
Titta Heikkala
Qt Charts project file structure change...
r2712 QT_CHARTS_BEGIN_NAMESPACE
Michal Klocek
Refactor scatter chart to fit the other classes...
r470
class QScatterSeries;
Michal Klocek
Refactors internals...
r2273 class ScatterChartItem : public XYChart
Michal Klocek
Refactor scatter chart to fit the other classes...
r470 {
Q_OBJECT
Jani Honkonen
scatterchart: get rid of a warning...
r1232 Q_INTERFACES(QGraphicsItem)
Michal Klocek
Refactor scatter chart to fit the other classes...
r470 public:
Miikka Heikkinen
Add Polar chart support...
r2483 explicit ScatterChartItem(QScatterSeries *series, QGraphicsItem *item = 0);
Michal Klocek
Refactor scatter chart to fit the other classes...
r470
public:
//from QGraphicsItem
QRectF boundingRect() const;
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 void setPen(const QPen &pen);
void setBrush(const QBrush &brush);
Michal Klocek
Refactor scatter chart to fit the other classes...
r470
Michal Klocek
Bugfixes for scatter series...
r1763 void markerSelected(QGraphicsItem *item);
Marek Rosa
Added hovered support to scatter series
r2261 void markerHovered(QGraphicsItem *item, bool state);
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 void markerPressed(QGraphicsItem *item);
void markerReleased(QGraphicsItem *item);
void markerDoubleClicked(QGraphicsItem *item);
void setMousePressed(bool pressed = true) {m_mousePressed = pressed;}
bool mousePressed() {return m_mousePressed;}
Michal Klocek
Adds missing scatter intercation implementation...
r541
sauimone
Q_SIGNALS and Q_SLOTS
r775 public Q_SLOTS:
Michal Klocek
Refactor scatter chart to fit the other classes...
r470 void handleUpdated();
private:
void createPoints(int count);
void deletePoints(int count);
protected:
Michal Klocek
Refactors animation handling for xyseries
r1217 void updateGeometry();
Michal Klocek
Refactor scatter chart to fit the other classes...
r470
private:
QScatterSeries *m_series;
QGraphicsItemGroup m_items;
Tero Ahola
Fixed isVisible implementation in XY series
r1346 bool m_visible;
Michal Klocek
Refactor scatter chart to fit the other classes...
r470 int m_shape;
int m_size;
QRectF m_rect;
Michal Klocek
Bugfixes for scatter series...
r1763 QMap<QGraphicsItem *, QPointF> m_markerMap;
Titta Heikkala
Added possibility to show series value...
r2689
bool m_pointLabelsVisible;
QString m_pointLabelsFormat;
QFont m_pointLabelsFont;
QColor m_pointLabelsColor;
Titta Heikkala
Added option to set labels clipping...
r2815 bool m_pointLabelsClipping;
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739
bool m_mousePressed;
Michal Klocek
Refactor scatter chart to fit the other classes...
r470 };
Michal Klocek
Bugfixes for scatter series...
r1763 class CircleMarker: public QGraphicsEllipseItem
Michal Klocek
Adds missing scatter intercation implementation...
r541 {
public:
Jani Honkonen
more coding style fixes for src-folder...
r2104 CircleMarker(qreal x, qreal y, qreal w, qreal h, ScatterChartItem *parent)
: QGraphicsEllipseItem(x, y, w, h, parent),
m_parent(parent)
{
Marek Rosa
Added hovered support to scatter series
r2261 setAcceptHoverEvents(true);
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 setFlag(QGraphicsItem::ItemIsSelectable);
Jani Honkonen
more coding style fixes for src-folder...
r2104 }
Michal Klocek
Adds missing scatter intercation implementation...
r541
Michal Klocek
Bugfixes for scatter series...
r1763 protected:
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 void mousePressEvent(QGraphicsSceneMouseEvent *event)
{
QGraphicsEllipseItem::mousePressEvent(event);
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 m_parent->markerPressed(this);
m_parent->setMousePressed();
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 }
Marek Rosa
Added hovered support to scatter series
r2261 void hoverEnterEvent(QGraphicsSceneHoverEvent *event)
{
QGraphicsEllipseItem::hoverEnterEvent(event);
Titta Heikkala
Fix crash with ScatterChartItem mouse events...
r2684 m_parent->markerHovered(this, true);
Marek Rosa
Added hovered support to scatter series
r2261 }
void hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
{
QGraphicsEllipseItem::hoverLeaveEvent(event);
Titta Heikkala
Fix crash with ScatterChartItem mouse events...
r2684 m_parent->markerHovered(this, false);
Marek Rosa
Added hovered support to scatter series
r2261 }
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
QGraphicsEllipseItem::mouseReleaseEvent(event);
m_parent->markerReleased(this);
Titta Heikkala
Fix clicked, released and doubleClicked signal points...
r2746 if (m_parent->mousePressed())
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 m_parent->markerSelected(this);
m_parent->setMousePressed(false);
}
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
{
QGraphicsEllipseItem::mouseDoubleClickEvent(event);
m_parent->markerDoubleClicked(this);
}
Michal Klocek
Adds missing scatter intercation implementation...
r541
Michal Klocek
Bugfixes for scatter series...
r1763 private:
Jani Honkonen
more coding style fixes for src-folder...
r2104 ScatterChartItem *m_parent;
Michal Klocek
Bugfixes for scatter series...
r1763 };
Michal Klocek
Adds missing scatter intercation implementation...
r541
Michal Klocek
Bugfixes for scatter series...
r1763 class RectangleMarker: public QGraphicsRectItem
{
Michal Klocek
Adds missing scatter intercation implementation...
r541
Michal Klocek
Bugfixes for scatter series...
r1763 public:
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 RectangleMarker(qreal x, qreal y, qreal w, qreal h, ScatterChartItem *parent)
: QGraphicsRectItem(x, y, w, h, parent),
m_parent(parent)
{
Marek Rosa
Added hovered support to scatter series
r2261 setAcceptHoverEvents(true);
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 setFlag(QGraphicsItem::ItemIsSelectable);
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 }
Michal Klocek
Adds missing scatter intercation implementation...
r541
protected:
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 void mousePressEvent(QGraphicsSceneMouseEvent *event)
{
QGraphicsRectItem::mousePressEvent(event);
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 m_parent->markerPressed(this);
m_parent->setMousePressed();
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 }
Marek Rosa
Added hovered support to scatter series
r2261 void hoverEnterEvent(QGraphicsSceneHoverEvent *event)
{
QGraphicsRectItem::hoverEnterEvent(event);
Titta Heikkala
Fix crash with ScatterChartItem mouse events...
r2684 m_parent->markerHovered(this, true);
Marek Rosa
Added hovered support to scatter series
r2261 }
void hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
{
QGraphicsRectItem::hoverLeaveEvent(event);
Titta Heikkala
Fix crash with ScatterChartItem mouse events...
r2684 m_parent->markerHovered(this, false);
Marek Rosa
Added hovered support to scatter series
r2261 }
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
QGraphicsRectItem::mouseReleaseEvent(event);
m_parent->markerReleased(this);
Titta Heikkala
Fix clicked, released and doubleClicked signal points...
r2746 if (m_parent->mousePressed())
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 m_parent->markerSelected(this);
m_parent->setMousePressed(false);
}
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
{
QGraphicsRectItem::mouseDoubleClickEvent(event);
m_parent->markerDoubleClicked(this);
}
Michal Klocek
Adds missing scatter intercation implementation...
r541
private:
Jani Honkonen
more coding style fixes for src-folder...
r2104 ScatterChartItem *m_parent;
Michal Klocek
Adds missing scatter intercation implementation...
r541 };
Titta Heikkala
Qt Charts project file structure change...
r2712 QT_CHARTS_END_NAMESPACE
Michal Klocek
Refactor scatter chart to fit the other classes...
r470
#endif // SCATTERPRESENTER_H