diff options
Diffstat (limited to 'src/charts/linechart/qlineseries.cpp')
-rw-r--r-- | src/charts/linechart/qlineseries.cpp | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/src/charts/linechart/qlineseries.cpp b/src/charts/linechart/qlineseries.cpp new file mode 100644 index 00000000..b4171b9c --- /dev/null +++ b/src/charts/linechart/qlineseries.cpp @@ -0,0 +1,173 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the Qt Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** 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$ +** +****************************************************************************/ + +#include "qlineseries.h" +#include "qlineseries_p.h" +#include "linechartitem_p.h" +#include "chartdataset_p.h" +#include "charttheme_p.h" +#include "qchart_p.h" +QT_CHARTS_BEGIN_NAMESPACE + +/*! + \class QLineSeries + \inmodule Qt Charts + \brief The QLineSeries class is used for making line charts. + + \mainclass + + A line chart is used to show information as a series of data points + connected by straight lines. + + \image examples_linechart.png + + Creating basic line chart is simple: + \code + QLineSeries* series = new QLineSeries(); + series->append(0, 6); + series->append(2, 4); + ... + chart->addSeries(series); + \endcode +*/ +/*! + \qmltype LineSeries + \instantiates QLineSeries + \inqmlmodule QtCharts + + \inherits XYSeries + + \brief The LineSeries type is used for making line charts. + + The following QML shows how to create a simple line chart: + \snippet qmlchart/qml/qmlchart/View2.qml 1 + \beginfloatleft + \image examples_qmlchart2.png + \endfloat + \clearfloat +*/ + +/*! + \fn virtual SeriesType QLineSeries::type() const + \brief Returns type of series. + \sa QAbstractSeries, SeriesType +*/ + +/*! + \qmlproperty real LineSeries::width + The width of the line. By default the width is 2.0. +*/ + +/*! + \qmlproperty Qt::PenStyle LineSeries::style + Controls the style of the line. Set to one of Qt.NoPen, Qt.SolidLine, Qt.DashLine, Qt.DotLine, + Qt.DashDotLine or Qt.DashDotDotLine. Using Qt.CustomDashLine is not supported in the QML API. + By default the style is Qt.SolidLine. +*/ + +/*! + \qmlproperty Qt::PenCapStyle LineSeries::capStyle + Controls the cap style of the line. Set to one of Qt.FlatCap, Qt.SquareCap or Qt.RoundCap. By + default the cap style is Qt.SquareCap. +*/ + +/*! + Constructs empty series object which is a child of \a parent. + When series object is added to QChartView or QChart instance ownerships is transferred. +*/ +QLineSeries::QLineSeries(QObject *parent) + : QXYSeries(*new QLineSeriesPrivate(this), parent) +{ + +} + +/*! + \internal +*/ +QLineSeries::QLineSeries(QLineSeriesPrivate &d, QObject *parent) + : QXYSeries(d, parent) +{ + +} +/*! + Destroys the object. Series added to QChartView or QChart instances are owned by those, + and are deleted when mentioned object are destroyed. +*/ +QLineSeries::~QLineSeries() +{ + Q_D(QLineSeries); + if (d->m_chart) + d->m_chart->removeSeries(this); +} + +QAbstractSeries::SeriesType QLineSeries::type() const +{ + return QAbstractSeries::SeriesTypeLine; +} + +/* +QDebug operator<< (QDebug debug, const QLineSeries series) +{ + Q_ASSERT(series.d_func()->m_x.size() == series.d_func()->m_y.size()); + int size = series.d_func()->m_x.size(); + for (int i=0; i<size; i++) { + debug.nospace() << "(" << series.d_func()->m_x.at(i) << ','<< series.d_func()->m_y.at(i) << ") "; + } + return debug.space(); +} +*/ + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +QLineSeriesPrivate::QLineSeriesPrivate(QLineSeries *q) + : QXYSeriesPrivate(q) +{ + +}; + +void QLineSeriesPrivate::initializeGraphics(QGraphicsItem *parent) +{ + Q_Q(QLineSeries); + LineChartItem *line = new LineChartItem(q,parent); + m_item.reset(line); + QAbstractSeriesPrivate::initializeGraphics(parent); +} + +void QLineSeriesPrivate::initializeTheme(int index, ChartTheme* theme, bool forced) +{ + Q_Q(QLineSeries); + const QList<QColor> colors = theme->seriesColors(); + + if (forced || QChartPrivate::defaultPen() == m_pen) { + QPen pen; + pen.setColor(colors.at(index % colors.size())); + pen.setWidthF(2); + q->setPen(pen); + } + + if (forced || QChartPrivate::defaultPen().color() == m_pointLabelsColor) { + QColor color = theme->labelBrush().color(); + q->setPointLabelsColor(color); + } +} + +#include "moc_qlineseries.cpp" + +QT_CHARTS_END_NAMESPACE |