diff --git a/demos/chartthemes/main.cpp b/demos/chartthemes/main.cpp index 0a4d37a..e3cc801 100644 --- a/demos/chartthemes/main.cpp +++ b/demos/chartthemes/main.cpp @@ -61,6 +61,7 @@ public: m_themeComboBox->addItem("Icy", QChart::ChartThemeIcy); m_themeComboBox->addItem("Grayscale", QChart::ChartThemeGrayscale); m_themeComboBox->addItem("Scientific", QChart::ChartThemeScientific); + m_themeComboBox->addItem("Blue Cerulean", QChart::ChartThemeBlueCerulean); connect(m_themeComboBox, SIGNAL(currentIndexChanged(int)), this ,SLOT(updateTheme())); baseLayout->addWidget(new QLabel("Theme:"), 0, 0); baseLayout->addWidget(m_themeComboBox, 0, 1); diff --git a/src/charttheme.cpp b/src/charttheme.cpp index 21741d1..20304b6 100644 --- a/src/charttheme.cpp +++ b/src/charttheme.cpp @@ -33,6 +33,7 @@ #include "chartthemeicy_p.h" #include "chartthemegrayscale_p.h" #include "chartthemescientific_p.h" +#include "chartthemebluecerulean_p.h" QTCOMMERCIALCHART_BEGIN_NAMESPACE @@ -55,6 +56,8 @@ ChartTheme* ChartTheme::createTheme(QChart::ChartTheme theme) return new ChartThemeGrayscale(); case QChart::ChartThemeScientific: return new ChartThemeScientific(); + case QChart::ChartThemeBlueCerulean: + return new ChartThemeBlueCerulean(); default: return new ChartThemeDefault(); } @@ -62,7 +65,10 @@ ChartTheme* ChartTheme::createTheme(QChart::ChartTheme theme) void ChartTheme::decorate(QChart* chart) { - chart->setChartBackgroundBrush(m_backgroundGradient); + if (m_backgroundShades == BackgroundShadesNone) + chart->setChartBackgroundBrush(m_backgroundGradient); + else + chart->setChartBackgroundBrush(Qt::NoBrush); chart->setChartTitleFont(m_masterFont); } diff --git a/src/qchart.cpp b/src/qchart.cpp index aaca02c..d360d38 100644 --- a/src/qchart.cpp +++ b/src/qchart.cpp @@ -14,11 +14,13 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE This enum describes the theme used by the chart. - \value ChartThemeDefault + \value ChartThemeDefault Follows the GUI style of the Operating System \value ChartThemeVanilla \value ChartThemeIcy \value ChartThemeGrayscale \value ChartThemeScientific + \value ChartThemeBlueCerulean + \value ChartThemeCount Not really a theme; the total count of themes. */ /*! diff --git a/src/qchart.h b/src/qchart.h index e00bbae..e48907e 100644 --- a/src/qchart.h +++ b/src/qchart.h @@ -31,9 +31,9 @@ public: ChartThemeVanilla, ChartThemeIcy, ChartThemeGrayscale, - ChartThemeScientific - //ChartThemeUnnamed1 - /*! The default theme follows the GUI style of the Operating System */ + ChartThemeScientific, + ChartThemeBlueCerulean, + ChartThemeCount }; enum AnimationOption { diff --git a/src/src.pro b/src/src.pro index c9155ad..d3147b6 100644 --- a/src/src.pro +++ b/src/src.pro @@ -44,7 +44,8 @@ THEMES += themes/chartthemedefault_p.h \ themes/chartthemeicy_p.h \ themes/chartthemegrayscale_p.h \ themes/chartthemescientific_p.h \ - themes/chartthemevanilla_p.h + themes/chartthemevanilla_p.h \ + themes/chartthemebluecerulean_p.h HEADERS += $$PUBLIC_HEADERS HEADERS += $$PRIVATE_HEADERS HEADERS += $$THEMES diff --git a/src/themes/chartthemebluecerulean_p.h b/src/themes/chartthemebluecerulean_p.h new file mode 100644 index 0000000..4976843 --- /dev/null +++ b/src/themes/chartthemebluecerulean_p.h @@ -0,0 +1,36 @@ +#include "charttheme_p.h" + +QTCOMMERCIALCHART_BEGIN_NAMESPACE + +class ChartThemeBlueCerulean: public ChartTheme +{ +public: + ChartThemeBlueCerulean() : ChartTheme(QChart::ChartThemeBlueCerulean) + { + // Series colors + m_seriesColors << QRgb(0xc7e85b); + m_seriesColors << QRgb(0x5dbe9b); + m_seriesColors << QRgb(0x4fbef3); + generateSeriesGradients(); + + // Background + QLinearGradient backgroundGradient; + backgroundGradient.setColorAt(0.0, QRgb(0x056188)); + backgroundGradient.setColorAt(1.0, QRgb(0x101a33)); + backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode); + m_backgroundGradient = backgroundGradient; + + // Axes and other + m_masterFont = QFont(); + m_axisLinePen = QPen(QRgb(0x0f0f0f)); + m_axisLinePen.setWidth(2); + m_axisLabelBrush = QBrush(QRgb(0x3f3f3f)); + m_axisLabelPen = Qt::NoPen; // NoPen for performance reasons + m_backgroundShadesPen = Qt::NoPen; + m_backgroundShades = BackgroundShadesNone; + m_gridLinePen = QPen(QRgb(0x0f0f0f)); + m_gridLinePen.setWidth(2); + } +}; + +QTCOMMERCIALCHART_END_NAMESPACE