diff options
author | Tero Ahola <tero.ahola@digia.com> | 2012-09-18 10:53:14 +0300 |
---|---|---|
committer | Tero Ahola <tero.ahola@digia.com> | 2012-09-19 14:25:06 +0300 |
commit | e2171111cf472ca107ae86bec7543ff3c3e1265e (patch) | |
tree | 8d3a6745e63a179b7a177ec6a800ddd6e0873302 /plugins | |
parent | 7d9cfff99e14f8e23565e1a9d4ad3f55d81a47a8 (diff) |
CategoryRange objects no longer need to be in a specific order
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/declarative/declarativecategoryaxis.cpp | 13 | ||||
-rw-r--r-- | plugins/declarative/declarativecategoryaxis.h | 3 |
2 files changed, 15 insertions, 1 deletions
diff --git a/plugins/declarative/declarativecategoryaxis.cpp b/plugins/declarative/declarativecategoryaxis.cpp index b898204e..f9ec64b9 100644 --- a/plugins/declarative/declarativecategoryaxis.cpp +++ b/plugins/declarative/declarativecategoryaxis.cpp @@ -47,12 +47,23 @@ void DeclarativeCategoryAxis::classBegin() void DeclarativeCategoryAxis::componentComplete() { + QList<QPair<QString, qreal> > ranges; foreach(QObject *child, children()) { if (qobject_cast<DeclarativeCategoryRange *>(child)) { DeclarativeCategoryRange *range = qobject_cast<DeclarativeCategoryRange *>(child); - append(range->label(), range->endValue()); + ranges.append(QPair<QString, qreal>(range->label(), range->endValue())); } } + + // 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; } QDeclarativeListProperty<QObject> DeclarativeCategoryAxis::axisChildren() diff --git a/plugins/declarative/declarativecategoryaxis.h b/plugins/declarative/declarativecategoryaxis.h index f720c976..84aeb253 100644 --- a/plugins/declarative/declarativecategoryaxis.h +++ b/plugins/declarative/declarativecategoryaxis.h @@ -70,6 +70,9 @@ public Q_SLOTS: Q_INVOKABLE void remove(const QString &label); Q_INVOKABLE void replace(const QString& oldLabel, const QString& newLabel); static void appendAxisChildren(QDeclarativeListProperty<QObject> *list, QObject *element); + +private: + static bool endValueLessThan(const QPair<QString, qreal> &value1, const QPair<QString, qreal> &value2); }; QTCOMMERCIALCHART_END_NAMESPACE |