##// END OF EJS Templates
Fix crash with boxplotttester...
Fix crash with boxplotttester The test application clears the second set in the first series. It is checked that the set exists before clearing it. Change-Id: I6fc7aa812a359b2227930852c02e9b6029a7303e Reviewed-by: Mika Salmela <mika.salmela@digia.com>

File last commit:

r2575:f9a133cb3e77
r2630:c58d5a10ac65
Show More
qabstractaxis.cpp
1009 lines | 23.6 KiB | text/x-c | CppLexer
/ src / axis / qabstractaxis.cpp
Michal Klocek
Adds new API classes...
r1540 /****************************************************************************
**
Miikka Heikkinen
Fixed the copyright year 2012 -> 2013
r2432 ** Copyright (C) 2013 Digia Plc
Michal Klocek
Adds new API classes...
r1540 ** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
Miikka Heikkinen
Qt Commercial -> Qt Enterprise...
r2574 ** This file is part of the Qt Enterprise Charts Add-on.
Michal Klocek
Adds new API classes...
r1540 **
** $QT_BEGIN_LICENSE$
Miikka Heikkinen
Qt Commercial -> Qt Enterprise...
r2574 ** Licensees holding valid Qt Enterprise licenses may use this file in
** accordance with the Qt Enterprise License Agreement provided with the
Michal Klocek
Adds new API classes...
r1540 ** 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 "qabstractaxis.h"
#include "qabstractaxis_p.h"
Michal Klocek
Refactors internals...
r2273 #include "chartdataset_p.h"
#include "charttheme_p.h"
Miikka Heikkinen
Fix explicitly set default pen/brush/font getting overridden by theme...
r2516 #include "qchart_p.h"
Michal Klocek
Adds new API classes...
r1540
QTCOMMERCIALCHART_BEGIN_NAMESPACE
/*!
\class QAbstractAxis
\brief The QAbstractAxis class is used for manipulating chart's axis.
\mainclass
Miikka Heikkinen
Documentation updates...
r2494 Each series can be bound to one or more horizontal and vertical axes, but mixing axis types
that would result in different domains is not supported, such as specifying
QValueAxis and QLogValueAxis on the same orientation.
Properties and visibility of various axis elements such as axis line, title, labels, grid lines,
and shades can be individually controlled.
Michal Klocek
Adds new API classes...
r1540 */
/*!
sauimone
qml doc update
r1639 \qmlclass AbstractAxis QAbstractAxis
Miikka Heikkinen
Fix some documentation issues...
r2520 \brief The AbstractAxis is a base element used for specialized axis elements.
Michal Klocek
Adds new API classes...
r1540
Miikka Heikkinen
Documentation updates...
r2494 Each series can be bound to only one horizontal and vertical axis.
Michal Klocek
Adds new API classes...
r1540
Miikka Heikkinen
Documentation updates...
r2494 Properties and visibility of various axis elements such as axis line, title, labels, grid lines,
and shades can be individually controlled.
Michal Klocek
Adds new API classes...
r1540 */
Marek Rosa
Old QAxisCategories removed
r1548 /*!
\enum QAbstractAxis::AxisType
The type of the series object.
sauimone
documentation update
r1618 \value AxisTypeNoAxis
Marek Rosa
updated AxisType names
r1818 \value AxisTypeValue
Marek Rosa
Updated documentation and tests on arm
r1822 \value AxisTypeBarCategory
\value AxisTypeCategory
Marek Rosa
Docs and dateTime test updated
r1733 \value AxisTypeDateTime
Marek Rosa
Few axes docs fixes
r2339 \value AxisTypeLogValue
Marek Rosa
Old QAxisCategories removed
r1548 */
Marek Rosa
Few more axes docs updates
r1637 /*!
*\fn void QAbstractAxis::type() const
Returns the type of the axis
*/
sauimone
axis doc update
r1621 /*!
Marek Rosa
QAbstractAxis: docs fixes
r1848 \property QAbstractAxis::lineVisible
The visibility of the axis line
sauimone
axis doc update
r1621 */
/*!
Marek Rosa
QAbstractAxis: docs fixes
r1848 \qmlproperty bool AbstractAxis::lineVisible
The visibility of the axis line
Marek Rosa
Old QAxisCategories removed
r1548 */
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 /*!
\property QAbstractAxis::linePen
The pen of the line.
*/
Michal Klocek
Adds new API classes...
r1540 /*!
\property QAbstractAxis::labelsVisible
Defines if axis labels are visible.
*/
/*!
sauimone
qml doc update
r1639 \qmlproperty bool AbstractAxis::labelsVisible
Michal Klocek
Adds new API classes...
r1540 Defines if axis labels are visible.
*/
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 /*!
\property QAbstractAxis::labelsPen
Miikka Heikkinen
Added HTML support for various text items...
r2539 \deprecated
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 The pen of the labels.
*/
/*!
\property QAbstractAxis::labelsBrush
Miikka Heikkinen
Added HTML support for various text items...
r2539 The brush of the labels. Only the color of the brush is relevant.
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 */
Michal Klocek
Adds new API classes...
r1540 /*!
\property QAbstractAxis::visible
The visibility of the axis.
*/
/*!
sauimone
qml doc update
r1639 \qmlproperty bool AbstractAxis::visible
Michal Klocek
Adds new API classes...
r1540 The visibility of the axis.
*/
/*!
\property QAbstractAxis::gridVisible
The visibility of the grid lines.
*/
/*!
sauimone
qml doc update
r1639 \qmlproperty bool AbstractAxis::gridVisible
Michal Klocek
Adds new API classes...
r1540 The visibility of the grid lines.
*/
/*!
\property QAbstractAxis::color
The color of the axis and ticks.
*/
/*!
sauimone
qml doc update
r1639 \qmlproperty color AbstractAxis::color
Michal Klocek
Adds new API classes...
r1540 The color of the axis and ticks.
*/
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 /*!
\property QAbstractAxis::gridLinePen
The pen of the grid line.
*/
Michal Klocek
Adds new API classes...
r1540 /*!
sauimone
fixed documentation errors
r1575 \property QAbstractAxis::labelsFont
Michal Klocek
Adds new API classes...
r1540 The font of the axis labels.
*/
sauimone
fixed documentation errors
r1575
Michal Klocek
Adds new API classes...
r1540 /*!
sauimone
qml doc update
r1639 \qmlproperty Font AbstractAxis::labelsFont
Michal Klocek
Adds new API classes...
r1540 The font of the axis labels.
See the \l {Font} {QML Font Element} for detailed documentation.
*/
/*!
\property QAbstractAxis::labelsColor
The color of the axis labels.
*/
/*!
sauimone
qml doc update
r1639 \qmlproperty color AbstractAxis::labelsColor
Michal Klocek
Adds new API classes...
r1540 The color of the axis labels.
*/
/*!
\property QAbstractAxis::labelsAngle
The angle of the axis labels in degrees.
*/
/*!
sauimone
qml doc update
r1639 \qmlproperty int AbstractAxis::labelsAngle
Michal Klocek
Adds new API classes...
r1540 The angle of the axis labels in degrees.
*/
/*!
\property QAbstractAxis::shadesVisible
The visibility of the axis shades.
*/
/*!
sauimone
qml doc update
r1639 \qmlproperty bool AbstractAxis::shadesVisible
Michal Klocek
Adds new API classes...
r1540 The visibility of the axis shades.
*/
/*!
\property QAbstractAxis::shadesColor
The fill (brush) color of the axis shades.
*/
/*!
sauimone
qml doc update
r1639 \qmlproperty color AbstractAxis::shadesColor
Michal Klocek
Adds new API classes...
r1540 The fill (brush) color of the axis shades.
*/
/*!
\property QAbstractAxis::shadesBorderColor
The border (pen) color of the axis shades.
*/
/*!
sauimone
qml doc update
r1639 \qmlproperty color AbstractAxis::shadesBorderColor
Michal Klocek
Adds new API classes...
r1540 The border (pen) color of the axis shades.
*/
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 /*!
\property QAbstractAxis::shadesPen
The pen of the axis shades (area between grid lines).
*/
/*!
\property QAbstractAxis::shadesBrush
The brush of the axis shades (area between grid lines).
*/
Tero Ahola
Fixed several documentation issues
r2265 /*!
\property QAbstractAxis::titleVisible
The visibility of the axis title. By default the value is true.
*/
/*!
\qmlproperty bool AbstractAxis::titleVisible
The visibility of the axis title. By default the value is true.
*/
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 /*!
\property QAbstractAxis::titleText
Miikka Heikkinen
Added HTML support for various text items...
r2539 The title of the axis. Empty by default. Axis titles support html formatting.
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 */
/*!
\qmlproperty String AbstractAxis::titleText
Miikka Heikkinen
Added HTML support for various text items...
r2539 The title of the axis. Empty by default. Axis titles support html formatting.
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 */
/*!
\property QAbstractAxis::titlePen
Miikka Heikkinen
Added HTML support for various text items...
r2539 \deprecated
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 The pen of the title text.
*/
/*!
\property QAbstractAxis::titleBrush
Miikka Heikkinen
Added HTML support for various text items...
r2539 The brush of the title text. Only the color of the brush is relevant.
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 */
Tero Ahola
Fixed several documentation issues
r2265 /*!
\property QAbstractAxis::titleFont
The font of the title of the axis.
*/
/*!
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 \qmlproperty Font AbstractAxis::titleFont
Tero Ahola
Fixed several documentation issues
r2265 The font of the title of the axis.
*/
/*!
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 \property QAbstractAxis::orientation
The orientation of the axis. Fixed to either Qt::Horizontal or Qt::Vertical when you add the axis to a chart.
Tero Ahola
Fixed several documentation issues
r2265 */
/*!
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 \qmlproperty Qt.Orientation AbstractAxis::orientation
Miikka Heikkinen
Documentation updates...
r2494 The orientation of the axis. Fixed to either Qt.Horizontal or Qt.Vertical when the axis is set to a series.
Tero Ahola
Fixed several documentation issues
r2265 */
/*!
\property QAbstractAxis::alignment
Miikka Heikkinen
Add Polar chart support...
r2483 The alignment of the axis. Can be Qt::AlignLeft, Qt::AlignRight, Qt::AlignBottom, or Qt::AlignTop.
Tero Ahola
Fixed several documentation issues
r2265 */
/*!
\qmlproperty alignment AbstractAxis::alignment
Miikka Heikkinen
Add Polar chart support...
r2483 The alignment of the axis. Can be Qt.AlignLeft, Qt.AlignRight, Qt.AlignBottom, or Qt.AlignTop.
Tero Ahola
Fixed several documentation issues
r2265 */
Michal Klocek
Adds new API classes...
r1540 /*!
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 \fn void QAbstractAxis::visibleChanged(bool visible)
Jani Honkonen
Fix some spelling errors
r1932 Visibility of the axis has changed to \a visible.
Michal Klocek
Adds new API classes...
r1540 */
/*!
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 \qmlsignal AbstractAxis::onVisibleChanged(bool visible)
Jani Honkonen
Fix some spelling errors
r1932 Visibility of the axis has changed to \a visible.
Michal Klocek
Adds new API classes...
r1540 */
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 /*!
\fn void QAbstractAxis::linePenChanged(const QPen& pen)
The pen of the line of the axis has changed to \a pen.
*/
Michal Klocek
Adds new API classes...
r1540 /*!
Marek Rosa
QAbstractAxis: docs fixes
r1848 \fn void QAbstractAxis::lineVisibleChanged(bool visible)
Jani Honkonen
Fix some spelling errors
r1932 Visibility of the axis line has changed to \a visible.
Michal Klocek
Adds new API classes...
r1540 */
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 /*!
Marek Rosa
QAbstractAxis: docs fixes
r1848 \qmlsignal AbstractAxis::onLineVisibleChanged(bool visible)
Jani Honkonen
Fix some spelling errors
r1932 Visibility of the axis line has changed to \a visible.
Michal Klocek
Adds new API classes...
r1540 */
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 /*!
\fn void QAbstractAxis::labelsVisibleChanged(bool visible)
Jani Honkonen
Fix some spelling errors
r1932 Visibility of the labels of the axis has changed to \a visible.
Michal Klocek
Adds new API classes...
r1540 */
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 /*!
\qmlsignal AbstractAxis::onLabelsVisibleChanged(bool visible)
Jani Honkonen
Fix some spelling errors
r1932 Visibility of the labels of the axis has changed to \a visible.
Michal Klocek
Adds new API classes...
r1540 */
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 /*!
\fn void QAbstractAxis::labelsFontChanged(const QFont& font)
The font of the axis labels has changed to \a font.
*/
/*!
\qmlsignal AbstractAxis::onLabelsFontChanged(Font font)
The font of the axis labels has changed to \a font.
*/
/*!
\fn void QAbstractAxis::labelsPenChanged(const QPen& pen)
Miikka Heikkinen
Added HTML support for various text items...
r2539 \deprecated
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 The pen of the axis labels has changed to \a pen.
*/
/*!
\fn void QAbstractAxis::labelsBrushChanged(const QBrush& brush)
The brush of the axis labels has changed to \a brush.
*/
/*!
\fn void QAbstractAxis::labelsAngleChanged(int angle)
The angle of the axis labels has changed to \a angle.
*/
/*!
\qmlsignal AbstractAxis::onLabelsAngleChanged(int angle)
The angle of the axis labels has changed to \a angle.
*/
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 /*!
\fn void QAbstractAxis::gridVisibleChanged(bool visible)
Jani Honkonen
Fix some spelling errors
r1932 Visibility of the grid lines of the axis has changed to \a visible.
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 */
/*!
\qmlsignal AbstractAxis::onGridVisibleChanged(bool visible)
Jani Honkonen
Fix some spelling errors
r1932 Visibility of the grid lines of the axis has changed to \a visible.
Michal Klocek
Adds new API classes...
r1540 */
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 /*!
\fn void QAbstractAxis::gridLinePenChanged(const QPen& pen)
The pen of the grid line has changed to \a pen.
*/
Michal Klocek
Adds new API classes...
r1540 /*!
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 \fn void QAbstractAxis::colorChanged(QColor color)
Emitted if the \a color of the axis is changed.
*/
/*!
\qmlsignal AbstractAxis::onColorChanged(QColor color)
Michal Klocek
Adds new API classes...
r1540 Emitted if the \a color of the axis is changed.
*/
/*!
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 \fn void QAbstractAxis::labelsColorChanged(QColor color)
Emitted if the \a color of the axis labels is changed.
*/
/*!
\qmlsignal AbstractAxis::onLabelsColorChanged(QColor color)
Michal Klocek
Adds new API classes...
r1540 Emitted if the \a color of the axis labels is changed.
*/
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 /*!
\fn void QAbstractAxis::titleVisibleChanged(bool visible)
Visibility of the title text of the axis has changed to \a visible.
*/
/*!
\qmlsignal AbstractAxis::onTitleVisibleChanged(bool visible)
Visibility of the title text of the axis has changed to \a visible.
*/
/*!
\fn void QAbstractAxis::titleTextChanged(const QString& text)
The text of the axis title has changed to \a text.
*/
/*!
\qmlsignal AbstractAxis::onTitleTextChanged(String text)
The text of the axis title has changed to \a text.
*/
/*!
\fn void QAbstractAxis::titlePenChanged(const QPen& pen)
Miikka Heikkinen
Added HTML support for various text items...
r2539 \deprecated
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 The pen of the axis shades has changed to \a pen.
*/
/*!
\fn void QAbstractAxis::titleBrushChanged(const QBrush& brush)
The brush of the axis title has changed to \a brush.
*/
/*!
\fn void QAbstractAxis::titleFontChanged(const QFont& font)
The font of the axis title has changed to \a font.
*/
/*!
\qmlsignal AbstractAxis::onTitleFontChanged(Font font)
The font of the axis title has changed to \a font.
*/
Michal Klocek
Adds new API classes...
r1540 /*!
\fn void QAbstractAxis::shadesVisibleChanged(bool)
Emitted if the visibility of the axis shades is changed to \a visible.
*/
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 /*!
\qmlsignal AbstractAxis::onShadesVisibleChanged(bool visible)
Emitted if the visibility of the axis shades is changed to \a visible.
*/
Michal Klocek
Adds new API classes...
r1540
/*!
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 \fn void QAbstractAxis::shadesColorChanged(QColor color)
Emitted if the \a color of the axis shades is changed.
*/
/*!
\qmlsignal AbstractAxis::onShadesColorChanged(QColor color)
Michal Klocek
Adds new API classes...
r1540 Emitted if the \a color of the axis shades is changed.
*/
/*!
\fn void QAbstractAxis::shadesBorderColorChanged(QColor)
Emitted if the border \a color of the axis shades is changed.
*/
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 /*!
\qmlsignal AbstractAxis::onBorderColorChanged(QColor color)
Emitted if the border \a color of the axis shades is changed.
*/
Michal Klocek
Adds new API classes...
r1540
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 /*!
\fn void QAbstractAxis::shadesBrushChanged(const QBrush& brush)
The brush of the axis shades has changed to \a brush.
*/
/*!
\fn void QAbstractAxis::shadesPenChanged(const QPen& pen)
The pen of the axis shades has changed to \a pen.
*/
Michal Klocek
Adds new API classes...
r1540 /*!
Marek Rosa
Docs fixes
r1657 \internal
Michal Klocek
Adds new API classes...
r1540 Constructs new axis object which is a child of \a parent. Ownership is taken by
QChart when axis added.
*/
Jani Honkonen
src folder: another massive victory for coding style police
r2131 QAbstractAxis::QAbstractAxis(QAbstractAxisPrivate &d, QObject *parent)
: QObject(parent),
d_ptr(&d)
Michal Klocek
Adds new API classes...
r1540 {
}
/*!
Destructor of the axis object. When axis is added to chart, chart object takes ownership.
*/
QAbstractAxis::~QAbstractAxis()
{
Michal Klocek
Refactors internals...
r2273 if (d_ptr->m_chart)
Jani Honkonen
src folder: another massive victory for coding style police
r2131 qFatal("Still binded axis detected !");
Michal Klocek
Adds new API classes...
r1540 }
/*!
Sets \a pen used to draw axis line and ticks.
*/
Marek Rosa
QAbstractAxis: renamed Arrow and Axis to line in methods names
r1844 void QAbstractAxis::setLinePen(const QPen &pen)
Michal Klocek
Adds new API classes...
r1540 {
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (d_ptr->m_axisPen != pen) {
d_ptr->m_axisPen = pen;
Michal Klocek
Refactors internals...
r2273 emit linePenChanged(pen);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Michal Klocek
Adds new API classes...
r1540 }
/*!
Returns pen used to draw axis and ticks.
*/
Marek Rosa
QAbstractAxis: renamed Arrow and Axis to line in methods names
r1844 QPen QAbstractAxis::linePen() const
Michal Klocek
Adds new API classes...
r1540 {
Miikka Heikkinen
Return empty brush/pen/font via API rather than the weird default one...
r2519 if (d_ptr->m_axisPen == QChartPrivate::defaultPen())
return QPen();
else
return d_ptr->m_axisPen;
Michal Klocek
Adds new API classes...
r1540 }
Marek Rosa
QAbstractAxis: renamed Arrow and Axis to line in methods names
r1844 void QAbstractAxis::setLinePenColor(QColor color)
Michal Klocek
Adds new API classes...
r1540 {
QPen p = d_ptr->m_axisPen;
if (p.color() != color) {
p.setColor(color);
Marek Rosa
QAbstractAxis: renamed Arrow and Axis to line in methods names
r1844 setLinePen(p);
Michal Klocek
Adds new API classes...
r1540 emit colorChanged(color);
}
}
Marek Rosa
QAbstractAxis: renamed Arrow and Axis to line in methods names
r1844 QColor QAbstractAxis::linePenColor() const
Michal Klocek
Adds new API classes...
r1540 {
Miikka Heikkinen
Return empty brush/pen/font via API rather than the weird default one...
r2519 return linePen().color();
Michal Klocek
Adds new API classes...
r1540 }
/*!
Sets if axis and ticks are \a visible.
*/
Marek Rosa
QAbstractAxis: renamed Arrow and Axis to line in methods names
r1844 void QAbstractAxis::setLineVisible(bool visible)
Michal Klocek
Adds new API classes...
r1540 {
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 if (d_ptr->m_arrowVisible != visible) {
d_ptr->m_arrowVisible = visible;
Marek Rosa
QAbstractAxis: renamed Arrow and Axis to line in methods names
r1844 emit lineVisibleChanged(visible);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Michal Klocek
Adds new API classes...
r1540 }
Marek Rosa
QAbstractAxis: renamed Arrow and Axis to line in methods names
r1844 bool QAbstractAxis::isLineVisible() const
Michal Klocek
Adds new API classes...
r1540 {
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 return d_ptr->m_arrowVisible;
Michal Klocek
Adds new API classes...
r1540 }
void QAbstractAxis::setGridLineVisible(bool visible)
{
if (d_ptr->m_gridLineVisible != visible) {
d_ptr->m_gridLineVisible = visible;
Jani Honkonen
BC fix: change gridLineVisibleChanged() back to gridVisibleChanged()
r2282 emit gridVisibleChanged(visible);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Michal Klocek
Adds new API classes...
r1540 }
bool QAbstractAxis::isGridLineVisible() const
{
return d_ptr->m_gridLineVisible;
}
/*!
Sets \a pen used to draw grid line.
*/
void QAbstractAxis::setGridLinePen(const QPen &pen)
{
if (d_ptr->m_gridLinePen != pen) {
d_ptr->m_gridLinePen = pen;
Michal Klocek
Refactors internals...
r2273 emit gridLinePenChanged(pen);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Michal Klocek
Adds new API classes...
r1540 }
/*!
Returns pen used to draw grid.
*/
QPen QAbstractAxis::gridLinePen() const
{
Miikka Heikkinen
Return empty brush/pen/font via API rather than the weird default one...
r2519 if (d_ptr->m_gridLinePen == QChartPrivate::defaultPen())
return QPen();
else
return d_ptr->m_gridLinePen;
Michal Klocek
Adds new API classes...
r1540 }
void QAbstractAxis::setLabelsVisible(bool visible)
{
if (d_ptr->m_labelsVisible != visible) {
d_ptr->m_labelsVisible = visible;
emit labelsVisibleChanged(visible);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Michal Klocek
Adds new API classes...
r1540 }
bool QAbstractAxis::labelsVisible() const
{
return d_ptr->m_labelsVisible;
}
void QAbstractAxis::setLabelsPen(const QPen &pen)
{
if (d_ptr->m_labelsPen != pen) {
d_ptr->m_labelsPen = pen;
Michal Klocek
Refactors internals...
r2273 emit labelsPenChanged(pen);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Michal Klocek
Adds new API classes...
r1540 }
QPen QAbstractAxis::labelsPen() const
{
Miikka Heikkinen
Return empty brush/pen/font via API rather than the weird default one...
r2519 if (d_ptr->m_labelsPen == QChartPrivate::defaultPen())
return QPen();
else
return d_ptr->m_labelsPen;
Michal Klocek
Adds new API classes...
r1540 }
/*!
Sets \a brush used to draw labels.
*/
void QAbstractAxis::setLabelsBrush(const QBrush &brush)
{
if (d_ptr->m_labelsBrush != brush) {
d_ptr->m_labelsBrush = brush;
Michal Klocek
Refactors internals...
r2273 emit labelsBrushChanged(brush);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Michal Klocek
Adds new API classes...
r1540 }
/*!
Returns brush used to draw labels.
*/
QBrush QAbstractAxis::labelsBrush() const
{
Miikka Heikkinen
Return empty brush/pen/font via API rather than the weird default one...
r2519 if (d_ptr->m_labelsBrush == QChartPrivate::defaultBrush())
return QBrush();
else
return d_ptr->m_labelsBrush;
Michal Klocek
Adds new API classes...
r1540 }
/*!
Sets \a font used to draw labels.
*/
void QAbstractAxis::setLabelsFont(const QFont &font)
{
if (d_ptr->m_labelsFont != font) {
d_ptr->m_labelsFont = font;
Michal Klocek
Refactors internals...
r2273 emit labelsFontChanged(font);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Michal Klocek
Adds new API classes...
r1540 }
/*!
Returns font used to draw labels.
*/
QFont QAbstractAxis::labelsFont() const
{
Miikka Heikkinen
Return empty brush/pen/font via API rather than the weird default one...
r2519 if (d_ptr->m_labelsFont == QChartPrivate::defaultFont())
return QFont();
else
return d_ptr->m_labelsFont;
Michal Klocek
Adds new API classes...
r1540 }
void QAbstractAxis::setLabelsAngle(int angle)
{
if (d_ptr->m_labelsAngle != angle) {
d_ptr->m_labelsAngle = angle;
Michal Klocek
Refactors internals...
r2273 emit labelsAngleChanged(angle);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Michal Klocek
Adds new API classes...
r1540 }
int QAbstractAxis::labelsAngle() const
{
return d_ptr->m_labelsAngle;
}
void QAbstractAxis::setLabelsColor(QColor color)
{
QBrush b = d_ptr->m_labelsBrush;
if (b.color() != color) {
b.setColor(color);
setLabelsBrush(b);
emit labelsColorChanged(color);
}
}
QColor QAbstractAxis::labelsColor() const
{
Miikka Heikkinen
Return empty brush/pen/font via API rather than the weird default one...
r2519 return labelsBrush().color();
Michal Klocek
Adds new API classes...
r1540 }
Michal Klocek
Refactors layout...
r1965 void QAbstractAxis::setTitleVisible(bool visible)
{
if (d_ptr->m_titleVisible != visible) {
d_ptr->m_titleVisible = visible;
Michal Klocek
Bugfix: axis visibily issues...
r2297 emit titleVisibleChanged(visible);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Michal Klocek
Refactors layout...
r1965 }
Michal Klocek
Bugfix: axis visibily issues...
r2297 bool QAbstractAxis::isTitleVisible() const
Michal Klocek
Refactors layout...
r1965 {
return d_ptr->m_titleVisible;
}
void QAbstractAxis::setTitlePen(const QPen &pen)
{
if (d_ptr->m_titlePen != pen) {
d_ptr->m_titlePen = pen;
Michal Klocek
Refactors internals...
r2273 emit titlePenChanged(pen);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Michal Klocek
Refactors layout...
r1965 }
QPen QAbstractAxis::titlePen() const
{
Miikka Heikkinen
Return empty brush/pen/font via API rather than the weird default one...
r2519 if (d_ptr->m_titlePen == QChartPrivate::defaultPen())
return QPen();
else
return d_ptr->m_titlePen;
Michal Klocek
Refactors layout...
r1965 }
/*!
Sets \a brush used to draw title.
*/
void QAbstractAxis::setTitleBrush(const QBrush &brush)
{
if (d_ptr->m_titleBrush != brush) {
d_ptr->m_titleBrush = brush;
Michal Klocek
Refactors internals...
r2273 emit titleBrushChanged(brush);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Michal Klocek
Refactors layout...
r1965 }
/*!
Returns brush used to draw title.
*/
Miikka Heikkinen
Return empty brush/pen/font via API rather than the weird default one...
r2519 QBrush QAbstractAxis::titleBrush() const
Michal Klocek
Refactors layout...
r1965 {
Miikka Heikkinen
Return empty brush/pen/font via API rather than the weird default one...
r2519 if (d_ptr->m_titleBrush == QChartPrivate::defaultBrush())
return QBrush();
else
return d_ptr->m_titleBrush;
Michal Klocek
Refactors layout...
r1965 }
/*!
Sets \a font used to draw title.
*/
void QAbstractAxis::setTitleFont(const QFont &font)
{
if (d_ptr->m_titleFont != font) {
d_ptr->m_titleFont = font;
Michal Klocek
Refactors internals...
r2273 emit titleFontChanged(font);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Michal Klocek
Refactors layout...
r1965 }
/*!
Returns font used to draw title.
*/
QFont QAbstractAxis::titleFont() const
{
Miikka Heikkinen
Return empty brush/pen/font via API rather than the weird default one...
r2519 if (d_ptr->m_titleFont == QChartPrivate::defaultFont())
return QFont();
else
return d_ptr->m_titleFont;
Michal Klocek
Refactors layout...
r1965 }
Michal Klocek
Refactors internals...
r2273 void QAbstractAxis::setTitleText(const QString &title)
Michal Klocek
Refactors layout...
r1965 {
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (d_ptr->m_title != title) {
d_ptr->m_title = title;
Michal Klocek
Refactors internals...
r2273 emit titleTextChanged(title);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Michal Klocek
Refactors layout...
r1965 }
Michal Klocek
Refactors internals...
r2273 QString QAbstractAxis::titleText() const
Michal Klocek
Refactors layout...
r1965 {
Jani Honkonen
src folder: another massive victory for coding style police
r2131 return d_ptr->m_title;
Michal Klocek
Refactors layout...
r1965 }
Michal Klocek
Adds new API classes...
r1540 void QAbstractAxis::setShadesVisible(bool visible)
{
if (d_ptr->m_shadesVisible != visible) {
d_ptr->m_shadesVisible = visible;
emit shadesVisibleChanged(visible);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Michal Klocek
Adds new API classes...
r1540 }
bool QAbstractAxis::shadesVisible() const
{
return d_ptr->m_shadesVisible;
}
/*!
Sets \a pen used to draw shades.
*/
void QAbstractAxis::setShadesPen(const QPen &pen)
{
if (d_ptr->m_shadesPen != pen) {
d_ptr->m_shadesPen = pen;
Michal Klocek
Refactors internals...
r2273 emit shadesPenChanged(pen);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 }
Michal Klocek
Adds new API classes...
r1540 }
/*!
Returns pen used to draw shades.
*/
QPen QAbstractAxis::shadesPen() const
{
Miikka Heikkinen
Return empty brush/pen/font via API rather than the weird default one...
r2519 if (d_ptr->m_shadesPen == QChartPrivate::defaultPen())
return QPen();
else
return d_ptr->m_shadesPen;
Michal Klocek
Adds new API classes...
r1540 }
/*!
Sets \a brush used to draw shades.
*/
void QAbstractAxis::setShadesBrush(const QBrush &brush)
{
if (d_ptr->m_shadesBrush != brush) {
d_ptr->m_shadesBrush = brush;
Michal Klocek
Refactors internals...
r2273 emit shadesBrushChanged(brush);
Michal Klocek
Adds new API classes...
r1540 }
}
/*!
Returns brush used to draw shades.
*/
QBrush QAbstractAxis::shadesBrush() const
{
Miikka Heikkinen
Return empty brush/pen/font via API rather than the weird default one...
r2519 if (d_ptr->m_shadesBrush == QChartPrivate::defaultBrush())
return QBrush(Qt::SolidPattern);
else
return d_ptr->m_shadesBrush;
Michal Klocek
Adds new API classes...
r1540 }
void QAbstractAxis::setShadesColor(QColor color)
{
QBrush b = d_ptr->m_shadesBrush;
Michal Klocek
Refactors internals...
r2273 if (b.color() != color) {
b.setColor(color);
setShadesBrush(b);
emit shadesColorChanged(color);
}
Michal Klocek
Adds new API classes...
r1540 }
QColor QAbstractAxis::shadesColor() const
{
Miikka Heikkinen
Return empty brush/pen/font via API rather than the weird default one...
r2519 return shadesBrush().color();
Michal Klocek
Adds new API classes...
r1540 }
void QAbstractAxis::setShadesBorderColor(QColor color)
{
Michal Klocek
Refactors internals...
r2273 QPen p = d_ptr->m_shadesPen;
if (p.color() != color) {
p.setColor(color);
setShadesPen(p);
emit shadesColorChanged(color);
}
Michal Klocek
Adds new API classes...
r1540 }
QColor QAbstractAxis::shadesBorderColor() const
{
Miikka Heikkinen
Return empty brush/pen/font via API rather than the weird default one...
r2519 return shadesPen().color();
Michal Klocek
Adds new API classes...
r1540 }
Michal Klocek
Adds visibity paramter to axis
r1617 bool QAbstractAxis::isVisible() const
{
return d_ptr->m_visible;
}
Michal Klocek
Adds new API classes...
r1540 /*!
Sets axis, shades, labels and grid lines to be visible.
*/
Michal Klocek
Adds visibity paramter to axis
r1617 void QAbstractAxis::setVisible(bool visible)
Michal Klocek
Adds new API classes...
r1540 {
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (d_ptr->m_visible != visible) {
d_ptr->m_visible = visible;
Michal Klocek
Adds logic to fix overlaping axes
r1626 emit visibleChanged(visible);
}
Michal Klocek
Adds new API classes...
r1540 }
Michal Klocek
Adds visibity paramter to axis
r1617
/*!
Sets axis, shades, labels and grid lines to be visible.
*/
void QAbstractAxis::show()
{
setVisible(true);
}
Michal Klocek
Adds new API classes...
r1540 /*!
Sets axis, shades, labels and grid lines to not be visible.
*/
void QAbstractAxis::hide()
{
Michal Klocek
Adds visibity paramter to axis
r1617 setVisible(false);
Michal Klocek
Adds new API classes...
r1540 }
Marek Rosa
QAbstractAxis doc update
r1635 /*!
Sets the minimum value shown on the axis.
Jani Honkonen
Fix Krazy issues
r1935 Depending on the actual axis type the \a min parameter is converted to appropriate type.
Marek Rosa
QAbstractAxis doc update
r1635 If the conversion is impossible then the function call does nothing
*/
sauimone
QAbstractAxis: variants strike back.
r1578 void QAbstractAxis::setMin(const QVariant &min)
Michal Klocek
Refactors setMin setMax setRange to be pure viritual on private implementation
r1544 {
d_ptr->setMin(min);
}
Marek Rosa
QAbstractAxis doc update
r1635
/*!
Sets the maximum value shown on the axis.
Jani Honkonen
Fix Krazy issues
r1935 Depending on the actual axis type the \a max parameter is converted to appropriate type.
Marek Rosa
QAbstractAxis doc update
r1635 If the conversion is impossible then the function call does nothing
*/
sauimone
QAbstractAxis: variants strike back.
r1578 void QAbstractAxis::setMax(const QVariant &max)
Michal Klocek
Refactors setMin setMax setRange to be pure viritual on private implementation
r1544 {
d_ptr->setMax(max);
}
Marek Rosa
QAbstractAxis doc update
r1635
/*!
Sets the range shown on the axis.
Jani Honkonen
Fix Krazy issues
r1935 Depending on the actual axis type the \a min and \a max parameters are converted to appropriate types.
Marek Rosa
QAbstractAxis doc update
r1635 If the conversion is impossible then the function call does nothing.
*/
sauimone
QAbstractAxis: variants strike back.
r1578 void QAbstractAxis::setRange(const QVariant &min, const QVariant &max)
Michal Klocek
Refactors setMin setMax setRange to be pure viritual on private implementation
r1544 {
Jani Honkonen
src folder: another massive victory for coding style police
r2131 d_ptr->setRange(min, max);
Michal Klocek
Refactors setMin setMax setRange to be pure viritual on private implementation
r1544 }
Michal Klocek
Adds axis domain intialization
r1695
Marek Rosa
Few docs updated
r1743 /*!
Returns the orientation in which the axis is being used (Vertical or Horizontal)
*/
Jani Honkonen
Fix BC issue with QAbstractAxis::orientation()
r2271 Qt::Orientation QAbstractAxis::orientation()
Michal Klocek
Adds axis domain intialization
r1695 {
Michal Klocek
Refactors internals...
r2273 return d_ptr->orientation();
Michal Klocek
Adds axis domain intialization
r1695 }
Michal Klocek
Refactors layout:...
r2105 Qt::Alignment QAbstractAxis::alignment() const
Marek Rosa
Multiaxis support...
r2093 {
Michal Klocek
Refactors internals...
r2273 return d_ptr->alignment();
Marek Rosa
Multiaxis support...
r2093 }
Michal Klocek
Adds new API classes...
r1540 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Jani Honkonen
src folder: another massive victory for coding style police
r2131 QAbstractAxisPrivate::QAbstractAxisPrivate(QAbstractAxis *q)
: q_ptr(q),
Michal Klocek
Refactors internals...
r2273 m_chart(0),
Jani Honkonen
src folder: another massive victory for coding style police
r2131 m_alignment(0),
Marek Rosa
Fixed initialization warning in qabstractseries
r2318 m_orientation(Qt::Orientation(0)),
Jani Honkonen
src folder: another massive victory for coding style police
r2131 m_visible(true),
m_arrowVisible(true),
Miikka Heikkinen
Fix explicitly set default pen/brush/font getting overridden by theme...
r2516 m_axisPen(QChartPrivate::defaultPen()),
m_axisBrush(QChartPrivate::defaultBrush()),
Jani Honkonen
src folder: another massive victory for coding style police
r2131 m_gridLineVisible(true),
Miikka Heikkinen
Fix explicitly set default pen/brush/font getting overridden by theme...
r2516 m_gridLinePen(QChartPrivate::defaultPen()),
Jani Honkonen
src folder: another massive victory for coding style police
r2131 m_labelsVisible(true),
Miikka Heikkinen
Fix explicitly set default pen/brush/font getting overridden by theme...
r2516 m_labelsPen(QChartPrivate::defaultPen()),
m_labelsBrush(QChartPrivate::defaultBrush()),
m_labelsFont(QChartPrivate::defaultFont()),
Jani Honkonen
src folder: another massive victory for coding style police
r2131 m_labelsAngle(0),
Marek Rosa
Fixed visibility initialization on axis
r2345 m_titleVisible(true),
Miikka Heikkinen
Fix explicitly set default pen/brush/font getting overridden by theme...
r2516 m_titlePen(QChartPrivate::defaultPen()),
m_titleBrush(QChartPrivate::defaultBrush()),
m_titleFont(QChartPrivate::defaultFont()),
Jani Honkonen
src folder: another massive victory for coding style police
r2131 m_shadesVisible(false),
Miikka Heikkinen
Fix explicitly set default pen/brush/font getting overridden by theme...
r2516 m_shadesPen(QChartPrivate::defaultPen()),
Heikkinen Miikka
Fix android build issues...
r2522 m_shadesBrush(QChartPrivate::defaultBrush()),
Jani Honkonen
src folder: another massive victory for coding style police
r2131 m_shadesOpacity(1.0),
m_dirty(false)
Michal Klocek
Adds new API classes...
r1540 {
}
QAbstractAxisPrivate::~QAbstractAxisPrivate()
{
Michal Klocek
Refactors internals...
r2273 }
Michal Klocek
Adds new API classes...
r1540
Michal Klocek
Refactors internals...
r2273 void QAbstractAxisPrivate::setAlignment( Qt::Alignment alignment)
{
switch(alignment) {
case Qt::AlignTop:
case Qt::AlignBottom:
m_orientation = Qt::Horizontal;
break;
case Qt::AlignLeft:
case Qt::AlignRight:
m_orientation = Qt::Vertical;
break;
default:
qWarning()<<"No alignment specified !";
break;
};
m_alignment=alignment;
Michal Klocek
Adds new API classes...
r1540 }
Michal Klocek
Refactors internals...
r2273 void QAbstractAxisPrivate::initializeTheme(ChartTheme* theme, bool forced)
Michal Klocek
Refactors Domain and Axis...
r1698 {
Miikka Heikkinen
Fix explicitly set default pen/brush/font getting overridden by theme...
r2516 if (forced || QChartPrivate::defaultPen() == m_axisPen)
q_ptr->setLinePen(theme->axisLinePen());
if (forced || QChartPrivate::defaultPen() == m_gridLinePen)
q_ptr->setGridLinePen(theme->girdLinePen());
if (forced || QChartPrivate::defaultBrush() == m_labelsBrush)
q_ptr->setLabelsBrush(theme->labelBrush());
if (forced || QChartPrivate::defaultPen() == m_labelsPen)
q_ptr->setLabelsPen(Qt::NoPen); // NoPen for performance reasons
if (forced || QChartPrivate::defaultFont() == m_labelsFont)
q_ptr->setLabelsFont(theme->labelFont());
if (forced || QChartPrivate::defaultBrush() == m_titleBrush)
q_ptr->setTitleBrush(theme->labelBrush());
if (forced || QChartPrivate::defaultPen() == m_titlePen)
q_ptr->setTitlePen(Qt::NoPen); // NoPen for performance reasons
if (forced || QChartPrivate::defaultFont() == m_titleFont) {
QFont font(m_labelsFont);
font.setBold(true);
q_ptr->setTitleFont(font);
}
Michal Klocek
Refactors internals...
r2273
Miikka Heikkinen
Fix explicitly set default pen/brush/font getting overridden by theme...
r2516 if (forced || QChartPrivate::defaultBrush() == m_shadesBrush)
q_ptr->setShadesBrush(theme->backgroundShadesBrush());
if (forced || QChartPrivate::defaultPen() == m_shadesPen)
q_ptr->setShadesPen(theme->backgroundShadesPen());
Michal Klocek
Refactors internals...
r2273
Miikka Heikkinen
Fix explicitly set default pen/brush/font getting overridden by theme...
r2516 bool axisX = m_orientation == Qt::Horizontal;
if (forced && (theme->backgroundShades() == ChartTheme::BackgroundShadesBoth
|| (theme->backgroundShades() == ChartTheme::BackgroundShadesVertical && axisX)
|| (theme->backgroundShades() == ChartTheme::BackgroundShadesHorizontal && !axisX))) {
q_ptr->setShadesVisible(true);
} else if (forced) {
q_ptr->setShadesVisible(false);
Michal Klocek
Refactors Domain and Axis...
r1698 }
}
Michal Klocek
Refactors internals...
r2273 void QAbstractAxisPrivate::handleRangeChanged(qreal min, qreal max)
{
setRange(min,max);
}
void QAbstractAxisPrivate::initializeGraphics(QGraphicsItem* parent)
Michal Klocek
Refactors Domain and Axis...
r1698 {
Michal Klocek
Refactors internals...
r2273 Q_UNUSED(parent);
Michal Klocek
Refactors Domain and Axis...
r1698 }
Michal Klocek
Refactors internals...
r2273 void QAbstractAxisPrivate::initializeAnimations(QChart::AnimationOptions options)
Michal Klocek
Refactors Domain and Axis...
r1698 {
Miikka Heikkinen
Add Polar chart support...
r2483 ChartAxisElement *axis = m_item.data();
Michal Klocek
Refactors internals...
r2273 Q_ASSERT(axis);
Miikka Heikkinen
Fix resetting animation options mid-animation....
r2555 if (axis->animation())
axis->animation()->stopAndDestroyLater();
if (options.testFlag(QChart::GridAxisAnimations))
Michal Klocek
Refactors internals...
r2273 axis->setAnimation(new AxisAnimation(axis));
Miikka Heikkinen
Fix resetting animation options mid-animation....
r2555 else
Michal Klocek
Refactors internals...
r2273 axis->setAnimation(0);
Michal Klocek
Refactors Domain and Axis...
r1698 }
Michal Klocek
Adds domains swap logic
r2284
Michal Klocek
Adds new API classes...
r1540 #include "moc_qabstractaxis.cpp"
#include "moc_qabstractaxis_p.cpp"
QTCOMMERCIALCHART_END_NAMESPACE