##// END OF EJS Templates
New theme with light colors, chartview background
Tero Ahola -
r584:bcc474698f6b
parent child
Show More
@@ -0,0 +1,36
1 #include "charttheme_p.h"
2
3 QTCOMMERCIALCHART_BEGIN_NAMESPACE
4
5 class ChartThemeLight: public ChartTheme
6 {
7 public:
8 ChartThemeLight() : ChartTheme(QChart::ChartThemeLight)
9 {
10 // Series colors
11 m_seriesColors << QRgb(0x1c9dde);
12 m_seriesColors << QRgb(0xf7a015);
13 m_seriesColors << QRgb(0x8dc444);
14 generateSeriesGradients();
15
16 // Background
17 QLinearGradient backgroundGradient;
18 backgroundGradient.setColorAt(0.0, QRgb(0xffffff));
19 backgroundGradient.setColorAt(1.0, QRgb(0xffffff));
20 backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode);
21 m_chartBackgroundGradient = backgroundGradient;
22
23 // Axes and other
24 m_masterFont = QFont();
25 m_axisLinePen = QPen(QRgb(0x424242));
26 m_axisLinePen.setWidth(1);
27 m_axisLabelBrush = QBrush(QRgb(0x424242));
28 m_axisLabelPen = Qt::NoPen; // NoPen for performance reasons
29 m_backgroundShadesPen = Qt::NoPen;
30 m_backgroundShades = BackgroundShadesNone;
31 m_gridLinePen = QPen(QRgb(0x424242));
32 m_gridLinePen.setWidth(1);
33 }
34 };
35
36 QTCOMMERCIALCHART_END_NAMESPACE
@@ -1,5 +1,6
1 #include "charttheme_p.h"
1 #include "charttheme_p.h"
2 #include "qchart.h"
2 #include "qchart.h"
3 #include "qchartview.h"
3 #include "qlegend.h"
4 #include "qlegend.h"
4 #include "qchartaxis.h"
5 #include "qchartaxis.h"
5 #include <QTime>
6 #include <QTime>
@@ -34,6 +35,7
34 #include "chartthemegrayscale_p.h"
35 #include "chartthemegrayscale_p.h"
35 #include "chartthemescientific_p.h"
36 #include "chartthemescientific_p.h"
36 #include "chartthemebluecerulean_p.h"
37 #include "chartthemebluecerulean_p.h"
38 #include "chartthemelight_p.h"
37
39
38
40
39 QTCOMMERCIALCHART_BEGIN_NAMESPACE
41 QTCOMMERCIALCHART_BEGIN_NAMESPACE
@@ -58,6 +60,8 ChartTheme* ChartTheme::createTheme(QChart::ChartTheme theme)
58 return new ChartThemeScientific();
60 return new ChartThemeScientific();
59 case QChart::ChartThemeBlueCerulean:
61 case QChart::ChartThemeBlueCerulean:
60 return new ChartThemeBlueCerulean();
62 return new ChartThemeBlueCerulean();
63 case QChart::ChartThemeLight:
64 return new ChartThemeLight();
61 default:
65 default:
62 return new ChartThemeDefault();
66 return new ChartThemeDefault();
63 }
67 }
@@ -65,16 +69,17 ChartTheme* ChartTheme::createTheme(QChart::ChartTheme theme)
65
69
66 void ChartTheme::decorate(QChart* chart)
70 void ChartTheme::decorate(QChart* chart)
67 {
71 {
68 if (m_backgroundShades == BackgroundShadesNone)
72 if (m_backgroundShades == BackgroundShadesNone) {
69 chart->setChartBackgroundBrush(m_backgroundGradient);
73 chart->setChartBackgroundBrush(m_chartBackgroundGradient);
70 else
74 } else {
71 chart->setChartBackgroundBrush(Qt::NoBrush);
75 chart->setChartBackgroundBrush(Qt::NoBrush);
76 }
72 chart->setChartTitleFont(m_masterFont);
77 chart->setChartTitleFont(m_masterFont);
73 }
78 }
74
79
75 void ChartTheme::decorate(QLegend* legend)
80 void ChartTheme::decorate(QLegend* legend)
76 {
81 {
77 legend->setBackgroundBrush(m_backgroundGradient);
82 legend->setBackgroundBrush(m_chartBackgroundGradient);
78 }
83 }
79
84
80 void ChartTheme::decorate(QAreaSeries* series, int index)
85 void ChartTheme::decorate(QAreaSeries* series, int index)
@@ -210,7 +215,6 void ChartTheme::decorate(QChartAxis* axis,bool axisX)
210 if (axis->isAxisVisible()) {
215 if (axis->isAxisVisible()) {
211 axis->setLabelsBrush(m_axisLabelBrush);
216 axis->setLabelsBrush(m_axisLabelBrush);
212 axis->setLabelsPen(m_axisLabelPen);
217 axis->setLabelsPen(m_axisLabelPen);
213 // TODO: check the axis type (x or y) should define whether to show the shades or not
214 if (m_backgroundShades == BackgroundShadesBoth
218 if (m_backgroundShades == BackgroundShadesBoth
215 || (m_backgroundShades == BackgroundShadesVertical && axisX)
219 || (m_backgroundShades == BackgroundShadesVertical && axisX)
216 || (m_backgroundShades == BackgroundShadesHorizontal && !axisX)) {
220 || (m_backgroundShades == BackgroundShadesHorizontal && !axisX)) {
@@ -64,7 +64,7 protected:
64 QChart::ChartTheme m_id;
64 QChart::ChartTheme m_id;
65 QList<QColor> m_seriesColors;
65 QList<QColor> m_seriesColors;
66 QList<QGradient> m_seriesGradients;
66 QList<QGradient> m_seriesGradients;
67 QLinearGradient m_backgroundGradient;
67 QLinearGradient m_chartBackgroundGradient;
68
68
69 QFont m_masterFont;
69 QFont m_masterFont;
70 QPen m_axisLinePen;
70 QPen m_axisLinePen;
@@ -20,6 +20,7 QTCOMMERCIALCHART_BEGIN_NAMESPACE
20 \value ChartThemeGrayscale
20 \value ChartThemeGrayscale
21 \value ChartThemeScientific
21 \value ChartThemeScientific
22 \value ChartThemeBlueCerulean
22 \value ChartThemeBlueCerulean
23 \value ChartThemeLight
23 \value ChartThemeCount Not really a theme; the total count of themes.
24 \value ChartThemeCount Not really a theme; the total count of themes.
24 */
25 */
25
26
@@ -33,6 +33,7 public:
33 ChartThemeGrayscale,
33 ChartThemeGrayscale,
34 ChartThemeScientific,
34 ChartThemeScientific,
35 ChartThemeBlueCerulean,
35 ChartThemeBlueCerulean,
36 ChartThemeLight,
36 ChartThemeCount
37 ChartThemeCount
37 };
38 };
38
39
@@ -328,6 +328,15 void QChartView::keyPressEvent(QKeyEvent *event)
328 */
328 */
329 void QChartView::setChartTheme(QChart::ChartTheme theme)
329 void QChartView::setChartTheme(QChart::ChartTheme theme)
330 {
330 {
331 if (theme == QChart::ChartThemeBlueCerulean) {
332 QLinearGradient backgroundGradient;
333 backgroundGradient.setColorAt(0.0, QRgb(0x056188));
334 backgroundGradient.setColorAt(1.0, QRgb(0x101a33));
335 backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode);
336 setBackgroundBrush(backgroundGradient);
337 } else {
338 setBackgroundBrush(Qt::NoBrush);
339 }
331 m_chart->setChartTheme(theme);
340 m_chart->setChartTheme(theme);
332 }
341 }
333
342
@@ -385,4 +394,6 void QChartView::scroll(int dx,int dy)
385 m_chart->scroll(dx,dy);
394 m_chart->scroll(dx,dy);
386 }
395 }
387
396
397 #include "moc_qchartview.cpp"
398
388 QTCOMMERCIALCHART_END_NAMESPACE
399 QTCOMMERCIALCHART_END_NAMESPACE
@@ -16,6 +16,8 class QChart;
16
16
17 class QTCOMMERCIALCHART_EXPORT QChartView : public QGraphicsView
17 class QTCOMMERCIALCHART_EXPORT QChartView : public QGraphicsView
18 {
18 {
19 Q_OBJECT
20
19 public:
21 public:
20 enum RubberBandPolicy { NoRubberBand, VerticalRubberBand, HorizonalRubberBand, RectangleRubberBand };
22 enum RubberBandPolicy { NoRubberBand, VerticalRubberBand, HorizonalRubberBand, RectangleRubberBand };
21
23
@@ -64,7 +66,6 protected:
64 void mouseReleaseEvent(QMouseEvent *event);
66 void mouseReleaseEvent(QMouseEvent *event);
65 void keyPressEvent(QKeyEvent *event);
67 void keyPressEvent(QKeyEvent *event);
66
68
67
68 private:
69 private:
69 QGraphicsScene *m_scene;
70 QGraphicsScene *m_scene;
70 QChart* m_chart;
71 QChart* m_chart;
@@ -73,8 +74,6 private:
73 bool m_verticalRubberBand;
74 bool m_verticalRubberBand;
74 bool m_horizonalRubberBand;
75 bool m_horizonalRubberBand;
75 Q_DISABLE_COPY(QChartView)
76 Q_DISABLE_COPY(QChartView)
76
77
78 };
77 };
79
78
80 QTCOMMERCIALCHART_END_NAMESPACE
79 QTCOMMERCIALCHART_END_NAMESPACE
@@ -45,7 +45,9 THEMES += themes/chartthemedefault_p.h \
45 themes/chartthemegrayscale_p.h \
45 themes/chartthemegrayscale_p.h \
46 themes/chartthemescientific_p.h \
46 themes/chartthemescientific_p.h \
47 themes/chartthemevanilla_p.h \
47 themes/chartthemevanilla_p.h \
48 themes/chartthemebluecerulean_p.h
48 themes/chartthemebluecerulean_p.h \
49 themes/chartthemelight_p.h
50
49 HEADERS += $$PUBLIC_HEADERS
51 HEADERS += $$PUBLIC_HEADERS
50 HEADERS += $$PRIVATE_HEADERS
52 HEADERS += $$PRIVATE_HEADERS
51 HEADERS += $$THEMES
53 HEADERS += $$THEMES
@@ -13,23 +13,19 public:
13 m_seriesColors << QRgb(0x4fbef3);
13 m_seriesColors << QRgb(0x4fbef3);
14 generateSeriesGradients();
14 generateSeriesGradients();
15
15
16 // Background
16 // No chart background, chart view specifies a background
17 QLinearGradient backgroundGradient;
17 // TODO: what if the chart is drawn on custom graphics scene instead of QChartView?
18 backgroundGradient.setColorAt(0.0, QRgb(0x056188));
19 backgroundGradient.setColorAt(1.0, QRgb(0x101a33));
20 backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode);
21 m_backgroundGradient = backgroundGradient;
22
18
23 // Axes and other
19 // Axes and other
24 m_masterFont = QFont();
20 m_masterFont = QFont();
25 m_axisLinePen = QPen(QRgb(0x0f0f0f));
21 m_axisLinePen = QPen(QRgb(0xf7f7ff));
26 m_axisLinePen.setWidth(2);
22 m_axisLinePen.setWidth(2);
27 m_axisLabelBrush = QBrush(QRgb(0x3f3f3f));
23 m_axisLabelBrush = QBrush(QRgb(0xf7f7ff));
28 m_axisLabelPen = Qt::NoPen; // NoPen for performance reasons
24 m_axisLabelPen = Qt::NoPen; // NoPen for performance reasons
29 m_backgroundShadesPen = Qt::NoPen;
25 m_backgroundShadesPen = Qt::NoPen;
30 m_backgroundShades = BackgroundShadesNone;
26 m_backgroundShades = BackgroundShadesNone;
31 m_gridLinePen = QPen(QRgb(0x0f0f0f));
27 m_gridLinePen = QPen(QRgb(0xf7f7ff));
32 m_gridLinePen.setWidth(2);
28 m_gridLinePen.setWidth(1);
33 }
29 }
34 };
30 };
35
31
@@ -110,7 +110,7 public:
110 backgroundGradient.setColorAt(0.0, QRgb(0xffffff));
110 backgroundGradient.setColorAt(0.0, QRgb(0xffffff));
111 backgroundGradient.setColorAt(1.0, QRgb(0xe9e9e9));
111 backgroundGradient.setColorAt(1.0, QRgb(0xe9e9e9));
112 backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode);
112 backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode);
113 m_backgroundGradient = backgroundGradient;
113 m_chartBackgroundGradient = backgroundGradient;
114
114
115 // Axes and other
115 // Axes and other
116 m_masterFont = QFont();
116 m_masterFont = QFont();
@@ -19,7 +19,7 public:
19 backgroundGradient.setColorAt(0.0, QRgb(0xffffff));
19 backgroundGradient.setColorAt(0.0, QRgb(0xffffff));
20 backgroundGradient.setColorAt(1.0, QRgb(0xe0e3e5));
20 backgroundGradient.setColorAt(1.0, QRgb(0xe0e3e5));
21 backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode);
21 backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode);
22 m_backgroundGradient = backgroundGradient;
22 m_chartBackgroundGradient = backgroundGradient;
23
23
24 // Axes and other
24 // Axes and other
25 m_masterFont = QFont();
25 m_masterFont = QFont();
@@ -28,6 +28,7 public:
28 m_axisLabelBrush = QBrush(QRgb(0x3f3f3f));
28 m_axisLabelBrush = QBrush(QRgb(0x3f3f3f));
29 m_axisLabelPen = Qt::NoPen; // NoPen for performance reasons
29 m_axisLabelPen = Qt::NoPen; // NoPen for performance reasons
30 m_backgroundShadesPen = Qt::NoPen;
30 m_backgroundShadesPen = Qt::NoPen;
31 m_backgroundShades = BackgroundShadesNone;
31 m_gridLinePen = QPen(QRgb(0x0f0f0f));
32 m_gridLinePen = QPen(QRgb(0x0f0f0f));
32 m_gridLinePen.setWidth(2);
33 m_gridLinePen.setWidth(2);
33 }
34 }
@@ -19,7 +19,7 public:
19 backgroundGradient.setColorAt(0.0, QRgb(0xebebeb));
19 backgroundGradient.setColorAt(0.0, QRgb(0xebebeb));
20 backgroundGradient.setColorAt(1.0, QRgb(0xf8f9fb));
20 backgroundGradient.setColorAt(1.0, QRgb(0xf8f9fb));
21 backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode);
21 backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode);
22 m_backgroundGradient = backgroundGradient;
22 m_chartBackgroundGradient = backgroundGradient;
23
23
24 // Axes and other
24 // Axes and other
25 m_masterFont = QFont();
25 m_masterFont = QFont();
@@ -28,6 +28,7 public:
28 m_axisLabelBrush = QBrush(QRgb(0x3f3f3f));
28 m_axisLabelBrush = QBrush(QRgb(0x3f3f3f));
29 m_axisLabelPen = Qt::NoPen; // NoPen for performance reasons
29 m_axisLabelPen = Qt::NoPen; // NoPen for performance reasons
30 m_backgroundShadesPen = Qt::NoPen;
30 m_backgroundShadesPen = Qt::NoPen;
31 m_backgroundShades = BackgroundShadesNone;
31 m_gridLinePen = QPen(QRgb(0x0f0f0f));
32 m_gridLinePen = QPen(QRgb(0x0f0f0f));
32 m_gridLinePen.setWidth(2);
33 m_gridLinePen.setWidth(2);
33 }
34 }
@@ -19,7 +19,7 public:
19 backgroundGradient.setColorAt(0.0, QRgb(0xfffefc));
19 backgroundGradient.setColorAt(0.0, QRgb(0xfffefc));
20 backgroundGradient.setColorAt(1.0, QRgb(0xfffefc));
20 backgroundGradient.setColorAt(1.0, QRgb(0xfffefc));
21 backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode);
21 backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode);
22 m_backgroundGradient = backgroundGradient;
22 m_chartBackgroundGradient = backgroundGradient;
23
23
24 // Axes and other
24 // Axes and other
25 m_masterFont = QFont();
25 m_masterFont = QFont();
@@ -20,7 +20,7 public:
20 backgroundGradient.setColorAt(0.0, QRgb(0xfbf9f1));
20 backgroundGradient.setColorAt(0.0, QRgb(0xfbf9f1));
21 backgroundGradient.setColorAt(1.0, QRgb(0xf5f0dc));
21 backgroundGradient.setColorAt(1.0, QRgb(0xf5f0dc));
22 backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode);
22 backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode);
23 m_backgroundGradient = backgroundGradient;
23 m_chartBackgroundGradient = backgroundGradient;
24
24
25 // Axes and other
25 // Axes and other
26 m_masterFont = QFont();
26 m_masterFont = QFont();
@@ -29,6 +29,7 public:
29 m_axisLabelBrush = QBrush(QRgb(0xa0a071));
29 m_axisLabelBrush = QBrush(QRgb(0xa0a071));
30 m_axisLabelPen = Qt::NoPen; // NoPen for performance reasons
30 m_axisLabelPen = Qt::NoPen; // NoPen for performance reasons
31 m_backgroundShadesPen = Qt::NoPen;
31 m_backgroundShadesPen = Qt::NoPen;
32 m_backgroundShades = BackgroundShadesNone;
32 m_gridLinePen = QPen(QRgb(0x0f0f0f));
33 m_gridLinePen = QPen(QRgb(0x0f0f0f));
33 m_gridLinePen.setWidth(2);
34 m_gridLinePen.setWidth(2);
34 }
35 }
General Comments 0
You need to be logged in to leave comments. Login now