##// END OF EJS Templates
Copyright header changes...
Copyright header changes Copyright header changes for Qt 5.5. Change-Id: I2b8e9356997de2c87a7436bcefd4d0948d566259 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com>

File last commit:

r2776:bc1f6aa59d42
r2776:bc1f6aa59d42
Show More
qxyseries.cpp
863 lines | 22.4 KiB | text/x-c | CppLexer
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 **
****************************************************************************/
Titta Heikkala
Fix include syntax...
r2714 #include <QtCharts/QXYSeries>
#include <private/qxyseries_p.h>
#include <private/abstractdomain_p.h>
#include <QtCharts/QValueAxis>
#include <private/xychart_p.h>
#include <QtCharts/QXYLegendMarker>
#include <private/charthelpers_p.h>
#include <private/qchart_p.h>
#include <QtGui/QPainter>
sauimone
added QXYLegendMarker
r2175
Titta Heikkala
Qt Charts project file structure change...
r2712 QT_CHARTS_BEGIN_NAMESPACE
Michal Klocek
Add missing files from previous commit
r466
/*!
\class QXYSeries
Titta Heikkala
Fix Charts documentation...
r2639 \inmodule Qt Charts
Michal Klocek
Refactor scatter chart to fit the other classes...
r470 \brief The QXYSeries class is a base class for line, spline and scatter series.
Michal Klocek
Add missing files from previous commit
r466 */
Tero Ahola
Documenting xy-series
r1491 /*!
Titta Heikkala
Fix Charts documentation...
r2639 \qmltype XYSeries
\instantiates QXYSeries
Titta Heikkala
Qt Charts project file structure change...
r2712 \inqmlmodule QtCharts
Tero Ahola
Documenting xy-series
r1491
Titta Heikkala
Qt Charts project file structure change...
r2712 \inherits AbstractSeries
\brief The XYSeries type is a base type for line, spline and scatter series.
Titta Heikkala
Fix Charts documentation...
r2639
Titta Heikkala
Qt Charts project file structure change...
r2712 The XYSeries class is a base class for line, spline and scatter series.
The class cannot be instantiated directly.
Titta Heikkala
Fix Charts documentation...
r2639 */
Michal Klocek
Add missing files from previous commit
r466
Tero Ahola
Fixed documentation issues in QML API
r2331 /*!
\qmlproperty AbstractAxis XYSeries::axisX
The x axis used for the series. If you leave both axisX and axisXTop undefined, a ValueAxis is created for
the series.
\sa axisXTop
*/
/*!
\qmlproperty AbstractAxis XYSeries::axisY
The y axis used for the series. If you leave both axisY and axisYRight undefined, a ValueAxis is created for
the series.
\sa axisYRight
*/
/*!
\qmlproperty AbstractAxis XYSeries::axisXTop
The x axis used for the series, drawn on top of the chart view. Note that you can only provide either axisX or
axisXTop, but not both.
\sa axisX
*/
/*!
\qmlproperty AbstractAxis XYSeries::axisYRight
The y axis used for the series, drawn to the right on the chart view. Note that you can only provide either axisY
or axisYRight, but not both.
\sa axisY
*/
Miikka Heikkinen
Add Polar chart support...
r2483 /*!
\qmlproperty AbstractAxis XYSeries::axisAngular
The angular axis used for the series, drawn around the polar chart view.
\sa axisX
*/
/*!
\qmlproperty AbstractAxis XYSeries::axisRadial
The radial axis used for the series, drawn inside the polar chart view.
\sa axisY
*/
Jani Honkonen
qxyseries doc update
r1336 /*!
\property QXYSeries::pointsVisible
Tero Ahola
Documenting xy-series
r1491 Controls if the data points are visible and should be drawn.
*/
/*!
\qmlproperty bool XYSeries::pointsVisible
Jani Honkonen
qxyseries doc update
r1336 Controls if the data points are visible and should be drawn.
*/
Michal Klocek
Add missing files from previous commit
r466 /*!
\fn QPen QXYSeries::pen() const
Michal Klocek
minor. some docs fix
r480 \brief Returns pen used to draw points for series.
Michal Klocek
Add missing files from previous commit
r466 \sa setPen()
*/
Michal Klocek
minor. some docs fix
r480 /*!
\fn QBrush QXYSeries::brush() const
\brief Returns brush used to draw points for series.
\sa setBrush()
*/
Tero Ahola
color and borderColor properties to XY charts; removed unnecessary signals
r1481 /*!
\property QXYSeries::color
Tero Ahola
Documenting xy-series
r1491 The color of the series. This is line (pen) color in case of QLineSeries or QSplineSeries and
fill (brush) color in case of QScatterSeries or QAreaSeries.
\sa QXYSeries::pen(), QXYSeries::brush()
*/
/*!
\qmlproperty color XYSeries::color
The color of the series. This is line (pen) color in case of LineSeries or SplineSeries and
fill (brush) color in case of ScatterSeries or AreaSeries.
Tero Ahola
color and borderColor properties to XY charts; removed unnecessary signals
r1481 */
Titta Heikkala
Added possibility to show series value...
r2689 /*!
\property QXYSeries::pointLabelsFormat
The \a format used for showing labels with series points.
QXYSeries supports the following format tags:
\table
\row
\li @xPoint \li The x value of the data point
\row
\li @yPoint \li The y value of the data point
\endtable
For example, the following usage of the format tags would produce labels that have the data
point (x, y) shown inside brackets separated by a comma:
\code
series->setPointLabelsFormat("(@xPoint, @yPoint)");
\endcode
By default, the labels format is set to '@xPoint, @yPoint'. The labels are shown on the plot
area, labels on the edge of the plot area are cut. If the points are close to each other the
labels may overlap.
\sa QXYSeries::pointLabelsVisible, QXYSeries::pointLabelsFont, QXYSeries::pointLabelsColor
*/
/*!
\qmlproperty string XYSeries::pointLabelsFormat
The \a format used for showing labels with series points.
\sa QXYSeries::pointLabelsFormat, pointLabelsVisible, pointLabelsFont, pointLabelsColor
*/
/*!
\fn void QXYSeries::pointLabelsFormatChanged(const QString &format)
Signal is emitted when the \a format of data point labels is changed.
*/
/*!
\qmlsignal XYSeries::onPointLabelsFormatChanged(string format)
Signal is emitted when the \a format of data point labels is changed.
*/
/*!
\property QXYSeries::pointLabelsVisible
Defines the visibility for data point labels. False by default.
\sa QXYSeries::pointLabelsFormat
*/
/*!
\qmlproperty bool XYSeries::pointLabelsVisible
Defines the visibility for data point labels.
\sa pointLabelsFormat
*/
/*!
\fn void QXYSeries::pointLabelsVisibilityChanged(bool visible)
The visibility of the data point labels is changed to \a visible.
*/
/*!
\qmlsignal XYSeries::onPointLabelsVisibilityChanged(bool visible)
The visibility of the data point labels is changed to \a visible.
*/
/*!
\property QXYSeries::pointLabelsFont
Defines the font used for data point labels.
\sa QXYSeries::pointLabelsFormat
*/
/*!
\qmlproperty font XYSeries::pointLabelsFont
Defines the font used for data point labels.
\sa pointLabelsFormat
*/
/*!
\fn void QXYSeries::pointLabelsFontChanged(const QFont &font);
The font used for data point labels is changed to \a font.
*/
/*!
\qmlsignal XYSeries::onPointLabelsFontChanged(Font font)
The font used for data point labels is changed to \a font.
*/
/*!
\property QXYSeries::pointLabelsColor
Defines the color used for data point labels. By default, the color is the color of the brush
defined in theme for labels.
\sa QXYSeries::pointLabelsFormat
*/
/*!
\qmlproperty font XYSeries::pointLabelsColor
Defines the color used for data point labels. By default, the color is the color of the brush
defined in theme for labels.
\sa pointLabelsFormat
*/
/*!
\fn void QXYSeries::pointLabelsColorChanged(const QColor &color);
The color used for data point labels is changed to \a color.
*/
/*!
\qmlsignal XYSeries::onPointLabelsColorChanged(Color color)
The color used for data point labels is changed to \a color.
*/
Michal Klocek
Updates presenter example documentation
r574 /*!
\fn void QXYSeries::clicked(const QPointF& point)
Titta Heikkala
Fix clicked, released and doubleClicked signal points...
r2746 \brief Signal is emitted when user clicks the \a point on chart. The \a point is the point
where the press was triggered.
\sa pressed, released, doubleClicked
Michal Klocek
Updates presenter example documentation
r574 */
Tero Ahola
Documenting xy-series
r1491 /*!
\qmlsignal XYSeries::onClicked(QPointF point)
Titta Heikkala
Fix clicked, released and doubleClicked signal points...
r2746 Signal is emitted when user clicks the \a point on chart. The \a point is the point where the
press was triggered. For example:
Tero Ahola
Documenting xy-series
r1491 \code
LineSeries {
Tero Ahola
Renamed XyPoint to XYPoint
r1532 XYPoint { x: 0; y: 0 }
XYPoint { x: 1.1; y: 2.1 }
Tero Ahola
Documenting xy-series
r1491 onClicked: console.log("onClicked: " + point.x + ", " + point.y);
}
\endcode
Titta Heikkala
Fix clicked, released and doubleClicked signal points...
r2746 \sa onPressed, onReleased, onDoubleClicked
Tero Ahola
Documenting xy-series
r1491 */
Michal Klocek
Updates presenter example documentation
r574
Tero Ahola
Documented QXYSeries::hovered and QAreaSeries::hovered
r2362 /*!
\fn void QXYSeries::hovered(const QPointF &point, bool state)
This signal is emitted when user has hovered over or away from the series. \a point shows the origin (coordinate)
of the hover event. \a state is true when user has hovered over the series and false when hover has moved away from
the series.
*/
/*!
\qmlsignal XYSeries::onHovered(point point, bool state)
This signal is emitted when user has hovered over or away from the series. \a point shows the origin (coordinate)
of the hover event. \a state is true when user has hovered over the series and false when hover has moved away from
the series.
*/
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 /*!
\fn void QXYSeries::pressed(const QPointF& point)
\brief Signal is emitted when user presses the \a point on chart.
Titta Heikkala
Fix clicked, released and doubleClicked signal points...
r2746 \sa clicked, released, doubleClicked
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 */
/*!
\qmlsignal XYSeries::onPressed(QPointF point)
Signal is emitted when user presses the \a point on chart. For example:
\code
LineSeries {
XYPoint { x: 0; y: 0 }
XYPoint { x: 1.1; y: 2.1 }
onPressed: console.log("onPressed: " + point.x + ", " + point.y);
}
\endcode
Titta Heikkala
Fix clicked, released and doubleClicked signal points...
r2746 \sa onClicked, onReleased, onDoubleClicked
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 */
/*!
\fn void QXYSeries::released(const QPointF& point)
Titta Heikkala
Fix clicked, released and doubleClicked signal points...
r2746 \brief Signal is emitted when user releases a press that was triggered on a \a point on chart.
\sa pressed, clicked, doubleClicked
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 */
/*!
\qmlsignal XYSeries::onReleased(QPointF point)
Titta Heikkala
Fix clicked, released and doubleClicked signal points...
r2746 Signal is emitted when user releases a press that was triggered on a \a point on chart.
For example:
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 \code
LineSeries {
XYPoint { x: 0; y: 0 }
XYPoint { x: 1.1; y: 2.1 }
onReleased: console.log("onReleased: " + point.x + ", " + point.y);
}
\endcode
Titta Heikkala
Fix clicked, released and doubleClicked signal points...
r2746 \sa onPressed, onClicked, onDoubleClicked
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 */
/*!
\fn void QXYSeries::doubleClicked(const QPointF& point)
Titta Heikkala
Fix clicked, released and doubleClicked signal points...
r2746 \brief Signal is emitted when user doubleclicks the \a point on chart. The \a point is the
point where the first press was triggered.
\sa pressed, released, clicked
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 */
/*!
\qmlsignal XYSeries::onDoubleClicked(QPointF point)
Titta Heikkala
Fix clicked, released and doubleClicked signal points...
r2746 Signal is emitted when user doubleclicks the \a point on chart. The \a point is the point where
the first press was triggered. For example:
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 \code
LineSeries {
XYPoint { x: 0; y: 0 }
XYPoint { x: 1.1; y: 2.1 }
onDoubleClicked: console.log("onDoubleClicked: " + point.x + ", " + point.y);
}
\endcode
Titta Heikkala
Fix clicked, released and doubleClicked signal points...
r2746 \sa onPressed, onReleased, onClicked
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 */
Michal Klocek
Add missing files from previous commit
r466 /*!
Jani Honkonen
qxyseries doc update
r1336 \fn void QXYSeries::pointReplaced(int index)
Tero Ahola
Documenting xy-series
r1491 Signal is emitted when a point has been replaced at \a index.
Jani Honkonen
qxyseries doc update
r1336 \sa replace()
Michal Klocek
Add missing files from previous commit
r466 */
Tero Ahola
Documenting xy-series
r1491 /*!
Tero Ahola
QML signals documentation
r1531 \qmlsignal XYSeries::onPointReplaced(int index)
Tero Ahola
Documenting xy-series
r1491 Signal is emitted when a point has been replaced at \a index.
*/
Michal Klocek
Add missing files from previous commit
r466
Tero Ahola
Added a new QXYSeries::replace override for performance reasons....
r1783 /*!
\fn void QXYSeries::pointsReplaced()
Miikka Heikkinen
Documentation updates...
r2494 Signal is emitted when all points have been replaced with other points.
Tero Ahola
Added a new QXYSeries::replace override for performance reasons....
r1783 \sa replace()
*/
/*!
\qmlsignal XYSeries::onPointsReplaced()
Caroline Chao
Doc: Add missing documentation...
r2770 Signal is emitted when all points have been replaced with other points.
Tero Ahola
Added a new QXYSeries::replace override for performance reasons....
r1783 */
Michal Klocek
Add missing files from previous commit
r466 /*!
Jani Honkonen
qxyseries doc update
r1336 \fn void QXYSeries::pointAdded(int index)
Tero Ahola
Documenting xy-series
r1491 Signal is emitted when a point has been added at \a index.
Jani Honkonen
qxyseries doc update
r1336 \sa append(), insert()
Michal Klocek
Add missing files from previous commit
r466 */
Tero Ahola
Documenting xy-series
r1491 /*!
Tero Ahola
QML signals documentation
r1531 \qmlsignal XYSeries::onPointAdded(int index)
Tero Ahola
Documenting xy-series
r1491 Signal is emitted when a point has been added at \a index.
*/
Michal Klocek
Add missing files from previous commit
r466
/*!
Jani Honkonen
qxyseries doc update
r1336 \fn void QXYSeries::pointRemoved(int index)
Tero Ahola
Documenting xy-series
r1491 Signal is emitted when a point has been removed from \a index.
Jani Honkonen
qxyseries doc update
r1336 \sa remove()
Michal Klocek
Add missing files from previous commit
r466 */
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739
Tero Ahola
Documenting xy-series
r1491 /*!
Tero Ahola
QML signals documentation
r1531 \qmlsignal XYSeries::onPointRemoved(int index)
Tero Ahola
Documenting xy-series
r1491 Signal is emitted when a point has been removed from \a index.
*/
Michal Klocek
Add missing files from previous commit
r466
Tero Ahola
Property notifications: axis minmax, bar properties, xyseries p-visibl and count
r1465 /*!
Tero Ahola
color and borderColor properties to XY charts; removed unnecessary signals
r1481 \fn void QXYSeries::colorChanged(QColor color)
\brief Signal is emitted when the line (pen) color has changed to \a color.
Tero Ahola
Property notifications: axis minmax, bar properties, xyseries p-visibl and count
r1465 */
Tero Ahola
Documenting xy-series
r1491 /*!
Tero Ahola
QML signals documentation
r1531 \qmlsignal XYSeries::onColorChanged(color color)
Tero Ahola
Documenting xy-series
r1491 Signal is emitted when the line (pen) color has changed to \a color.
*/
Tero Ahola
Property notifications: axis minmax, bar properties, xyseries p-visibl and count
r1465
Michal Klocek
Add missing files from previous commit
r466 /*!
Marek Rosa
gdpbarchart moved to test. Few small doc fixes
r940 \fn void QXYSeriesPrivate::updated()
Michal Klocek
Add missing files from previous commit
r466 \brief \internal
*/
Tero Ahola
Documenting xy-series
r1491 /*!
Tero Ahola
QML methods of series: several fixes and documentation
r1521 \qmlmethod XYSeries::append(real x, real y)
Append point (\a x, \a y) to the series
*/
/*!
\qmlmethod XYSeries::replace(real oldX, real oldY, real newX, real newY)
Replaces point (\a oldX, \a oldY) with point (\a newX, \a newY). Does nothing, if point (oldX, oldY) does not
exist.
*/
/*!
\qmlmethod XYSeries::remove(real x, real y)
Removes point (\a x, \a y) from the series. Does nothing, if point (x, y) does not exist.
*/
/*!
\qmlmethod XYSeries::insert(int index, real x, real y)
Inserts point (\a x, \a y) to the \a index. If index is 0 or smaller than 0 the point is prepended to the list of
points. If index is the same as or bigger than count, the point is appended to the list of points.
*/
/*!
\qmlmethod QPointF XYSeries::at(int index)
Returns point at \a index. Returns (0, 0) if the index is not valid.
Tero Ahola
Documenting xy-series
r1491 */
Michal Klocek
Add missing files from previous commit
r466 /*!
Tero Ahola
Updated documentation, warnings from legend and area left
r973 \internal
Michal Klocek
Add missing files from previous commit
r466 Constructs empty series object which is a child of \a parent.
Miikka Heikkinen
Documentation updates...
r2494 When series object is added to QChart instance ownerships is transferred.
Michal Klocek
Add missing files from previous commit
r466 */
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 QXYSeries::QXYSeries(QXYSeriesPrivate &d, QObject *parent)
: QAbstractSeries(d, parent)
Michal Klocek
Adds big fat pimpl to series classes...
r938 {
Michal Klocek
Add missing files from previous commit
r466 }
Tero Ahola
Visible property to abstract series
r1342
Michal Klocek
Add missing files from previous commit
r466 /*!
Miikka Heikkinen
Documentation updates...
r2494 Destroys the object. Series added to QChart instances are owned by those,
and are destroyed when QChart instances are destroyed.
Michal Klocek
Add missing files from previous commit
r466 */
QXYSeries::~QXYSeries()
{
}
/*!
Miikka Heikkinen
Documentation updates...
r2494 Adds data point (\a x, \a y) to the series.
Michal Klocek
Add missing files from previous commit
r466 */
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 void QXYSeries::append(qreal x, qreal y)
Michal Klocek
Add missing files from previous commit
r466 {
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 append(QPointF(x, y));
Michal Klocek
Add missing files from previous commit
r466 }
/*!
This is an overloaded function.
Miikka Heikkinen
Documentation updates...
r2494 Adds data \a point to the series.
Michal Klocek
Add missing files from previous commit
r466 */
Jani Honkonen
rename functions add() -> append()
r796 void QXYSeries::append(const QPointF &point)
Michal Klocek
Add missing files from previous commit
r466 {
Michal Klocek
Fixes and improvments to series API...
r1057 Q_D(QXYSeries);
Mika Salmela
Fix to discard NaN, Inf and -Inf values from chart....
r2424
if (isValidValue(point)) {
d->m_points << point;
emit pointAdded(d->m_points.count() - 1);
}
Michal Klocek
Add missing files from previous commit
r466 }
Michal Klocek
Fixes for docs , adds xyseries docs
r481 /*!
This is an overloaded function.
Miikka Heikkinen
Documentation updates...
r2494 Adds list of data \a points to the series.
Michal Klocek
Fixes for docs , adds xyseries docs
r481 */
Michal Klocek
Fixes and improvments to series API...
r1057 void QXYSeries::append(const QList<QPointF> &points)
Michal Klocek
Fixes for docs , adds xyseries docs
r481 {
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 foreach (const QPointF &point , points)
Michal Klocek
Fixes and improvments to series API...
r1057 append(point);
Michal Klocek
Fixes for docs , adds xyseries docs
r481 }
Jani Honkonen
qxyseries doc update
r1336 /*!
Miikka Heikkinen
Documentation updates...
r2494 Replaces data point (\a oldX, \a oldY) with data point (\a newX, \a newY).
Tero Ahola
Added a new QXYSeries::replace override for performance reasons....
r1783 \sa QXYSeries::pointReplaced()
Jani Honkonen
qxyseries doc update
r1336 */
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 void QXYSeries::replace(qreal oldX, qreal oldY, qreal newX, qreal newY)
Michal Klocek
Add missing files from previous commit
r466 {
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 replace(QPointF(oldX, oldY), QPointF(newX, newY));
Michal Klocek
Add missing files from previous commit
r466 }
Jani Honkonen
qxyseries doc update
r1336 /*!
Replaces \a oldPoint with \a newPoint.
Tero Ahola
Added a new QXYSeries::replace override for performance reasons....
r1783 \sa QXYSeries::pointReplaced()
Jani Honkonen
qxyseries doc update
r1336 */
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 void QXYSeries::replace(const QPointF &oldPoint, const QPointF &newPoint)
Michal Klocek
Improves spline interpolation...
r622 {
Michal Klocek
Adds big fat pimpl to series classes...
r938 Q_D(QXYSeries);
Michal Klocek
Fixes and improvments to series API...
r1057 int index = d->m_points.indexOf(oldPoint);
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 if (index == -1)
return;
Miikka Heikkinen
Implement index based removing/replacing points in series...
r2496 replace(index, newPoint);
}
Miikka Heikkinen
Fix warnings in documentation build...
r2503 /*!
Replaces the point at \a index with data point (\a newX, \a newY).
\sa QXYSeries::pointReplaced()
*/
Miikka Heikkinen
Implement index based removing/replacing points in series...
r2496 void QXYSeries::replace(int index, qreal newX, qreal newY)
{
replace(index, QPointF(newX, newY));
}
Miikka Heikkinen
Fix warnings in documentation build...
r2503 /*!
Replaces the point at \a index with \a newPoint.
\sa QXYSeries::pointReplaced()
*/
Miikka Heikkinen
Implement index based removing/replacing points in series...
r2496 void QXYSeries::replace(int index, const QPointF &newPoint)
{
Q_D(QXYSeries);
Mika Salmela
Fix to discard NaN, Inf and -Inf values from chart....
r2424 if (isValidValue(newPoint)) {
d->m_points[index] = newPoint;
emit pointReplaced(index);
}
Michal Klocek
Improves spline interpolation...
r622 }
Tero Ahola
Added a new QXYSeries::replace override for performance reasons....
r1783 /*!
Miikka Heikkinen
Documentation updates...
r2494 Replaces the current points with \a points.
\note This is much faster than replacing data points one by one,
Tero Ahola
Added a new QXYSeries::replace override for performance reasons....
r1783 or first clearing all data, and then appending the new data. Emits QXYSeries::pointsReplaced()
when the points have been replaced.
\sa QXYSeries::pointsReplaced()
*/
void QXYSeries::replace(QList<QPointF> points)
{
Q_D(QXYSeries);
d->m_points = points.toVector();
emit pointsReplaced();
}
Michal Klocek
Add missing files from previous commit
r466 /*!
Miikka Heikkinen
Documentation updates...
r2494 Removes the point (\a x, \a y) from the series.
Michal Klocek
Add missing files from previous commit
r466 */
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 void QXYSeries::remove(qreal x, qreal y)
Michal Klocek
Add missing files from previous commit
r466 {
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 remove(QPointF(x, y));
Michal Klocek
Add missing files from previous commit
r466 }
/*!
Miikka Heikkinen
Documentation updates...
r2494 Removes the \a point from the series.
Michal Klocek
Add missing files from previous commit
r466 */
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 void QXYSeries::remove(const QPointF &point)
Michal Klocek
Add missing files from previous commit
r466 {
Michal Klocek
Fixes and improvments to series API...
r1057 Q_D(QXYSeries);
int index = d->m_points.indexOf(point);
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 if (index == -1)
return;
Miikka Heikkinen
Implement index based removing/replacing points in series...
r2496 remove(index);
}
Miikka Heikkinen
Fix warnings in documentation build...
r2503 /*!
Removes the point at \a index from the series.
*/
Miikka Heikkinen
Implement index based removing/replacing points in series...
r2496 void QXYSeries::remove(int index)
{
Q_D(QXYSeries);
Michal Klocek
Fixes and improvments to series API...
r1057 d->m_points.remove(index);
Marek Rosa
XYModelMapper slots for series signals implemented
r1262 emit pointRemoved(index);
Michal Klocek
Add missing files from previous commit
r466 }
Jani Honkonen
qxyseries doc update
r1336 /*!
Inserts a \a point in the series at \a index position.
*/
Marek Rosa
XYModelMapper slots for model signals implemented
r1256 void QXYSeries::insert(int index, const QPointF &point)
{
Q_D(QXYSeries);
Mika Salmela
Fix to discard NaN, Inf and -Inf values from chart....
r2424 if (isValidValue(point)) {
Friedemann Kleint
QXYSeries::insert(): Handle out-of-range indexes gracefully....
r2772 index = qMax(0, qMin(index, d->m_points.size()));
Mika Salmela
Fix to discard NaN, Inf and -Inf values from chart....
r2424 d->m_points.insert(index, point);
emit pointAdded(index);
}
Marek Rosa
XYModelMapper slots for model signals implemented
r1256 }
Jani Honkonen
qxyseries doc update
r1336 /*!
Removes all points from the series.
*/
Marek Rosa
XYModelMapper slots for model signals implemented
r1256 void QXYSeries::clear()
{
Q_D(QXYSeries);
for (int i = d->m_points.size() - 1; i >= 0; i--)
remove(d->m_points.at(i));
}
Michal Klocek
Add missing files from previous commit
r466 /*!
sauimone
fixed QTRD-1482 Commercial charts: QXYSeries::points() should be part of the public API
r1724 Returns list of points in the series.
Michal Klocek
Add missing files from previous commit
r466 */
Michal Klocek
Fixes and improvments to series API...
r1057 QList<QPointF> QXYSeries::points() const
Michal Klocek
Add missing files from previous commit
r466 {
Michal Klocek
Adds big fat pimpl to series classes...
r938 Q_D(const QXYSeries);
Marek Rosa
All model related methods and members removed from the series. QML stuff commented out where complaining
r1230 return d->m_points.toList();
Michal Klocek
Add missing files from previous commit
r466 }
Miikka Heikkinen
Add Polar chart support...
r2483 /*!
Returns point at \a index in internal points vector.
*/
Miikka Heikkinen
Refactor the new QXYSeries::pointAt() -> QXYSeries::at()...
r2491 const QPointF &QXYSeries::at(int index) const
Miikka Heikkinen
Add Polar chart support...
r2483 {
Q_D(const QXYSeries);
return d->m_points.at(index);
}
Michal Klocek
Add missing files from previous commit
r466 /*!
Returns number of data points within series.
*/
int QXYSeries::count() const
{
Michal Klocek
Adds big fat pimpl to series classes...
r938 Q_D(const QXYSeries);
Michal Klocek
Fixes and improvments to series API...
r1057 return d->m_points.count();
Tero Ahola
Added data getter for XY series; example for customizing the looks
r491 }
Michal Klocek
Spline series windows compilation fix
r467 /*!
Michal Klocek
Fixes for docs , adds xyseries docs
r481 Sets \a pen used for drawing points on the chart. If the pen is not defined, the
pen from chart theme is used.
Marek Rosa
Various documentation fixes
r909 \sa QChart::setTheme()
Michal Klocek
Spline series windows compilation fix
r467 */
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 void QXYSeries::setPen(const QPen &pen)
Michal Klocek
Spline series windows compilation fix
r467 {
Michal Klocek
Adds big fat pimpl to series classes...
r938 Q_D(QXYSeries);
Tero Ahola
Color and border color properties of XYSeries
r1537 if (d->m_pen != pen) {
bool emitColorChanged = d->m_pen.color() != pen.color();
Michal Klocek
Adds big fat pimpl to series classes...
r938 d->m_pen = pen;
emit d->updated();
Tero Ahola
Color and border color properties of XYSeries
r1537 if (emitColorChanged)
emit colorChanged(pen.color());
Michal Klocek
Spline series windows compilation fix
r467 }
}
Michal Klocek
Adds big fat pimpl to series classes...
r938 QPen QXYSeries::pen() const
{
Q_D(const QXYSeries);
Miikka Heikkinen
Return empty brush/pen/font via API rather than the weird default one...
r2519 if (d->m_pen == QChartPrivate::defaultPen())
return QPen();
else
return d->m_pen;
Michal Klocek
Adds big fat pimpl to series classes...
r938 }
Michal Klocek
Spline series windows compilation fix
r467 /*!
Michal Klocek
Fixes for docs , adds xyseries docs
r481 Sets \a brush used for drawing points on the chart. If the brush is not defined, brush
from chart theme setting is used.
Marek Rosa
Various documentation fixes
r909 \sa QChart::setTheme()
Michal Klocek
Spline series windows compilation fix
r467 */
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 void QXYSeries::setBrush(const QBrush &brush)
Michal Klocek
Spline series windows compilation fix
r467 {
Michal Klocek
Adds big fat pimpl to series classes...
r938 Q_D(QXYSeries);
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 if (d->m_brush != brush) {
Michal Klocek
Adds big fat pimpl to series classes...
r938 d->m_brush = brush;
emit d->updated();
Michal Klocek
Spline series windows compilation fix
r467 }
}
Michal Klocek
Adds big fat pimpl to series classes...
r938 QBrush QXYSeries::brush() const
{
Q_D(const QXYSeries);
Miikka Heikkinen
Return empty brush/pen/font via API rather than the weird default one...
r2519 if (d->m_brush == QChartPrivate::defaultBrush())
return QBrush();
else
return d->m_brush;
Michal Klocek
Adds big fat pimpl to series classes...
r938 }
Tero Ahola
color and borderColor properties to XY charts; removed unnecessary signals
r1481 void QXYSeries::setColor(const QColor &color)
{
QPen p = pen();
if (p.color() != color) {
p.setColor(color);
setPen(p);
}
}
QColor QXYSeries::color() const
{
return pen().color();
}
Michal Klocek
Adds big fat pimpl to series classes...
r938
void QXYSeries::setPointsVisible(bool visible)
{
Q_D(QXYSeries);
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 if (d->m_pointsVisible != visible) {
Michal Klocek
Adds big fat pimpl to series classes...
r938 d->m_pointsVisible = visible;
emit d->updated();
}
}
bool QXYSeries::pointsVisible() const
{
Q_D(const QXYSeries);
return d->m_pointsVisible;
}
Titta Heikkala
Added possibility to show series value...
r2689 void QXYSeries::setPointLabelsFormat(const QString &format)
{
Q_D(QXYSeries);
if (d->m_pointLabelsFormat != format) {
d->m_pointLabelsFormat = format;
emit pointLabelsFormatChanged(format);
}
}
QString QXYSeries::pointLabelsFormat() const
{
Q_D(const QXYSeries);
return d->m_pointLabelsFormat;
}
void QXYSeries::setPointLabelsVisible(bool visible)
{
Q_D(QXYSeries);
if (d->m_pointLabelsVisible != visible) {
d->m_pointLabelsVisible = visible;
emit pointLabelsVisibilityChanged(visible);
}
}
bool QXYSeries::pointLabelsVisible() const
{
Q_D(const QXYSeries);
return d->m_pointLabelsVisible;
}
void QXYSeries::setPointLabelsFont(const QFont &font)
{
Q_D(QXYSeries);
if (d->m_pointLabelsFont != font) {
d->m_pointLabelsFont = font;
emit pointLabelsFontChanged(font);
}
}
QFont QXYSeries::pointLabelsFont() const
{
Q_D(const QXYSeries);
return d->m_pointLabelsFont;
}
void QXYSeries::setPointLabelsColor(const QColor &color)
{
Q_D(QXYSeries);
if (d->m_pointLabelsColor != color) {
d->m_pointLabelsColor = color;
emit pointLabelsColorChanged(color);
}
}
QColor QXYSeries::pointLabelsColor() const
{
Q_D(const QXYSeries);
if (d->m_pointLabelsColor == QChartPrivate::defaultPen().color())
return QPen().color();
else
return d->m_pointLabelsColor;
}
Michal Klocek
Spline series windows compilation fix
r467
Michal Klocek
Add missing files from previous commit
r466 /*!
Stream operator for adding a data \a point to the series.
Jani Honkonen
rename functions add() -> append()
r796 \sa append()
Michal Klocek
Add missing files from previous commit
r466 */
Jani Honkonen
more coding style fixes for src-folder...
r2104 QXYSeries &QXYSeries::operator<< (const QPointF &point)
Michal Klocek
Add missing files from previous commit
r466 {
Jani Honkonen
rename functions add() -> append()
r796 append(point);
Michal Klocek
Add missing files from previous commit
r466 return *this;
}
Michal Klocek
Fixes for docs , adds xyseries docs
r481 /*!
Stream operator for adding a list of \a points to the series.
Jani Honkonen
rename functions add() -> append()
r796 \sa append()
Michal Klocek
Fixes for docs , adds xyseries docs
r481 */
Jani Honkonen
more coding style fixes for src-folder...
r2104 QXYSeries &QXYSeries::operator<< (const QList<QPointF>& points)
Michal Klocek
Fixes for docs , adds xyseries docs
r481 {
Jani Honkonen
rename functions add() -> append()
r796 append(points);
Michal Klocek
Fixes for docs , adds xyseries docs
r481 return *this;
}
Michal Klocek
Adds big fat pimpl to series classes...
r938 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Marek Rosa
Removed all the unfinished model functionality from XYSeries and BarSeries
r990
Jani Honkonen
more coding style fixes for src-folder...
r2104 QXYSeriesPrivate::QXYSeriesPrivate(QXYSeries *q)
: QAbstractSeriesPrivate(q),
Miikka Heikkinen
Fix explicitly set default pen/brush/font getting overridden by theme...
r2516 m_pen(QChartPrivate::defaultPen()),
m_brush(QChartPrivate::defaultBrush()),
Titta Heikkala
Added possibility to show series value...
r2689 m_pointsVisible(false),
m_pointLabelsFormat(QLatin1String("@xPoint, @yPoint")),
m_pointLabelsVisible(false),
m_pointLabelsFont(QChartPrivate::defaultFont()),
m_pointLabelsColor(QChartPrivate::defaultPen().color())
Michal Klocek
Adds big fat pimpl to series classes...
r938 {
}
Michal Klocek
Refactors internals...
r2273 void QXYSeriesPrivate::initializeDomain()
Michal Klocek
Refactor to use qseries private for implmentation interface...
r943 {
Marek Rosa
Fix to domain initialization
r1740 qreal minX(0);
qreal minY(0);
qreal maxX(1);
qreal maxY(1);
Michal Klocek
Refactor to use qseries private for implmentation interface...
r943
Michal Klocek
Fix xy series model issues due to API changes
r1059 Q_Q(QXYSeries);
Michal Klocek
Fixes and improvments to series API...
r1057
Michal Klocek
Fix xy series model issues due to API changes
r1059 const QList<QPointF>& points = q->points();
Michal Klocek
Adds default 0,1 domain for emmpty series, update tst_qlineseries
r1070
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 if (!points.isEmpty()) {
Marek Rosa
Fix to domain initialization
r1740 minX = points[0].x();
minY = points[0].y();
maxX = minX;
maxY = minY;
for (int i = 0; i < points.count(); i++) {
qreal x = points[i].x();
qreal y = points[i].y();
minX = qMin(minX, x);
minY = qMin(minY, y);
maxX = qMax(maxX, x);
maxY = qMax(maxY, y);
}
Marek Rosa
Uncomment domainScale function in XYSeries
r1205 }
Michal Klocek
Refactors internals...
r2273 domain()->setRange(minX, maxX, minY, maxY);
Michal Klocek
Refactor to use qseries private for implmentation interface...
r943 }
sauimone
Added createLegendMarkers to private series. This will replace old createLegendMarker method. Notice the s in new method name. PIMPL for QLegendMarker. Newlegend example updated a bit
r2163 QList<QLegendMarker*> QXYSeriesPrivate::createLegendMarkers(QLegend* legend)
{
sauimone
added QXYLegendMarker
r2175 Q_Q(QXYSeries);
sauimone
Added createLegendMarkers to private series. This will replace old createLegendMarker method. Notice the s in new method name. PIMPL for QLegendMarker. Newlegend example updated a bit
r2163 QList<QLegendMarker*> list;
sauimone
added QXYLegendMarker
r2175 return list << new QXYLegendMarker(q,legend);
sauimone
Added createLegendMarkers to private series. This will replace old createLegendMarker method. Notice the s in new method name. PIMPL for QLegendMarker. Newlegend example updated a bit
r2163 }
Michal Klocek
Refactors internals...
r2273 void QXYSeriesPrivate::initializeAxes()
Michal Klocek
Refactors core to support mulitpile axis and domains...
r1556 {
Michal Klocek
Refactors internals...
r2273
Michal Klocek
Refactors core to support mulitpile axis and domains...
r1556 }
Michal Klocek
Adds axis domain intialization
r1695 QAbstractAxis::AxisType QXYSeriesPrivate::defaultAxisType(Qt::Orientation orientation) const
Michal Klocek
Adds createDefaultAxes logic
r1588 {
Michal Klocek
Adds axis domain intialization
r1695 Q_UNUSED(orientation);
Marek Rosa
updated AxisType names
r1818 return QAbstractAxis::AxisTypeValue;
Michal Klocek
Refactors core to support mulitpile axis and domains...
r1556 }
Michal Klocek
Refactors internals...
r2273 QAbstractAxis* QXYSeriesPrivate::createDefaultAxis(Qt::Orientation orientation) const
{
Q_UNUSED(orientation);
Titta Heikkala
Fix default axes creation...
r2614 return new QValueAxis;
Michal Klocek
Refactors internals...
r2273 }
Titta Heikkala
Qt Charts project file structure change...
r2712 void QXYSeriesPrivate::initializeAnimations(QtCharts::QChart::AnimationOptions options)
Michal Klocek
Refactors internals...
r2273 {
XYChart *item = static_cast<XYChart *>(m_item.data());
Q_ASSERT(item);
Miikka Heikkinen
Fix resetting animation options mid-animation....
r2555 if (item->animation())
item->animation()->stopAndDestroyLater();
if (options.testFlag(QChart::SeriesAnimations))
Michal Klocek
Refactors internals...
r2273 item->setAnimation(new XYAnimation(item));
Miikka Heikkinen
Fix resetting animation options mid-animation....
r2555 else
Michal Klocek
Refactors internals...
r2273 item->setAnimation(0);
QAbstractSeriesPrivate::initializeAnimations(options);
}
Titta Heikkala
Fix point label position for QXYSeries...
r2696 void QXYSeriesPrivate::drawSeriesPointLabels(QPainter *painter, const QVector<QPointF> &points,
const int offset)
Titta Heikkala
Added possibility to show series value...
r2689 {
static const QString xPointTag(QLatin1String("@xPoint"));
static const QString yPointTag(QLatin1String("@yPoint"));
Titta Heikkala
Fix point label position for QXYSeries...
r2696 const int labelOffset = offset + 2;
Titta Heikkala
Added possibility to show series value...
r2689
painter->setFont(m_pointLabelsFont);
painter->setPen(QPen(m_pointLabelsColor));
QFontMetrics fm(painter->font());
Andy Shaw
Use the points variable passed in rather than the class member...
r2766 for (int i(0); i < points.size(); i++) {
Titta Heikkala
Added possibility to show series value...
r2689 QString pointLabel = m_pointLabelsFormat;
Andy Shaw
Use the points variable passed in rather than the class member...
r2766 pointLabel.replace(xPointTag, presenter()->numberToString(points.at(i).x()));
pointLabel.replace(yPointTag, presenter()->numberToString(points.at(i).y()));
Titta Heikkala
Added possibility to show series value...
r2689
// Position text in relation to the point
int pointLabelWidth = fm.width(pointLabel);
QPointF position(points.at(i));
position.setX(position.x() - pointLabelWidth / 2);
Titta Heikkala
Fix point label position for QXYSeries...
r2696 position.setY(position.y() - labelOffset);
Titta Heikkala
Added possibility to show series value...
r2689
painter->drawText(position, pointLabel);
}
}
Michal Klocek
Add missing files from previous commit
r466 #include "moc_qxyseries.cpp"
Michal Klocek
Adds big fat pimpl to series classes...
r938 #include "moc_qxyseries_p.cpp"
Michal Klocek
Add missing files from previous commit
r466
Titta Heikkala
Qt Charts project file structure change...
r2712 QT_CHARTS_END_NAMESPACE