|
|
#include "charttheme_p.h"
|
|
|
#include "qchart.h"
|
|
|
|
|
|
QTCOMMERCIALCHART_BEGIN_NAMESPACE
|
|
|
|
|
|
void ChartThemeData::setTheme(int theme)
|
|
|
{
|
|
|
m_seriesThemes.clear();
|
|
|
m_seriesIndex = 0;
|
|
|
m_currentTheme = theme;
|
|
|
|
|
|
switch (theme) {
|
|
|
case QChart::ChartThemeDefault:
|
|
|
// line: solid, dashed, dotted
|
|
|
// line width: 1
|
|
|
// line color (and opacity)
|
|
|
// line shadow (on/off)
|
|
|
// marker shape: "x", "o", "."
|
|
|
// TODO: define the default theme based on the OS
|
|
|
m_seriesThemes.append(SeriesTheme(QRgb(0xff000000), 2));
|
|
|
m_seriesThemes.append(SeriesTheme(QRgb(0xff707070), 2));
|
|
|
m_gradientStartColor = QColor(QRgb(0xffffffff));
|
|
|
m_gradientEndColor = QColor(QRgb(0xffafafaf));
|
|
|
break;
|
|
|
case QChart::ChartThemeVanilla:
|
|
|
m_seriesThemes.append(SeriesTheme(QColor(217, 197, 116), 6));
|
|
|
m_seriesThemes.append(SeriesTheme(QColor(214, 168, 150), 4));
|
|
|
m_seriesThemes.append(SeriesTheme(QColor(160, 160, 113), 6));
|
|
|
m_seriesThemes.append(SeriesTheme(QColor(210, 210, 52), 4));
|
|
|
m_seriesThemes.append(SeriesTheme(QColor(136, 114, 58), 6));
|
|
|
|
|
|
m_gradientStartColor = QColor(QRgb(0xff9d844d));
|
|
|
m_gradientEndColor = QColor(QRgb(0xffafafaf));
|
|
|
break;
|
|
|
case QChart::ChartThemeIcy:
|
|
|
m_seriesThemes.append(SeriesTheme(QRgb(0xFF0D2673), 2));
|
|
|
m_seriesThemes.append(SeriesTheme(QRgb(0xFF2685BF), 2));
|
|
|
m_seriesThemes.append(SeriesTheme(QRgb(0xFF3DADD9), 3));
|
|
|
m_seriesThemes.append(SeriesTheme(QRgb(0xFF62C3D9), 2));
|
|
|
|
|
|
m_gradientStartColor = QColor(QRgb(0xffBDE3F2));
|
|
|
m_gradientEndColor = QColor(QRgb(0xffafafaf));
|
|
|
break;
|
|
|
case QChart::ChartThemeGrayscale:
|
|
|
m_seriesThemes.append(SeriesTheme(QRgb(0xFF869299), 2));
|
|
|
m_seriesThemes.append(SeriesTheme(QRgb(0xFFA5BDCC), 2));
|
|
|
m_seriesThemes.append(SeriesTheme(QRgb(0xFFE8FFFC), 3));
|
|
|
m_seriesThemes.append(SeriesTheme(QRgb(0xFFCCC2C2), 2));
|
|
|
|
|
|
m_gradientStartColor = QColor(QRgb(0xffffffff));
|
|
|
m_gradientEndColor = QColor(QRgb(0xffafafaf));
|
|
|
break;
|
|
|
case QChart::ChartThemeScientific:
|
|
|
m_seriesThemes.append(SeriesTheme(QRgb(0xFF000000), 3));
|
|
|
m_seriesThemes.append(SeriesTheme(QRgb(0xFFFFAD00), 2));
|
|
|
m_seriesThemes.append(SeriesTheme(QRgb(0xFF596A75), 2));
|
|
|
m_seriesThemes.append(SeriesTheme(QRgb(0xFF474747), 2));
|
|
|
|
|
|
m_gradientStartColor = QColor(QRgb(0xffafafaf));
|
|
|
m_gradientEndColor = QColor(QRgb(0xffafafaf));
|
|
|
break;
|
|
|
case QChart::ChartThemeUnnamed1:
|
|
|
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));
|
|
|
|
|
|
m_gradientStartColor = QColor(QRgb(0xfff3dc9e));
|
|
|
m_gradientEndColor = QColor(QRgb(0xffafafaf));
|
|
|
break;
|
|
|
default:
|
|
|
Q_ASSERT(false);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
ChartTheme::ChartTheme(QObject *parent) :
|
|
|
QObject(parent),
|
|
|
d(new ChartThemeData())
|
|
|
{
|
|
|
d->m_currentTheme = QChart::ChartThemeInvalid;
|
|
|
d->m_seriesIndex = 0;
|
|
|
}
|
|
|
|
|
|
void ChartTheme::setTheme(int theme)
|
|
|
{
|
|
|
if (theme != d->m_currentTheme) {
|
|
|
d->setTheme(theme);
|
|
|
foreach (ChartThemeObserver *o, d->m_observers)
|
|
|
o->themeChanged(this);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
SeriesTheme ChartTheme::themeForSeries()
|
|
|
{
|
|
|
if (d->m_seriesThemes.count() == 0) {
|
|
|
return SeriesTheme();
|
|
|
} else {
|
|
|
// Get the next available theme for the series; if no more themes available start over
|
|
|
// beginning from the first theme in the list
|
|
|
SeriesTheme nextTheme =
|
|
|
d->m_seriesThemes[d->m_seriesIndex % d->m_seriesThemes.count()];
|
|
|
d->m_seriesIndex++;
|
|
|
return nextTheme;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
#include "moc_charttheme_p.cpp"
|
|
|
|
|
|
QTCOMMERCIALCHART_END_NAMESPACE
|
|
|
|