charttheme.cpp
142 lines
| 4.4 KiB
| text/x-c
|
CppLexer
/ src / charttheme.cpp
|
r103 | #include "charttheme_p.h" | ||
#include "qchart.h" | ||||
|
r143 | //series | ||
#include "barchartseries.h" | ||||
#include "stackedbarchartseries.h" | ||||
#include "percentbarchartseries.h" | ||||
#include "qxychartseries.h" | ||||
//items | ||||
#include "axisitem_p.h" | ||||
#include "bargroup.h" | ||||
#include "stackedbargroup.h" | ||||
#include "xylinechartitem_p.h" | ||||
#include "percentbargroup.h" | ||||
|
r103 | |||
|
r143 | //themes | ||
#include "chartthemevanilla_p.h" | ||||
#include "chartthemeicy_p.h" | ||||
#include "chartthemegrayscale_p.h" | ||||
#include "chartthemescientific_p.h" | ||||
|
r103 | |||
|
r125 | |||
|
r143 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||
/* TODO | ||||
|
r103 | case QChart::ChartThemeUnnamed1: | ||
|
r108 | m_seriesThemes.append(SeriesTheme(QColor(QRgb(0xff3fa9f5)), 2)); | ||
m_seriesThemes.append(SeriesTheme(QColor(QRgb(0xff7AC943)), 2)); | ||||
m_seriesThemes.append(SeriesTheme(QColor(QRgb(0xffFF931E)), 2)); | ||||
m_seriesThemes.append(SeriesTheme(QColor(QRgb(0xffFF1D25)), 2)); | ||||
m_seriesThemes.append(SeriesTheme(QColor(QRgb(0xffFF7BAC)), 2)); | ||||
|
r103 | |||
m_gradientStartColor = QColor(QRgb(0xfff3dc9e)); | ||||
m_gradientEndColor = QColor(QRgb(0xffafafaf)); | ||||
|
r143 | */ | ||
ChartTheme::ChartTheme() | ||||
{ | ||||
m_seriesColor.append(QRgb(0xff000000)); | ||||
m_seriesColor.append(QRgb(0xff707070)); | ||||
m_gradientStartColor = QColor(QRgb(0xffffffff)); | ||||
m_gradientEndColor = QColor(QRgb(0xffafafaf)); | ||||
} | ||||
ChartTheme* ChartTheme::createTheme(QChart::ChartThemeId theme) | ||||
{ | ||||
switch(theme) { | ||||
case QChart::ChartThemeDefault: | ||||
return new ChartTheme(); | ||||
case QChart::ChartThemeVanilla: | ||||
return new ChartThemeVanilla(); | ||||
case QChart::ChartThemeIcy: | ||||
return new ChartThemeIcy(); | ||||
case QChart::ChartThemeGrayscale: | ||||
return new ChartThemeGrayscale(); | ||||
case QChart::ChartThemeScientific: | ||||
return new ChartThemeScientific(); | ||||
} | ||||
} | ||||
void ChartTheme::decorate(QChart* chart) | ||||
{ | ||||
QLinearGradient backgroundGradient; | ||||
backgroundGradient.setColorAt(0.0, m_gradientStartColor); | ||||
backgroundGradient.setColorAt(1.0, m_gradientEndColor); | ||||
backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode); | ||||
chart->setChartBackgroundBrush(backgroundGradient); | ||||
} | ||||
//TODO helper to by removed later | ||||
void ChartTheme::decorate(ChartItem* item, QChartSeries* series,int count) | ||||
{ | ||||
switch(series->type()) | ||||
{ | ||||
case QChartSeries::SeriesTypeLine: { | ||||
QXYChartSeries* s = static_cast<QXYChartSeries*>(series); | ||||
XYLineChartItem* i = static_cast<XYLineChartItem*>(item); | ||||
decorate(i,s,count); | ||||
break; | ||||
} | ||||
case QChartSeries::SeriesTypeBar: { | ||||
BarChartSeries* b = static_cast<BarChartSeries*>(series); | ||||
BarGroup* i = static_cast<BarGroup*>(item); | ||||
decorate(i,b,count); | ||||
break; | ||||
} | ||||
case QChartSeries::SeriesTypeStackedBar: { | ||||
StackedBarChartSeries* s = static_cast<StackedBarChartSeries*>(series); | ||||
StackedBarGroup* i = static_cast<StackedBarGroup*>(item); | ||||
decorate(i,s,count); | ||||
break; | ||||
} | ||||
case QChartSeries::SeriesTypePercentBar: { | ||||
PercentBarChartSeries* s = static_cast<PercentBarChartSeries*>(series); | ||||
PercentBarGroup* i = static_cast<PercentBarGroup*>(item); | ||||
decorate(i,s,count); | ||||
break; | ||||
} | ||||
default: | ||||
qDebug()<<"Wrong item to be decorated by theme"; | ||||
|
r103 | break; | ||
} | ||||
|
r143 | |||
|
r103 | } | ||
|
r143 | void ChartTheme::decorate(XYLineChartItem* item, QXYChartSeries* series,int count) | ||
|
r103 | { | ||
|
r143 | item->setPen(series->pen()); | ||
|
r103 | } | ||
|
r143 | void ChartTheme::decorate(BarGroup* item, BarChartSeries* series,int count) | ||
|
r108 | { | ||
|
r143 | item->addColor(QColor(255,0,0,128)); | ||
item->addColor(QColor(255,255,0,128)); | ||||
item->addColor(QColor(0,255,0,128)); | ||||
item->addColor(QColor(0,0,255,128)); | ||||
item->addColor(QColor(255,128,0,128)); | ||||
|
r108 | } | ||
|
r143 | void ChartTheme::decorate(StackedBarGroup* item, StackedBarChartSeries* series,int count) | ||
|
r103 | { | ||
|
r143 | // Add some fugly colors for 5 fist series... | ||
item->addColor(QColor(255,0,0,128)); | ||||
item->addColor(QColor(255,255,0,128)); | ||||
item->addColor(QColor(0,255,0,128)); | ||||
item->addColor(QColor(0,0,255,128)); | ||||
item->addColor(QColor(255,128,0,128)); | ||||
|
r103 | } | ||
|
r143 | void ChartTheme::decorate(PercentBarGroup* item, PercentBarChartSeries* series,int count) | ||
{ | ||||
// Add some fugly colors for 5 fist series... | ||||
item->addColor(QColor(255,0,0,128)); | ||||
item->addColor(QColor(255,255,0,128)); | ||||
item->addColor(QColor(0,255,0,128)); | ||||
item->addColor(QColor(0,0,255,128)); | ||||
item->addColor(QColor(255,128,0,128)); | ||||
} | ||||
|
r103 | |||
QTCOMMERCIALCHART_END_NAMESPACE | ||||