##// END OF EJS Templates
Fixed AreaSeries initialization for PolarChart...
Fixed AreaSeries initialization for PolarChart The correct domain has to be set for the upper and the lower series of the AreaSeries with polar chart. Updating the geometry of LineChartItem will have problems if the correct domain is not set. Change-Id: Id9664ae175d2ee272c4705fbdbf17d9a719cf428 Task-number: QTRD-3507 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com>

File last commit:

r2782:5fbd172ba15f
r2791:53fbaba3122c
Show More
qbarcategoryaxis.cpp
617 lines | 16.4 KiB | text/x-c | CppLexer
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 /****************************************************************************
**
Titta Heikkala
Copyright header changes...
r2776 ** Copyright (C) 2015 The Qt Company Ltd
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 ** All rights reserved.
Titta Heikkala
Copyright header changes...
r2776 ** For any questions to The Qt Company, please use contact form at http://qt.io
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 **
Titta Heikkala
Updated license headers...
r2740 ** This file is part of the Qt Charts module.
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 **
Titta Heikkala
Updated license headers...
r2740 ** Licensees holding valid commercial license for Qt may use this file in
** accordance with the Qt License Agreement provided with the Software
** or, alternatively, in accordance with the terms contained in a written
Titta Heikkala
Copyright header changes...
r2776 ** agreement between you and The Qt Company.
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 **
** If you have questions regarding the use of this file, please use
Titta Heikkala
Updated license headers...
r2740 ** contact form at http://qt.io
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 **
****************************************************************************/
Titta Heikkala
Fix include syntax...
r2714 #include <QtCharts/QBarCategoryAxis>
#include <private/qbarcategoryaxis_p.h>
#include <private/chartbarcategoryaxisx_p.h>
#include <private/chartbarcategoryaxisy_p.h>
#include <private/abstractdomain_p.h>
#include <QtCharts/QChart>
#include <QtCore/QtMath>
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613
Titta Heikkala
Qt Charts project file structure change...
r2712 QT_CHARTS_BEGIN_NAMESPACE
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624 /*!
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1809 \class QBarCategoryAxis
Titta Heikkala
Fix Charts documentation...
r2639 \inmodule Qt Charts
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1809 \brief The QBarCategoryAxis class is used for manipulating chart's axis.
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624
Titta Heikkala
Add invokable clear() for QML bar category axis...
r2691 QBarCategoryAxis can be setup to show axis line with tick marks, grid lines and shades.
sauimone
added description of using barcategory axis with line chart
r1650 Categories are drawn between ticks. Note that you can use this also with lineseries too.
See the \l {Line and BarChart Example} {Line and BarChart Example} to learn how to do that.
Marek Rosa
QBarCategoryAxis: docs snippet added
r1891
Example code on how to use QBarCategoryAxis.
\code
QChartView *chartView = new QChartView;
QBarSeries *series = new QBarSeries;
// ...
chartView->chart()->addSeries(series);
chartView->chart()->createDefaultAxes();
QBarCategoryAxis *axisX = new QBarCategoryAxis;
QStringList categories;
categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
axisX->append(categories);
Marek Rosa
Docs fixes for axes code snippets
r2108 axisX->setRange("Feb", "May");
chartView->chart()->setAxisX(axisX, series);
Marek Rosa
QBarCategoryAxis: docs snippet added
r1891 \endcode
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624 */
/*!
Titta Heikkala
Fix Charts documentation...
r2639 \qmltype BarCategoryAxis
\instantiates QBarCategoryAxis
Titta Heikkala
Qt Charts project file structure change...
r2712 \inqmlmodule QtCharts
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624
Titta Heikkala
Qt Charts project file structure change...
r2712 \inherits AbstractAxis
\brief The Axis element is used for manipulating chart's axes.
Axis can be setup to show axis line with tick marks, grid lines and shades.
Categories are drawn between ticks. Note that you can use this also with lineseries too.
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624
Titta Heikkala
Qt Charts project file structure change...
r2712 To access BarCategoryAxis you can use ChartView API. For example:
\code
ChartView {
BarCategoryAxis {
id: categoryAxis
categories: ["Jan", "Feb", "Mar", "Apr", "May", "Jun" ]
}
// Add a few series...
}
\endcode
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624 */
/*!
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1809 \property QBarCategoryAxis::categories
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624 Defines the categories of axis
*/
/*!
Tero Ahola
Fixed minor issues in QML axes documentation
r1869 \qmlproperty QStringList BarCategoryAxis::categories
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624 Defines the categories of axis
*/
/*!
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1809 \property QBarCategoryAxis::min
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624 Defines the minimum value on the axis.
*/
/*!
Tero Ahola
Fixed documentation issues in QML API
r2331 \qmlproperty string BarCategoryAxis::min
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624 Defines the minimum value on the axis.
*/
/*!
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1809 \property QBarCategoryAxis::max
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624 Defines the maximum value on the axis.
*/
/*!
Tero Ahola
Fixed documentation issues in QML API
r2331 \qmlproperty string BarCategoryAxis::max
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624 Defines the maximum value on the axis.
*/
Tero Ahola
Added missing count property to QBarCategoryAxis
r2249 /*!
\property QBarCategoryAxis::count
The count of categories.
*/
/*!
\qmlproperty int BarCategoryAxis::count
The count of categories.
*/
Marek Rosa
Docs fixes
r1657
/*!
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1809 \fn void QBarCategoryAxis::categoriesChanged()
Miikka Heikkinen
Add Polar chart support...
r2483 Axis emits signal when the categories of the axis have changed.
Marek Rosa
Docs fixes
r1657 */
Tero Ahola
Added missing count property to QBarCategoryAxis
r2249
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624 /*!
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1809 \fn void QBarCategoryAxis::minChanged(const QString &min)
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624 Axis emits signal when \a min of axis has changed.
*/
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 /*!
Tero Ahola
Fixed minor issues in QML axes documentation
r1869 \qmlsignal BarCategoryAxis::onMinChanged(const QString &min)
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 Axis emits signal when \a min of axis has changed.
*/
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624
/*!
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1809 \fn void QBarCategoryAxis::maxChanged(const QString &max)
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624 Axis emits signal when \a max of axis has changed.
*/
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 /*!
Tero Ahola
Fixed minor issues in QML axes documentation
r1869 \qmlsignal BarCategoryAxis::onMaxChanged(const QString &max)
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 Axis emits signal when \a max of axis has changed.
*/
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624
Tero Ahola
Added missing count property to QBarCategoryAxis
r2249 /*!
\fn void QBarCategoryAxis::countChanged()
Axis emits signal when the count of categories has changed.
*/
/*!
\qmlsignal BarCategoryAxis::onCountChanged()
Axis emits signal when the count of categories has changed.
*/
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624 /*!
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1809 \fn void QBarCategoryAxis::rangeChanged(const QString &min, const QString &max)
sauimone
barcategoriesaxis documentation. Doc stub to intervalaxis
r1624 Axis emits signal when \a min or \a max of axis has changed.
*/
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613
Titta Heikkala
Add invokable clear() for QML bar category axis...
r2691 /*!
\qmlmethod void BarCategoryAxis::clear()
Removes all categories. Sets the maximum and minimum of the axis's range to QString::null.
*/
Marek Rosa
Axes docs update
r1636 /*!
Constructs an axis object which is a child of \a parent.
*/
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 QBarCategoryAxis::QBarCategoryAxis(QObject *parent):
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 QAbstractAxis(*new QBarCategoryAxisPrivate(this), parent)
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
}
Marek Rosa
Various docs fixes
r1638 /*!
Destroys the object
*/
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 QBarCategoryAxis::~QBarCategoryAxis()
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_D(QBarCategoryAxis);
Michal Klocek
Refactors internals...
r2273 if (d->m_chart)
d->m_chart->removeAxis(this);
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 }
Marek Rosa
Various docs fixes
r1638 /*!
\internal
*/
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 QBarCategoryAxis::QBarCategoryAxis(QBarCategoryAxisPrivate &d, QObject *parent)
: QAbstractAxis(d, parent)
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
}
/*!
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 Appends \a categories to axis. A maximum of the axis will be changed to last category in \a categories.
If there were no categories previously defined, minimum of axis will be also changed to first category in \a categories.
A category has to be valid QStrings and can not be duplicated. Duplicated categories will not be appended.
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 */
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 void QBarCategoryAxis::append(const QStringList &categories)
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 if (categories.isEmpty())
Jani Honkonen
src folder: another massive victory for coding style police
r2131 return;
Michal Klocek
Bugfixes to barcategoryaxis
r1640
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_D(QBarCategoryAxis);
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121
int count = d->m_categories.count();
Jani Honkonen
src folder: another massive victory for coding style police
r2131 foreach(QString category, categories) {
if (!d->m_categories.contains(category) && !category.isNull()) {
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 d->m_categories.append(category);
}
}
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (d->m_categories.count() == count)
return;
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (count == 0)
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 setRange(d->m_categories.first(), d->m_categories.last());
Jani Honkonen
src folder: another massive victory for coding style police
r2131 else
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 setRange(d->m_minCategory, d->m_categories.last());
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 emit categoriesChanged();
Tero Ahola
Added missing count property to QBarCategoryAxis
r2249 emit countChanged();
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 }
/*!
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 Appends \a category to axis. A maximum of the axis will be changed to last \a category.
If there were no categories previously defined, minimum of axis will be also changed to \a category.
A \a category has to be valid QStrings and can not be duplicated. Duplicated categories will not be appended.
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 */
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 void QBarCategoryAxis::append(const QString &category)
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_D(QBarCategoryAxis);
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121
int count = d->m_categories.count();
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (!d->m_categories.contains(category) && !category.isNull())
sauimone
category axis initialization
r1662 d->m_categories.append(category);
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (d->m_categories.count() == count)
return;
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (count == 0)
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 setRange(d->m_categories.last(), d->m_categories.last());
Jani Honkonen
src folder: another massive victory for coding style police
r2131 else
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 setRange(d->m_minCategory, d->m_categories.last());
sauimone
category axis initialization
r1662 emit categoriesChanged();
Tero Ahola
Added missing count property to QBarCategoryAxis
r2249 emit countChanged();
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 }
/*!
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 Removes \a category from axis. Removing category which is currently maximum or minimum
will affect the axis range.
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 */
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 void QBarCategoryAxis::remove(const QString &category)
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_D(QBarCategoryAxis);
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 if (d->m_categories.contains(category)) {
d->m_categories.removeAt(d->m_categories.indexOf(category));
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (!d->m_categories.isEmpty()) {
if (d->m_minCategory == category) {
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 setRange(d->m_categories.first(), d->m_maxCategory);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 } else if (d->m_maxCategory == category) {
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 setRange(d->m_minCategory, d->m_categories.last());
} else {
Michal Klocek
Revert "TODOs removed from code. Undo me after release"...
r2407 d->updateCategoryDomain();
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 }
Jani Honkonen
src folder: another massive victory for coding style police
r2131 } else {
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 setRange(QString::null, QString::null);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 emit categoriesChanged();
Tero Ahola
Added missing count property to QBarCategoryAxis
r2249 emit countChanged();
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 }
}
/*!
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 Inserts \a category to axis at \a index. A \a category has to be valid QStrings and can not be duplicated.
If \a category is prepended or appended to categories, minimum and maximum of axis is updated accordingly.
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 */
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 void QBarCategoryAxis::insert(int index, const QString &category)
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_D(QBarCategoryAxis);
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121
int count = d->m_categories.count();
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (!d->m_categories.contains(category) && !category.isNull())
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 d->m_categories.insert(index, category);
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (d->m_categories.count() == count)
return;
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121
if (count == 0) {
setRange(d->m_categories.first(), d->m_categories.first());
} else if (index == 0) {
setRange(d->m_categories.first(), d->m_maxCategory);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 } else if (index == count) {
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 setRange(d->m_minCategory, d->m_categories.last());
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 } else {
Michal Klocek
Revert "TODOs removed from code. Undo me after release"...
r2407 d->updateCategoryDomain();
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 }
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 emit categoriesChanged();
Tero Ahola
Added missing count property to QBarCategoryAxis
r2249 emit countChanged();
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 }
Marek Rosa
Added posibility to replace category in QBarCategoriesAxis
r1774 /*!
Miikka Heikkinen
Documentation updates...
r2494 Replaces \a oldCategory with \a newCategory. If \a oldCategory does not exist on the axis nothing is done.
Tero Ahola
Added missing count property to QBarCategoryAxis
r2249 A \a newCategory has to be valid QStrings and can not be duplicated. In case of replacing minimum or maximum category,
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 minimum and maximum of axis is updated accordingly.
Marek Rosa
Added posibility to replace category in QBarCategoriesAxis
r1774 */
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 void QBarCategoryAxis::replace(const QString &oldCategory, const QString &newCategory)
Marek Rosa
Added posibility to replace category in QBarCategoriesAxis
r1774 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_D(QBarCategoryAxis);
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121
Marek Rosa
Added posibility to replace category in QBarCategoriesAxis
r1774 int pos = d->m_categories.indexOf(oldCategory);
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121
if (pos != -1 && !d->m_categories.contains(newCategory) && !newCategory.isNull()) {
Marek Rosa
Added posibility to replace category in QBarCategoriesAxis
r1774 d->m_categories.replace(pos, newCategory);
Mika Salmela
QBarCategoryAxis doesn't notify domain on category remove...
r2558 if (d->m_minCategory == oldCategory)
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 setRange(newCategory, d->m_maxCategory);
Mika Salmela
QBarCategoryAxis doesn't notify domain on category remove...
r2558 else if (d->m_maxCategory == oldCategory)
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 setRange(d->m_minCategory, newCategory);
Mika Salmela
QBarCategoryAxis doesn't notify domain on category remove...
r2558
Marek Rosa
Added posibility to replace category in QBarCategoriesAxis
r1774 emit categoriesChanged();
Tero Ahola
Added missing count property to QBarCategoryAxis
r2249 emit countChanged();
Marek Rosa
Added posibility to replace category in QBarCategoriesAxis
r1774 }
}
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 /*!
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 Removes all categories. Sets the maximum and minimum of the axis's range to QString::null.
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 */
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 void QBarCategoryAxis::clear()
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_D(QBarCategoryAxis);
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 d->m_categories.clear();
Jani Honkonen
src folder: another massive victory for coding style police
r2131 setRange(QString::null, QString::null);
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 emit categoriesChanged();
Tero Ahola
Added missing count property to QBarCategoryAxis
r2249 emit countChanged();
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 }
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 /*!
Set \a categories and discards the old ones, range of axis is adjusted to match first and last category in \a categories.
A category has to be valid QStrings and can not be duplicated.
*/
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 void QBarCategoryAxis::setCategories(const QStringList &categories)
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_D(QBarCategoryAxis);
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 d->m_categories.clear();
d->m_minCategory = QString::null;
d->m_maxCategory = QString::null;
d->m_min = 0;
d->m_max = 0;
d->m_count = 0;
append(categories);
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 }
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 /*!
Returns categories
*/
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 QStringList QBarCategoryAxis::categories()
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_D(QBarCategoryAxis);
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 return d->m_categories;
}
/*!
Returns number of categories.
*/
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 int QBarCategoryAxis::count() const
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_D(const QBarCategoryAxis);
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 return d->m_categories.count();
}
/*!
Returns category at \a index. Index must be valid.
*/
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 QString QBarCategoryAxis::at(int index) const
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_D(const QBarCategoryAxis);
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 return d->m_categories.at(index);
}
/*!
Sets minimum category to \a min.
*/
Jani Honkonen
more coding style fixes for src-folder...
r2104 void QBarCategoryAxis::setMin(const QString &min)
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_D(QBarCategoryAxis);
Michal Klocek
Refactors internals...
r2273 d->setRange(min, d->m_maxCategory);
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 }
/*!
Returns minimum category.
*/
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 QString QBarCategoryAxis::min() const
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_D(const QBarCategoryAxis);
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 return d->m_minCategory;
}
/*!
Sets maximum category to \a max.
*/
Jani Honkonen
more coding style fixes for src-folder...
r2104 void QBarCategoryAxis::setMax(const QString &max)
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_D(QBarCategoryAxis);
Michal Klocek
Refactors internals...
r2273 d->setRange(d->m_minCategory, max);
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 }
/*!
Returns maximum category
*/
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 QString QBarCategoryAxis::max() const
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_D(const QBarCategoryAxis);
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 return d->m_maxCategory;
}
/*!
Sets range from \a minCategory to \a maxCategory
*/
Jani Honkonen
more coding style fixes for src-folder...
r2104 void QBarCategoryAxis::setRange(const QString &minCategory, const QString &maxCategory)
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_D(QBarCategoryAxis);
Michal Klocek
Refactors internals...
r2273 d->setRange(minCategory,maxCategory);
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 }
/*!
Marek Rosa
Few more axes docs updates
r1637 Returns the type of the axis
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 */
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 QAbstractAxis::AxisType QBarCategoryAxis::type() const
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Marek Rosa
updated AxisType names
r1818 return AxisTypeBarCategory;
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Jani Honkonen
more coding style fixes for src-folder...
r2104 QBarCategoryAxisPrivate::QBarCategoryAxisPrivate(QBarCategoryAxis *q)
: QAbstractAxisPrivate(q),
m_min(0.0),
m_max(0.0),
m_count(0)
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
}
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 QBarCategoryAxisPrivate::~QBarCategoryAxisPrivate()
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
}
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 void QBarCategoryAxisPrivate::setMin(const QVariant &min)
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 setRange(min, m_maxCategory);
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 }
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 void QBarCategoryAxisPrivate::setMax(const QVariant &max)
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 setRange(m_minCategory, max);
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 }
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 void QBarCategoryAxisPrivate::setRange(const QVariant &min, const QVariant &max)
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
QString value1 = min.toString();
QString value2 = max.toString();
Michal Klocek
Refactors internals...
r2273 setRange(value1, value2);
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 }
Michal Klocek
Refactors internals...
r2273 void QBarCategoryAxisPrivate::setRange(qreal min, qreal max)
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_Q(QBarCategoryAxis);
Michal Klocek
Adds scroll support for categories axis
r1716
Michal Klocek
Refactors internals...
r2273 bool categoryChanged = false;
Michal Klocek
Implements qbarcategoriesaxis logic...
r1725 bool changed = false;
sauimone
category axis initialization
r1662
Michal Klocek
Refactors internals...
r2273 if (min > max)
return;
if (!qFuzzyIsNull(m_min - min)) {
m_min = min;
changed = true;
int imin = m_min + 0.5;
if (imin >= 0 && imin < m_categories.count()) {
QString minCategory = m_categories.at(imin);
if (m_minCategory != minCategory && !minCategory.isEmpty()) {
m_minCategory = minCategory;
categoryChanged = true;
emit q->minChanged(minCategory);
}
sauimone
barcategories axis initialisation crash commented out. add to known issues list
r1664 }
Michal Klocek
Refactors internals...
r2273
sauimone
category axis initialization
r1662 }
Michal Klocek
Refactors internals...
r2273
if (!qFuzzyIsNull(m_max - max)) {
m_max = max;
changed = true;
int imax = m_max - 0.5;
if (imax >= 0 && imax < m_categories.count()) {
QString maxCategory = m_categories.at(imax);
if (m_maxCategory != maxCategory && !maxCategory.isEmpty()) {
m_maxCategory = maxCategory;
categoryChanged = true;
emit q->maxChanged(maxCategory);
}
Michal Klocek
Implements qbarcategoriesaxis logic...
r1725 }
sauimone
category axis initialization
r1662 }
Michal Klocek
Refactors internals...
r2273 if (categoryChanged){
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 emit q->rangeChanged(m_minCategory, m_maxCategory);
Michal Klocek
Refactors internals...
r2273 }
if (changed) {
emit rangeChanged(m_min,m_max);
}
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 }
Michal Klocek
Refactors internals...
r2273 void QBarCategoryAxisPrivate::setRange(const QString &minCategory, const QString &maxCategory)
{
Q_Q(QBarCategoryAxis);
bool changed = false;
//special case in case or clearing all categories
if (minCategory.isNull() && maxCategory.isNull()) {
m_minCategory = minCategory;
m_maxCategory = maxCategory;
m_min = 0;
m_max = 0;
m_count = 0;
emit q->minChanged(minCategory);
emit q->maxChanged(maxCategory);
emit q->rangeChanged(m_minCategory, m_maxCategory);
emit rangeChanged(m_min,m_max);
Titta Heikkala
Fix bar category rendering for empty category...
r2677 return;
Michal Klocek
Refactors internals...
r2273 }
if (m_categories.indexOf(maxCategory) < m_categories.indexOf(minCategory))
return;
Titta Heikkala
Fix bar category rendering for empty category...
r2677 if (!minCategory.isNull() && (m_minCategory != minCategory || m_minCategory.isNull())
&& m_categories.contains(minCategory)) {
Michal Klocek
Refactors internals...
r2273 m_minCategory = minCategory;
m_min = m_categories.indexOf(m_minCategory) - 0.5;
changed = true;
emit q->minChanged(minCategory);
}
Titta Heikkala
Fix bar category rendering for empty category...
r2677 if (!maxCategory.isNull() && (m_maxCategory != maxCategory || m_maxCategory.isNull())
&& m_categories.contains(maxCategory)) {
Michal Klocek
Refactors internals...
r2273 m_maxCategory = maxCategory;
m_max = m_categories.indexOf(m_maxCategory) + 0.5;
changed = true;
emit q->maxChanged(maxCategory);
}
if (changed) {
m_count = m_max - m_min;
emit q->rangeChanged(m_minCategory, m_maxCategory);
emit rangeChanged(m_min,m_max);
}
}
void QBarCategoryAxisPrivate::initializeGraphics(QGraphicsItem* parent)
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_Q(QBarCategoryAxis);
Miikka Heikkinen
Add Polar chart support...
r2483 ChartAxisElement* axis(0);
Michal Klocek
Refactors internals...
r2273 if (orientation() == Qt::Vertical)
axis = new ChartBarCategoryAxisY(q,parent);
if (orientation() == Qt::Horizontal)
axis = new ChartBarCategoryAxisX(q,parent);
m_item.reset(axis);
QAbstractAxisPrivate::initializeGraphics(parent);
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613 }
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 void QBarCategoryAxisPrivate::updateCategoryDomain()
{
Mika Salmela
QBarCategoryAxis doesn't notify domain on category remove...
r2558 bool changed = false;
qreal tmpMin = m_categories.indexOf(m_minCategory) - 0.5;
if (!qFuzzyIsNull(m_min - tmpMin)) {
m_min = tmpMin;
changed = true;
}
qreal tmpMax = m_categories.indexOf(m_maxCategory) + 0.5;
if (!qFuzzyIsNull(m_max - tmpMax)) {
m_max = tmpMax;
changed = true;
}
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 m_count = m_max - m_min;
Mika Salmela
QBarCategoryAxis doesn't notify domain on category remove...
r2558
if (changed)
emit rangeChanged(m_min,m_max);
Michal Klocek
Adds more logic and documentation to qbarcategoryaxis for append, insert, replace, clear
r2121 }
Marek Rosa
Domains added
r2275 void QBarCategoryAxisPrivate::initializeDomain(AbstractDomain *domain)
Michal Klocek
Creates default initalization of axes
r1661 {
Marek Rosa
QBarCategoriesAxis renamed to QBarCategoryAxis
r1808 Q_Q(QBarCategoryAxis);
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 if (m_max == m_min) {
Michal Klocek
Add autoscale support to barcategoriesaxis
r1764 int min;
int max;
Michal Klocek
Refactors internals...
r2273 if (orientation() == Qt::Vertical) {
Michal Klocek
Add autoscale support to barcategoriesaxis
r1764 min = domain->minY() + 0.5;
max = domain->maxY() - 0.5;
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 } else {
Michal Klocek
Add autoscale support to barcategoriesaxis
r1764 min = domain->minX() + 0.5;
max = domain->maxX() - 0.5;
}
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 if (min > 0 && min < m_categories.count() && max > 0 && max < m_categories.count())
q->setRange(m_categories.at(min), m_categories.at(max));
} else {
Michal Klocek
Refactors internals...
r2273 if (orientation() == Qt::Vertical)
Michal Klocek
Add autoscale support to barcategoriesaxis
r1764 domain->setRangeY(m_min, m_max);
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 else
Michal Klocek
Add autoscale support to barcategoriesaxis
r1764 domain->setRangeX(m_min, m_max);
sauimone
category axis initialization
r1662 }
Michal Klocek
Creates default initalization of axes
r1661 }
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613
Marek Rosa
renamed QBarCategoryAxis related files
r1810 #include "moc_qbarcategoryaxis.cpp"
#include "moc_qbarcategoryaxis_p.cpp"
Michal Klocek
Refactor CategoriesAxis to BarCategoriesAxis part 2 of 2
r1613
Titta Heikkala
Qt Charts project file structure change...
r2712 QT_CHARTS_END_NAMESPACE