summaryrefslogtreecommitdiffstats
path: root/src/axis/categoryaxis/qcategoryaxis.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/axis/categoryaxis/qcategoryaxis.cpp')
-rw-r--r--src/axis/categoryaxis/qcategoryaxis.cpp342
1 files changed, 0 insertions, 342 deletions
diff --git a/src/axis/categoryaxis/qcategoryaxis.cpp b/src/axis/categoryaxis/qcategoryaxis.cpp
deleted file mode 100644
index 8d4d73f0..00000000
--- a/src/axis/categoryaxis/qcategoryaxis.cpp
+++ /dev/null
@@ -1,342 +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 "qcategoryaxis.h"
-#include "qcategoryaxis_p.h"
-#include "chartcategoryaxisx_p.h"
-#include "chartcategoryaxisy_p.h"
-#include "polarchartcategoryaxisangular_p.h"
-#include "polarchartcategoryaxisradial_p.h"
-#include "qchart.h"
-#include <qmath.h>
-#include <QDebug>
-
-QTCOMMERCIALCHART_BEGIN_NAMESPACE
-/*!
- \class QCategoryAxis
- \inmodule Qt Charts
- \brief The QCategoryAxis class allows putting a named ranges on the axis.
- \mainclass
-
- This class can be used when the underlying data needs to be given extra meaning.
- Unlike with the QBarCategoryAxis the QCategoryAxis allows the categories ranges widths to be specified freely.
-
- Example code on how to use QCategoryAxis:
- \table
- \row
- \li \br
- \br
- \code
- QChartView *chartView = new QChartView;
- QLineSeries *series = new QLineSeries;
- // ...
- chartView->chart()->addSeries(series);
-
- QCategoryAxis *axisY = new QCategoryAxis;
- axisY->setMin(0);
- axisY->setMax(52);
- axisY->setStartValue(15);
- axisY->append("First", 20);
- axisY->append("Second", 37);
- axisY->append("Third", 52);
- chartView->chart()->setAxisY(axisY, series);
- \endcode
- \li \br
- \inlineimage api_category_axis.png
- \endtable
-*/
-#ifdef QDOC_QT5
-/*!
- \qmltype CategoryAxis
- \instantiates QCategoryAxis
- \inqmlmodule QtCommercial.Chart
-
- \include doc/src/categoryaxis.qdocinc
-*/
-#else
-/*!
- \qmlclass CategoryAxis QCategoryAxis
-
- \include ../doc/src/categoryaxis.qdocinc
-*/
-#endif
-
-/*!
- \property QCategoryAxis::startValue
- Defines the low end of the first category on the axis.
-*/
-/*!
- \qmlproperty int CategoryAxis::startValue
- Defines the low end of the first category on the axis.
-*/
-
-/*!
- \property QCategoryAxis::count
- The count of categories.
-*/
-/*!
- \qmlproperty int CategoryAxis::count
- The count of categories.
-*/
-
-/*!
- \property QCategoryAxis::categoriesLabels
- The category labels as a string list.
-*/
-/*!
- \qmlproperty StringList CategoryAxis::categoriesLabels
- The category labels as a list of strings.
-*/
-
-/*!
- \fn void QCategoryAxis::categoriesChanged()
- Axis emits signal when the categories of the axis have changed.
-*/
-
-
-/*!
- Constructs an axis object which is a child of \a parent.
-*/
-QCategoryAxis::QCategoryAxis(QObject *parent):
- QValueAxis(*new QCategoryAxisPrivate(this), parent)
-{
-}
-
-/*!
- Destroys the object
-*/
-QCategoryAxis::~QCategoryAxis()
-{
- Q_D(QCategoryAxis);
- if (d->m_chart)
- d->m_chart->removeAxis(this);
-}
-
-/*!
- \internal
-*/
-QCategoryAxis::QCategoryAxis(QCategoryAxisPrivate &d, QObject *parent): QValueAxis(d, parent)
-{
-
-}
-
-/*!
- \qmlmethod CategoryAxis::append(string label, real endValue)
- Appends new category to the axis with an \a label. Category label has to be unique.
- Parameter \a endValue specifies the high end limit of the category.
- It has to be greater than the high end limit of the previous category.
- Otherwise the method returns without adding a new category.
-*/
-/*!
- Appends new category to the axis with an \a categoryLabel.
- Category label has to be unique.
- Parameter \a categoryEndValue specifies the high end limit of the category.
- It has to be greater than the high end limit of the previous category.
- Otherwise the method returns without adding a new category.
-*/
-void QCategoryAxis::append(const QString &categoryLabel, qreal categoryEndValue)
-{
- Q_D(QCategoryAxis);
-
- if (!d->m_categories.contains(categoryLabel)) {
- if (d->m_categories.isEmpty()) {
- Range range(d->m_categoryMinimum, categoryEndValue);
- d->m_categoriesMap.insert(categoryLabel, range);
- d->m_categories.append(categoryLabel);
- emit categoriesChanged();
- } else if (categoryEndValue > endValue(d->m_categories.last())) {
- Range previousRange = d->m_categoriesMap.value(d->m_categories.last());
- d->m_categoriesMap.insert(categoryLabel, Range(previousRange.second, categoryEndValue));
- d->m_categories.append(categoryLabel);
- emit categoriesChanged();
- }
- }
-}
-
-/*!
- Sets \a min to be the low end limit of the first category on the axis.
- If there is already some categories added to the axis then passed value must be lower than the high end value of the already defined first category range.
- Otherwise nothing is done.
-*/
-void QCategoryAxis::setStartValue(qreal min)
-{
- Q_D(QCategoryAxis);
- if (d->m_categories.isEmpty()) {
- d->m_categoryMinimum = min;
- emit categoriesChanged();
- } else {
- Range range = d->m_categoriesMap.value(d->m_categories.first());
- if (min < range.second) {
- d->m_categoriesMap.insert(d->m_categories.first(), Range(min, range.second));
- emit categoriesChanged();
- }
- }
-}
-
-/*!
- Returns the low end limit of the category specified by an \a categoryLabel
-*/
-qreal QCategoryAxis::startValue(const QString &categoryLabel) const
-{
- Q_D(const QCategoryAxis);
- if (categoryLabel.isEmpty())
- return d->m_categoryMinimum;
- return d->m_categoriesMap.value(categoryLabel).first;
-}
-
-/*!
- Returns the high end limit of the interval specified by an \a categoryLabel
-*/
-qreal QCategoryAxis::endValue(const QString &categoryLabel) const
-{
- Q_D(const QCategoryAxis);
- return d->m_categoriesMap.value(categoryLabel).second;
-}
-
-/*!
- \qmlmethod CategoryAxis::remove(string label)
- Removes a category specified by the \a label from the axis
-*/
-/*!
- Removes an interval specified by the \a categoryLabel from the axis
-*/
-void QCategoryAxis::remove(const QString &categoryLabel)
-{
- Q_D(QCategoryAxis);
- int labelIndex = d->m_categories.indexOf(categoryLabel);
-
- // check if such label exists
- if (labelIndex != -1) {
- d->m_categories.removeAt(labelIndex);
- d->m_categoriesMap.remove(categoryLabel);
-
- // the range of the interval that follows (if exists) needs to be updated
- if (labelIndex < d->m_categories.count()) {
- QString label = d->m_categories.at(labelIndex);
- Range range = d->m_categoriesMap.value(label);
-
- // set the range
- if (labelIndex == 0) {
- range.first = d->m_categoryMinimum;
- d->m_categoriesMap.insert(label, range);
- } else {
- range.first = d->m_categoriesMap.value(d->m_categories.at(labelIndex - 1)).second;
- d->m_categoriesMap.insert(label, range);
- }
- }
- emit categoriesChanged();
- }
-}
-
-/*!
- \qmlmethod CategoryAxis::replace(string oldLabel, string newLabel)
- Replaces \a oldLabel of an existing category with a \a newLabel.
- If the old label does not exist the method returns without making any changes.
-*/
-/*!
- Replaces \a oldLabel of an existing category with a \a newLabel
- If the old label does not exist the method returns without making any changes.
- */
-void QCategoryAxis::replaceLabel(const QString &oldLabel, const QString &newLabel)
-{
- Q_D(QCategoryAxis);
- int labelIndex = d->m_categories.indexOf(oldLabel);
-
- // check if such label exists
- if (labelIndex != -1) {
- d->m_categories.replace(labelIndex, newLabel);
- Range range = d->m_categoriesMap.value(oldLabel);
- d->m_categoriesMap.remove(oldLabel);
- d->m_categoriesMap.insert(newLabel, range);
- emit categoriesChanged();
- }
-}
-
-/*!
- Returns the list of the intervals labels
- */
-QStringList QCategoryAxis::categoriesLabels()
-{
- Q_D(QCategoryAxis);
- return d->m_categories;
-}
-
-/*!
- Returns number of intervals.
- */
-int QCategoryAxis::count() const
-{
- Q_D(const QCategoryAxis);
- return d->m_categories.count();
-}
-
-/*!
- Returns the type of the axis
-*/
-QAbstractAxis::AxisType QCategoryAxis::type() const
-{
- return QAbstractAxis::AxisTypeCategory;
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-QCategoryAxisPrivate::QCategoryAxisPrivate(QCategoryAxis *q)
- : QValueAxisPrivate(q),
- m_categoryMinimum(0)
-{
-
-}
-
-QCategoryAxisPrivate::~QCategoryAxisPrivate()
-{
-
-}
-
-int QCategoryAxisPrivate::ticksCount() const
-{
- return m_categories.count() + 1;
-}
-
-void QCategoryAxisPrivate::initializeGraphics(QGraphicsItem *parent)
-{
- Q_Q(QCategoryAxis);
- ChartAxisElement *axis(0);
- if (m_chart->chartType() == QChart::ChartTypeCartesian) {
- if (orientation() == Qt::Vertical)
- axis = new ChartCategoryAxisY(q,parent);
- else if (orientation() == Qt::Horizontal)
- axis = new ChartCategoryAxisX(q,parent);
- }
-
- if (m_chart->chartType() == QChart::ChartTypePolar) {
- if (orientation() == Qt::Vertical)
- axis = new PolarChartCategoryAxisRadial(q, parent);
- if (orientation() == Qt::Horizontal)
- axis = new PolarChartCategoryAxisAngular(q, parent);
- }
-
- m_item.reset(axis);
- QAbstractAxisPrivate::initializeGraphics(parent);
-}
-
-#include "moc_qcategoryaxis.cpp"
-#include "moc_qcategoryaxis_p.cpp"
-
-QTCOMMERCIALCHART_END_NAMESPACE