declarativecategoryaxis.cpp
100 lines
| 2.9 KiB
| text/x-c
|
CppLexer
|
r1872 | /**************************************************************************** | ||
** | ||||
|
r2688 | ** Copyright (C) 2014 Digia Plc | ||
|
r1872 | ** All rights reserved. | ||
** For any questions to Digia, please use contact form at http://qt.digia.com | ||||
** | ||||
|
r2574 | ** This file is part of the Qt Enterprise Charts Add-on. | ||
|
r1872 | ** | ||
** $QT_BEGIN_LICENSE$ | ||||
|
r2574 | ** Licensees holding valid Qt Enterprise licenses may use this file in | ||
** accordance with the Qt Enterprise License Agreement provided with the | ||||
|
r1872 | ** 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" | ||||
|
r2714 | #include <QtCore/QDebug> | ||
|
r1872 | |||
|
r2712 | QT_CHARTS_BEGIN_NAMESPACE | ||
|
r1872 | |||
|
r2639 | /*! | ||
\qmltype CategoryRange | ||||
|
r2712 | \inqmlmodule QtCharts | ||
|
r2639 | |||
|
r2712 | \brief With CategoryRange you can define a range used by a CategoryAxis. | ||
\sa CategoryAxis | ||||
|
r2639 | */ | ||
|
r1872 | |||
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 | } | ||
|
r2712 | QQmlListProperty<QObject> DeclarativeCategoryAxis::axisChildren() | ||
|
r1872 | { | ||
|
r2712 | return QQmlListProperty<QObject>(this, 0, &DeclarativeCategoryAxis::appendAxisChildren ,0,0,0); | ||
|
r1872 | } | ||
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); | ||||
} | ||||
|
r2712 | void DeclarativeCategoryAxis::appendAxisChildren(QQmlListProperty<QObject> *list, QObject *element) | ||
|
r1872 | { | ||
// Empty implementation; the children are parsed in componentComplete instead | ||||
Q_UNUSED(list) | ||||
Q_UNUSED(element) | ||||
} | ||||
#include "moc_declarativecategoryaxis.cpp" | ||||
|
r2712 | QT_CHARTS_END_NAMESPACE | ||