From c84fc5fb7b13aa8d7d5ef1958c8c1d61696f560e 2012-02-23 13:47:01 From: Jani Honkonen Date: 2012-02-23 13:47:01 Subject: [PATCH] Clear background when there is only pie chart. --- diff --git a/example/piechart/main.cpp b/example/piechart/main.cpp index 74d2315..ebb9058 100644 --- a/example/piechart/main.cpp +++ b/example/piechart/main.cpp @@ -28,9 +28,9 @@ int main(int argc, char *argv[]) QChartView* chartView = new QChartView(&window); chartView->setRenderHint(QPainter::Antialiasing); - chartView->addSeries(series); - chartView->setChartTitle("simple piechart"); chartView->setChartTheme(QChart::ChartThemeIcy); + chartView->setChartTitle("Simple piechart"); + chartView->addSeries(series); window.setCentralWidget(chartView); window.resize(600, 600); diff --git a/src/chartpresenter.cpp b/src/chartpresenter.cpp index 06ea2a1..4d14bce 100644 --- a/src/chartpresenter.cpp +++ b/src/chartpresenter.cpp @@ -159,6 +159,21 @@ void ChartPresenter::handleSeriesAdded(QChartSeries* series) PiePresenter* pie = new PiePresenter(m_chart, s); m_chartTheme->decorate(pie, s, m_chartItems.count()); QObject::connect(this, SIGNAL(geometryChanged(const QRectF&)), pie, SLOT(handleGeometryChanged(const QRectF&))); + + // Hide all from background when there is only piechart + // TODO: refactor this ugly code... should be one setting for this + if (m_chartItems.count() == 0) { + m_chart->axisX()->setAxisVisible(false); + m_chart->axisY()->setAxisVisible(false); + m_chart->axisX()->setGridVisible(false); + m_chart->axisY()->setGridVisible(false); + m_chart->axisX()->setLabelsVisible(false); + m_chart->axisY()->setLabelsVisible(false); + m_chart->axisX()->setShadesVisible(false); + m_chart->axisY()->setShadesVisible(false); + m_chart->setChartBackgroundBrush(Qt::transparent); + } + m_chartItems.insert(series, pie); break; }