summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--demos/chartthemes/themewidget.cpp25
-rw-r--r--demos/dynamicspline/chart.cpp4
-rw-r--r--examples/barchart/main.cpp1
-rw-r--r--examples/barmodelmapper/tablewidget.cpp6
-rw-r--r--examples/examples.pro2
-rw-r--r--examples/groupedbarchart/main.cpp6
-rw-r--r--examples/legend/mainwidget.cpp2
-rw-r--r--examples/percentbarchart/main.cpp5
-rw-r--r--examples/presenterchart/main.cpp4
-rw-r--r--examples/stackedbarchart/main.cpp6
-rw-r--r--examples/stackedbarchartdrilldown/drilldownchart.cpp9
-rw-r--r--examples/stackedbarchartdrilldown/main.cpp2
-rw-r--r--plugins/declarative/declarativechart.cpp42
-rw-r--r--plugins/declarative/declarativechart.h9
-rw-r--r--plugins/declarative/plugin.cpp3
-rw-r--r--src/axis/axis.pri3
-rw-r--r--src/axis/chartaxis.cpp10
-rw-r--r--src/axis/chartaxis_p.h6
-rw-r--r--src/axis/chartaxisx.cpp5
-rw-r--r--src/axis/chartaxisx_p.h4
-rw-r--r--src/axis/chartaxisy.cpp5
-rw-r--r--src/axis/chartaxisy_p.h4
-rw-r--r--src/axis/qabstractaxis.h15
-rw-r--r--src/axis/qaxis.cpp680
-rw-r--r--src/axis/qaxis.h136
-rw-r--r--src/axis/qaxis_p.h85
-rw-r--r--src/axis/qcategoriesaxis.cpp24
-rw-r--r--src/axis/qcategoriesaxis.h11
-rw-r--r--src/axis/qvaluesaxis.cpp24
-rw-r--r--src/axis/qvaluesaxis.h6
-rw-r--r--src/chartdataset.cpp39
-rw-r--r--src/chartdataset_p.h28
-rw-r--r--src/chartpresenter.cpp10
-rw-r--r--src/chartpresenter_p.h8
-rw-r--r--src/charttheme.cpp4
-rw-r--r--src/charttheme_p.h2
-rw-r--r--src/qchart.cpp26
-rw-r--r--src/qchart.h11
-rw-r--r--src/qchartview.h2
-rw-r--r--tests/auto/auto.pro2
-rw-r--r--tests/auto/chartdataset/tst_chartdataset.cpp4
-rw-r--r--tests/auto/domain/tst_domain.cpp1
-rw-r--r--tests/auto/qchart/tst_qchart.cpp89
-rw-r--r--tests/auto/qchartview/tst_qchartview.cpp13
-rw-r--r--tests/chartwidgettest/mainwidget.cpp17
45 files changed, 313 insertions, 1087 deletions
diff --git a/demos/chartthemes/themewidget.cpp b/demos/chartthemes/themewidget.cpp
index 4afa544a..0fb8391a 100644
--- a/demos/chartthemes/themewidget.cpp
+++ b/demos/chartthemes/themewidget.cpp
@@ -40,6 +40,7 @@
#include <QGroupBox>
#include <QLabel>
#include <QTime>
+#include <QCategoriesAxis>
ThemeWidget::ThemeWidget(QWidget* parent) :
QWidget(parent),
@@ -177,8 +178,8 @@ QComboBox* ThemeWidget::createLegendBox() const
QChart* ThemeWidget::createAreaChart() const
{
QChart *chart = new QChart();
- chart->axisX()->setNiceNumbersEnabled(true);
- chart->axisY()->setNiceNumbersEnabled(true);
+// chart->axisX()->setNiceNumbersEnabled(true);
+// chart->axisY()->setNiceNumbersEnabled(true);
chart->setTitle("Area chart");
// The lower series initialized to zero values
@@ -208,15 +209,16 @@ QChart* ThemeWidget::createAreaChart() const
QChart* ThemeWidget::createBarChart(int valueCount) const
{
QChart* chart = new QChart();
- chart->axisX()->setNiceNumbersEnabled(true);
- chart->axisY()->setNiceNumbersEnabled(true);
+ //TODO: chart->axisX()->setNiceNumbersEnabled(true);
+ //TODO: chart->axisY()->setNiceNumbersEnabled(true);
chart->setTitle("Bar chart");
QStringList categories;
for (int i(0); i < valueCount; i++)
categories << QString::number(i);
- chart->axisX()->categories()->insert(categories);
+ QCategoriesAxis* axis = new QCategoriesAxis();
+ axis->append(categories);
QStackedBarSeries* series = new QStackedBarSeries(chart);
for (int i(0); i < m_dataTable.count(); i++) {
@@ -226,6 +228,7 @@ QChart* ThemeWidget::createBarChart(int valueCount) const
series->append(set);
}
chart->addSeries(series);
+ chart->setAxisX(series,axis);
return chart;
}
@@ -233,8 +236,8 @@ QChart* ThemeWidget::createBarChart(int valueCount) const
QChart* ThemeWidget::createLineChart() const
{
QChart* chart = new QChart();
- chart->axisX()->setNiceNumbersEnabled(true);
- chart->axisY()->setNiceNumbersEnabled(true);
+ //TODO: chart->axisX()->setNiceNumbersEnabled(true);
+ //TODO: chart->axisY()->setNiceNumbersEnabled(true);
chart->setTitle("Line chart");
QString name("Series ");
@@ -279,8 +282,8 @@ QChart* ThemeWidget::createPieChart() const
QChart* ThemeWidget::createSplineChart() const
{ // spine chart
QChart* chart = new QChart();
- chart->axisX()->setNiceNumbersEnabled(true);
- chart->axisY()->setNiceNumbersEnabled(true);
+ //TODO: chart->axisX()->setNiceNumbersEnabled(true);
+ //TODO: chart->axisY()->setNiceNumbersEnabled(true);
chart->setTitle("Spline chart");
QString name("Series ");
int nameIndex = 0;
@@ -298,8 +301,8 @@ QChart* ThemeWidget::createSplineChart() const
QChart* ThemeWidget::createScatterChart() const
{ // scatter chart
QChart* chart = new QChart();
- chart->axisX()->setNiceNumbersEnabled(true);
- chart->axisY()->setNiceNumbersEnabled(true);
+ //TODO: chart->axisX()->setNiceNumbersEnabled(true);
+ //TODO: chart->axisY()->setNiceNumbersEnabled(true);
chart->setTitle("Scatter chart");
QString name("Series ");
int nameIndex = 0;
diff --git a/demos/dynamicspline/chart.cpp b/demos/dynamicspline/chart.cpp
index 3cf045d4..fc50c82c 100644
--- a/demos/dynamicspline/chart.cpp
+++ b/demos/dynamicspline/chart.cpp
@@ -19,7 +19,7 @@
****************************************************************************/
#include "chart.h"
-#include <QAxis>
+#include <QAbstractAxis>
#include <QSplineSeries>
#include <QTime>
@@ -44,7 +44,7 @@ Chart::Chart(QGraphicsItem *parent, Qt::WindowFlags wFlags)
axisY()->setRange(-5, 5);
axisX()->setRange(-9, 1);
- axisX()->setTicksCount(11);
+ //TODO:axisX()->setTicksCount(11);
m_timer.start();
}
diff --git a/examples/barchart/main.cpp b/examples/barchart/main.cpp
index 724d8eea..d0f60f1e 100644
--- a/examples/barchart/main.cpp
+++ b/examples/barchart/main.cpp
@@ -61,7 +61,6 @@ int main(int argc, char *argv[])
//![4]
chart->legend()->setVisible(true);
chart->legend()->setAlignment(Qt::AlignBottom);
- chart->axisY()->setNiceNumbersEnabled(true);
//![4]
//![5]
diff --git a/examples/barmodelmapper/tablewidget.cpp b/examples/barmodelmapper/tablewidget.cpp
index 6727710c..3a30fea1 100644
--- a/examples/barmodelmapper/tablewidget.cpp
+++ b/examples/barmodelmapper/tablewidget.cpp
@@ -30,6 +30,7 @@
#include <QBarSet>
#include <QVBarModelMapper>
#include <QHeaderView>
+#include <QCategoriesAxis>
QTCOMMERCIALCHART_USE_NAMESPACE
@@ -87,8 +88,9 @@ TableWidget::TableWidget(QWidget *parent)
//! [6]
QStringList categories;
categories << "April" << "May" << "June" << "July" << "August";
-
- chart->axisX()->categories()->insert(categories);
+ QCategoriesAxis* axis = new QCategoriesAxis();
+ axis->append(categories);
+ chart->setAxisX(series,axis);
//! [6]
//! [7]
diff --git a/examples/examples.pro b/examples/examples.pro
index 5ceb93a9..8a92c8c2 100644
--- a/examples/examples.pro
+++ b/examples/examples.pro
@@ -7,7 +7,7 @@ TEMPLATE = subdirs
SUBDIRS += \
areachart \
barchart \
- customchart \
+ #customchart \
linechart \
percentbarchart \
piechart \
diff --git a/examples/groupedbarchart/main.cpp b/examples/groupedbarchart/main.cpp
index a31e51c7..264532ef 100644
--- a/examples/groupedbarchart/main.cpp
+++ b/examples/groupedbarchart/main.cpp
@@ -24,6 +24,7 @@
#include <QGroupedBarSeries>
#include <QBarSet>
#include <QLegend>
+#include <QCategoriesAxis>
QTCOMMERCIALCHART_USE_NAMESPACE
@@ -64,13 +65,14 @@ int main(int argc, char *argv[])
//![4]
QStringList categories;
categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
- chart->axisX()->categories()->insert(categories);
+ QCategoriesAxis* axis = new QCategoriesAxis();
+ axis->append(categories);
+ chart->setAxisX(series,axis);
//![4]
//![5]
chart->legend()->setVisible(true);
chart->legend()->setAlignment(Qt::AlignBottom);
- chart->axisY()->setNiceNumbersEnabled(true);
//![5]
//![6]
diff --git a/examples/legend/mainwidget.cpp b/examples/legend/mainwidget.cpp
index cb2ddb5f..9e31f5b0 100644
--- a/examples/legend/mainwidget.cpp
+++ b/examples/legend/mainwidget.cpp
@@ -131,7 +131,7 @@ void MainWidget::createSeries()
m_chart->legend()->setAlignment(Qt::AlignBottom);
//![1]
- m_chart->axisY()->setNiceNumbersEnabled(true);
+ //TODO:m_chart->axisY()->setNiceNumbersEnabled(true);
m_chartView->setRenderHint(QPainter::Antialiasing);
}
diff --git a/examples/percentbarchart/main.cpp b/examples/percentbarchart/main.cpp
index b30d456b..5d95c907 100644
--- a/examples/percentbarchart/main.cpp
+++ b/examples/percentbarchart/main.cpp
@@ -24,6 +24,7 @@
#include <QPercentBarSeries>
#include <QBarSet>
#include <QLegend>
+#include <QCategoriesAxis>
QTCOMMERCIALCHART_USE_NAMESPACE
@@ -63,7 +64,9 @@ int main(int argc, char *argv[])
//![4]
QStringList categories;
categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
- chart->axisX()->categories()->insert(categories);
+ QCategoriesAxis* axis = new QCategoriesAxis();
+ axis->append(categories);
+ chart->setAxisX(series,axis);
//![4]
//![5]
diff --git a/examples/presenterchart/main.cpp b/examples/presenterchart/main.cpp
index 0d14f8b2..024257fa 100644
--- a/examples/presenterchart/main.cpp
+++ b/examples/presenterchart/main.cpp
@@ -27,8 +27,8 @@ int main(int argc, char *argv[])
QApplication a(argc, argv);
QMainWindow window;
QChart* chart = new QChart();
- chart->axisX()->setNiceNumbersEnabled(true);
- chart->axisY()->setNiceNumbersEnabled(true);
+ //TODO: chart->axisX()->setNiceNumbersEnabled(true);
+ //TODO: chart->axisY()->setNiceNumbersEnabled(true);
ChartView chartView(chart,&window);
chartView.setRenderHint(QPainter::Antialiasing);
chart->setAnimationOptions(QChart::SeriesAnimations);
diff --git a/examples/stackedbarchart/main.cpp b/examples/stackedbarchart/main.cpp
index 9cd83384..8f5b5a95 100644
--- a/examples/stackedbarchart/main.cpp
+++ b/examples/stackedbarchart/main.cpp
@@ -24,6 +24,7 @@
#include <QStackedBarSeries>
#include <QBarSet>
#include <QLegend>
+#include <QCategoriesAxis>
QTCOMMERCIALCHART_USE_NAMESPACE
@@ -63,13 +64,14 @@ int main(int argc, char *argv[])
//![4]
QStringList categories;
categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
- chart->axisX()->categories()->insert(categories);
+ QCategoriesAxis* axis = new QCategoriesAxis();
+ axis->append(categories);
+ chart->setAxisX(series,axis);
//![4]
//![5]
chart->legend()->setVisible(true);
chart->legend()->setAlignment(Qt::AlignBottom);
- chart->axisY()->setNiceNumbersEnabled(true);
//![5]
//![6]
diff --git a/examples/stackedbarchartdrilldown/drilldownchart.cpp b/examples/stackedbarchartdrilldown/drilldownchart.cpp
index 4f8838b8..9fd61f0d 100644
--- a/examples/stackedbarchartdrilldown/drilldownchart.cpp
+++ b/examples/stackedbarchartdrilldown/drilldownchart.cpp
@@ -19,7 +19,7 @@
****************************************************************************/
#include "drilldownchart.h"
-#include <QAxis>
+#include <QCategoriesAxis>
QTCOMMERCIALCHART_USE_NAMESPACE
@@ -39,11 +39,12 @@ void DrilldownChart::changeSeries(DrilldownBarSeries *series)
// Reset axis
axisX()->setRange(0,0);
- axisY()->setNiceNumbersEnabled(true);
- axisX()->categories()->clear();
- axisX()->categories()->insert(m_currentSeries->categories());
+ QCategoriesAxis* axis = new QCategoriesAxis();
+ axis->append(m_currentSeries->categories());
addSeries(series);
+ setAxisX(series,axis);
+
setTitle(series->name());
}
diff --git a/examples/stackedbarchartdrilldown/main.cpp b/examples/stackedbarchartdrilldown/main.cpp
index b116f8dc..d05a1576 100644
--- a/examples/stackedbarchartdrilldown/main.cpp
+++ b/examples/stackedbarchartdrilldown/main.cpp
@@ -100,7 +100,7 @@ int main(int argc, char *argv[])
//! [6]
drilldownChart->axisX()->setGridLineVisible(false);
- drilldownChart->axisY()->setNiceNumbersEnabled(true);
+ //TODO: drilldownChart->axisY()->setNiceNumbersEnabled(true);
drilldownChart->legend()->setVisible(true);
drilldownChart->legend()->setAlignment(Qt::AlignBottom);
//! [6]
diff --git a/plugins/declarative/declarativechart.cpp b/plugins/declarative/declarativechart.cpp
index 9709595e..4ee77069 100644
--- a/plugins/declarative/declarativechart.cpp
+++ b/plugins/declarative/declarativechart.cpp
@@ -26,6 +26,7 @@
#include "declarativepieseries.h"
#include "declarativesplineseries.h"
#include "declarativescatterseries.h"
+#include "qcategoriesaxis.h"
QTCOMMERCIALCHART_BEGIN_NAMESPACE
@@ -320,12 +321,12 @@ QString DeclarativeChart::title()
return m_chart->title();
}
-QAxis *DeclarativeChart::axisX()
+QAbstractAxis *DeclarativeChart::axisX()
{
return m_chart->axisX();
}
-QAxis *DeclarativeChart::axisY(QAbstractSeries *series)
+QAbstractAxis *DeclarativeChart::axisY(QAbstractSeries *series)
{
return m_chart->axisY(series);
}
@@ -338,26 +339,43 @@ QLegend *DeclarativeChart::legend()
QVariantList DeclarativeChart::axisXLabels()
{
QVariantList labels;
- foreach (qreal value, m_chart->axisX()->categories()->values()) {
- labels.append(value);
- labels.append(m_chart->axisX()->categories()->label(value));
+
+
+ if(m_chart->axisX()->type()==QAbstractAxis::AxisTypeCategories) {
+
+ QCategoriesAxis* axis = static_cast<QCategoriesAxis*>(m_chart->axisX());
+
+ for(int i=0;i<axis->count();i++){
+ labels.append(i);
+ labels.append(axis->at(i));
+ }
+
}
return labels;
+
}
void DeclarativeChart::setAxisXLabels(QVariantList list)
{
QVariant value(QVariant::Invalid);
- foreach (QVariant element, list) {
- if (value.isValid() && element.type() == QVariant::String) {
- m_chart->axisX()->categories()->insert(value.toDouble(), element.toString());
- value = QVariant(QVariant::Invalid);
- } else {
- if (element.canConvert(QVariant::Double))
+
+ if(m_chart->axisX()->type()==QAbstractAxis::AxisTypeCategories) {
+ QCategoriesAxis* axis = static_cast<QCategoriesAxis*>(m_chart->axisX());
+
+ foreach (QVariant element, list) {
+ if (value.isValid() && element.type() == QVariant::String) {
+ axis->append(element.toString());
+ value = QVariant(QVariant::Invalid);
+ }
+ else {
+ if (element.canConvert(QVariant::Double))
value = element;
+ }
+
}
+ emit axisLabelsChanged();
}
- emit axisLabelsChanged();
+
}
void DeclarativeChart::setTitleColor(QColor color)
diff --git a/plugins/declarative/declarativechart.h b/plugins/declarative/declarativechart.h
index feeab728..6cbf8ad2 100644
--- a/plugins/declarative/declarativechart.h
+++ b/plugins/declarative/declarativechart.h
@@ -24,7 +24,6 @@
#include <QtCore/QtGlobal>
#include <QDeclarativeItem>
#include <qchart.h>
-#include <QAxis>
QTCOMMERCIALCHART_BEGIN_NAMESPACE
@@ -39,8 +38,8 @@ class DeclarativeChart : public QDeclarativeItem
Q_PROPERTY(QString title READ title WRITE setTitle)
Q_PROPERTY(QFont titleFont READ titleFont WRITE setTitleFont)
Q_PROPERTY(QColor titleColor READ titleColor WRITE setTitleColor NOTIFY titleColorChanged)
- Q_PROPERTY(QAxis *axisX READ axisX)
- Q_PROPERTY(QAxis *axisY READ axisY)
+ Q_PROPERTY(QAbstractAxis *axisX READ axisX)
+ Q_PROPERTY(QAbstractAxis *axisY READ axisY)
Q_PROPERTY(QLegend *legend READ legend)
// TODO: how to define axis labels? This is not very convenient
Q_PROPERTY(QVariantList axisXLabels READ axisXLabels WRITE setAxisXLabels NOTIFY axisLabelsChanged)
@@ -103,7 +102,7 @@ public:
DeclarativeChart::Animation animationOptions();
void setTitle(QString title);
QString title();
- QAxis *axisX();
+ QAbstractAxis *axisX();
QLegend *legend();
QVariantList axisXLabels();
void setAxisXLabels(QVariantList list);
@@ -125,7 +124,7 @@ public:
Q_INVOKABLE QAbstractSeries *series(int index);
Q_INVOKABLE QAbstractSeries *series(QString seriesName);
Q_INVOKABLE QAbstractSeries *createSeries(DeclarativeChart::SeriesType type, QString name = "");
- Q_INVOKABLE QAxis *axisY(QAbstractSeries *series = 0);
+ Q_INVOKABLE QAbstractAxis *axisY(QAbstractSeries *series = 0);
Q_INVOKABLE void zoom(qreal factor);
Q_INVOKABLE void scrollLeft(qreal pixels);
Q_INVOKABLE void scrollRight(qreal pixels);
diff --git a/plugins/declarative/plugin.cpp b/plugins/declarative/plugin.cpp
index 587ffbf0..202f4189 100644
--- a/plugins/declarative/plugin.cpp
+++ b/plugins/declarative/plugin.cpp
@@ -21,6 +21,7 @@
#include <QtDeclarative/qdeclarativeextensionplugin.h>
#include <QtDeclarative/qdeclarative.h>
#include "qchart.h"
+#include "qabstractaxis.h"
#include "qaxiscategories.h"
#include "declarativechart.h"
#include "declarativexypoint.h"
@@ -87,7 +88,7 @@ public:
QLatin1String("Trying to create uncreatable: BarModelMapper."));
qmlRegisterUncreatableType<QAbstractSeries>(uri, 1, 0, "AbstractSeries",
QLatin1String("Trying to create uncreatable: AbstractSeries."));
- qmlRegisterUncreatableType<QAxis>(uri, 1, 0, "Axis",
+ qmlRegisterUncreatableType<QAbstractAxis>(uri, 1, 0, "Axis",
QLatin1String("Trying to create uncreatable: Axis."));
qmlRegisterUncreatableType<QPieModelMapper>(uri, 1, 0, "PieModelMapper",
QLatin1String("Trying to create uncreatable: PieModelMapper."));
diff --git a/src/axis/axis.pri b/src/axis/axis.pri
index a9bd4963..9b576437 100644
--- a/src/axis/axis.pri
+++ b/src/axis/axis.pri
@@ -5,7 +5,6 @@ SOURCES += \
$$PWD/chartaxis.cpp \
$$PWD/chartaxisx.cpp \
$$PWD/chartaxisy.cpp \
- $$PWD/qaxis.cpp \
$$PWD/qaxiscategories.cpp \
$$PWD/qcategoriesaxis.cpp \
$$PWD/qvaluesaxis.cpp \
@@ -15,14 +14,12 @@ PRIVATE_HEADERS += \
$$PWD/chartaxis_p.h \
$$PWD/chartaxisx_p.h \
$$PWD/chartaxisy_p.h \
- $$PWD/qaxis_p.h \
$$PWD/qaxiscategories_p.h \
$$PWD/qcategoriesaxis_p.h \
$$PWD/qvaluesaxis_p.h \
$$PWD/qabstractaxis_p.h
PUBLIC_HEADERS += \
- $$PWD/qaxis.h \
$$PWD/qaxiscategories.h \
$$PWD/qcategoriesaxis.h \
$$PWD/qvaluesaxis.h \
diff --git a/src/axis/chartaxis.cpp b/src/axis/chartaxis.cpp
index c5c63cee..8502f50d 100644
--- a/src/axis/chartaxis.cpp
+++ b/src/axis/chartaxis.cpp
@@ -19,8 +19,8 @@
****************************************************************************/
#include "chartaxis_p.h"
-#include "qaxis.h"
-#include "qaxis_p.h"
+#include "qabstractaxis.h"
+#include "qabstractaxis_p.h"
#include "qaxiscategories_p.h"
#include "chartpresenter_p.h"
#include "chartanimator_p.h"
@@ -30,7 +30,7 @@
QTCOMMERCIALCHART_BEGIN_NAMESPACE
-ChartAxis::ChartAxis(QAxis *axis,ChartPresenter *presenter) : Chart(presenter),
+ChartAxis::ChartAxis(QAbstractAxis *axis,ChartPresenter *presenter) : Chart(presenter),
m_chartAxis(axis),
m_labelsAngle(0),
m_grid(new QGraphicsItemGroup(presenter->rootItem())),
@@ -52,7 +52,6 @@ ChartAxis::ChartAxis(QAxis *axis,ChartPresenter *presenter) : Chart(presenter),
m_grid->setZValue(ChartPresenter::GridZValue);
QObject::connect(m_chartAxis->d_ptr.data(),SIGNAL(updated()),this,SLOT(handleAxisUpdated()));
- QObject::connect(m_chartAxis->categories()->d_ptr.data(),SIGNAL(updated()),this,SLOT(handleAxisCategoriesUpdated()));
QGraphicsSimpleTextItem item;
m_font = item.font();
@@ -150,7 +149,8 @@ bool ChartAxis::createLabels(QStringList &labels,qreal min, qreal max,int ticks)
Q_ASSERT(max>min);
Q_ASSERT(ticks>1);
- QAxisCategories* categories = m_chartAxis->categories();
+ //TODO:: QAxisCategories* categories = m_chartAxis->categories();
+ QAxisCategories* categories = new QAxisCategories();
bool category = categories->count()>0;
diff --git a/src/axis/chartaxis_p.h b/src/axis/chartaxis_p.h
index a971bc40..0fa31a5a 100644
--- a/src/axis/chartaxis_p.h
+++ b/src/axis/chartaxis_p.h
@@ -38,7 +38,7 @@
QTCOMMERCIALCHART_BEGIN_NAMESPACE
-class QAxis;
+class QAbstractAxis;
class ChartPresenter;
class ChartAxis : public Chart
@@ -47,7 +47,7 @@ class ChartAxis : public Chart
public:
enum AxisType{ X_AXIS,Y_AXIS };
- ChartAxis(QAxis *axis, ChartPresenter *presenter);
+ ChartAxis(QAbstractAxis *axis, ChartPresenter *presenter);
~ChartAxis();
virtual AxisType axisType() const = 0;
@@ -107,7 +107,7 @@ private:
void axisSelected();
protected:
- QAxis* m_chartAxis;
+ QAbstractAxis* m_chartAxis;
QRectF m_rect;
int m_labelsAngle;
QScopedPointer<QGraphicsItemGroup> m_grid;
diff --git a/src/axis/chartaxisx.cpp b/src/axis/chartaxisx.cpp
index 24b81f37..a33ac14e 100644
--- a/src/axis/chartaxisx.cpp
+++ b/src/axis/chartaxisx.cpp
@@ -19,8 +19,7 @@
****************************************************************************/
#include "chartaxisx_p.h"
-#include "qaxis.h"
-#include "qaxis_p.h"
+#include "qabstractaxis.h"
#include "qaxiscategories_p.h"
#include "chartpresenter_p.h"
#include "chartanimator_p.h"
@@ -32,7 +31,7 @@ static int label_padding = 5;
QTCOMMERCIALCHART_BEGIN_NAMESPACE
-ChartAxisX::ChartAxisX(QAxis *axis,ChartPresenter *presenter) : ChartAxis(axis,presenter)
+ChartAxisX::ChartAxisX(QAbstractAxis *axis,ChartPresenter *presenter) : ChartAxis(axis,presenter)
{
}
diff --git a/src/axis/chartaxisx_p.h b/src/axis/chartaxisx_p.h
index 63b666d3..5e23ce46 100644
--- a/src/axis/chartaxisx_p.h
+++ b/src/axis/chartaxisx_p.h
@@ -34,13 +34,13 @@
QTCOMMERCIALCHART_BEGIN_NAMESPACE
-class QAxis;
+class QAbstractAxis;
class ChartPresenter;
class ChartAxisX : public ChartAxis
{
public:
- ChartAxisX(QAxis *axis, ChartPresenter *presenter);
+ ChartAxisX(QAbstractAxis *axis, ChartPresenter *presenter);
~ChartAxisX();
AxisType axisType() const { return X_AXIS;}
diff --git a/src/axis/chartaxisy.cpp b/src/axis/chartaxisy.cpp
index ae909a31..9020f46a 100644
--- a/src/axis/chartaxisy.cpp
+++ b/src/axis/chartaxisy.cpp
@@ -19,8 +19,7 @@
****************************************************************************/
#include "chartaxisy_p.h"
-#include "qaxis.h"
-#include "qaxis_p.h"
+#include "qabstractaxis.h"
#include "qaxiscategories_p.h"
#include "chartpresenter_p.h"
#include "chartanimator_p.h"
@@ -32,7 +31,7 @@ static int label_padding = 5;
QTCOMMERCIALCHART_BEGIN_NAMESPACE
-ChartAxisY::ChartAxisY(QAxis *axis,ChartPresenter *presenter) : ChartAxis(axis,presenter)
+ChartAxisY::ChartAxisY(QAbstractAxis *axis,ChartPresenter *presenter) : ChartAxis(axis,presenter)
{
}
diff --git a/src/axis/chartaxisy_p.h b/src/axis/chartaxisy_p.h
index d192fa8e..342ede1e 100644
--- a/src/axis/chartaxisy_p.h
+++ b/src/axis/chartaxisy_p.h
@@ -34,13 +34,13 @@
QTCOMMERCIALCHART_BEGIN_NAMESPACE
-class QAxis;
+class QAbstractAxis;
class ChartPresenter;
class ChartAxisY : public ChartAxis
{
public:
- ChartAxisY(QAxis *axis, ChartPresenter *presenter);
+ ChartAxisY(QAbstractAxis *axis, ChartPresenter *presenter);
~ChartAxisY();
AxisType axisType() const { return Y_AXIS;}
diff --git a/src/axis/qabstractaxis.h b/src/axis/qabstractaxis.h
index 0d7dcbc8..a49c39d8 100644
--- a/src/axis/qabstractaxis.h
+++ b/src/axis/qabstractaxis.h
@@ -24,6 +24,7 @@
#include <qchartglobal.h>
#include <QPen>
#include <QFont>
+#include <QVariant>
QTCOMMERCIALCHART_BEGIN_NAMESPACE
@@ -101,7 +102,12 @@ public:
void setShadesBorderColor(QColor color);
QColor shadesBorderColor() const;
- int ticksCount() const;
+ //range handling
+ virtual void setMin(QVariant min) = 0;
+ virtual void setMax(QVariant max) = 0 ;
+ virtual void setRange(QVariant min, QVariant max) = 0;
+
+ virtual int ticksCount() const = 0;
void show();
void hide();
@@ -110,18 +116,17 @@ Q_SIGNALS:
void visibleChanged(bool visible);
void labelsVisibleChanged(bool visible);
void gridVisibleChanged(bool visible);
- void rangeChanged();
void colorChanged(QColor color);
void labelsColorChanged(QColor color);
void shadesVisibleChanged(bool visible);
void shadesColorChanged(QColor color);
void shadesBorderColorChanged(QColor color);
- void minChanged();
- void maxChanged();
protected:
QScopedPointer<QAbstractAxisPrivate> d_ptr;
- Q_DISABLE_COPY(QAbstractAxis)
+ Q_DISABLE_COPY(QAbstractAxis);
+ friend class ChartDataSet;
+ friend class ChartAxis;
};
QTCOMMERCIALCHART_END_NAMESPACE
diff --git a/src/axis/qaxis.cpp b/src/axis/qaxis.cpp
deleted file mode 100644
index 517f1c0e..00000000
--- a/src/axis/qaxis.cpp
+++ /dev/null
@@ -1,680 +0,0 @@
-/****************************************************************************
-**
-** 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 "qaxis.h"
-#include "qaxis_p.h"
-
-QTCOMMERCIALCHART_BEGIN_NAMESPACE
-
-/*!
- \class QAxis
- \brief The QAxis class is used for manipulating chart's axis
- and for adding optional axes to the chart.
- \mainclass
-
- There is only one x Axis, however there can be multiple y axes.
- Each chart series can be bound to exactly one Y axis and the shared common X axis.
- Axis can be setup to show axis line with tick marks, grid lines and shades.
-*/
-
-/*!
- \qmlclass Axis QAxis
- \brief The Axis element is used for manipulating chart's axes
-
- There is only one x Axis, however there can be multiple y axes on a ChartView.
- Each chart series can be bound to exactly one Y axis and the shared common X axis.
- Axis can be setup to show axis line with tick marks, grid lines and shades.
-
- To access Axes you can use ChartView API. For example:
- \code
- ChartView {
- axisX.min: 0
- axisX.max: 3
- axisX.ticksCount: 4
- axisY.min: 0
- axisY.max: 4
- // Add a few series...
- }
- \endcode
-*/
-
-/*!
- \property QAxis::labelsVisible
- Defines if axis labels are visible.
-*/
-/*!
- \qmlproperty bool Axis::labelsVisible
- Defines if axis labels are visible.
-*/
-
-/*!
- \property QAxis::min
- Defines the minimum value on the axis.
-*/
-/*!
- \qmlproperty real Axis::min
- Defines the minimum value on the axis.
-*/
-
-/*!
- \property QAxis::max
- Defines the maximum value on the axis.
-*/
-/*!
- \qmlproperty real Axis::max
- Defines the maximum value on the axis.
-*/
-
-/*!
- \property QAxis::visible
- The visibility of the axis.
-*/
-/*!
- \qmlproperty bool Axis::visible
- The visibility of the axis.
-*/
-
-/*!
- \property QAxis::gridVisible
- The visibility of the grid lines.
-*/
-/*!
- \qmlproperty bool Axis::gridVisible
- The visibility of the grid lines.
-*/
-
-/*!
- \property QAxis::color
- The color of the axis and ticks.
-*/
-/*!
- \qmlproperty color Axis::color
- The color of the axis and ticks.
-*/
-
-/*!
- \property QAxis::labelsFont
- The font of the axis labels.
-*/
-/*!
- \qmlproperty Font Axis::labelsFont
- The font of the axis labels.
-
- See the \l {Font} {QML Font Element} for detailed documentation.
-*/
-
-/*!
- \property QAxis::labelsColor
- The color of the axis labels.
-*/
-/*!
- \qmlproperty color Axis::labelsColor
- The color of the axis labels.
-*/
-
-/*!
- \property QAxis::labelsAngle
- The angle of the axis labels in degrees.
-*/
-/*!
- \qmlproperty int Axis::labelsAngle
- The angle of the axis labels in degrees.
-*/
-
-/*!
- \property QAxis::shadesVisible
- The visibility of the axis shades.
-*/
-/*!
- \qmlproperty bool Axis::shadesVisible
- The visibility of the axis shades.
-*/
-
-/*!
- \property QAxis::shadesColor
- The fill (brush) color of the axis shades.
-*/
-/*!
- \qmlproperty color Axis::shadesColor
- The fill (brush) color of the axis shades.
-*/
-
-/*!
- \property QAxis::shadesBorderColor
- The border (pen) color of the axis shades.
-*/
-/*!
- \qmlproperty color Axis::shadesBorderColor
- The border (pen) color of the axis shades.
-*/
-
-/*!
- \property QAxis::ticksCount
- The number of tick marks for the axis.
-*/
-/*!
- \qmlproperty int Axis::ticksCount
- The number of tick marks for the axis.
-*/
-
-/*!
- \property QAxis::niceNumbersEnabled
- Whether the nice numbers algorithm is enabled or not for the axis.
-*/
-/*!
- \qmlproperty bool Axis::niceNumbersEnabled
- Whether the nice numbers algorithm is enabled or not for the axis.
-*/
-
-/*!
- \fn void QAxis::visibleChanged(bool)
- Visiblity of the axis has changed to \a visible.
-*/
-
-/*!
- \fn void QAxis::labelsVisibleChanged(bool)
- Visiblity of the labels of the axis has changed to \a visible.
-*/
-
-/*!
- \fn void QAxis::gridVisibleChanged(bool)
- Visiblity of the grid lines of the axis has changed to \a visible.
-*/
-
-/*!
- \fn void QAxis::minChanged(qreal min)
- Axis emits signal when \a min of axis has changed.
-*/
-/*!
- \qmlsignal Axis::onMinChanged(real min)
- Axis emits signal when \a min of axis has changed. This may happen for example if you zoom, scroll or
- enable nice numbers algorithm.
-*/
-
-/*!
- \fn void QAxis::maxChanged(qreal max)
- Axis emits signal when \a max of axis has changed.
-*/
-/*!
- \qmlsignal Axis::onMaxChanged(real max)
- Axis emits signal when \a max of axis has changed. This may happen for example if you zoom, scroll or
- enable nice numbers algorithm.
-*/
-
-/*!
- \fn void QAxis::rangeChanged(qreal min, qreal max)
- Axis emits signal when \a min or \a max of axis has changed.
-*/
-/*!
- \qmlsignal Axis::onRangeChanged(real min, real max)
- Axis emits signal when \a min or \a max of axis has changed. This may happen for example if you zoom, scroll or
- enable nice numbers algorithm.
-*/
-
-/*!
- \fn QChartAxisCategories* QAxis::categories()
- Returns pointer to the list of categories which correspond to the values on the axis.
-*/
-
-/*!
- \fn void QAxis::colorChanged(QColor)
- Emitted if the \a color of the axis is changed.
-*/
-
-/*!
- \fn void QAxis::labelsColorChanged(QColor)
- Emitted if the \a color of the axis labels is changed.
-*/
-
-/*!
- \fn void QAxis::shadesVisibleChanged(bool)
- Emitted if the visibility of the axis shades is changed to \a visible.
-*/
-
-/*!
- \fn void QAxis::shadesColorChanged(QColor)
- Emitted if the \a color of the axis shades is changed.
-*/
-
-/*!
- \fn void QAxis::shadesBorderColorChanged(QColor)
- Emitted if the border \a color of the axis shades is changed.
-*/
-
-/*!
- Constructs new axis object which is a child of \a parent. Ownership is taken by
- QChart when axis added.
-*/
-QAxis::QAxis(QObject *parent) : QObject(parent),
-d_ptr(new QAxisPrivate(this))
-{
-
-}
-
-/*!
- Destructor of the axis object. When axis is added to chart, chart object takes ownership.
-*/
-
-QAxis::~QAxis()
-{
-}
-
-/*!
- Sets \a pen used to draw axis line and ticks.
- */
-void QAxis::setAxisPen(const QPen &pen)
-{
- if (d_ptr->m_axisPen!=pen) {
- d_ptr->m_axisPen = pen;
- emit d_ptr->updated();
- }
-}
-
-/*!
- Returns pen used to draw axis and ticks.
-*/
-QPen QAxis::axisPen() const
-{
- return d_ptr->m_axisPen;
-}
-
-void QAxis::setAxisPenColor(QColor color)
-{
- QPen p = d_ptr->m_axisPen;
- if (p.color() != color) {
- p.setColor(color);
- setAxisPen(p);
- emit colorChanged(color);
- }
-}
-
-QColor QAxis::axisPenColor() const
-{
- return d_ptr->m_axisPen.color();
-}
-
-/*!
- Sets if axis and ticks are \a visible.
- */
-void QAxis::setAxisVisible(bool visible)
-{
- if (d_ptr->m_axisVisible != visible) {
- d_ptr->m_axisVisible = visible;
- emit d_ptr->updated();
- emit visibleChanged(visible);
- }
-}
-
-bool QAxis::isAxisVisible() const
-{
- return d_ptr->m_axisVisible;
-}
-
-void QAxis::setGridLineVisible(bool visible)
-{
- if (d_ptr->m_gridLineVisible != visible) {
- d_ptr->m_gridLineVisible = visible;
- emit d_ptr->updated();
- emit gridVisibleChanged(visible);
- }
-}
-
-bool QAxis::isGridLineVisible() const
-{
- return d_ptr->m_gridLineVisible;
-}
-
-/*!
- Sets \a pen used to draw grid line.
-*/
-void QAxis::setGridLinePen(const QPen &pen)
-{
- if (d_ptr->m_gridLinePen != pen) {
- d_ptr->m_gridLinePen = pen;
- emit d_ptr->updated();
- }
-}
-
-/*!
- Returns pen used to draw grid.
-*/
-QPen QAxis::gridLinePen() const
-{
- return d_ptr->m_gridLinePen;
-}
-
-void QAxis::setLabelsVisible(bool visible)
-{
- if (d_ptr->m_labelsVisible != visible) {
- d_ptr->m_labelsVisible = visible;
- emit d_ptr->updated();
- emit labelsVisibleChanged(visible);
- }
-}
-
-bool QAxis::labelsVisible() const
-{
- return d_ptr->m_labelsVisible;
-}
-
-/*!
- Sets \a pen used to draw labels.
-*/
-void QAxis::setLabelsPen(const QPen &pen)
-{
- if (d_ptr->m_labelsPen != pen) {
- d_ptr->m_labelsPen = pen;
- emit d_ptr->updated();
- }
-}
-
-/*!
- Returns the pen used to labels.
-*/
-QPen QAxis::labelsPen() const
-{
- return d_ptr->m_labelsPen;
-}
-
-/*!
- Sets \a brush used to draw labels.
- */
-void QAxis::setLabelsBrush(const QBrush &brush)
-{
- if (d_ptr->m_labelsBrush != brush) {
- d_ptr->m_labelsBrush = brush;
- emit d_ptr->updated();
- }
-}
-
-/*!
- Returns brush used to draw labels.
-*/
-QBrush QAxis::labelsBrush() const
-{
- return d_ptr->m_labelsBrush;
-}
-
-/*!
- Sets \a font used to draw labels.
-*/
-void QAxis::setLabelsFont(const QFont &font)
-{
- if (d_ptr->m_labelsFont != font) {
- d_ptr->m_labelsFont = font;
- emit d_ptr->updated();
- }
-}
-
-/*!
- Returns font used to draw labels.
-*/
-QFont QAxis::labelsFont() const
-{
- return d_ptr->m_labelsFont;
-}
-
-void QAxis::setLabelsAngle(int angle)
-{
- if (d_ptr->m_labelsAngle != angle) {
- d_ptr->m_labelsAngle = angle;
- emit d_ptr->updated();
- }
-}
-
-int QAxis::labelsAngle() const
-{
- return d_ptr->m_labelsAngle;
-}
-
-void QAxis::setLabelsColor(QColor color)
-{
- QBrush b = d_ptr->m_labelsBrush;
- if (b.color() != color) {
- b.setColor(color);
- setLabelsBrush(b);
- emit labelsColorChanged(color);
- }
-}
-
-QColor QAxis::labelsColor() const
-{
- return d_ptr->m_labelsBrush.color();
-}
-
-void QAxis::setShadesVisible(bool visible)
-{
- if (d_ptr->m_shadesVisible != visible) {
- d_ptr->m_shadesVisible = visible;
- emit d_ptr->updated();
- emit shadesVisibleChanged(visible);
- }
-}
-
-bool QAxis::shadesVisible() const
-{
- return d_ptr->m_shadesVisible;
-}
-
-/*!
- Sets \a pen used to draw shades.
-*/
-void QAxis::setShadesPen(const QPen &pen)
-{
- if (d_ptr->m_shadesPen != pen) {
- d_ptr->m_shadesPen = pen;
- emit d_ptr->updated();
- }
-}
-
-/*!
- Returns pen used to draw shades.
-*/
-QPen QAxis::shadesPen() const
-{
- return d_ptr->m_shadesPen;
-}
-
-/*!
- Sets \a brush used to draw shades.
-*/
-void QAxis::setShadesBrush(const QBrush &brush)
-{
- if (d_ptr->m_shadesBrush != brush) {
- d_ptr->m_shadesBrush = brush;
- emit d_ptr->updated();
- emit shadesColorChanged(brush.color());
- }
-}
-
-/*!
- \brief Returns brush used to draw shades.
-*/
-QBrush QAxis::shadesBrush() const
-{
- return d_ptr->m_shadesBrush;
-}
-
-void QAxis::setShadesColor(QColor color)
-{
- QBrush b = d_ptr->m_shadesBrush;
- b.setColor(color);
- setShadesBrush(b);
-}
-
-QColor QAxis::shadesColor() const
-{
- return d_ptr->m_shadesBrush.color();
-}
-
-void QAxis::setShadesBorderColor(QColor color)
-{
- QPen p = d_ptr->m_shadesPen;
- p.setColor(color);
- setShadesPen(p);
-}
-
-QColor QAxis::shadesBorderColor() const
-{
- return d_ptr->m_shadesPen.color();
-}
-
-void QAxis::setMin(qreal min)
-{
- setRange(min,d_ptr->m_max);
-}
-
-qreal QAxis::min() const
-{
- return d_ptr->m_min;
-}
-
-void QAxis::setMax(qreal max)
-{
- setRange(d_ptr->m_min,max);
-}
-
-qreal QAxis::max() const
-{
- return d_ptr->m_max;
-}
-
-/*!
- Sets range from \a min to \a max on the axis.
-*/
-void QAxis::setRange(qreal min, qreal max)
-{
- bool changed = false;
- if (!qFuzzyIsNull(d_ptr->m_min - min)) {
- d_ptr->m_min = min;
- changed = true;
- emit minChanged(min);
- }
-
- if (!qFuzzyIsNull(d_ptr->m_max - max)) {
- d_ptr->m_max = max;
- changed = true;
- emit maxChanged(max);
- }
-
- if (changed) {
- emit rangeChanged(d_ptr->m_min,d_ptr->m_max);
- emit d_ptr->changed(d_ptr->m_min, d_ptr->m_max, d_ptr->m_ticksCount, d_ptr->m_niceNumbers);
- }
-}
-
-/*!
- Sets \a count for ticks on the axis.
-*/
-void QAxis::setTicksCount(int count)
-{
- if (d_ptr->m_ticksCount != count) {
- d_ptr->m_ticksCount = count;
- emit d_ptr->changed(d_ptr->m_min, d_ptr->m_max, d_ptr->m_ticksCount, d_ptr->m_niceNumbers);
- }
-}
-
-/*!
- \fn int QAxis::ticksCount() const
- Return number of ticks on the axis
-*/
-int QAxis::ticksCount() const
-{
- return d_ptr->m_ticksCount;
-}
-
-/*!
- Sets axis, shades, labels and grid lines to be visible.
-*/
-void QAxis::show()
-{
- d_ptr->m_axisVisible=true;
- d_ptr->m_gridLineVisible=true;
- d_ptr->m_labelsVisible=true;
- d_ptr->m_shadesVisible=true;
- emit d_ptr->updated();
-}
-
-/*!
- Sets axis, shades, labels and grid lines to not be visible.
-*/
-void QAxis::hide()
-{
- d_ptr->m_axisVisible = false;
- d_ptr->m_gridLineVisible = false;
- d_ptr->m_labelsVisible = false;
- d_ptr->m_shadesVisible = false;
- emit d_ptr->updated();
-}
-
-void QAxis::setNiceNumbersEnabled(bool enable)
-{
- if (d_ptr->m_niceNumbers != enable){
- d_ptr->m_niceNumbers = enable;
- emit d_ptr->changed(d_ptr->m_min, d_ptr->m_max, d_ptr->m_ticksCount, d_ptr->m_niceNumbers);
- }
-}
-
-bool QAxis::niceNumbersEnabled() const
-{
- return d_ptr->m_niceNumbers;
-}
-
-QAxisCategories* QAxis::categories()
-{
- return &d_ptr->m_category;
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-QAxisPrivate::QAxisPrivate(QAxis* q):
- q_ptr(q),
- m_axisVisible(true),
- m_gridLineVisible(true),
- m_labelsVisible(true),
- m_labelsAngle(0),
- m_shadesVisible(false),
- m_shadesBrush(Qt::SolidPattern),
- m_shadesOpacity(1.0),
- m_min(0),
- m_max(0),
- m_ticksCount(5),
- m_niceNumbers(false)
-{
-
-}
-
-QAxisPrivate::~QAxisPrivate()
-{
-
-}
-
-void QAxisPrivate::handleAxisRangeChanged(qreal min, qreal max,int count)
-{
- q_ptr->setRange(min,max);
- q_ptr->setTicksCount(count);
-}
-
-QTCOMMERCIALCHART_END_NAMESPACE
-
-QTCOMMERCIALCHART_USE_NAMESPACE
-
-#include "moc_qaxis.cpp"
-#include "moc_qaxis_p.cpp"
diff --git a/src/axis/qaxis.h b/src/axis/qaxis.h
deleted file mode 100644
index 0bbedbbc..00000000
--- a/src/axis/qaxis.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/****************************************************************************
-**
-** 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 QAXIS_H
-#define QAXIS_H
-
-#include <qchartglobal.h>
-#include <qaxiscategories.h>
-#include <QPen>
-#include <QFont>
-
-QTCOMMERCIALCHART_BEGIN_NAMESPACE
-
-class QAxisPrivate;
-
-class QTCOMMERCIALCHART_EXPORT QAxis : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(bool visible READ isAxisVisible WRITE setAxisVisible NOTIFY visibleChanged)
- Q_PROPERTY(QColor color READ axisPenColor WRITE setAxisPenColor NOTIFY colorChanged)
- Q_PROPERTY(bool labelsVisible READ labelsVisible WRITE setLabelsVisible NOTIFY labelsVisibleChanged)
- Q_PROPERTY(int labelsAngle READ labelsAngle WRITE setLabelsAngle)
- Q_PROPERTY(QFont labelsFont READ labelsFont WRITE setLabelsFont)
- Q_PROPERTY(QColor labelsColor READ labelsColor WRITE setLabelsColor NOTIFY labelsColorChanged)
- Q_PROPERTY(bool gridVisible READ isGridLineVisible WRITE setGridLineVisible NOTIFY gridVisibleChanged)
- Q_PROPERTY(bool shadesVisible READ shadesVisible WRITE setShadesVisible NOTIFY shadesVisibleChanged)
- Q_PROPERTY(QColor shadesColor READ shadesColor WRITE setShadesColor NOTIFY shadesColorChanged)
- Q_PROPERTY(QColor shadesBorderColor READ shadesBorderColor WRITE setShadesBorderColor NOTIFY shadesBorderColorChanged)
- Q_PROPERTY(qreal min READ min WRITE setMin NOTIFY minChanged)
- Q_PROPERTY(qreal max READ max WRITE setMax NOTIFY maxChanged)
- Q_PROPERTY(int ticksCount READ ticksCount WRITE setTicksCount)
- Q_PROPERTY(bool niceNumbersEnabled READ niceNumbersEnabled WRITE setNiceNumbersEnabled)
-
-public:
-
- QAxis(QObject *parent =0);
- ~QAxis();
-
- //axis handling
- bool isAxisVisible() const;
- void setAxisVisible(bool visible = true);
- void setAxisPen(const QPen &pen);
- QPen axisPen() const;
- void setAxisPenColor(QColor color);
- QColor axisPenColor() const;
-
- //grid handling
- bool isGridLineVisible() const;
- void setGridLineVisible(bool visible = true);
- void setGridLinePen(const QPen &pen);
- QPen gridLinePen() const;
-
- //labels handling
- bool labelsVisible() const;
- void setLabelsVisible(bool visible = true);
- void setLabelsPen(const QPen &pen);
- QPen labelsPen() const;
- void setLabelsBrush(const QBrush &brush);
- QBrush labelsBrush() const;
- void setLabelsFont(const QFont &font);
- QFont labelsFont() const;
- void setLabelsAngle(int angle);
- int labelsAngle() const;
- void setLabelsColor(QColor color);
- QColor labelsColor() const;
-
- //shades handling
- bool shadesVisible() const;
- void setShadesVisible(bool visible = true);
- void setShadesPen(const QPen &pen);
- QPen shadesPen() const;
- void setShadesBrush(const QBrush &brush);
- QBrush shadesBrush() const;
- void setShadesColor(QColor color);
- QColor shadesColor() const;
- void setShadesBorderColor(QColor color);
- QColor shadesBorderColor() const;
-
- //range handling
- void setMin(qreal min);
- qreal min() const;
- void setMax(qreal max);
- qreal max() const;
- void setRange(qreal min, qreal max);
-
- //ticks handling
- void setTicksCount(int count);
- int ticksCount() const;
-
- void setNiceNumbersEnabled(bool enable = true);
- bool niceNumbersEnabled() const;
-
- QAxisCategories* categories();
-
- void show();
- void hide();
-
-Q_SIGNALS:
- void visibleChanged(bool visible);
- void labelsVisibleChanged(bool visible);
- void gridVisibleChanged(bool visible);
- void rangeChanged(qreal min, qreal max);
- void colorChanged(QColor color);
- void labelsColorChanged(QColor color);
- void shadesVisibleChanged(bool visible);
- void shadesColorChanged(QColor color);
- void shadesBorderColorChanged(QColor color);
- void minChanged(qreal min);
- void maxChanged(qreal max);
-
-private:
- QScopedPointer<QAxisPrivate> d_ptr;
- Q_DISABLE_COPY(QAxis)
- friend class ChartDataSet;
- friend class ChartAxis;
-};
-
-QTCOMMERCIALCHART_END_NAMESPACE
-#endif /* QCHARTAXIS_H_ */
diff --git a/src/axis/qaxis_p.h b/src/axis/qaxis_p.h
deleted file mode 100644
index df7869d7..00000000
--- a/src/axis/qaxis_p.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** 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$
-**
-****************************************************************************/
-
-// W A R N I N G
-// -------------
-//
-// This file is not part of the QtCommercial Chart API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-
-#ifndef QAXIS_P_H
-#define QAXIS_P_H
-
-#include "qaxis.h"
-
-QTCOMMERCIALCHART_BEGIN_NAMESPACE
-
-class QAxisPrivate : public QObject
-{
- Q_OBJECT
-public:
- QAxisPrivate(QAxis *q);
- ~QAxisPrivate();
-
-Q_SIGNALS:
- void updated();
- void changed(qreal min, qreal max, int tickCount,bool niceNumbers);
-
-public Q_SLOTS:
- void handleAxisRangeChanged(qreal min, qreal max,int count);
-
-private:
- QAxis *q_ptr;
-
- bool m_axisVisible;
- QPen m_axisPen;
- QBrush m_axisBrush;
-
- bool m_gridLineVisible;
- QPen m_gridLinePen;
-
- bool m_labelsVisible;
- QPen m_labelsPen;
- QBrush m_labelsBrush;
- QFont m_labelsFont;
- int m_labelsAngle;
-
- bool m_shadesVisible;
- QPen m_shadesPen;
- QBrush m_shadesBrush;
- qreal m_shadesOpacity;
-
- qreal m_min;
- qreal m_max;
-
- int m_ticksCount;
- QAxisCategories m_category;
-
- bool m_niceNumbers;
-
- friend class QAxis;
-};
-
-QTCOMMERCIALCHART_END_NAMESPACE
-
-#endif
diff --git a/src/axis/qcategoriesaxis.cpp b/src/axis/qcategoriesaxis.cpp
index 12f3c304..e331638d 100644
--- a/src/axis/qcategoriesaxis.cpp
+++ b/src/axis/qcategoriesaxis.cpp
@@ -42,7 +42,7 @@ QCategoriesAxis::QCategoriesAxis(QCategoriesAxisPrivate &d,QObject *parent):QAbs
/*!
Appends \a categories to axis
*/
-void QCategoriesAxis::append(QStringList &categories)
+void QCategoriesAxis::append(const QStringList &categories)
{
Q_D(QCategoriesAxis);
d->m_categories.append(categories);
@@ -94,9 +94,9 @@ void QCategoriesAxis::clear()
/*!
Returns number of categories.
*/
-int QCategoriesAxis::count()
+int QCategoriesAxis::count() const
{
- Q_D(QCategoriesAxis);
+ Q_D(const QCategoriesAxis);
return d->m_categories.count();
}
@@ -153,7 +153,25 @@ QAbstractAxis::AxisType QCategoriesAxis::type() const
return AxisTypeCategories;
}
+void QCategoriesAxis::setMin(QVariant min)
+{
+ setMin(min.toString());
+}
+
+void QCategoriesAxis::setMax(QVariant max)
+{
+ setMax(max.toString());
+}
+
+void QCategoriesAxis::setRange(QVariant min, QVariant max)
+{
+ setRange(min.toString(),max.toString());
+}
+int QCategoriesAxis::ticksCount() const
+{
+ return count();
+}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
QCategoriesAxisPrivate::QCategoriesAxisPrivate(QCategoriesAxis* q):
diff --git a/src/axis/qcategoriesaxis.h b/src/axis/qcategoriesaxis.h
index 94575970..9774e263 100644
--- a/src/axis/qcategoriesaxis.h
+++ b/src/axis/qcategoriesaxis.h
@@ -40,12 +40,12 @@ protected:
public:
AxisType type() const;
- void append(QStringList &categories);
+ void append(const QStringList &categories);
void append(const QString &category);
void remove(const QString &category);
void insert(int index, const QString &category);
void clear();
- int count();
+ int count() const;
QString at(int index) const;
@@ -54,6 +54,13 @@ public:
void setMax(QString maxCategory);
void setRange(QString minCategory, QString maxCategory);
+private:
+ //range handling
+ void setMin(QVariant min);
+ void setMax(QVariant max);
+ void setRange(QVariant min, QVariant max);
+ int ticksCount() const;
+
Q_SIGNALS:
void categoriesChanged();
diff --git a/src/axis/qvaluesaxis.cpp b/src/axis/qvaluesaxis.cpp
index 17d233a8..f39e63b2 100644
--- a/src/axis/qvaluesaxis.cpp
+++ b/src/axis/qvaluesaxis.cpp
@@ -130,6 +130,30 @@ QAbstractAxis::AxisType QValuesAxis::type() const
return AxisTypeValues;
}
+void QValuesAxis::setMin(QVariant min)
+{
+ bool ok;
+ qreal value = min.toReal(&ok);
+ if(ok) setMin(value);
+}
+
+void QValuesAxis::setMax(QVariant max)
+{
+ bool ok;
+ qreal value = max.toReal(&ok);
+ if(ok) setMax(value);
+}
+
+void QValuesAxis::setRange(QVariant min, QVariant max)
+{
+ bool ok1;
+ bool ok2;
+ qreal value1 = min.toReal(&ok1);
+ qreal value2 = max.toReal(&ok2);
+ if(ok1&&ok2) setRange(value1,value2);
+}
+
+
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
QValuesAxisPrivate::QValuesAxisPrivate(QValuesAxis* q):
diff --git a/src/axis/qvaluesaxis.h b/src/axis/qvaluesaxis.h
index a1d1b641..da0dd4ee 100644
--- a/src/axis/qvaluesaxis.h
+++ b/src/axis/qvaluesaxis.h
@@ -59,6 +59,12 @@ public:
void setNiceNumbersEnabled(bool enable = true);
bool niceNumbersEnabled() const;
+private:
+ //range handling
+ void setMin(QVariant min);
+ void setMax(QVariant max);
+ void setRange(QVariant min, QVariant max);
+
Q_SIGNALS:
void minChanged(qreal min);
void maxChanged(qreal max);
diff --git a/src/chartdataset.cpp b/src/chartdataset.cpp
index ceda6c6c..5ebed623 100644
--- a/src/chartdataset.cpp
+++ b/src/chartdataset.cpp
@@ -20,8 +20,8 @@
#include "chartdataset_p.h"
#include "qchart.h"
-#include "qaxis.h"
-#include "qaxis_p.h"
+#include "qvaluesaxis.h"
+#include "qvaluesaxis_p.h"
#include "qabstractseries_p.h"
#include "qbarseries.h"
#include "qstackedbarseries.h"
@@ -31,8 +31,8 @@
QTCOMMERCIALCHART_BEGIN_NAMESPACE
ChartDataSet::ChartDataSet(QChart *parent):QObject(parent),
- m_axisX(new QAxis(this)),
- m_axisY(new QAxis(this)),
+ m_axisX(new QValuesAxis(this)),
+ m_axisY(new QValuesAxis(this)),
m_domainIndex(0),
m_axisXInitialized(false),
m_axisYInitialized(false)
@@ -51,11 +51,12 @@ ChartDataSet::~ChartDataSet()
removeAllSeries();
}
-void ChartDataSet::addSeries(QAbstractSeries* series, QAxis *axisY)
+void ChartDataSet::addSeries(QAbstractSeries* series)
{
- if(axisY==0) axisY = m_axisY;
+ //TODO: if(axisY==0) axisY = m_axisY;
+ QAbstractAxis* axisY = m_axisY;
- QAxis* axis = m_seriesAxisMap.value(series);
+ QAbstractAxis* axis = m_seriesAxisMap.value(series);
if(axis) {
qWarning() << "Can not add series. Series already on the chart";
@@ -116,9 +117,9 @@ void ChartDataSet::addSeries(QAbstractSeries* series, QAxis *axisY)
}
-QAxis* ChartDataSet::removeSeries(QAbstractSeries* series)
+QAbstractAxis* ChartDataSet::removeSeries(QAbstractSeries* series)
{
- QAxis* axis = m_seriesAxisMap.value(series);
+ QAbstractAxis* axis = m_seriesAxisMap.value(series);
if(!axis){
qWarning()<<"Can not remove series. Series not found on the chart.";
@@ -137,7 +138,7 @@ QAxis* ChartDataSet::removeSeries(QAbstractSeries* series)
series->d_ptr->m_chart = 0;
series->d_ptr->m_dataset = 0;
- QList<QAxis*> axes = m_seriesAxisMap.values();
+ QList<QAbstractAxis*> axes = m_seriesAxisMap.values();
int i = axes.indexOf(axis);
@@ -165,9 +166,9 @@ QAxis* ChartDataSet::removeSeries(QAbstractSeries* series)
void ChartDataSet::removeAllSeries()
{
QList<QAbstractSeries*> series = m_seriesAxisMap.keys();
- QList<QAxis*> axes;
+ QList<QAbstractAxis*> axes;
foreach(QAbstractSeries *s , series) {
- QAxis* axis = removeSeries(s);
+ QAbstractAxis* axis = removeSeries(s);
if(axis==axisY()) continue;
int i = axes.indexOf(axis);
if(i==-1){
@@ -184,7 +185,7 @@ void ChartDataSet::removeAllSeries()
void ChartDataSet::zoomInDomain(const QRectF& rect, const QSizeF& size)
{
- QMapIterator<QAxis*, Domain*> i(m_axisDomainMap);
+ QMapIterator<QAbstractAxis*, Domain*> i(m_axisDomainMap);
//main domain has to be the last one;
Domain *domain = m_axisDomainMap.value(axisY());
Q_ASSERT(domain);
@@ -198,7 +199,7 @@ void ChartDataSet::zoomInDomain(const QRectF& rect, const QSizeF& size)
void ChartDataSet::zoomOutDomain(const QRectF& rect, const QSizeF& size)
{
- QMapIterator<QAxis*, Domain*> i(m_axisDomainMap);
+ QMapIterator<QAbstractAxis*, Domain*> i(m_axisDomainMap);
//main domain has to be the last one;
Domain *domain = m_axisDomainMap.value(axisY());
Q_ASSERT(domain);
@@ -213,7 +214,7 @@ void ChartDataSet::zoomOutDomain(const QRectF& rect, const QSizeF& size)
int ChartDataSet::seriesCount(QAbstractSeries::SeriesType type)
{
int count=0;
- QMapIterator<QAbstractSeries*, QAxis*> i(m_seriesAxisMap);
+ QMapIterator<QAbstractSeries*, QAbstractAxis*> i(m_seriesAxisMap);
while (i.hasNext()) {
i.next();
if(i.key()->type()==type) count++;
@@ -232,7 +233,7 @@ int ChartDataSet::seriesIndex(QAbstractSeries *series)
return -1;
}
-QAxis* ChartDataSet::axisY(QAbstractSeries *series) const
+QAbstractAxis* ChartDataSet::axisY(QAbstractSeries *series) const
{
if(series == 0) return m_axisY;
return m_seriesAxisMap.value(series);
@@ -240,14 +241,14 @@ QAxis* ChartDataSet::axisY(QAbstractSeries *series) const
Domain* ChartDataSet::domain(QAbstractSeries *series) const
{
- QAxis* axis = m_seriesAxisMap.value(series);
+ QAbstractAxis* axis = m_seriesAxisMap.value(series);
if(axis){
return m_axisDomainMap.value(axis);
}else
return 0;
}
-Domain* ChartDataSet::domain(QAxis* axis) const
+Domain* ChartDataSet::domain(QAbstractAxis* axis) const
{
if(!axis || axis==axisX()) {
return m_axisDomainMap.value(axisY());
@@ -259,7 +260,7 @@ Domain* ChartDataSet::domain(QAxis* axis) const
void ChartDataSet::scrollDomain(qreal dx,qreal dy,const QSizeF& size)
{
- QMapIterator<QAxis*, Domain*> i( m_axisDomainMap);
+ QMapIterator<QAbstractAxis*, Domain*> i( m_axisDomainMap);
//main domain has to be the last one;
Domain *domain = m_axisDomainMap.value(axisY());
while (i.hasNext()) {
diff --git a/src/chartdataset_p.h b/src/chartdataset_p.h
index 24381290..f385355c 100644
--- a/src/chartdataset_p.h
+++ b/src/chartdataset_p.h
@@ -36,7 +36,7 @@
QTCOMMERCIALCHART_BEGIN_NAMESPACE
-class QAxis;
+class QAbstractAxis;
class QTCOMMERCIALCHART_AUTOTEST_EXPORT ChartDataSet : public QObject
{
@@ -45,8 +45,8 @@ public:
ChartDataSet(QChart* parent=0);
virtual ~ChartDataSet();
- void addSeries(QAbstractSeries* series,QAxis *axisY = 0);
- QAxis* removeSeries(QAbstractSeries* series);
+ void addSeries(QAbstractSeries* series);
+ QAbstractAxis* removeSeries(QAbstractSeries* series);
void removeAllSeries();
void updateSeries(QAbstractSeries* series);
@@ -58,10 +58,10 @@ public:
int seriesIndex(QAbstractSeries *series);
Domain* domain(QAbstractSeries* series) const;
- Domain* domain(QAxis* axis) const;
+ Domain* domain(QAbstractAxis* axis) const;
- QAxis* axisX() const { return m_axisX; }
- QAxis* axisY(QAbstractSeries *series = 0) const;
+ QAbstractAxis* axisX() const { return m_axisX; }
+ QAbstractAxis* axisY(QAbstractSeries *series = 0) const;
QList<QAbstractSeries*> series() const;
@@ -69,19 +69,19 @@ Q_SIGNALS:
void seriesAdded(QAbstractSeries* series, Domain* domain);
void seriesRemoved(QAbstractSeries* series);
void seriesUpdated(QAbstractSeries* series);
- void axisAdded(QAxis* axis,Domain* domain);
- void axisRemoved(QAxis* axis);
+ void axisAdded(QAbstractAxis* axis,Domain* domain);
+ void axisRemoved(QAbstractAxis* axis);
private:
- QStringList createLabels(QAxis* axis,qreal min, qreal max);
+ QStringList createLabels(QAbstractAxis* axis,qreal min, qreal max);
void calculateDomain(QAbstractSeries* series,Domain* domain);
private:
- QMap<QAbstractSeries *, QAxis *> m_seriesAxisMap;
- QMap<QAxis*, Domain *> m_axisDomainMap;
- QMap<int, QAbstractSeries *> m_indexSeriesMap;
- QAxis* m_axisX;
- QAxis* m_axisY;
+ QMap<QAbstractSeries*, QAbstractAxis*> m_seriesAxisMap;
+ QMap<QAbstractAxis*, Domain*> m_axisDomainMap;
+ QMap<int, QAbstractSeries*> m_indexSeriesMap;
+ QAbstractAxis* m_axisX;
+ QAbstractAxis* m_axisY;
int m_domainIndex;
bool m_axisXInitialized;
diff --git a/src/chartpresenter.cpp b/src/chartpresenter.cpp
index 628d9906..d3cfd4ba 100644
--- a/src/chartpresenter.cpp
+++ b/src/chartpresenter.cpp
@@ -20,7 +20,7 @@
#include "chartpresenter_p.h"
#include "qchart.h"
#include "qchart_p.h"
-#include "qaxis.h"
+#include "qabstractaxis.h"
#include "chartdataset_p.h"
#include "charttheme_p.h"
#include "chartanimator_p.h"
@@ -67,7 +67,7 @@ void ChartPresenter::setGeometry(const QRectF& rect)
}
}
-void ChartPresenter::handleAxisAdded(QAxis* axis,Domain* domain)
+void ChartPresenter::handleAxisAdded(QAbstractAxis* axis,Domain* domain)
{
ChartAxis* item;
@@ -102,7 +102,7 @@ void ChartPresenter::handleAxisAdded(QAxis* axis,Domain* domain)
m_axisItems.insert(axis, item);
}
-void ChartPresenter::handleAxisRemoved(QAxis* axis)
+void ChartPresenter::handleAxisRemoved(QAbstractAxis* axis)
{
ChartAxis* item = m_axisItems.take(axis);
Q_ASSERT(item);
@@ -177,10 +177,10 @@ void ChartPresenter::setAnimationOptions(QChart::AnimationOptions options)
void ChartPresenter::resetAllElements()
{
- QList<QAxis *> axisList = m_axisItems.uniqueKeys();
+ QList<QAbstractAxis*> axisList = m_axisItems.uniqueKeys();
QList<QAbstractSeries *> seriesList = m_chartItems.uniqueKeys();
- foreach(QAxis *axis, axisList) {
+ foreach(QAbstractAxis *axis, axisList) {
handleAxisRemoved(axis);
handleAxisAdded(axis,m_dataset->domain(axis));
}
diff --git a/src/chartpresenter_p.h b/src/chartpresenter_p.h
index 20ff5313..178586d2 100644
--- a/src/chartpresenter_p.h
+++ b/src/chartpresenter_p.h
@@ -141,8 +141,8 @@ private:
public Q_SLOTS:
void handleSeriesAdded(QAbstractSeries* series,Domain* domain);
void handleSeriesRemoved(QAbstractSeries* series);
- void handleAxisAdded(QAxis* axis,Domain* domain);
- void handleAxisRemoved(QAxis* axis);
+ void handleAxisAdded(QAbstractAxis* axis,Domain* domain);
+ void handleAxisRemoved(QAbstractAxis* axis);
private Q_SLOTS:
void handleAnimationFinished();
@@ -157,8 +157,8 @@ private:
ChartAnimator* m_animator;
ChartDataSet* m_dataset;
ChartTheme *m_chartTheme;
- QMap<QAbstractSeries *, Chart *> m_chartItems;
- QMap<QAxis *, ChartAxis *> m_axisItems;
+ QMap<QAbstractSeries*, Chart*> m_chartItems;
+ QMap<QAbstractAxis*, ChartAxis*> m_axisItems;
QRectF m_rect;
QChart::AnimationOptions m_options;
State m_state;
diff --git a/src/charttheme.cpp b/src/charttheme.cpp
index e1c7aa37..21f97312 100644
--- a/src/charttheme.cpp
+++ b/src/charttheme.cpp
@@ -23,7 +23,7 @@
#include "qchart_p.h"
#include "qchartview.h"
#include "qlegend.h"
-#include "qaxis.h"
+#include "qabstractaxis.h"
#include <QTime>
//series
@@ -256,7 +256,7 @@ void ChartTheme::decorate(QSplineSeries *series, int index)
}
}
-void ChartTheme::decorate(QAxis *axis,bool axisX)
+void ChartTheme::decorate(QAbstractAxis *axis,bool axisX)
{
QPen pen;
QBrush brush;
diff --git a/src/charttheme_p.h b/src/charttheme_p.h
index e5b926d9..34fce7fa 100644
--- a/src/charttheme_p.h
+++ b/src/charttheme_p.h
@@ -78,7 +78,7 @@ public:
void decorate(QScatterSeries *series, int index);
void decorate(QPieSeries *series, int index);
void decorate(QSplineSeries *series, int index);
- void decorate(QAxis *axis, bool axisX);
+ void decorate(QAbstractAxis *axis, bool axisX);
void setForced(bool enabled);
bool isForced() { return m_force; }
diff --git a/src/qchart.cpp b/src/qchart.cpp
index 31c1426e..54116fbb 100644
--- a/src/qchart.cpp
+++ b/src/qchart.cpp
@@ -23,7 +23,7 @@
#include "legendscroller_p.h"
#include "qlegend_p.h"
#include "chartbackground_p.h"
-#include "qaxis.h"
+#include "qabstractaxis.h"
#include <QGraphicsScene>
#include <QGraphicsSceneResizeEvent>
#include <QGraphicsLayout>
@@ -140,10 +140,10 @@ QChart::~QChart()
\sa removeSeries(), removeAllSeries()
*/
-void QChart::addSeries(QAbstractSeries *series, QAxis *axisY)
+void QChart::addSeries(QAbstractSeries *series)
{
Q_ASSERT(series);
- d_ptr->m_dataset->addSeries(series, axisY);
+ d_ptr->m_dataset->addSeries(series);
}
/*!
@@ -308,7 +308,7 @@ void QChart::zoom(qreal factor)
/*!
Returns the pointer to the x axis object of the chart
*/
-QAxis* QChart::axisX() const
+QAbstractAxis* QChart::axisX() const
{
return d_ptr->m_dataset->axisX();
}
@@ -317,7 +317,7 @@ QAxis* QChart::axisX() const
Returns the pointer to the y axis object of the \a series
If no \a series is provided then default Y axis of the chart is returned.
*/
-QAxis* QChart::axisY(QAbstractSeries *series) const
+QAbstractAxis* QChart::axisY(QAbstractSeries *series) const
{
return d_ptr->m_dataset->axisY(series);
}
@@ -428,6 +428,18 @@ void QChart::setMarginsMinimum(const QRectF& margins)
d_ptr->m_presenter->setMarginsMinimum(margins);
}
+void QChart::setAxisX(QAbstractSeries *series, QAbstractAxis* axis)
+{
+ Q_UNUSED(series);
+ Q_UNUSED(axis);
+}
+
+void QChart::setAxisY(QAbstractSeries *series, QAbstractAxis* axis)
+{
+ Q_UNUSED(series);
+ Q_UNUSED(axis);
+}
+
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
QChartPrivate::QChartPrivate():
@@ -447,8 +459,8 @@ void QChartPrivate::createConnections()
{
QObject::connect(m_dataset,SIGNAL(seriesAdded(QAbstractSeries*,Domain*)),m_presenter,SLOT(handleSeriesAdded(QAbstractSeries*,Domain*)));
QObject::connect(m_dataset,SIGNAL(seriesRemoved(QAbstractSeries*)),m_presenter,SLOT(handleSeriesRemoved(QAbstractSeries*)));
- QObject::connect(m_dataset,SIGNAL(axisAdded(QAxis*,Domain*)),m_presenter,SLOT(handleAxisAdded(QAxis*,Domain*)));
- QObject::connect(m_dataset,SIGNAL(axisRemoved(QAxis*)),m_presenter,SLOT(handleAxisRemoved(QAxis*)));
+ QObject::connect(m_dataset,SIGNAL(axisAdded(QAbstractAxis*,Domain*)),m_presenter,SLOT(handleAxisAdded(QAbstractAxis*,Domain*)));
+ QObject::connect(m_dataset,SIGNAL(axisRemoved(QAbstractAxis*)),m_presenter,SLOT(handleAxisRemoved(QAbstractAxis*)));
//QObject::connect(m_presenter, SIGNAL(marginsChanged(QRectF)), q_ptr, SIGNAL(marginsChanged(QRectF)));
}
diff --git a/src/qchart.h b/src/qchart.h
index 86e05dce..f6b153ad 100644
--- a/src/qchart.h
+++ b/src/qchart.h
@@ -30,7 +30,7 @@ class QGraphicsSceneResizeEvent;
QTCOMMERCIALCHART_BEGIN_NAMESPACE
class QAbstractSeries;
-class QAxis;
+class QAbstractAxis;
class QLegend;
struct QChartPrivate;
@@ -70,11 +70,14 @@ public:
explicit QChart(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0);
~QChart();
- void addSeries(QAbstractSeries *series, QAxis *axisY = 0);
+ void addSeries(QAbstractSeries *series);
void removeSeries(QAbstractSeries *series);
void removeAllSeries();
QList<QAbstractSeries*> series() const;
+ void setAxisX(QAbstractSeries *series, QAbstractAxis* axis);
+ void setAxisY(QAbstractSeries *series, QAbstractAxis* axis);
+
void setTheme(QChart::ChartTheme theme);
QChart::ChartTheme theme() const;
@@ -107,8 +110,8 @@ public:
void scrollDown();
void scroll(const QPointF &delta);
- QAxis* axisX() const;
- QAxis* axisY(QAbstractSeries* series = 0) const;
+ QAbstractAxis* axisX() const;
+ QAbstractAxis* axisY(QAbstractSeries* series = 0) const;
QLegend* legend() const;
diff --git a/src/qchartview.h b/src/qchartview.h
index 27f3d5e1..bfe28d82 100644
--- a/src/qchartview.h
+++ b/src/qchartview.h
@@ -21,7 +21,7 @@
#ifndef QCHARTVIEW_H
#define QCHARTVIEW_H
-#include <QAxis>
+#include <QAbstractAxis>
#include <QAbstractSeries>
#include <QChart>
#include <QGraphicsView>
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index 54222d98..00d8de85 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -6,5 +6,5 @@ TEMPLATE = subdirs
SUBDIRS += qchartview qchart qlineseries qbarset qbarseries qstackedbarseries qpercentbarseries qgroupedbarseries qpieslice qpieseries qpiemodelmapper qsplineseries qscatterseries qxymodelmapper qbarmodelmapper
test_private:{
- SUBDIRS += chartdataset domain
+ SUBDIRS += domain #chartdataset
}
diff --git a/tests/auto/chartdataset/tst_chartdataset.cpp b/tests/auto/chartdataset/tst_chartdataset.cpp
index a585d87e..e9b56681 100644
--- a/tests/auto/chartdataset/tst_chartdataset.cpp
+++ b/tests/auto/chartdataset/tst_chartdataset.cpp
@@ -19,7 +19,7 @@
****************************************************************************/
#include <QtTest/QtTest>
-#include <qaxis.h>
+#include <qabstractaxis.h>
#include <qlineseries.h>
#include <private/chartdataset_p.h>
#include <private/domain_p.h>
@@ -28,7 +28,7 @@
QTCOMMERCIALCHART_USE_NAMESPACE
Q_DECLARE_METATYPE(Domain *)
-Q_DECLARE_METATYPE(QAxis *)
+Q_DECLARE_METATYPE(QAbstractAxis *)
Q_DECLARE_METATYPE(QAbstractSeries *)
Q_DECLARE_METATYPE(QLineSeries *)
diff --git a/tests/auto/domain/tst_domain.cpp b/tests/auto/domain/tst_domain.cpp
index c1ec2ebe..4682b29f 100644
--- a/tests/auto/domain/tst_domain.cpp
+++ b/tests/auto/domain/tst_domain.cpp
@@ -20,7 +20,6 @@
#include <QtTest/QtTest>
#include <private/domain_p.h>
-#include <qaxis.h>
#include <tst_definitions.h>
QTCOMMERCIALCHART_USE_NAMESPACE
diff --git a/tests/auto/qchart/tst_qchart.cpp b/tests/auto/qchart/tst_qchart.cpp
index 8d0bb79b..3a3fa0a0 100644
--- a/tests/auto/qchart/tst_qchart.cpp
+++ b/tests/auto/qchart/tst_qchart.cpp
@@ -28,10 +28,12 @@
#include <qbarseries.h>
#include <qpercentbarseries.h>
#include <qstackedbarseries.h>
+#include <qvaluesaxis.h>
QTCOMMERCIALCHART_USE_NAMESPACE
-Q_DECLARE_METATYPE(QAxis *)
+Q_DECLARE_METATYPE(QAbstractAxis *)
+Q_DECLARE_METATYPE(QValuesAxis *)
Q_DECLARE_METATYPE(QAbstractSeries *)
Q_DECLARE_METATYPE(QChart::AnimationOption)
Q_DECLARE_METATYPE(QBrush)
@@ -177,7 +179,7 @@ void tst_QChart::qchart()
void tst_QChart::addSeries_data()
{
QTest::addColumn<QAbstractSeries *>("series");
- QTest::addColumn<QAxis *>("axis");
+ QTest::addColumn<QAbstractAxis *>("axis");
QAbstractSeries* series0 = new QLineSeries(this);
QAbstractSeries* series1 = new QAreaSeries(static_cast<QLineSeries*>(series0));
@@ -188,23 +190,23 @@ void tst_QChart::addSeries_data()
QAbstractSeries* series6 = new QPercentBarSeries(this);
QAbstractSeries* series7 = new QStackedBarSeries(this);
- QAxis* axis = new QAxis(this);
+ QValuesAxis* axis = new QValuesAxis(this);
- QTest::newRow("default axis: lineSeries") << series0 << (QAxis*) 0;
+ QTest::newRow("default axis: lineSeries") << series0 << (QAbstractAxis*) 0;
QTest::newRow("axis0: lineSeries") << series0 << axis;
- QTest::newRow("default axis: areaSeries") << series1 << (QAxis*) 0;
+ QTest::newRow("default axis: areaSeries") << series1 << (QAbstractAxis*) 0;
QTest::newRow("axis: areaSeries") << series1 << axis;
- QTest::newRow("default axis: scatterSeries") << series2 << (QAxis*) 0;
+ QTest::newRow("default axis: scatterSeries") << series2 << (QAbstractAxis*) 0;
QTest::newRow("axis1: scatterSeries") << series2 << axis;
- QTest::newRow("default axis: splineSeries") << series3 << (QAxis*) 0;
+ QTest::newRow("default axis: splineSeries") << series3 << (QAbstractAxis*) 0;
QTest::newRow("axis: splineSeries") << series3 << axis;
- QTest::newRow("default axis: pieSeries") << series4 << (QAxis*) 0;
+ QTest::newRow("default axis: pieSeries") << series4 << (QAbstractAxis*) 0;
QTest::newRow("axis: pieSeries") << series4 << axis;
- QTest::newRow("default axis: barSeries") << series5 << (QAxis*) 0;
+ QTest::newRow("default axis: barSeries") << series5 << (QAbstractAxis*) 0;
QTest::newRow("axis: barSeries") << series5 << axis;
- QTest::newRow("default axis: percentBarSeries") << series6 << (QAxis*) 0;
+ QTest::newRow("default axis: percentBarSeries") << series6 << (QAbstractAxis*) 0;
QTest::newRow("axis: barSeries") << series6 << axis;
- QTest::newRow("default axis: stackedBarSeries") << series7 << (QAxis*) 0;
+ QTest::newRow("default axis: stackedBarSeries") << series7 << (QAbstractAxis*) 0;
QTest::newRow("axis: barSeries") << series7 << axis;
}
@@ -212,13 +214,14 @@ void tst_QChart::addSeries_data()
void tst_QChart::addSeries()
{
QFETCH(QAbstractSeries *, series);
- QFETCH(QAxis *, axis);
+ QFETCH(QAbstractAxis *, axis);
m_view->show();
QTest::qWaitForWindowShown(m_view);
if(!axis) axis = m_chart->axisY();
QVERIFY(!series->chart());
QCOMPARE(m_chart->series().count(), 0);
- m_chart->addSeries(series,axis);
+ m_chart->addSeries(series);
+ m_chart->setAxisY(series,axis);
QCOMPARE(m_chart->series().count(), 1);
QCOMPARE(m_chart->series().first(), series);
QVERIFY(series->chart() == m_chart);
@@ -253,7 +256,7 @@ void tst_QChart::axisX_data()
void tst_QChart::axisX()
{
QVERIFY(m_chart->axisX());
- QAxis* axis = m_chart->axisX();
+ QAbstractAxis* axis = m_chart->axisX();
createTestData();
//it should be the same axis
QCOMPARE(axis,m_chart->axisX());
@@ -261,32 +264,35 @@ void tst_QChart::axisX()
void tst_QChart::axisY_data()
{
- QTest::addColumn<QAxis*>("axis0");
- QTest::addColumn<QAxis*>("axis1");
- QTest::addColumn<QAxis*>("axis2");
- QTest::newRow("1 defualt, 2 optional") << (QAxis*)0 << new QAxis() << new QAxis();
- QTest::newRow("3 optional") << new QAxis() << new QAxis() << new QAxis();
+ QTest::addColumn<QAbstractAxis*>("axis0");
+ QTest::addColumn<QAbstractAxis*>("axis1");
+ QTest::addColumn<QAbstractAxis*>("axis2");
+ QTest::newRow("1 defualt, 2 optional") << (QAbstractAxis*)0 << new QValuesAxis() << new QValuesAxis();
+ QTest::newRow("3 optional") << new QValuesAxis() << new QValuesAxis() << new QValuesAxis();
}
void tst_QChart::axisY()
{
- QFETCH(QAxis*, axis0);
- QFETCH(QAxis*, axis1);
- QFETCH(QAxis*, axis2);
+ QFETCH(QAbstractAxis*, axis0);
+ QFETCH(QAbstractAxis*, axis1);
+ QFETCH(QAbstractAxis*, axis2);
- QAxis* defaultAxisY = m_chart->axisY();
+ QAbstractAxis* defaultAxisY = m_chart->axisY();
QVERIFY2(defaultAxisY, "Missing axisY.");
QLineSeries* series0 = new QLineSeries();
- m_chart->addSeries(series0, axis0);
+ m_chart->addSeries(series0);
+ m_chart->setAxisY(series0,axis0);
QLineSeries* series1 = new QLineSeries();
- m_chart->addSeries(series1, axis1);
+ m_chart->addSeries(series1);
+ m_chart->setAxisY(series1,axis1);
QLineSeries* series2 = new QLineSeries();
- m_chart->addSeries(series2, axis2);
+ m_chart->addSeries(series2);
+ m_chart->setAxisY(series2,axis2);
if (!axis0)
axis0 = defaultAxisY;
@@ -412,12 +418,13 @@ void tst_QChart::removeSeries_data()
void tst_QChart::removeSeries()
{
QFETCH(QAbstractSeries *, series);
- QFETCH(QAxis *, axis);
+ QFETCH(QAbstractAxis *, axis);
QSignalSpy deleteSpy(series, SIGNAL(destroyed()));
m_view->show();
QTest::qWaitForWindowShown(m_view);
if(!axis) axis = m_chart->axisY();
- m_chart->addSeries(series,axis);
+ m_chart->addSeries(series);
+ m_chart->setAxisY(series,axis);
QCOMPARE(m_chart->axisY(series),axis);
m_chart->removeSeries(series);
QVERIFY(m_chart->axisY(series)==0);
@@ -431,10 +438,11 @@ void tst_QChart::scrollDown_data()
void tst_QChart::scrollDown()
{
+ qFatal("implement me");
createTestData();
- qreal min = m_chart->axisY()->min();
+ //TODO qreal min = m_chart->axisY()->min();
m_chart->scrollDown();
- QVERIFY(m_chart->axisY()->min()<min);
+ //TODO QVERIFY(m_chart->axisY()->min()<min);
}
void tst_QChart::scrollLeft_data()
@@ -444,10 +452,11 @@ void tst_QChart::scrollLeft_data()
void tst_QChart::scrollLeft()
{
+ qFatal("implement me");
createTestData();
- qreal min = m_chart->axisX()->min();
+ //TODO qreal min = m_chart->axisX()->min();
m_chart->scrollLeft();
- QVERIFY(m_chart->axisX()->min()<min);
+ //TODO QVERIFY(m_chart->axisX()->min()<min);
}
void tst_QChart::scrollRight_data()
@@ -457,10 +466,11 @@ void tst_QChart::scrollRight_data()
void tst_QChart::scrollRight()
{
+ qFatal("implement me");
createTestData();
- qreal min = m_chart->axisX()->min();
+ //TODO qreal min = m_chart->axisX()->min();
m_chart->scrollRight();
- QVERIFY(m_chart->axisX()->min()>min);
+ //TODO QVERIFY(m_chart->axisX()->min()>min);
}
void tst_QChart::scrollUp_data()
@@ -470,10 +480,11 @@ void tst_QChart::scrollUp_data()
void tst_QChart::scrollUp()
{
+ qFatal("implement me");
createTestData();
- qreal min = m_chart->axisY()->min();
+ //TODO qreal min = m_chart->axisY()->min();
m_chart->scrollUp();
- QVERIFY(m_chart->axisY()->min()>min);
+ //TODO QVERIFY(m_chart->axisY()->min()>min);
}
void tst_QChart::theme_data()
@@ -551,6 +562,8 @@ void tst_QChart::zoomIn_data()
void tst_QChart::zoomIn()
{
+ qFatal("implement me");
+ /*
QFETCH(QRectF, rect);
createTestData();
QRectF marigns = m_chart->margins();
@@ -566,6 +579,7 @@ void tst_QChart::zoomIn()
QVERIFY(minY<m_chart->axisY()->min());
QVERIFY(maxY>m_chart->axisY()->max());
}
+ */
}
void tst_QChart::zoomOut_data()
@@ -575,7 +589,9 @@ void tst_QChart::zoomOut_data()
void tst_QChart::zoomOut()
{
+ qFatal("implement me");
createTestData();
+ /*
qreal minX = m_chart->axisX()->min();
qreal minY = m_chart->axisY()->min();
qreal maxX = m_chart->axisX()->max();
@@ -604,6 +620,7 @@ void tst_QChart::zoomOut()
QVERIFY(maxX == m_chart->axisX()->max());
QVERIFY(maxY == m_chart->axisY()->max());
+ */
}
QTEST_MAIN(tst_QChart)
diff --git a/tests/auto/qchartview/tst_qchartview.cpp b/tests/auto/qchartview/tst_qchartview.cpp
index 4443e6f9..262e0929 100644
--- a/tests/auto/qchartview/tst_qchartview.cpp
+++ b/tests/auto/qchartview/tst_qchartview.cpp
@@ -149,9 +149,9 @@ void tst_QChartView::rubberBand()
//this is hack since view does not get events otherwise
m_view->setMouseTracking(true);
- QAxis* axisY = m_view->chart()->axisY();
+ QAbstractAxis* axisY = m_view->chart()->axisY();
QSignalSpy spy0(axisY, SIGNAL(rangeChanged(qreal,qreal)));
- QAxis* axisX = m_view->chart()->axisX();
+ QAbstractAxis* axisX = m_view->chart()->axisX();
QSignalSpy spy1(axisX, SIGNAL(rangeChanged(qreal,qreal)));
QTest::qWaitForWindowShown(m_view);
@@ -166,10 +166,11 @@ void tst_QChartView::rubberBand()
//this is hack since view does not get events otherwise
m_view->setMouseTracking(false);
- QVERIFY(axisX->min() - minX < 1);
- QVERIFY(axisX->max() - maxX < 1);
- QVERIFY(axisY->min() - minY < 1);
- QVERIFY(axisY->max() - maxY < 1);
+ //TODO: QVERIFY(axisX->min() - minX < 1);
+ //TODO: QVERIFY(axisX->max() - maxX < 1);
+ //TODO: QVERIFY(axisY->min() - minY < 1);
+ //TODO: QVERIFY(axisY->max() - maxY < 1);
+ qFatal("implement TODO");
}
QTEST_MAIN(tst_QChartView)
diff --git a/tests/chartwidgettest/mainwidget.cpp b/tests/chartwidgettest/mainwidget.cpp
index fea7d9ba..fe77010a 100644
--- a/tests/chartwidgettest/mainwidget.cpp
+++ b/tests/chartwidgettest/mainwidget.cpp
@@ -43,6 +43,7 @@
#include <cmath>
#include <QDebug>
#include <QStandardItemModel>
+#include <QCategoriesAxis>
QTCOMMERCIALCHART_USE_NAMESPACE
@@ -276,16 +277,24 @@ void MainWidget::addSeries(QString seriesName, int columnCount, int rowCount, QS
QBarSeries* series = 0;
if (seriesName == "Bar") {
series = new QBarSeries(this);
- m_chart->axisX()->categories()->insert(category);
+ QCategoriesAxis* axis = new QCategoriesAxis();
+ axis->append(category);
+ m_chart->setAxisX(series,axis);
} else if (seriesName == "Grouped bar") {
series = new QGroupedBarSeries(this);
- m_chart->axisX()->categories()->insert(category);
+ QCategoriesAxis* axis = new QCategoriesAxis();
+ axis->append(category);
+ m_chart->setAxisX(series,axis);
} else if (seriesName == "Stacked bar") {
series = new QStackedBarSeries(this);
- m_chart->axisX()->categories()->insert(category);
+ QCategoriesAxis* axis = new QCategoriesAxis();
+ axis->append(category);
+ m_chart->setAxisX(series,axis);
} else {
series = new QPercentBarSeries(this);
- m_chart->axisX()->categories()->insert(category);
+ QCategoriesAxis* axis = new QCategoriesAxis();
+ axis->append(category);
+ m_chart->setAxisX(series,axis);
}
for (int j(0); j < data.count(); j++) {