From ecdea230fe77cee54ac5e44a03353a3672e63a38 2012-04-05 07:53:38 From: sauimone Date: 2012-04-05 07:53:38 Subject: [PATCH] splitted barchartdrilldown example to separate files --- diff --git a/examples/stackedbarchartdrilldown/drilldownchart.cpp b/examples/stackedbarchartdrilldown/drilldownchart.cpp new file mode 100644 index 0000000..7253f95 --- /dev/null +++ b/examples/stackedbarchartdrilldown/drilldownchart.cpp @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the Qt Commercial Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "drilldownchart.h" +#include + +QTCOMMERCIALCHART_USE_NAMESPACE + +DrilldownChart::DrilldownChart(QGraphicsItem *parent, Qt::WindowFlags wFlags) + : QChart(parent, wFlags) + ,m_currentSeries(0) +{ +} + +void DrilldownChart::changeSeries(QSeries* series) +{ + if (m_currentSeries) + removeSeries(m_currentSeries); + m_currentSeries = series; + addSeries(series); + setTitle(series->name()); + axisY()->setNiceNumbers(true); +} + +void DrilldownChart::handleClicked(QBarSet *barset, QString category, Qt::MouseButtons button) +{ + Q_UNUSED(barset) + Q_UNUSED(button) + DrilldownBarSeries* series = static_cast (sender()); + changeSeries(series->drilldownSeries(category)); +} diff --git a/examples/stackedbarchartdrilldown/drilldownchart.h b/examples/stackedbarchartdrilldown/drilldownchart.h new file mode 100644 index 0000000..fe3b772 --- /dev/null +++ b/examples/stackedbarchartdrilldown/drilldownchart.h @@ -0,0 +1,46 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the Qt Commercial Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef DRILLDOWNCHART_H +#define DRILLDOWNCHART_H + +#include +#include "drilldownseries.h" + +QTCOMMERCIALCHART_USE_NAMESPACE + +//! [2] +class DrilldownChart : public QChart +{ + Q_OBJECT +public: + explicit DrilldownChart(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0); + + void changeSeries(QSeries* series); + +public Q_SLOTS: + void handleClicked(QBarSet *barset, QString category, Qt::MouseButtons button); + +private: + QSeries* m_currentSeries; +}; +//! [2] + +#endif // DRILLDOWNCHART_H diff --git a/examples/stackedbarchartdrilldown/drilldownseries.cpp b/examples/stackedbarchartdrilldown/drilldownseries.cpp new file mode 100644 index 0000000..7d3b174 --- /dev/null +++ b/examples/stackedbarchartdrilldown/drilldownseries.cpp @@ -0,0 +1,40 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the Qt Commercial Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "drilldownseries.h" + +QTCOMMERCIALCHART_USE_NAMESPACE + +DrilldownBarSeries::DrilldownBarSeries(QStringList categories, QObject *parent) + : QStackedBarSeries(categories, parent) +{ +} + +void DrilldownBarSeries::mapDrilldownSeries(QString category, DrilldownBarSeries* drilldownSeries) +{ + mDrilldownSeries[category] = drilldownSeries; +} + +DrilldownBarSeries* DrilldownBarSeries::drilldownSeries(QString category) +{ + return mDrilldownSeries[category]; +} + +#include "moc_drilldownseries.cpp" diff --git a/examples/stackedbarchartdrilldown/drilldownseries.h b/examples/stackedbarchartdrilldown/drilldownseries.h new file mode 100644 index 0000000..78acf9e --- /dev/null +++ b/examples/stackedbarchartdrilldown/drilldownseries.h @@ -0,0 +1,45 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the Qt Commercial Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef DRILLDOWNSERIES_H +#define DRILLDOWNSERIES_H + +#include +#include + +QTCOMMERCIALCHART_USE_NAMESPACE + +//! [1] +class DrilldownBarSeries : public QStackedBarSeries +{ + Q_OBJECT +public: + DrilldownBarSeries(QStringList categories, QObject *parent = 0); + + void mapDrilldownSeries(QString category, DrilldownBarSeries* drilldownSeries); + + DrilldownBarSeries* drilldownSeries(QString category); + +private: + QMap mDrilldownSeries; +}; +//! [1] + +#endif // DRILLDOWNSERIES_H diff --git a/examples/stackedbarchartdrilldown/main.cpp b/examples/stackedbarchartdrilldown/main.cpp index 9e7d175..b5ee936 100644 --- a/examples/stackedbarchartdrilldown/main.cpp +++ b/examples/stackedbarchartdrilldown/main.cpp @@ -21,73 +21,13 @@ #include #include #include -#include #include #include +#include "drilldownseries.h" +#include "drilldownchart.h" QTCOMMERCIALCHART_USE_NAMESPACE -//! [1] -class DrilldownBarSeries : public QStackedBarSeries -{ - Q_OBJECT -public: - DrilldownBarSeries(QStringList categories, QObject *parent = 0) - :QStackedBarSeries(categories, parent) - { - - } - - void mapDrilldownSeries(QString category, DrilldownBarSeries* drilldownSeries) - { - mDrilldownSeries[category] = drilldownSeries; - } - - DrilldownBarSeries* drilldownSeries(QString category) - { - return mDrilldownSeries[category]; - } - -private: - QMap mDrilldownSeries; -}; -//! [1] - -//! [2] -class DrilldownChart : public QChart -{ - Q_OBJECT -public: - explicit DrilldownChart(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0) - :QChart(parent, wFlags), - m_currentSeries(0) - { - - } - - void changeSeries(QSeries* series) - { - if (m_currentSeries) - removeSeries(m_currentSeries); - m_currentSeries = series; - addSeries(series); - setTitle(series->name()); - } - -public Q_SLOTS: - void handleClicked(QBarSet *barset, QString category, Qt::MouseButtons button) - { - Q_UNUSED(barset) - Q_UNUSED(button) - DrilldownBarSeries* series = static_cast (sender()); - changeSeries(series->drilldownSeries(category)); - } - -private: - QSeries* m_currentSeries; -}; -//! [2] - int main(int argc, char *argv[]) { QApplication a(argc, argv); @@ -97,7 +37,7 @@ int main(int argc, char *argv[]) drilldownChart->setTheme(QChart::ChartThemeBlueIcy); drilldownChart->setAnimationOptions(QChart::SeriesAnimations); - //! [3] +//! [3] // Define categories QStringList months; months << "May" << "Jun" << "Jul" << "Aug" << "Sep"; @@ -105,9 +45,9 @@ int main(int argc, char *argv[]) weeks << "week 1" << "week 2" << "week 3" << "week 4"; QStringList plants; plants << "Habanero" << "Lemon Drop" << "Starfish" << "Aji Amarillo"; - //! [3] +//! [3] - //! [4] +//! [4] // Create drilldown structure DrilldownBarSeries* seasonSeries = new DrilldownBarSeries(months, drilldownChart); seasonSeries->setName("Crop by month - Season"); @@ -131,9 +71,9 @@ int main(int argc, char *argv[]) // Enable drilldown from season series using right click. QObject::connect(seasonSeries, SIGNAL(clicked(QBarSet*,QString,Qt::MouseButtons)), drilldownChart, SLOT(handleClicked(QBarSet*,QString,Qt::MouseButtons))); - //! [4] +//! [4] - //! [5] +//! [5] // Fill monthly and weekly series with data foreach (QString plant, plants) { QBarSet* monthlyCrop = new QBarSet(plant); @@ -148,19 +88,20 @@ int main(int argc, char *argv[]) } seasonSeries->appendBarSet(monthlyCrop); } - //! [5] - - seasonSeries->setToolTipEnabled(true); +//! [5] - //! [6] +//! [6] // Show season series in initial view drilldownChart->changeSeries(seasonSeries); drilldownChart->setTitle(seasonSeries->name()); - //! [6] +//! [6] +//! [7] drilldownChart->axisX()->setGridLineVisible(false); + drilldownChart->axisY()->setNiceNumbers(true); drilldownChart->legend()->setVisible(true); drilldownChart->legend()->setAlignmnent(QLegend::AlignmentBottom); +//! [7] QChartView *chartView = new QChartView(drilldownChart); window.setCentralWidget(chartView); @@ -170,4 +111,3 @@ int main(int argc, char *argv[]) return a.exec(); } -#include "main.moc" diff --git a/examples/stackedbarchartdrilldown/stackedbarchartdrilldown.pro b/examples/stackedbarchartdrilldown/stackedbarchartdrilldown.pro index 566fe65..7aea8f7 100644 --- a/examples/stackedbarchartdrilldown/stackedbarchartdrilldown.pro +++ b/examples/stackedbarchartdrilldown/stackedbarchartdrilldown.pro @@ -2,6 +2,6 @@ error( "Couldn't find the examples.pri file!" ) } TARGET = stackedbarchartdrilldown -SOURCES += main.cpp -HEADERS += +SOURCES += main.cpp drilldownseries.cpp drilldownchart.cpp +HEADERS += drilldownseries.h drilldownchart.h