##// END OF EJS Templates
Added QChart::locale property...
Added QChart::locale property This locale is used for localizing the numbers on various labels when localizeNumbers is set to true. It is also the locale that QDateTimeAxis labels use for month and day names. Task-number: QTRD-3179 Change-Id: Ib9a9cad770c5a6890311fe45a1d4cabd5f40aff4 Reviewed-by: Mika Salmela <mika.salmela@digia.com>

File last commit:

r2707:ef2ab40bd1b9
r2708:b421e87aa00a
Show More
qxyseries.cpp
804 lines | 20.2 KiB | text/x-c | CppLexer
Jani Honkonen
Add license headers
r794 /****************************************************************************
**
Titta Heikkala
Update copyright year...
r2688 ** Copyright (C) 2014 Digia Plc
Jani Honkonen
Add license headers
r794 ** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
Miikka Heikkinen
Qt Commercial -> Qt Enterprise...
r2574 ** This file is part of the Qt Enterprise Charts Add-on.
Jani Honkonen
Add license headers
r794 **
** $QT_BEGIN_LICENSE$
Miikka Heikkinen
Qt Commercial -> Qt Enterprise...
r2574 ** Licensees holding valid Qt Enterprise licenses may use this file in
** accordance with the Qt Enterprise License Agreement provided with the
Jani Honkonen
Add license headers
r794 ** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia.
**
** If you have questions regarding the use of this file, please use
** contact form at http://qt.digia.com
** $QT_END_LICENSE$
**
****************************************************************************/
Michal Klocek
Add missing files from previous commit
r466 #include "qxyseries.h"
Michal Klocek
Adds big fat pimpl to series classes...
r938 #include "qxyseries_p.h"
Marek Rosa
Domains added
r2275 #include "abstractdomain_p.h"
Marek Rosa
renamed QValueAxis related files
r1805 #include "qvalueaxis.h"
Michal Klocek
Refactors internals...
r2273 #include "xychart_p.h"
sauimone
added QXYLegendMarker
r2175 #include "qxylegendmarker.h"
Mika Salmela
Fix to discard NaN, Inf and -Inf values from chart....
r2424 #include "charthelpers_p.h"
Miikka Heikkinen
Fix explicitly set default pen/brush/font getting overridden by theme...
r2516 #include "qchart_p.h"
Titta Heikkala
Added possibility to show series value...
r2689 #include <QPainter>
sauimone
added QXYLegendMarker
r2175
Michal Klocek
Add missing files from previous commit
r466 QTCOMMERCIALCHART_BEGIN_NAMESPACE
/*!
\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 */
Titta Heikkala
Fix Charts documentation...
r2639 #ifdef QDOC_QT5
Tero Ahola
Documenting xy-series
r1491 /*!
Titta Heikkala
Fix Charts documentation...
r2639 \qmltype XYSeries
\instantiates QXYSeries
\inqmlmodule QtCommercial.Chart
Tero Ahola
Documenting xy-series
r1491
Titta Heikkala
Fix documentation paths...
r2650 \include doc/src/xyseries.qdocinc
Tero Ahola
Documenting xy-series
r1491 */
Titta Heikkala
Fix Charts documentation...
r2639 #else
/*!
\qmlclass XYSeries QXYSeries
\include ../doc/src/xyseries.qdocinc
*/
#endif
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)
\brief Signal is emitted when user clicks the \a point on chart.
*/
Tero Ahola
Documenting xy-series
r1491 /*!
\qmlsignal XYSeries::onClicked(QPointF point)
Signal is emitted when user clicks the \a point on chart. For example:
\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
*/
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.
*/
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()
*/
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 */
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)) {
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 }
void QXYSeriesPrivate::initializeAnimations(QtCommercialChart::QChart::AnimationOptions options)
{
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());
for (int i(0); i < m_points.size(); i++) {
QString pointLabel = m_pointLabelsFormat;
Miikka Heikkinen
Added QChart::localizeNumbers...
r2707 pointLabel.replace(xPointTag, presenter()->numberToString(m_points.at(i).x()));
pointLabel.replace(yPointTag, presenter()->numberToString(m_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
QTCOMMERCIALCHART_END_NAMESPACE