##// END OF EJS Templates
Refactored series creation.
sauimone -
r62:d89198258a93
parent child
Show More
@@ -0,0 +1,32
1 #include "qchartglobal.h"
2 #include "qchartseries.h"
3
4 #include "barchartseries.h"
5 #include "qxychartseries.h"
6
7 QTCOMMERCIALCHART_BEGIN_NAMESPACE
8
9 QChartSeries* QChartSeries::create(QChartSeriesType type, QObject* parent)
10 {
11 // TODO: Other types
12 switch (type) {
13 case QChartSeries::SeriesTypeLine: {
14 QXYChartSeries* s = QXYChartSeries::create(parent); // TODO: do we need create method for derived implementations?
15 return s;
16 }
17 case QChartSeries::SeriesTypePie: {
18 return 0;
19 }
20 case QChartSeries::SeriesTypeScatter: {
21 return 0;
22 }
23 case QChartSeries::SeriesTypeBar: {
24 BarChartSeries* s = new BarChartSeries(parent);
25 return s;
26 }
27 default:
28 return 0;
29 }
30 }
31
32 QTCOMMERCIALCHART_END_NAMESPACE
@@ -1,14 +1,21
1 1 #include "barchartseries.h"
2 2 QTCOMMERCIALCHART_BEGIN_NAMESPACE
3 3
4 BarChartSeries::BarChartSeries(QList<int> data, QObject *parent)
4 BarChartSeries::BarChartSeries(QObject *parent)
5 5 : QChartSeries(parent)
6 , mData(data)
7 6 {
8 7 }
9 8
9 bool BarChartSeries::setData(QList<int> data)
10 {
11 mData = data;
12 return true;
13 }
14
10 15 int BarChartSeries::min()
11 16 {
17 Q_ASSERT(mData.count() > 0);
18
12 19 // TODO: make min and max members and update them when data changes.
13 20 // This is slower since they are checked every time, even if data is same since previous call.
14 21 int min = mData.at(0);
@@ -23,6 +30,8 int BarChartSeries::min()
23 30
24 31 int BarChartSeries::max()
25 32 {
33 Q_ASSERT(mData.count() > 0);
34
26 35 int max = mData.at(0);
27 36
28 37 for (int i=0; i <mData.count(); i++) {
@@ -10,14 +10,19 QTCOMMERCIALCHART_BEGIN_NAMESPACE
10 10 // Container for series
11 11 class QTCOMMERCIALCHART_EXPORT BarChartSeries : public QChartSeries
12 12 {
13
13 // TODO:
14 // Q_OBJECT
14 15 public:
15 BarChartSeries(QList<int> data, QObject* parent=0);
16 BarChartSeries(QObject* parent=0);
16 17
17 18 // from QChartSeries
18 static QChartSeries* create(QObject* parent = 0 );
19 19 virtual QChartSeriesType type() const { return QChartSeries::SeriesTypeBar; }
20 20
21 virtual bool setData(QList<int> data);
22 virtual bool setData(QList<qreal> data) {return false;}
23 virtual bool setData(QList<qreal> x, QList<qreal> y) {return false;}
24
25
21 26 // Methods to find out minimum and maximum values of data
22 27 int min();
23 28 int max();
@@ -8,7 +8,8 QTCOMMERCIALCHART_BEGIN_NAMESPACE
8 8
9 9 class QTCOMMERCIALCHART_EXPORT QChartSeries : public QObject
10 10 {
11
11 //TODO:
12 //Q_OBJECT
12 13 public:
13 14 enum QChartSeriesType {
14 15 SeriesTypeLine = 0,
@@ -26,7 +27,8 public:
26 27 virtual ~QChartSeries(){};
27 28
28 29 // Factory method
29 static QChartSeries* create(QObject* parent = 0 ){ return 0;}
30 static QChartSeries* create(QChartSeriesType type, QObject* parent = 0 );
31
30 32 // Pure virtual
31 33 virtual QChartSeriesType type() const = 0;
32 34
@@ -25,7 +25,8 SOURCES += \
25 25 axis.cpp \
26 26 qchartwidget.cpp \
27 27 pieslice.cpp \
28 qchartview.cpp
28 qchartview.cpp \
29 qchartseries.cpp
29 30
30 31 PRIVATE_HEADERS += \
31 32 xylinechart/xylinechartitem_p.h \
@@ -10,6 +10,8 QTCOMMERCIALCHART_BEGIN_NAMESPACE
10 10
11 11 class QTCOMMERCIALCHART_EXPORT QXYChartSeries : public QChartSeries
12 12 {
13 //TODO:
14 // Q_OBJECT
13 15 private:
14 16 QXYChartSeries(QObject* parent=0);
15 17 public:
@@ -3,6 +3,7
3 3 #include "qchartseries.h"
4 4 #include "qpieseries.h"
5 5 #include <qxychartseries.h>
6 #include <barchartseries.h>
6 7 #include <QPushButton>
7 8 #include <QComboBox>
8 9 #include <QSpinBox>
@@ -165,6 +166,22 void MainWidget::addSeries(QString series, QString data)
165 166 // TODO
166 167 }
167 168
169 // BarChart
170 if (series == "Bar") {
171 qDebug() << "Bar chart series";
172 QChartSeries* barSeries = QChartSeries::create(QChartSeries::SeriesTypeBar, this);
173 QList<int> barData;
174 barData << 1;
175 barData << 12;
176 barData << 5;
177 barData << 8;
178 barData << 17;
179 barData << 9;
180 barSeries->setData(barData);
181 m_chartWidget->addSeries(barSeries);
182
183 }
184
168 185 setCurrentSeries(newSeries);
169 186 }
170 187
General Comments 0
You need to be logged in to leave comments. Login now