qxyseries.cpp
229 lines
| 4.2 KiB
| text/x-c
|
CppLexer
Michal Klocek
|
r466 | #include "qxyseries.h" | ||
QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||||
/*! | ||||
\class QXYSeries | ||||
Michal Klocek
|
r470 | \brief The QXYSeries class is a base class for line, spline and scatter series. | ||
Michal Klocek
|
r466 | */ | ||
/*! | ||||
\fn QPen QXYSeries::pen() const | ||||
Michal Klocek
|
r480 | \brief Returns pen used to draw points for series. | ||
Michal Klocek
|
r466 | \sa setPen() | ||
*/ | ||||
Michal Klocek
|
r480 | /*! | ||
\fn QBrush QXYSeries::brush() const | ||||
\brief Returns brush used to draw points for series. | ||||
\sa setBrush() | ||||
*/ | ||||
Michal Klocek
|
r466 | /*! | ||
\fn void QXYSeries::pointReplaced(int index) | ||||
\brief \internal \a index | ||||
*/ | ||||
/*! | ||||
\fn void QXYSeries::pointAdded(int index) | ||||
\brief \internal \a index | ||||
*/ | ||||
/*! | ||||
\fn void QXYSeries::pointRemoved(int index) | ||||
\brief \internal \a index | ||||
*/ | ||||
/*! | ||||
\fn void QXYSeries::updated() | ||||
\brief \internal | ||||
*/ | ||||
/*! | ||||
Constructs empty series object which is a child of \a parent. | ||||
When series object is added to QChartView or QChart instance ownerships is transfered. | ||||
*/ | ||||
Michal Klocek
|
r470 | QXYSeries::QXYSeries(QObject* parent):QSeries(parent) | ||
Michal Klocek
|
r466 | { | ||
} | ||||
/*! | ||||
Destroys the object. Series added to QChartView or QChart instances are owned by those, | ||||
and are deleted when mentioned object are destroyed. | ||||
*/ | ||||
QXYSeries::~QXYSeries() | ||||
{ | ||||
} | ||||
/*! | ||||
Adds data point \a x \a y to the series. Points are connected with lines on the chart. | ||||
*/ | ||||
void QXYSeries::add(qreal x,qreal y) | ||||
{ | ||||
Q_ASSERT(m_x.size() == m_y.size()); | ||||
m_x<<x; | ||||
m_y<<y; | ||||
emit pointAdded(m_x.size()-1); | ||||
} | ||||
/*! | ||||
This is an overloaded function. | ||||
Adds data \a point to the series. Points are connected with lines on the chart. | ||||
*/ | ||||
void QXYSeries::add(const QPointF& point) | ||||
{ | ||||
add(point.x(),point.y()); | ||||
} | ||||
Michal Klocek
|
r481 | /*! | ||
This is an overloaded function. | ||||
Adds list of data \a points to the series. Points are connected with lines on the chart. | ||||
*/ | ||||
void QXYSeries::add(const QList<QPointF> points) | ||||
{ | ||||
foreach(const QPointF& point , points) { | ||||
add(point.x(),point.y()); | ||||
} | ||||
} | ||||
Michal Klocek
|
r466 | /*! | ||
Modifies \a y value for given \a x a value. | ||||
*/ | ||||
void QXYSeries::replace(qreal x,qreal y) | ||||
{ | ||||
int index = m_x.indexOf(x); | ||||
m_x[index]=x; | ||||
m_y[index]=y; | ||||
emit pointReplaced(index); | ||||
} | ||||
/*! | ||||
This is an overloaded function. | ||||
Replaces current y value of for given \a point x value with \a point y value. | ||||
*/ | ||||
void QXYSeries::replace(const QPointF& point) | ||||
{ | ||||
replace(point.x(),point.y()); | ||||
} | ||||
/*! | ||||
Removes current \a x and y value. | ||||
*/ | ||||
void QXYSeries::remove(qreal x) | ||||
{ | ||||
int index = m_x.indexOf(x); | ||||
emit pointRemoved(index); | ||||
m_x.remove(index); | ||||
m_y.remove(index); | ||||
} | ||||
/*! | ||||
Removes current \a point x value. Note \a point y value is ignored. | ||||
*/ | ||||
void QXYSeries::remove(const QPointF& point) | ||||
{ | ||||
remove(point.x()); | ||||
} | ||||
/*! | ||||
Michal Klocek
|
r481 | Removes all data points from the series. | ||
Michal Klocek
|
r466 | */ | ||
Michal Klocek
|
r481 | void QXYSeries::removeAll() | ||
Michal Klocek
|
r466 | { | ||
m_x.clear(); | ||||
m_y.clear(); | ||||
} | ||||
/*! | ||||
\internal \a pos | ||||
*/ | ||||
qreal QXYSeries::x(int pos) const | ||||
{ | ||||
return m_x.at(pos); | ||||
} | ||||
/*! | ||||
\internal \a pos | ||||
*/ | ||||
qreal QXYSeries::y(int pos) const | ||||
{ | ||||
return m_y.at(pos); | ||||
} | ||||
/*! | ||||
Returns number of data points within series. | ||||
*/ | ||||
int QXYSeries::count() const | ||||
{ | ||||
Q_ASSERT(m_x.size() == m_y.size()); | ||||
return m_x.size(); | ||||
} | ||||
Tero Ahola
|
r491 | /*! | ||
Returns the data points of the series. | ||||
*/ | ||||
QList<QPointF> QXYSeries::data() | ||||
{ | ||||
QList<QPointF> data; | ||||
for (int i(0); i < m_x.count() && i < m_y.count(); i++) | ||||
data.append(QPointF(m_x.at(i), m_y.at(i))); | ||||
return data; | ||||
} | ||||
Michal Klocek
|
r467 | /*! | ||
Michal Klocek
|
r481 | Sets \a pen used for drawing points on the chart. If the pen is not defined, the | ||
pen from chart theme is used. | ||||
\sa QChart::setChartTheme() | ||||
Michal Klocek
|
r467 | */ | ||
void QXYSeries::setPen(const QPen& pen) | ||||
{ | ||||
if(pen!=m_pen){ | ||||
Michal Klocek
|
r470 | m_pen=pen; | ||
emit updated(); | ||||
Michal Klocek
|
r467 | } | ||
} | ||||
/*! | ||||
Michal Klocek
|
r481 | Sets \a brush used for drawing points on the chart. If the brush is not defined, brush | ||
from chart theme setting is used. | ||||
\sa QChart::setChartTheme() | ||||
Michal Klocek
|
r467 | */ | ||
Michal Klocek
|
r470 | |||
void QXYSeries::setBrush(const QBrush& brush) | ||||
Michal Klocek
|
r467 | { | ||
Michal Klocek
|
r470 | if(brush!=m_brush){ | ||
m_brush=brush; | ||||
emit updated(); | ||||
Michal Klocek
|
r467 | } | ||
} | ||||
Michal Klocek
|
r466 | /*! | ||
Stream operator for adding a data \a point to the series. | ||||
\sa add() | ||||
*/ | ||||
QXYSeries& QXYSeries::operator<< (const QPointF &point) | ||||
{ | ||||
add(point); | ||||
return *this; | ||||
} | ||||
Michal Klocek
|
r481 | /*! | ||
Stream operator for adding a list of \a points to the series. | ||||
\sa add() | ||||
*/ | ||||
QXYSeries& QXYSeries::operator<< (const QList<QPointF> points) | ||||
{ | ||||
add(points); | ||||
return *this; | ||||
} | ||||
Michal Klocek
|
r466 | #include "moc_qxyseries.cpp" | ||
QTCOMMERCIALCHART_END_NAMESPACE | ||||