declarativecategoryaxis.cpp
98 lines
| 2.9 KiB
| text/x-c
|
CppLexer
|
r1872 | /**************************************************************************** | ||
** | ||||
** 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 "declarativecategoryaxis.h" | ||||
#include <QDebug> | ||||
QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||||
/*! | ||||
\qmlclass CategoryRange | ||||
\brief With CategoryRange you can define a range used by a CategoryAxis. | ||||
\sa CategoryAxis | ||||
*/ | ||||
DeclarativeCategoryRange::DeclarativeCategoryRange(QObject *parent) : | ||||
QObject(parent), | ||||
m_endValue(0), | ||||
m_label(QString()) | ||||
{ | ||||
} | ||||
DeclarativeCategoryAxis::DeclarativeCategoryAxis(QObject *parent) : | ||||
QCategoryAxis(parent) | ||||
{ | ||||
} | ||||
void DeclarativeCategoryAxis::classBegin() | ||||
{ | ||||
} | ||||
void DeclarativeCategoryAxis::componentComplete() | ||||
{ | ||||
|
r2080 | QList<QPair<QString, qreal> > ranges; | ||
|
r2100 | foreach (QObject *child, children()) { | ||
|
r1872 | if (qobject_cast<DeclarativeCategoryRange *>(child)) { | ||
DeclarativeCategoryRange *range = qobject_cast<DeclarativeCategoryRange *>(child); | ||||
|
r2080 | ranges.append(QPair<QString, qreal>(range->label(), range->endValue())); | ||
|
r1872 | } | ||
} | ||||
|
r2080 | |||
// Sort and append the range objects according to end value | ||||
qSort(ranges.begin(), ranges.end(), endValueLessThan); | ||||
for (int i(0); i < ranges.count(); i++) | ||||
append(ranges.at(i).first, ranges.at(i).second); | ||||
} | ||||
bool DeclarativeCategoryAxis::endValueLessThan(const QPair<QString, qreal> &value1, const QPair<QString, qreal> &value2) | ||||
{ | ||||
return value1.second < value2.second; | ||||
|
r1872 | } | ||
QDeclarativeListProperty<QObject> DeclarativeCategoryAxis::axisChildren() | ||||
{ | ||||
return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeCategoryAxis::appendAxisChildren); | ||||
} | ||||
void DeclarativeCategoryAxis::append(const QString &label, qreal categoryEndValue) | ||||
{ | ||||
QCategoryAxis::append(label, categoryEndValue); | ||||
} | ||||
void DeclarativeCategoryAxis::remove(const QString &label) | ||||
{ | ||||
QCategoryAxis::remove(label); | ||||
} | ||||
|
r2101 | void DeclarativeCategoryAxis::replace(const QString &oldLabel, const QString &newLabel) | ||
|
r1872 | { | ||
QCategoryAxis::replaceLabel(oldLabel, newLabel); | ||||
} | ||||
void DeclarativeCategoryAxis::appendAxisChildren(QDeclarativeListProperty<QObject> *list, QObject *element) | ||||
{ | ||||
// Empty implementation; the children are parsed in componentComplete instead | ||||
Q_UNUSED(list) | ||||
Q_UNUSED(element) | ||||
} | ||||
#include "moc_declarativecategoryaxis.cpp" | ||||
QTCOMMERCIALCHART_END_NAMESPACE | ||||