diff options
Diffstat (limited to 'src/axis/valueaxis/qvalueaxis.cpp')
-rw-r--r-- | src/axis/valueaxis/qvalueaxis.cpp | 451 |
1 files changed, 0 insertions, 451 deletions
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 |