##// END OF EJS Templates

File last commit:

r397:e3d058df67ba
r416:b3ab09e85735 merge
Show More
qscatterseries.cpp
298 lines | 6.6 KiB | text/x-c | CppLexer
Tero Ahola
Integrated scatter type series...
r42 #include "qscatterseries.h"
Tero Ahola
Moved scatter impl into a subfolder
r194 #include "scatterseries_p.h"
Tero Ahola
Integrated scatter type series...
r42 #include "qchart.h"
Tero Ahola
Scatter series documentation; now uses snippets
r300 /*!
\class QScatterSeries
\brief QtCommercial Chart series API for showing scatter series.
Tero Ahola
Integrated scatter type series...
r42
Tero Ahola
Scatter series documentation; now uses snippets
r300 \mainclass
Example on how to create a chart with scatter series:
\snippet ../example/scatter/main.cpp 1
The example code would result the following:
\image scatter_example1.jpg
Tero Ahola
Added size customization to QScatterSeries
r397
To customize the graphical representation of the series, you can modify pen, brush, shape and
size of the marker items. For example:
\snippet ../example/scatter/main.cpp 3
Would present your scatter markers as big rectangles with opaque, uglyish green outlines and
opaque red filling instead of the beatiful markers defined by the chart's theme:
\image scatter_example_custom.jpg
Tero Ahola
Scatter series documentation; now uses snippets
r300 */
Tero Ahola
Integrated scatter type series...
r42
Tero Ahola
Documenting QScatterSeries
r261 /*!
\enum QScatterSeries::MarkerShape
This enum describes the shape used when rendering marker items.
\value MarkerShapeDefault
\value MarkerShapeX
\value MarkerShapeRectangle
\value MarkerShapeTiltedRectangle
\value MarkerShapeTriangle
\value MarkerShapeCircle
*/
Tero Ahola
QDoc to use style sheets...
r260 /*!
Tero Ahola
Scatter series documentation; now uses snippets
r300 \fn QChartSeriesType QScatterSeries::type() const
\brief Returns QChartSeries::SeriesTypeScatter.
*/
Tero Ahola
QDoc to use style sheets...
r260
Tero Ahola
Scatter series documentation; now uses snippets
r300 /*!
Tero Ahola
Clicked, remove and clear to QScatterSeries
r394 \fn void QScatterSeries::clicked(QPointF coordinate)
User clicked the scatter series. Note that the \a coordinate is the chart coordinate that the
click occurred on; not necessarily a data point coordinate. To find the corresponding (closest)
data point you can use closestPoint().
Tero Ahola
Scatter series documentation; now uses snippets
r300 */
Tero Ahola
QDoc to use style sheets...
r260
Tero Ahola
Scatter series documentation; now uses snippets
r300 /*!
\fn void QScatterSeries::changed()
\brief TODO
*/
QTCOMMERCIALCHART_BEGIN_NAMESPACE
QScatterSeriesPrivate::QScatterSeriesPrivate() :
m_data(QList<QPointF>()),
Tero Ahola
Fixed drawing issues in Scatter
r375 m_markerPen(QPen(QColor::Invalid)),
m_markerBrush(QBrush(QColor::Invalid)),
Tero Ahola
Added size customization to QScatterSeries
r397 m_markerShape(QScatterSeries::MarkerShapeDefault),
m_markerSize(9.0)
Tero Ahola
Scatter series documentation; now uses snippets
r300 {
}
Tero Ahola
Documenting QScatterSeries
r261 /*!
Constructs a series object which is a child of \a parent.
*/
Tero Ahola
Integrated scatter again. Missing functionality....
r158 QScatterSeries::QScatterSeries(QObject *parent) :
Michal Klocek
Rename QChartSeries to QSeries
r360 QSeries(parent),
Tero Ahola
Integrated scatter again. Missing functionality....
r158 d(new QScatterSeriesPrivate())
Tero Ahola
Integrated scatter type series...
r42 {
}
Tero Ahola
QDoc to use style sheets...
r260 /*!
Tero Ahola
Documenting QScatterSeries
r261 Destroys the object. Note that adding series to QChart transfers the ownership to the chart.
Tero Ahola
QDoc to use style sheets...
r260 */
Tero Ahola
Integrated scatter again. Missing functionality....
r158 QScatterSeries::~QScatterSeries()
Tero Ahola
Integrated scatter type series...
r42 {
Tero Ahola
Integrated scatter again. Missing functionality....
r158 delete d;
Tero Ahola
Resizing of QGraphicItems now possible by resize signal from QChart
r48 }
Tero Ahola
Fixing review findings in QScatterSeries
r358 /*!
Add single data point with \a x and \a y coordinates to the series.
*/
void QScatterSeries::add(qreal x, qreal y)
{
d->m_data.append(QPointF(x, y));
emit changed();
}
Tero Ahola
QDoc to use style sheets...
r260 /*!
Tero Ahola
Scatter series documentation; now uses snippets
r300 Add single data point with \a value to the series.
Tero Ahola
QDoc to use style sheets...
r260 */
Tero Ahola
Fixing review findings in QScatterSeries
r358 void QScatterSeries::add(QPointF value)
Tero Ahola
Refactored series creation with QChart
r61 {
Tero Ahola
added stream operator to scatter series
r180 d->m_data.append(value);
emit changed();
}
Tero Ahola
QDoc to use style sheets...
r260 /*!
Tero Ahola
Scatter series documentation; now uses snippets
r300 Add list of \a points to the series.
*/
Tero Ahola
Fixing review findings in QScatterSeries
r358 void QScatterSeries::add(QList<QPointF> points)
Tero Ahola
Scatter series documentation; now uses snippets
r300 {
Tero Ahola
Fixed stupid build error in QScatterSeries
r301 d->m_data.append(points);
Tero Ahola
Scatter series documentation; now uses snippets
r300 emit changed();
}
Tero Ahola
QDoc to use style sheets...
r260
Tero Ahola
Scatter series documentation; now uses snippets
r300 /*!
Stream operator for adding a data point with \a value to the series.
Tero Ahola
Fixing review findings in QScatterSeries
r358 \sa add()
Tero Ahola
QDoc to use style sheets...
r260
Tero Ahola
Scatter series documentation; now uses snippets
r300 For example:
Tero Ahola
Added size customization to QScatterSeries
r397 \snippet ../example/scatter/main.cpp 2
Tero Ahola
QDoc to use style sheets...
r260 */
Tero Ahola
added stream operator to scatter series
r180 QScatterSeries& QScatterSeries::operator << (const QPointF &value)
{
d->m_data.append(value);
Tero Ahola
Modifying QScatterSeries API
r179 emit changed();
Tero Ahola
added stream operator to scatter series
r180 return *this;
Tero Ahola
Modifying QScatterSeries API
r179 }
Tero Ahola
Integrated scatter again. Missing functionality....
r158
Tero Ahola
QDoc to use style sheets...
r260 /*!
Tero Ahola
Scatter series documentation; now uses snippets
r300 Stream operator for adding a list of points to the series.
Tero Ahola
Fixing review findings in QScatterSeries
r358 \sa add()
Tero Ahola
Scatter series documentation; now uses snippets
r300 */
QScatterSeries& QScatterSeries::operator << (QList<QPointF> value)
{
d->m_data.append(value);
emit changed();
return *this;
}
/*!
Replaces the data of the series with the given list of data \a points.
Tero Ahola
QDoc to use style sheets...
r260 */
Tero Ahola
Scatter series documentation; now uses snippets
r300 void QScatterSeries::setData(QList<QPointF> points)
Tero Ahola
Modifying QScatterSeries API
r179 {
Tero Ahola
Fixed stupid build error in QScatterSeries
r301 d->m_data = points;
Tero Ahola
Integrated scatter again. Missing functionality....
r158 emit changed();
Tero Ahola
Refactored series creation with QChart
r61 }
Tero Ahola
QDoc to use style sheets...
r260 /*!
Tero Ahola
Documenting QScatterSeries
r261 Returns the current list of data points of the series.
Tero Ahola
QDoc to use style sheets...
r260 */
Tero Ahola
Integrated scatter again. Missing functionality....
r158 QList<QPointF> QScatterSeries::data()
Tero Ahola
Draft implementation for setting color themes for a chart
r64 {
Tero Ahola
Integrated scatter again. Missing functionality....
r158 return d->m_data;
Tero Ahola
Draft implementation for setting color themes for a chart
r64 }
Tero Ahola
Clicked, remove and clear to QScatterSeries
r394 /*!
Tero Ahola
Replace to QScatterSeries
r395 Replaces the point at \a index with \a newPoint. Returns true if \a index is a valid position
in the series data, false otherwise.
Tero Ahola
Clicked, remove and clear to QScatterSeries
r394 */
Tero Ahola
Replace to QScatterSeries
r395 bool QScatterSeries::replace(int index, QPointF newPoint)
Tero Ahola
Clicked, remove and clear to QScatterSeries
r394 {
Tero Ahola
Replace to QScatterSeries
r395 if (index >= 0 && index < d->m_data.count()) {
d->m_data.replace(index, newPoint);
emit changed();
return true;
}
return false;
}
/*!
Remove the data point at \a index. Returns true if a point was removed, false if the point
at \a index does not exist on the series.
*/
bool QScatterSeries::removeAt(int index)
{
if (index >=0 && index < d->m_data.count()) {
d->m_data.removeAt(index);
Tero Ahola
Clicked, remove and clear to QScatterSeries
r394 emit changed();
return true;
}
return false;
}
/*!
Remove all occurrences of \a point from the series and returns the number of points removed.
*/
int QScatterSeries::removeAll(QPointF point)
{
int count = d->m_data.removeAll(point);
emit changed();
return count;
}
/*!
Remove all data points from the series.
*/
void QScatterSeries::clear()
{
d->m_data.clear();
emit changed();
}
/*!
Returns the index of the data point that is closest to \a coordinate. If several data points
are at the same distance from the \a coordinate, returns the last one. If no points exist,
returns -1.
*/
int QScatterSeries::closestPoint(QPointF coordinate)
{
qreal distance(-1);
int pointIndex(-1);
for (int i(0); i < d->m_data.count(); i++) {
QPointF dataPoint = d->m_data.at(i);
QPointF difference = dataPoint - coordinate;
if (i == 0 || difference.manhattanLength() <= distance) {
distance = difference.manhattanLength();
pointIndex = i;
}
}
return pointIndex;
}
Tero Ahola
QDoc to use style sheets...
r260 /*!
Tero Ahola
Scatter series documentation; now uses snippets
r300 Overrides the default pen used for drawing a marker item with a user defined \a pen. The
default pen is defined by chart theme setting.
Tero Ahola
Documenting QScatterSeries
r261
Tero Ahola
Fixing review findings in QScatterSeries
r358 \sa setBrush()
Tero Ahola
Scatter series documentation; now uses snippets
r300 \sa QChart::setChartTheme()
Tero Ahola
QDoc to use style sheets...
r260 */
Tero Ahola
Fixing review findings in QScatterSeries
r358 void QScatterSeries::setPen(QPen pen)
Tero Ahola
Color themes now enabled for scatter, pie and line series.
r75 {
Tero Ahola
Modifying QScatterSeries API
r179 d->m_markerPen = pen;
Tero Ahola
Color themes now enabled for scatter, pie and line series.
r75 }
Tero Ahola
QDoc to use style sheets...
r260 /*!
Tero Ahola
Documenting QScatterSeries
r261 Returns the pen used for drawing markers.
Tero Ahola
QDoc to use style sheets...
r260 */
Tero Ahola
Fixing review findings in QScatterSeries
r358 QPen QScatterSeries::pen()
Tero Ahola
Integrated scatter type series...
r42 {
Tero Ahola
Modifying QScatterSeries API
r179 return d->m_markerPen;
Tero Ahola
Integrated scatter type series...
r42 }
Tero Ahola
Documenting QScatterSeries
r261 /*!
Tero Ahola
Scatter series documentation; now uses snippets
r300 Overrides the default brush of the marker items with a user defined \a brush. The default brush
is defined by chart theme setting.
Tero Ahola
Documenting QScatterSeries
r261
Tero Ahola
Fixing review findings in QScatterSeries
r358 \sa setPen()
Tero Ahola
Scatter series documentation; now uses snippets
r300 \sa QChart::setChartTheme()
Tero Ahola
Documenting QScatterSeries
r261 */
Tero Ahola
Fixing review findings in QScatterSeries
r358 void QScatterSeries::setBrush(QBrush brush)
Tero Ahola
Scatter series marker visuals
r195 {
d->m_markerBrush = brush;
}
Tero Ahola
Documenting QScatterSeries
r261 /*!
Returns the brush used for drawing markers.
*/
Tero Ahola
Fixing review findings in QScatterSeries
r358 QBrush QScatterSeries::brush()
Tero Ahola
Scatter series marker visuals
r195 {
return d->m_markerBrush;
}
Tero Ahola
Documenting QScatterSeries
r261 /*!
Tero Ahola
Scatter series documentation; now uses snippets
r300 Overrides the default shape of the marker items with a user defined \a shape. The default shape
is defined by chart theme setting.
Tero Ahola
Documenting QScatterSeries
r261 */
Tero Ahola
Fixing review findings in QScatterSeries
r358 void QScatterSeries::setShape(MarkerShape shape)
Tero Ahola
Scatter series marker visuals
r195 {
d->m_markerShape = shape;
}
Tero Ahola
Documenting QScatterSeries
r261 /*!
Returns the shape used for drawing markers.
*/
Tero Ahola
Fixing review findings in QScatterSeries
r358 QScatterSeries::MarkerShape QScatterSeries::shape()
Tero Ahola
Scatter series marker visuals
r195 {
return (QScatterSeries::MarkerShape) d->m_markerShape;
}
Tero Ahola
Added size customization to QScatterSeries
r397 /*!
Returns the size of the marker items.
*/
qreal QScatterSeries::size()
{
return d->m_markerSize;
}
/*!
Set the \a size of the marker items. The default size is 9.0.
*/
void QScatterSeries::setSize(qreal size)
{
d->m_markerSize = size;
emit changed();
}
Tero Ahola
Integrated scatter type series...
r42 #include "moc_qscatterseries.cpp"
QTCOMMERCIALCHART_END_NAMESPACE