diff options
Diffstat (limited to 'src/axis/valueaxis')
-rw-r--r-- | src/axis/valueaxis/chartvalueaxisx.cpp | 128 | ||||
-rw-r--r-- | src/axis/valueaxis/chartvalueaxisx_p.h | 60 | ||||
-rw-r--r-- | src/axis/valueaxis/chartvalueaxisy.cpp | 128 | ||||
-rw-r--r-- | src/axis/valueaxis/chartvalueaxisy_p.h | 60 | ||||
-rw-r--r-- | src/axis/valueaxis/polarchartvalueaxisangular.cpp | 80 | ||||
-rw-r--r-- | src/axis/valueaxis/polarchartvalueaxisangular_p.h | 56 | ||||
-rw-r--r-- | src/axis/valueaxis/polarchartvalueaxisradial.cpp | 79 | ||||
-rw-r--r-- | src/axis/valueaxis/polarchartvalueaxisradial_p.h | 56 | ||||
-rw-r--r-- | src/axis/valueaxis/qvalueaxis.cpp | 451 | ||||
-rw-r--r-- | src/axis/valueaxis/qvalueaxis.h | 83 | ||||
-rw-r--r-- | src/axis/valueaxis/qvalueaxis_p.h | 70 |
11 files changed, 0 insertions, 1251 deletions
diff --git a/src/axis/valueaxis/chartvalueaxisx.cpp b/src/axis/valueaxis/chartvalueaxisx.cpp deleted file mode 100644 index 8e3b5ef9..00000000 --- a/src/axis/valueaxis/chartvalueaxisx.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "chartvalueaxisx_p.h" -#include "qabstractaxis.h" -#include "chartpresenter_p.h" -#include "qvalueaxis.h" -#include "abstractchartlayout_p.h" -#include <QGraphicsLayout> -#include <qmath.h> -#include <QDebug> - - -QTCOMMERCIALCHART_BEGIN_NAMESPACE - -ChartValueAxisX::ChartValueAxisX(QValueAxis *axis, QGraphicsItem *item ) - : HorizontalAxis(axis, item), - m_axis(axis) -{ - QObject::connect(m_axis, SIGNAL(tickCountChanged(int)), this, SLOT(handleTickCountChanged(int))); - QObject::connect(m_axis, SIGNAL(labelFormatChanged(QString)), this, SLOT(handleLabelFormatChanged(QString))); -} - -ChartValueAxisX::~ChartValueAxisX() -{ -} - -QVector<qreal> ChartValueAxisX::calculateLayout() const -{ - int tickCount = m_axis->tickCount(); - - Q_ASSERT(tickCount >= 2); - - QVector<qreal> points; - points.resize(tickCount); - - const QRectF &gridRect = gridGeometry(); - const qreal deltaX = gridRect.width() / (qreal(tickCount) - 1.0); - for (int i = 0; i < tickCount; ++i) - points[i] = qreal(i) * deltaX + gridRect.left(); - return points; -} - -void ChartValueAxisX::updateGeometry() -{ - const QVector<qreal>& layout = ChartAxisElement::layout(); - if (layout.isEmpty()) - return; - setLabels(createValueLabels(min(), max(), layout.size(), m_axis->labelFormat())); - HorizontalAxis::updateGeometry(); -} - -void ChartValueAxisX::handleTickCountChanged(int tick) -{ - Q_UNUSED(tick); - QGraphicsLayoutItem::updateGeometry(); - if(presenter()) presenter()->layout()->invalidate(); -} - -void ChartValueAxisX::handleLabelFormatChanged(const QString &format) -{ - Q_UNUSED(format); - QGraphicsLayoutItem::updateGeometry(); - if(presenter()) presenter()->layout()->invalidate(); -} - -QSizeF ChartValueAxisX::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const -{ - Q_UNUSED(constraint) - - QSizeF sh; - - QSizeF base = HorizontalAxis::sizeHint(which, constraint); - QStringList ticksList = createValueLabels(min(),max(),m_axis->tickCount(),m_axis->labelFormat()); - // Width of horizontal axis sizeHint indicates the maximum distance labels can extend past - // first and last ticks. Base width is irrelevant. - qreal width = 0; - qreal height = 0; - - switch (which) { - case Qt::MinimumSize: { - QRectF boundingRect = ChartPresenter::textBoundingRect(axis()->labelsFont(), "...", axis()->labelsAngle()); - width = boundingRect.width() / 2.0; - height = boundingRect.height() + labelPadding() + base.height() + 1.0; - sh = QSizeF(width, height); - break; - } - case Qt::PreferredSize: { - qreal labelHeight = 0.0; - qreal firstWidth = -1.0; - foreach (const QString& s, ticksList) { - QRectF rect = ChartPresenter::textBoundingRect(axis()->labelsFont(), s, axis()->labelsAngle()); - labelHeight = qMax(rect.height(), labelHeight); - width = rect.width(); - if (firstWidth < 0.0) - firstWidth = width; - } - height = labelHeight + labelPadding() + base.height() + 1.0; - width = qMax(width, firstWidth) / 2.0; - sh = QSizeF(width, height); - break; - } - default: - break; - } - return sh; -} - -#include "moc_chartvalueaxisx_p.cpp" - -QTCOMMERCIALCHART_END_NAMESPACE diff --git a/src/axis/valueaxis/chartvalueaxisx_p.h b/src/axis/valueaxis/chartvalueaxisx_p.h deleted file mode 100644 index 0a2832c1..00000000 --- a/src/axis/valueaxis/chartvalueaxisx_p.h +++ /dev/null @@ -1,60 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 Qt Enterprise 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 CHARTVALUEAXISX_H -#define CHARTVALUEAXISX_H - -#include "horizontalaxis_p.h" - -QTCOMMERCIALCHART_BEGIN_NAMESPACE - -class QValueAxis; - -class ChartValueAxisX : public HorizontalAxis -{ - Q_OBJECT -public: - ChartValueAxisX(QValueAxis *axis, QGraphicsItem *item = 0); - ~ChartValueAxisX(); - - QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint) const; -protected: - QVector<qreal> calculateLayout() const; - void updateGeometry(); -private Q_SLOTS: - void handleTickCountChanged(int tick); - void handleLabelFormatChanged(const QString &format); - -private: - QValueAxis *m_axis; -}; - -QTCOMMERCIALCHART_END_NAMESPACE - -#endif /* CHARTVALUEAXISX_H */ diff --git a/src/axis/valueaxis/chartvalueaxisy.cpp b/src/axis/valueaxis/chartvalueaxisy.cpp deleted file mode 100644 index a726d53a..00000000 --- a/src/axis/valueaxis/chartvalueaxisy.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "chartvalueaxisy_p.h" -#include "qabstractaxis.h" -#include "chartpresenter_p.h" -#include "qvalueaxis.h" -#include "abstractchartlayout_p.h" -#include <QGraphicsLayout> -#include <qmath.h> -#include <QDebug> - -QTCOMMERCIALCHART_BEGIN_NAMESPACE - -ChartValueAxisY::ChartValueAxisY(QValueAxis *axis, QGraphicsItem *item) - : VerticalAxis(axis, item), - m_axis(axis) -{ - QObject::connect(m_axis, SIGNAL(tickCountChanged(int)), this, SLOT(handleTickCountChanged(int))); - QObject::connect(m_axis, SIGNAL(labelFormatChanged(QString)), this, SLOT(handleLabelFormatChanged(QString))); -} - -ChartValueAxisY::~ChartValueAxisY() -{ -} - -QVector<qreal> ChartValueAxisY::calculateLayout() const -{ - int tickCount = m_axis->tickCount(); - - Q_ASSERT(tickCount >= 2); - - QVector<qreal> points; - points.resize(tickCount); - - const QRectF &gridRect = gridGeometry(); - - const qreal deltaY = gridRect.height() / (qreal(tickCount) - 1.0); - for (int i = 0; i < tickCount; ++i) - points[i] = qreal(i) * -deltaY + gridRect.bottom(); - - return points; -} - -void ChartValueAxisY::updateGeometry() -{ - const QVector<qreal> &layout = ChartAxisElement::layout(); - if (layout.isEmpty()) - return; - setLabels(createValueLabels(min(),max(),layout.size(),m_axis->labelFormat())); - VerticalAxis::updateGeometry(); -} - -void ChartValueAxisY::handleTickCountChanged(int tick) -{ - Q_UNUSED(tick); - QGraphicsLayoutItem::updateGeometry(); - if(presenter()) presenter()->layout()->invalidate(); -} - -void ChartValueAxisY::handleLabelFormatChanged(const QString &format) -{ - Q_UNUSED(format); - QGraphicsLayoutItem::updateGeometry(); - if(presenter()) presenter()->layout()->invalidate(); -} - -QSizeF ChartValueAxisY::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const -{ - Q_UNUSED(constraint) - - QSizeF sh; - QSizeF base = VerticalAxis::sizeHint(which, constraint); - QStringList ticksList = createValueLabels(min(),max(),m_axis->tickCount(),m_axis->labelFormat()); - qreal width = 0; - // Height of vertical axis sizeHint indicates the maximum distance labels can extend past - // first and last ticks. Base height is irrelevant. - qreal height = 0; - - switch (which) { - case Qt::MinimumSize: { - QRectF boundingRect = ChartPresenter::textBoundingRect(axis()->labelsFont(), "...", axis()->labelsAngle()); - width = boundingRect.width() + labelPadding() + base.width() + 1.0; - height = boundingRect.height() / 2.0; - sh = QSizeF(width, height); - break; - } - case Qt::PreferredSize: { - qreal labelWidth = 0.0; - qreal firstHeight = -1.0; - foreach (const QString& s, ticksList) { - QRectF rect = ChartPresenter::textBoundingRect(axis()->labelsFont(), s, axis()->labelsAngle()); - labelWidth = qMax(rect.width(), labelWidth); - height = rect.height(); - if (firstHeight < 0.0) - firstHeight = height; - } - width = labelWidth + labelPadding() + base.width() + 2.0; //two pixels of tolerance - height = qMax(height, firstHeight) / 2.0; - sh = QSizeF(width, height); - break; - } - default: - break; - } - return sh; -} - -#include "moc_chartvalueaxisy_p.cpp" - -QTCOMMERCIALCHART_END_NAMESPACE diff --git a/src/axis/valueaxis/chartvalueaxisy_p.h b/src/axis/valueaxis/chartvalueaxisy_p.h deleted file mode 100644 index e2415dbf..00000000 --- a/src/axis/valueaxis/chartvalueaxisy_p.h +++ /dev/null @@ -1,60 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 Qt Enterprise 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 CHARTVALUEAXISY_H -#define CHARTVALUEAXISY_H - -#include "verticalaxis_p.h" - -QTCOMMERCIALCHART_BEGIN_NAMESPACE - -class QValueAxis; - -class ChartValueAxisY : public VerticalAxis -{ - Q_OBJECT -public: - ChartValueAxisY(QValueAxis *axis, QGraphicsItem *item = 0); - ~ChartValueAxisY(); - - QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint) const; -protected: - QVector<qreal> calculateLayout() const; - void updateGeometry(); -private Q_SLOTS: - void handleTickCountChanged(int tick); - void handleLabelFormatChanged(const QString &format); - -private: - QValueAxis *m_axis; -}; - -QTCOMMERCIALCHART_END_NAMESPACE - -#endif /* CHARTVALUEAXISY_H */ diff --git a/src/axis/valueaxis/polarchartvalueaxisangular.cpp b/src/axis/valueaxis/polarchartvalueaxisangular.cpp deleted file mode 100644 index 6668f63b..00000000 --- a/src/axis/valueaxis/polarchartvalueaxisangular.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "polarchartvalueaxisangular_p.h" -#include "chartpresenter_p.h" -#include "abstractchartlayout_p.h" - -QTCOMMERCIALCHART_BEGIN_NAMESPACE - -PolarChartValueAxisAngular::PolarChartValueAxisAngular(QValueAxis *axis, QGraphicsItem *item) - : PolarChartAxisAngular(axis, item) -{ - QObject::connect(axis, SIGNAL(tickCountChanged(int)), this, SLOT(handleTickCountChanged(int))); - QObject::connect(axis, SIGNAL(labelFormatChanged(QString)), this, SLOT(handleLabelFormatChanged(QString))); -} - -PolarChartValueAxisAngular::~PolarChartValueAxisAngular() -{ -} - -QVector<qreal> PolarChartValueAxisAngular::calculateLayout() const -{ - int tickCount = static_cast<QValueAxis *>(axis())->tickCount(); - Q_ASSERT(tickCount >= 2); - - QVector<qreal> points; - points.resize(tickCount); - - const qreal d = 360.0 / qreal(tickCount - 1); - - for (int i = 0; i < tickCount; ++i) { - qreal angularCoordinate = qreal(i) * d; - points[i] = angularCoordinate; - } - - return points; -} - -void PolarChartValueAxisAngular::createAxisLabels(const QVector<qreal> &layout) -{ - QStringList labelList = createValueLabels(min(), max(), layout.size(), static_cast<QValueAxis *>(axis())->labelFormat()); - setLabels(labelList); -} - -void PolarChartValueAxisAngular::handleTickCountChanged(int tick) -{ - Q_UNUSED(tick); - QGraphicsLayoutItem::updateGeometry(); - if (presenter()) - presenter()->layout()->invalidate(); -} - -void PolarChartValueAxisAngular::handleLabelFormatChanged(const QString &format) -{ - Q_UNUSED(format); - QGraphicsLayoutItem::updateGeometry(); - if (presenter()) - presenter()->layout()->invalidate(); -} - -#include "moc_polarchartvalueaxisangular_p.cpp" - -QTCOMMERCIALCHART_END_NAMESPACE diff --git a/src/axis/valueaxis/polarchartvalueaxisangular_p.h b/src/axis/valueaxis/polarchartvalueaxisangular_p.h deleted file mode 100644 index 4b79968c..00000000 --- a/src/axis/valueaxis/polarchartvalueaxisangular_p.h +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 Qt Enterprise 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 POLARCHARTVALUEAXISANGULAR_P_H -#define POLARCHARTVALUEAXISANGULAR_P_H - -#include "polarchartaxisangular_p.h" - -QTCOMMERCIALCHART_BEGIN_NAMESPACE - -class QValueAxis; - -class PolarChartValueAxisAngular : public PolarChartAxisAngular -{ - Q_OBJECT -public: - PolarChartValueAxisAngular(QValueAxis *axis, QGraphicsItem *item); - ~PolarChartValueAxisAngular(); - - virtual QVector<qreal> calculateLayout() const; - virtual void createAxisLabels(const QVector<qreal> &layout); - -private Q_SLOTS: - void handleTickCountChanged(int tick); - void handleLabelFormatChanged(const QString &format); -}; - -QTCOMMERCIALCHART_END_NAMESPACE - -#endif // POLARCHARTVALUEAXISANGULAR_P_H diff --git a/src/axis/valueaxis/polarchartvalueaxisradial.cpp b/src/axis/valueaxis/polarchartvalueaxisradial.cpp deleted file mode 100644 index 6317a8ec..00000000 --- a/src/axis/valueaxis/polarchartvalueaxisradial.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "polarchartvalueaxisradial_p.h" -#include "chartpresenter_p.h" -#include "abstractchartlayout_p.h" - -QTCOMMERCIALCHART_BEGIN_NAMESPACE - -PolarChartValueAxisRadial::PolarChartValueAxisRadial(QValueAxis *axis, QGraphicsItem *item) - : PolarChartAxisRadial(axis, item) -{ - QObject::connect(axis, SIGNAL(tickCountChanged(int)), this, SLOT(handleTickCountChanged(int))); - QObject::connect(axis, SIGNAL(labelFormatChanged(QString)), this, SLOT(handleLabelFormatChanged(QString))); -} - -PolarChartValueAxisRadial::~PolarChartValueAxisRadial() -{ -} - -QVector<qreal> PolarChartValueAxisRadial::calculateLayout() const -{ - int tickCount = static_cast<QValueAxis *>(axis())->tickCount(); - Q_ASSERT(tickCount >= 2); - - QVector<qreal> points; - points.resize(tickCount); - - const qreal d = (axisGeometry().width() / 2) / qreal(tickCount - 1); - - for (int i = 0; i < tickCount; ++i) { - qreal radialCoordinate = qreal(i) * d; - points[i] = radialCoordinate; - } - - return points; -} - -void PolarChartValueAxisRadial::createAxisLabels(const QVector<qreal> &layout) -{ - setLabels(createValueLabels(min(), max(), layout.size(), static_cast<QValueAxis *>(axis())->labelFormat())); -} - -void PolarChartValueAxisRadial::handleTickCountChanged(int tick) -{ - Q_UNUSED(tick); - QGraphicsLayoutItem::updateGeometry(); - if (presenter()) - presenter()->layout()->invalidate(); -} - -void PolarChartValueAxisRadial::handleLabelFormatChanged(const QString &format) -{ - Q_UNUSED(format); - QGraphicsLayoutItem::updateGeometry(); - if (presenter()) - presenter()->layout()->invalidate(); -} - -#include "moc_polarchartvalueaxisradial_p.cpp" - -QTCOMMERCIALCHART_END_NAMESPACE diff --git a/src/axis/valueaxis/polarchartvalueaxisradial_p.h b/src/axis/valueaxis/polarchartvalueaxisradial_p.h deleted file mode 100644 index e718da8e..00000000 --- a/src/axis/valueaxis/polarchartvalueaxisradial_p.h +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 Qt Enterprise 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 POLARCHARTVALUEAXISRADIAL_P_H -#define POLARCHARTVALUEAXISRADIAL_P_H - -#include "polarchartaxisradial_p.h" - -QTCOMMERCIALCHART_BEGIN_NAMESPACE - -class QValueAxis; - -class PolarChartValueAxisRadial : public PolarChartAxisRadial -{ - Q_OBJECT -public: - PolarChartValueAxisRadial(QValueAxis *axis, QGraphicsItem *item); - ~PolarChartValueAxisRadial(); - - virtual QVector<qreal> calculateLayout() const; - virtual void createAxisLabels(const QVector<qreal> &layout); - -private Q_SLOTS: - void handleTickCountChanged(int tick); - void handleLabelFormatChanged(const QString &format); -}; - -QTCOMMERCIALCHART_END_NAMESPACE - -#endif // POLARCHARTVALUEAXISRADIAL_P_H diff --git a/src/axis/valueaxis/qvalueaxis.cpp b/src/axis/valueaxis/qvalueaxis.cpp deleted file mode 100644 index 8656ebd4..00000000 --- a/src/axis/valueaxis/qvalueaxis.cpp +++ /dev/null @@ -1,451 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "qvalueaxis.h" -#include "qvalueaxis_p.h" -#include "chartvalueaxisx_p.h" -#include "chartvalueaxisy_p.h" -#include "abstractdomain_p.h" -#include "polarchartvalueaxisangular_p.h" -#include "polarchartvalueaxisradial_p.h" -#include "chartdataset_p.h" -#include "chartpresenter_p.h" -#include "charttheme_p.h" - - -QTCOMMERCIALCHART_BEGIN_NAMESPACE -/*! - \class QValueAxis - \inmodule Qt Charts - \brief The QValueAxis class is used for manipulating chart's axis. - \mainclass - - ValueAxis can be setup to show axis line with tick marks, grid lines and shades. - Values of axis are drawn to position of ticks. - - Example code on how to use QValueAxis. - \code - QChartView *chartView = new QChartView; - QLineSeries *series = new QLineSeries; - // ... - chartView->chart()->addSeries(series); - - QValueAxis *axisX = new QValueAxis; - axisX->setRange(10, 20.5); - axisX->setTickCount(10); - axisX->setLabelFormat("%.2f"); - chartView->chart()->setAxisX(axisX, series); - \endcode -*/ -#ifdef QDOC_QT5 -/*! - \qmltype ValueAxis - \instantiates QValueAxis - \inqmlmodule QtCommercial.Chart - - \include doc/src/valueaxis.qdocinc -*/ -#else -/*! - \qmlclass ValueAxis QValueAxis - - \include ../doc/src/valueaxis.qdocinc -*/ -#endif - -/*! - \property QValueAxis::min - Defines the minimum value on the axis. - When setting this property the max is adjusted if necessary, to ensure that the range remains valid. -*/ -/*! - \qmlproperty real ValueAxis::min - Defines the minimum value on the axis. - When setting this property the max is adjusted if necessary, to ensure that the range remains valid. -*/ - -/*! - \property QValueAxis::max - Defines the maximum value on the axis. - When setting this property the min is adjusted if necessary, to ensure that the range remains valid. -*/ -/*! - \qmlproperty real ValueAxis::max - Defines the maximum value on the axis. - When setting this property the min is adjusted if necessary, to ensure that the range remains valid. -*/ - -/*! - \property QValueAxis::tickCount - Defines the number of ticks on the axis. This indicates how many grid lines are draw on the chart. - The default value is 5, and it can not be below 2. -*/ -/*! - \qmlproperty real ValueAxis::tickCount - Defines the number of ticks on the axis. This indicates how many grid lines are draw on the chart. - The default value is 5, and it can not be below 2. -*/ - -/*! - \property QValueAxis::labelFormat - Defines the label format of the axis. - Supported specifiers are: d, i, o, x, X, f, F, e, E, g, G, and c. - See QString::sprintf() for additional details. - - If the QChart::localizeNumbers is \c{true}, the supported specifiers are limited to: d, e, E, f, - g, G, and i. Also, only the precision modifier is supported. The rest of the formatting comes from - the default QLocale of the application. -*/ -/*! - \qmlproperty real ValueAxis::labelFormat - Defines the label format of the axis. - Supported specifiers are: d, i, o, x, X, f, F, e, E, g, G, and c. - See QString::sprintf() for additional details. - - If the ChartView::localizeNumbers is \c{true}, the supported specifiers are limited to: d, e, E, f, - g, G, and i. Also, only the precision modifier is supported. The rest of the formatting comes from - the default QLocale of the application. -*/ - -/*! - \fn void QValueAxis::minChanged(qreal min) - Axis emits signal when \a min of axis has changed. -*/ -/*! - \qmlsignal ValueAxis::onMinChanged(real min) - Axis emits signal when \a min of axis has changed. -*/ - -/*! - \fn void QValueAxis::maxChanged(qreal max) - Axis emits signal when \a max of axis has changed. -*/ -/*! - \qmlsignal ValueAxis::onMaxChanged(real max) - Axis emits signal when \a max of axis has changed. -*/ - -/*! - \fn void QValueAxis::tickCountChanged(int tickCount) - Axis emits signal when \a tickCount of axis has changed. -*/ -/*! - \qmlsignal ValueAxis::tickCountChanged(int tickCount) - Axis emits signal when \a tickCount of axis has changed. -*/ - -/*! - \fn void QValueAxis::rangeChanged(qreal min, qreal max) - Axis emits signal when \a min or \a max of axis has changed. -*/ - -/*! - \fn void QValueAxis::labelFormatChanged(const QString &format) - Axis emits signal when \a format of axis labels has changed. -*/ -/*! - \qmlsignal ValueAxis::labelFormatChanged(const QString &format) - Axis emits signal when \a format of axis labels has changed. -*/ - -/*! - \property QValueAxis::niceNumbersEnabled - \obsolete - Using this function can lead to unexpected behavior. Use applyNiceNumbers() instead. -*/ - -/*! - \qmlproperty bool ValueAxis::niceNumbersEnabled - Deprecated; Using this function can lead to unexpected behavior. Use applyNiceNumbers() instead. -*/ - -/*! - Constructs an axis object which is a child of \a parent. -*/ -QValueAxis::QValueAxis(QObject *parent) : - QAbstractAxis(*new QValueAxisPrivate(this), parent) -{ - -} - -/*! - \internal -*/ -QValueAxis::QValueAxis(QValueAxisPrivate &d, QObject *parent) - : QAbstractAxis(d, parent) -{ - -} - -/*! - Destroys the object -*/ -QValueAxis::~QValueAxis() -{ - Q_D(QValueAxis); - if (d->m_chart) - d->m_chart->removeAxis(this); -} - -void QValueAxis::setMin(qreal min) -{ - Q_D(QValueAxis); - setRange(min, qMax(d->m_max, min)); -} - -qreal QValueAxis::min() const -{ - Q_D(const QValueAxis); - return d->m_min; -} - -void QValueAxis::setMax(qreal max) -{ - Q_D(QValueAxis); - setRange(qMin(d->m_min, max), max); -} - -qreal QValueAxis::max() const -{ - Q_D(const QValueAxis); - return d->m_max; -} - -/*! - Sets range from \a min to \a max on the axis. - If min is greater than max then this function returns without making any changes. -*/ -void QValueAxis::setRange(qreal min, qreal max) -{ - Q_D(QValueAxis); - d->setRange(min,max); -} - -void QValueAxis::setTickCount(int count) -{ - Q_D(QValueAxis); - if (d->m_tickCount != count && count >= 2) { - d->m_tickCount = count; - emit tickCountChanged(count); - } -} - -int QValueAxis::tickCount() const -{ - Q_D(const QValueAxis); - return d->m_tickCount; -} - -void QValueAxis::setNiceNumbersEnabled(bool enable) -{ - Q_D(QValueAxis); - qWarning() << "Deprecated; Using this function can lead to unexpected behavior. " \ - "Use applyNiceNumbers() instead."; - if(enable) { - QObject::connect(this,SIGNAL(rangeChanged(qreal,qreal)),this,SLOT(applyNiceNumbers())); - QObject::connect(this,SIGNAL(tickCountChanged(int)),this,SLOT(applyNiceNumbers())); - applyNiceNumbers(); - } - else { - QObject::disconnect(this,SIGNAL(rangeChanged(qreal,qreal)),this,SLOT(applyNiceNumbers())); - QObject::disconnect(this,SIGNAL(tickCountChanged(int)),this,SLOT(applyNiceNumbers())); - } - d->m_niceNumbersEnabled=enable; -} - -bool QValueAxis::niceNumbersEnabled() const -{ - Q_D(const QValueAxis); - qWarning() << "Deprecated; Using this function can lead to unexpected behavior. " \ - "Use applyNiceNumbers() instead."; - return d->m_niceNumbersEnabled; -} - -void QValueAxis::setLabelFormat(const QString &format) -{ - Q_D(QValueAxis); - d->m_format = format; - emit labelFormatChanged(format); -} - -QString QValueAxis::labelFormat() const -{ - Q_D(const QValueAxis); - return d->m_format; -} - -/*! - Returns the type of the axis -*/ -QAbstractAxis::AxisType QValueAxis::type() const -{ - return AxisTypeValue; -} - -/*! - This method modifies range and number of ticks on the axis to look "nice". Algorithm considers numbers that - can be expressed as form of 1*10^n, 2* 10^n or 5*10^n as a nice numbers. These numbers are used for spacing the ticks. - This method will modify the current range and number of ticks. - \sa setRange(), setTickCount() -*/ -void QValueAxis::applyNiceNumbers() -{ - Q_D(QValueAxis); - if(d->m_applying) return; - qreal min = d->m_min; - qreal max = d->m_max; - int ticks = d->m_tickCount; - AbstractDomain::looseNiceNumbers(min,max,ticks); - d->m_applying=true; - d->setRange(min,max); - setTickCount(ticks); - d->m_applying=false; -} - -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -QValueAxisPrivate::QValueAxisPrivate(QValueAxis *q) - : QAbstractAxisPrivate(q), - m_min(0), - m_max(0), - m_tickCount(5), - m_format(QString::null), - m_applying(false), - m_niceNumbersEnabled(false) -{ - -} - -QValueAxisPrivate::~QValueAxisPrivate() -{ - -} - -void QValueAxisPrivate::setMin(const QVariant &min) -{ - Q_Q(QValueAxis); - bool ok; - qreal value = min.toReal(&ok); - if (ok) - q->setMin(value); -} - -void QValueAxisPrivate::setMax(const QVariant &max) -{ - Q_Q(QValueAxis); - bool ok; - qreal value = max.toReal(&ok); - if (ok) - q->setMax(value); -} - -void QValueAxisPrivate::setRange(const QVariant &min, const QVariant &max) -{ - Q_Q(QValueAxis); - bool ok1; - bool ok2; - qreal value1 = min.toReal(&ok1); - qreal value2 = max.toReal(&ok2); - if (ok1 && ok2) - q->setRange(value1, value2); -} - -void QValueAxisPrivate::setRange(qreal min, qreal max) -{ - Q_Q(QValueAxis); - bool changed = false; - - if (min > max) - return; - - bool changeMin = false; - if (m_min == 0 || min == 0) - changeMin = !qFuzzyCompare(1 + m_min, 1 + min); - else - changeMin = !qFuzzyCompare(m_min, min); - - bool changeMax = false; - if (m_max == 0 || max == 0) - changeMax = !qFuzzyCompare(1 + m_max, 1 + max); - else - changeMax = !qFuzzyCompare(m_max, max); - - if (changeMin) { - m_min = min; - changed = true; - emit q->minChanged(min); - } - - if (changeMax) { - m_max = max; - changed = true; - emit q->maxChanged(max); - } - - if (changed) { - emit rangeChanged(min,max); - emit q->rangeChanged(min, max); - } -} - -void QValueAxisPrivate::initializeGraphics(QGraphicsItem *parent) -{ - Q_Q(QValueAxis); - ChartAxisElement *axis(0); - - if (m_chart->chartType() == QChart::ChartTypeCartesian) { - if (orientation() == Qt::Vertical) - axis = new ChartValueAxisY(q,parent); - if (orientation() == Qt::Horizontal) - axis = new ChartValueAxisX(q,parent); - } - - if (m_chart->chartType() == QChart::ChartTypePolar) { - if (orientation() == Qt::Vertical) - axis = new PolarChartValueAxisRadial(q, parent); - if (orientation() == Qt::Horizontal) - axis = new PolarChartValueAxisAngular(q, parent); - } - - m_item.reset(axis); - QAbstractAxisPrivate::initializeGraphics(parent); -} - - -void QValueAxisPrivate::initializeDomain(AbstractDomain *domain) -{ - if (orientation() == Qt::Vertical) { - if (!qFuzzyIsNull(m_max - m_min)) - domain->setRangeY(m_min, m_max); - else - setRange(domain->minY(), domain->maxY()); - } - if (orientation() == Qt::Horizontal) { - if (!qFuzzyIsNull(m_max - m_min)) - domain->setRangeX(m_min, m_max); - else - setRange(domain->minX(), domain->maxX()); - } -} - -#include "moc_qvalueaxis.cpp" -#include "moc_qvalueaxis_p.cpp" - -QTCOMMERCIALCHART_END_NAMESPACE diff --git a/src/axis/valueaxis/qvalueaxis.h b/src/axis/valueaxis/qvalueaxis.h deleted file mode 100644 index 2cbbd762..00000000 --- a/src/axis/valueaxis/qvalueaxis.h +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 QVALUEAXIS_H -#define QVALUEAXIS_H - -#include "qabstractaxis.h" - -QTCOMMERCIALCHART_BEGIN_NAMESPACE - -class QValueAxisPrivate; - -class QTCOMMERCIALCHART_EXPORT QValueAxis : public QAbstractAxis -{ - Q_OBJECT - Q_PROPERTY(int tickCount READ tickCount WRITE setTickCount NOTIFY tickCountChanged) - Q_PROPERTY(bool niceNumbersEnabled READ niceNumbersEnabled WRITE setNiceNumbersEnabled) - Q_PROPERTY(qreal min READ min WRITE setMin NOTIFY minChanged) - Q_PROPERTY(qreal max READ max WRITE setMax NOTIFY maxChanged) - Q_PROPERTY(QString labelFormat READ labelFormat WRITE setLabelFormat NOTIFY labelFormatChanged) - -public: - explicit QValueAxis(QObject *parent = 0); - ~QValueAxis(); - -protected: - QValueAxis(QValueAxisPrivate &d, QObject *parent = 0); - -public: - AxisType type() 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 setTickCount(int count); - int tickCount() const; - - void setLabelFormat(const QString &format); - QString labelFormat() const; - - void setNiceNumbersEnabled(bool enable = true); - bool niceNumbersEnabled() const; - -public Q_SLOTS: - void applyNiceNumbers(); - -Q_SIGNALS: - void minChanged(qreal min); - void maxChanged(qreal max); - void rangeChanged(qreal min, qreal max); - void tickCountChanged(int tickCount); - void labelFormatChanged(const QString &format); - -private: - Q_DECLARE_PRIVATE(QValueAxis) - Q_DISABLE_COPY(QValueAxis) -}; - -QTCOMMERCIALCHART_END_NAMESPACE - -#endif // QVALUEAXIS_H diff --git a/src/axis/valueaxis/qvalueaxis_p.h b/src/axis/valueaxis/qvalueaxis_p.h deleted file mode 100644 index 0a0eeb56..00000000 --- a/src/axis/valueaxis/qvalueaxis_p.h +++ /dev/null @@ -1,70 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 Qt Enterprise 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 QVALUEAXIS_P_H -#define QVALUEAXIS_P_H - -#include "qvalueaxis.h" -#include "qabstractaxis_p.h" - -QTCOMMERCIALCHART_BEGIN_NAMESPACE - -class QValueAxisPrivate : public QAbstractAxisPrivate -{ - Q_OBJECT -public: - QValueAxisPrivate(QValueAxis *q); - ~QValueAxisPrivate(); - -public: - void initializeGraphics(QGraphicsItem* parent); - void initializeDomain(AbstractDomain *domain); - - qreal min() { return m_min; }; - qreal max() { return m_max; }; - void setRange(qreal min,qreal max); - -protected: - void setMin(const QVariant &min); - void setMax(const QVariant &max); - void setRange(const QVariant &min, const QVariant &max); - -private: - qreal m_min; - qreal m_max; - int m_tickCount; - QString m_format; - bool m_applying; - bool m_niceNumbersEnabled; - Q_DECLARE_PUBLIC(QValueAxis) -}; - -QTCOMMERCIALCHART_END_NAMESPACE - -#endif // QVALUEAXIS_P_H |