##// END OF EJS Templates
Fixes missing update barcategory...
Fixes missing update barcategory * fixes qmlweather * qml axis returns as INVOCABLE

File last commit:

r1639:ef5607ba9d7f
r1643:d11966383060
Show More
qvaluesaxis.cpp
304 lines | 6.4 KiB | text/x-c | CppLexer
/ src / axis / qvaluesaxis.cpp
Michal Klocek
Adds new API classes...
r1540 /****************************************************************************
**
** Copyright (C) 2012 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 Commercial Charts Add-on.
**
** $QT_BEGIN_LICENSE$
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial 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 "qvaluesaxis.h"
#include "qvaluesaxis_p.h"
Marek Rosa
Removed generic chartaxis
r1561 #include "chartvaluesaxisx_p.h"
#include "chartvaluesaxisy_p.h"
Michal Klocek
Refactors core to support mulitpile axis and domains...
r1556 #include <QDebug>
Michal Klocek
Adds new API classes...
r1540
QTCOMMERCIALCHART_BEGIN_NAMESPACE
Marek Rosa
Some docs to QValuesAxis
r1547 /*!
\class QValuesAxis
\brief The QValuesAxis class is used for manipulating chart's axis.
\mainclass
sauimone
qml doc update
r1639 ValuesAxis can be setup to show axis line with tick marks, grid lines and shades.
Values of axis are drawn to position of ticks
Marek Rosa
Some docs to QValuesAxis
r1547 */
/*!
sauimone
qml doc update
r1639 \qmlclass ValuesAxis QValuesAxis
\brief The ValuesAxis element is used for manipulating chart's axes
Marek Rosa
Some docs to QValuesAxis
r1547
sauimone
qml doc update
r1639 ValueAxis can be setup to show axis line with tick marks, grid lines and shades.
Values of axis are drawn to position of ticks
Marek Rosa
Some docs to QValuesAxis
r1547
To access Axes you can use ChartView API. For example:
\code
ChartView {
sauimone
qml doc update
r1639 ValuesAxis {
id: xAxis
min: 0
max: 10
}
// Add a few series...
Marek Rosa
Some docs to QValuesAxis
r1547 }
\endcode
*/
/*!
\property QValuesAxis::min
Defines the minimum value on the axis.
*/
/*!
sauimone
qml doc update
r1639 \qmlproperty real ValuesAxis::min
Marek Rosa
Some docs to QValuesAxis
r1547 Defines the minimum value on the axis.
*/
/*!
\property QValuesAxis::max
Defines the maximum value on the axis.
*/
/*!
sauimone
qml doc update
r1639 \qmlproperty real ValuesAxis::max
Marek Rosa
Some docs to QValuesAxis
r1547 Defines the maximum value on the axis.
*/
/*!
\fn void QValuesAxis::minChanged(qreal min)
Axis emits signal when \a min of axis has changed.
*/
/*!
\fn void QValuesAxis::maxChanged(qreal max)
Axis emits signal when \a max of axis has changed.
*/
/*!
\fn void QValuesAxis::rangeChanged(qreal min, qreal max)
Axis emits signal when \a min or \a max of axis has changed.
*/
Michal Klocek
Adds new API classes...
r1540
sauimone
fixed documentation errors
r1575 /*!
\property QValuesAxis::ticksCount
The number of tick marks for the axis.
*/
/*!
sauimone
qml doc update
r1639 \qmlproperty int ValuesAxis::ticksCount
sauimone
fixed documentation errors
r1575 The number of tick marks for the axis.
*/
/*!
\property QValuesAxis::niceNumbersEnabled
Whether the nice numbers algorithm is enabled or not for the axis.
*/
/*!
sauimone
qml doc update
r1639 \qmlproperty bool ValuesAxis::niceNumbersEnabled
sauimone
fixed documentation errors
r1575 Whether the nice numbers algorithm is enabled or not for the axis.
*/
Marek Rosa
Axes docs update
r1636 /*!
Constructs an axis object which is a child of \a parent.
*/
Michal Klocek
Adds new API classes...
r1540 QValuesAxis::QValuesAxis(QObject *parent) :
QAbstractAxis(*new QValuesAxisPrivate(this),parent)
{
}
Marek Rosa
Various docs fixes
r1638 /*!
\internal
*/
Michal Klocek
Adds new API classes...
r1540 QValuesAxis::QValuesAxis(QValuesAxisPrivate &d,QObject *parent) : QAbstractAxis(d,parent)
{
}
Marek Rosa
Various docs fixes
r1638 /*!
Destroys the object
*/
Michal Klocek
Adds new API classes...
r1540 QValuesAxis::~QValuesAxis()
{
}
void QValuesAxis::setMin(qreal min)
{
Q_D(QValuesAxis);
setRange(min,d->m_max);
}
qreal QValuesAxis::min() const
{
Q_D(const QValuesAxis);
return d->m_min;
}
void QValuesAxis::setMax(qreal max)
{
Q_D(QValuesAxis);
setRange(d->m_min,max);
}
qreal QValuesAxis::max() const
{
Q_D(const QValuesAxis);
return d->m_max;
}
/*!
Sets range from \a min to \a max on the axis.
*/
void QValuesAxis::setRange(qreal min, qreal max)
{
Q_D(QValuesAxis);
sauimone
QAbstractAxis: variants strike back.
r1578 bool changed = false;
if (!qFuzzyIsNull(d->m_min - min)) {
d->m_min = min;
changed = true;
emit minChanged(min);
}
if (!qFuzzyIsNull(d->m_max - max)) {
d->m_max = max;
changed = true;
emit maxChanged(max);
}
if (changed) {
Michal Klocek
Refactor categories implementation...
r1611 d->emitRange();
Michal Klocek
Fix all tst_chartdataset test cases
r1593 emit rangeChanged(d->m_min,d->m_max);
sauimone
QAbstractAxis: variants strike back.
r1578 }
Michal Klocek
Adds new API classes...
r1540 }
/*!
Sets \a count for ticks on the axis.
*/
void QValuesAxis::setTicksCount(int count)
{
Q_D(QValuesAxis);
if (d->m_ticksCount != count) {
d->m_ticksCount = count;
emit d->changed(d->m_min, d->m_max, d->m_ticksCount, d->m_niceNumbers);
}
}
/*!
sauimone
fixed documentation errors
r1575 \fn int QValuesAxis::ticksCount() const
Michal Klocek
Adds new API classes...
r1540 Return number of ticks on the axis
*/
int QValuesAxis::ticksCount() const
{
Q_D(const QValuesAxis);
return d->m_ticksCount;
}
void QValuesAxis::setNiceNumbersEnabled(bool enable)
{
Q_D(QValuesAxis);
if (d->m_niceNumbers != enable){
d->m_niceNumbers = enable;
emit d->changed(d->m_min, d->m_max, d->m_ticksCount, d->m_niceNumbers);
}
}
bool QValuesAxis::niceNumbersEnabled() const
{
Q_D(const QValuesAxis);
return d->m_niceNumbers;
}
Marek Rosa
Few more axes docs updates
r1637 /*!
Returns the type of the axis
*/
Michal Klocek
Adds new API classes...
r1540 QAbstractAxis::AxisType QValuesAxis::type() const
{
return AxisTypeValues;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
QValuesAxisPrivate::QValuesAxisPrivate(QValuesAxis* q):
QAbstractAxisPrivate(q),
sauimone
refactoring axises
r1566 m_niceNumbers(false)
Michal Klocek
Adds new API classes...
r1540 {
}
QValuesAxisPrivate::~QValuesAxisPrivate()
{
}
void QValuesAxisPrivate::handleAxisRangeChanged(qreal min, qreal max,int count)
{
Q_Q(QValuesAxis);
q->setRange(min,max);
q->setTicksCount(count);
}
Michal Klocek
Refactors setMin setMax setRange to be pure viritual on private implementation
r1544
sauimone
QAbstractAxis: variants strike back.
r1578 void QValuesAxisPrivate::setMin(const QVariant &min)
Michal Klocek
Refactors setMin setMax setRange to be pure viritual on private implementation
r1544 {
sauimone
QAbstractAxis: variants strike back.
r1578 Q_Q(QValuesAxis);
bool ok;
qreal value = min.toReal(&ok);
if(ok) q->setMin(value);
Michal Klocek
Refactors setMin setMax setRange to be pure viritual on private implementation
r1544 }
sauimone
QAbstractAxis: variants strike back.
r1578 void QValuesAxisPrivate::setMax(const QVariant &max)
Michal Klocek
Refactors setMin setMax setRange to be pure viritual on private implementation
r1544 {
sauimone
QAbstractAxis: variants strike back.
r1578 Q_Q(QValuesAxis);
bool ok;
qreal value = max.toReal(&ok);
if(ok) q->setMax(value);
Michal Klocek
Refactors setMin setMax setRange to be pure viritual on private implementation
r1544 }
Michal Klocek
Refactor categories implementation...
r1611 void QValuesAxisPrivate::setRange(const QVariant &min, const QVariant &max)
Michal Klocek
Refactors setMin setMax setRange to be pure viritual on private implementation
r1544 {
Q_Q(QValuesAxis);
sauimone
QAbstractAxis: variants strike back.
r1578 bool ok1;
bool ok2;
qreal value1 = min.toReal(&ok1);
qreal value2 = max.toReal(&ok2);
if(ok1&&ok2) q->setRange(value1,value2);
Michal Klocek
Refactors setMin setMax setRange to be pure viritual on private implementation
r1544 }
int QValuesAxisPrivate::ticksCount() const
{
return m_ticksCount;
}
Michal Klocek
Refactors core to support mulitpile axis and domains...
r1556 ChartAxis* QValuesAxisPrivate::createGraphics(ChartPresenter* presenter)
{
Q_Q(QValuesAxis);
if(m_orientation == Qt::Vertical){
Marek Rosa
Removed generic chartaxis
r1561 return new ChartValuesAxisY(q,presenter);
Michal Klocek
Refactors core to support mulitpile axis and domains...
r1556 }else{
Marek Rosa
Removed generic chartaxis
r1561 return new ChartValuesAxisX(q,presenter);
Michal Klocek
Refactors core to support mulitpile axis and domains...
r1556 }
}
Michal Klocek
Refactor categories implementation...
r1611 void QValuesAxisPrivate::emitRange()
sauimone
setting axis to series now updates domain
r1574 {
Michal Klocek
Refactor categories implementation...
r1611 Q_Q(QValuesAxis);
if(!q->signalsBlocked()) {
emit changed(m_min, m_max, m_ticksCount, m_niceNumbers);
}
sauimone
setting axis to series now updates domain
r1574 }
Michal Klocek
Adds new API classes...
r1540 #include "moc_qvaluesaxis.cpp"
#include "moc_qvaluesaxis_p.cpp"
QTCOMMERCIALCHART_END_NAMESPACE