##// END OF EJS Templates
Adds font charts to chartviewer
Michal Klocek -
r1894:2258c9692f85
parent child
Show More
@@ -0,0 +1,117
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Digia Plc
4 ** All rights reserved.
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 **
7 ** This file is part of the Qt Commercial Charts Add-on.
8 **
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 ** accordance with the Qt Commercial License Agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia.
14 **
15 ** If you have questions regarding the use of this file, please use
16 ** contact form at http://qt.digia.com
17 ** $QT_END_LICENSE$
18 **
19 ****************************************************************************/
20
21 #include "charts.h"
22 #include "qchart.h"
23 #include "qlineseries.h"
24
25 class FontChart: public Chart
26 {
27 public:
28 FontChart(int fontSize):m_fontSize(fontSize){};
29 QString name() { return QObject::tr("Font") + " " + QString::number(m_fontSize); }
30 QString category() { return QObject::tr("Font"); }
31 QString subCategory() { return QString::null; }
32
33 QChart* createChart(const DataTable& table) {
34
35 QChart* chart = new QChart();
36 chart->setTitle("Font size " + QString::number(m_fontSize));
37
38 QString name("Series ");
39 int nameIndex = 0;
40 foreach (DataList list, table) {
41 QLineSeries *series = new QLineSeries(chart);
42 foreach (Data data, list)
43 series->append(data.first);
44 series->setName(name + QString::number(nameIndex));
45 nameIndex++;
46 chart->addSeries(series);
47 }
48
49 chart->createDefaultAxes();
50 QFont font;
51 font.setPixelSize(m_fontSize);
52 chart->setTitleFont(font);
53 chart->axisX()->setLabelsFont(font);
54 chart->axisY()->setLabelsFont(font);
55
56 return chart;
57 }
58
59 private:
60 int m_fontSize;
61
62 };
63
64 class FontChart5:public FontChart{
65 public:
66 FontChart5():FontChart(5){};
67 };
68
69 class FontChart8:public FontChart{
70 public:
71 FontChart8():FontChart(8){};
72 };
73
74 class FontChart10:public FontChart{
75 public:
76 FontChart10():FontChart(10){};
77 };
78
79 class FontChart12:public FontChart{
80 public:
81 FontChart12():FontChart(12){};
82 };
83
84 class FontChart15:public FontChart{
85 public:
86 FontChart15():FontChart(15){};
87 };
88
89 class FontChart18:public FontChart{
90 public:
91 FontChart18():FontChart(18){};
92 };
93
94 class FontChart20:public FontChart{
95 public:
96 FontChart20():FontChart(20){};
97 };
98
99 class FontChart24:public FontChart{
100 public:
101 FontChart24():FontChart(24){};
102 };
103
104 class FontChart28:public FontChart{
105 public:
106 FontChart28():FontChart(28){};
107 };
108
109 DECLARE_CHART(FontChart5);
110 DECLARE_CHART(FontChart8);
111 DECLARE_CHART(FontChart10);
112 DECLARE_CHART(FontChart12);
113 DECLARE_CHART(FontChart15);
114 DECLARE_CHART(FontChart18);
115 DECLARE_CHART(FontChart20);
116 DECLARE_CHART(FontChart24);
117 DECLARE_CHART(FontChart28);
@@ -1,93 +1,93
1 /****************************************************************************
1 /****************************************************************************
2 **
2 **
3 ** Copyright (C) 2012 Digia Plc
3 ** Copyright (C) 2012 Digia Plc
4 ** All rights reserved.
4 ** All rights reserved.
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 **
6 **
7 ** This file is part of the Qt Commercial Charts Add-on.
7 ** This file is part of the Qt Commercial Charts Add-on.
8 **
8 **
9 ** $QT_BEGIN_LICENSE$
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Commercial licenses may use this file in
10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 ** accordance with the Qt Commercial License Agreement provided with the
11 ** accordance with the Qt Commercial License Agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia.
13 ** a written agreement between you and Digia.
14 **
14 **
15 ** If you have questions regarding the use of this file, please use
15 ** If you have questions regarding the use of this file, please use
16 ** contact form at http://qt.digia.com
16 ** contact form at http://qt.digia.com
17 ** $QT_END_LICENSE$
17 ** $QT_END_LICENSE$
18 **
18 **
19 ****************************************************************************/
19 ****************************************************************************/
20
20
21
21
22 #ifndef CHARTS_H
22 #ifndef CHARTS_H
23 #define CHARTS_H
23 #define CHARTS_H
24 #include "model.h"
24 #include "model.h"
25 #include <QList>
25 #include <QList>
26 #include <QString>
26 #include <QString>
27 #include <qchartglobal.h>
27 #include <qchartglobal.h>
28
28
29 QTCOMMERCIALCHART_BEGIN_NAMESPACE
29 QTCOMMERCIALCHART_BEGIN_NAMESPACE
30 class QChart;
30 class QChart;
31 QTCOMMERCIALCHART_END_NAMESPACE
31 QTCOMMERCIALCHART_END_NAMESPACE
32
32
33 QTCOMMERCIALCHART_USE_NAMESPACE
33 QTCOMMERCIALCHART_USE_NAMESPACE
34
34
35 class Chart
35 class Chart
36 {
36 {
37 public:
37 public:
38 virtual ~Chart(){};
38 virtual ~Chart(){};
39 virtual QChart* createChart(const DataTable& table) = 0;
39 virtual QChart* createChart(const DataTable& table) = 0;
40 virtual QString name() = 0;
40 virtual QString name() = 0;
41 virtual QString category() = 0;
41 virtual QString category() = 0;
42 virtual QString subCategory() = 0;
42 virtual QString subCategory() = 0;
43
43
44 };
44 };
45
45
46 namespace Charts
46 namespace Charts
47 {
47 {
48
48
49 typedef QList<Chart*> ChartList;
49 typedef QList<Chart*> ChartList;
50
50
51 inline ChartList& chartList()
51 inline ChartList& chartList()
52 {
52 {
53 static ChartList list;
53 static ChartList list;
54 return list;
54 return list;
55 }
55 }
56
56
57 inline bool findChart(Chart* chart)
57 inline bool findChart(Chart* chart)
58 {
58 {
59 ChartList& list = chartList();
59 ChartList& list = chartList();
60 if (list.contains(chart)) {
60 if (list.contains(chart)) {
61 return true;
61 return true;
62 }
62 }
63 foreach (Chart* item, list) {
63 foreach (Chart* item, list) {
64 if (item->name() == chart->name() && item->category() == chart->category() && item->subCategory() == chart->subCategory()) {
64 if (item->name() == chart->name() && item->category() == chart->category() && item->subCategory() == chart->subCategory()) {
65 return true;
65 return true;
66 }
66 }
67 }
67 }
68 return false;
68 return false;
69 }
69 }
70
70
71 inline void addChart(Chart* chart)
71 inline void addChart(Chart* chart)
72 {
72 {
73 ChartList& list = chartList();
73 ChartList& list = chartList();
74 if (!findChart(chart)) {
74 if (!findChart(chart)) {
75 list.append(chart);
75 list.append(chart);
76 }
76 }
77 }
77 }
78 }
78 }
79
79
80 template <class T>
80 template <class T>
81 class ChartWrapper
81 class ChartWrapper
82 {
82 {
83 public:
83 public:
84 QSharedPointer<T> chart;
84 QSharedPointer<T> chart;
85 ChartWrapper() : chart(new T)
85 ChartWrapper() : chart(new T)
86 {
86 {
87 Charts::addChart(chart.data());
87 Charts::addChart(chart.data());
88 }
88 }
89 };
89 };
90
90
91 #define DECLARE_CHART(chartName) static ChartWrapper<chartName> t;
91 #define DECLARE_CHART(chartName) static ChartWrapper<chartName> chartName;
92
92
93 #endif
93 #endif
@@ -1,15 +1,16
1 INCLUDEPATH += $$PWD
1 INCLUDEPATH += $$PWD
2 DEPENDPATH += $$PWD
2 DEPENDPATH += $$PWD
3 SOURCES += \
3 SOURCES += \
4 font/font.cpp \
4 xyseries/linechart.cpp \
5 xyseries/linechart.cpp \
5 xyseries/scatterchart.cpp \
6 xyseries/scatterchart.cpp \
6 xyseries/splinechart.cpp \
7 xyseries/splinechart.cpp \
7 xyseries/areachart.cpp \
8 xyseries/areachart.cpp \
8 barseries/verticalstackedbarchart.cpp \
9 barseries/verticalstackedbarchart.cpp \
9 barseries/horizontalstackedbarchart.cpp \
10 barseries/horizontalstackedbarchart.cpp \
10 barseries/verticalbarchart.cpp \
11 barseries/verticalbarchart.cpp \
11 barseries/horizontalbarchart.cpp \
12 barseries/horizontalbarchart.cpp \
12 barseries/horizontalpercentbarchart.cpp \
13 barseries/horizontalpercentbarchart.cpp \
13 barseries/verticalpercentbarchart.cpp \
14 barseries/verticalpercentbarchart.cpp \
14 pieseries/piechart.cpp \
15 pieseries/piechart.cpp \
15 pieseries/donutchart.cpp
16 pieseries/donutchart.cpp
General Comments 0
You need to be logged in to leave comments. Login now