declarativecategoryaxis.cpp
112 lines
| 3.4 KiB
| text/x-c
|
CppLexer
Tero Ahola
|
r1872 | /**************************************************************************** | ||
** | ||||
Titta Heikkala
|
r2776 | ** Copyright (C) 2015 The Qt Company Ltd | ||
Tero Ahola
|
r1872 | ** All rights reserved. | ||
Titta Heikkala
|
r2776 | ** For any questions to The Qt Company, please use contact form at http://qt.io | ||
Tero Ahola
|
r1872 | ** | ||
Titta Heikkala
|
r2740 | ** This file is part of the Qt Charts module. | ||
Tero Ahola
|
r1872 | ** | ||
Titta Heikkala
|
r2740 | ** Licensees holding valid commercial license for Qt may use this file in | ||
** accordance with the Qt License Agreement provided with the Software | ||||
** or, alternatively, in accordance with the terms contained in a written | ||||
Titta Heikkala
|
r2776 | ** agreement between you and The Qt Company. | ||
Tero Ahola
|
r1872 | ** | ||
** If you have questions regarding the use of this file, please use | ||||
Titta Heikkala
|
r2740 | ** contact form at http://qt.io | ||
Tero Ahola
|
r1872 | ** | ||
****************************************************************************/ | ||||
#include "declarativecategoryaxis.h" | ||||
Titta Heikkala
|
r2714 | #include <QtCore/QDebug> | ||
Tero Ahola
|
r1872 | |||
Titta Heikkala
|
r2712 | QT_CHARTS_BEGIN_NAMESPACE | ||
Tero Ahola
|
r1872 | |||
Titta Heikkala
|
r2639 | /*! | ||
\qmltype CategoryRange | ||||
Titta Heikkala
|
r2712 | \inqmlmodule QtCharts | ||
Titta Heikkala
|
r2639 | |||
Titta Heikkala
|
r2712 | \brief With CategoryRange you can define a range used by a CategoryAxis. | ||
\sa CategoryAxis | ||||
Titta Heikkala
|
r2639 | */ | ||
Tero Ahola
|
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() | ||||
{ | ||||
Tero Ahola
|
r2080 | QList<QPair<QString, qreal> > ranges; | ||
Jani Honkonen
|
r2100 | foreach (QObject *child, children()) { | ||
Tero Ahola
|
r1872 | if (qobject_cast<DeclarativeCategoryRange *>(child)) { | ||
DeclarativeCategoryRange *range = qobject_cast<DeclarativeCategoryRange *>(child); | ||||
Tero Ahola
|
r2080 | ranges.append(QPair<QString, qreal>(range->label(), range->endValue())); | ||
Tero Ahola
|
r1872 | } | ||
} | ||||
Tero Ahola
|
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; | ||||
Tero Ahola
|
r1872 | } | ||
Titta Heikkala
|
r2712 | QQmlListProperty<QObject> DeclarativeCategoryAxis::axisChildren() | ||
Tero Ahola
|
r1872 | { | ||
Titta Heikkala
|
r2712 | return QQmlListProperty<QObject>(this, 0, &DeclarativeCategoryAxis::appendAxisChildren ,0,0,0); | ||
Tero Ahola
|
r1872 | } | ||
void DeclarativeCategoryAxis::append(const QString &label, qreal categoryEndValue) | ||||
{ | ||||
QCategoryAxis::append(label, categoryEndValue); | ||||
} | ||||
void DeclarativeCategoryAxis::remove(const QString &label) | ||||
{ | ||||
QCategoryAxis::remove(label); | ||||
} | ||||
Jani Honkonen
|
r2101 | void DeclarativeCategoryAxis::replace(const QString &oldLabel, const QString &newLabel) | ||
Tero Ahola
|
r1872 | { | ||
QCategoryAxis::replaceLabel(oldLabel, newLabel); | ||||
} | ||||
Titta Heikkala
|
r2712 | void DeclarativeCategoryAxis::appendAxisChildren(QQmlListProperty<QObject> *list, QObject *element) | ||
Tero Ahola
|
r1872 | { | ||
// Empty implementation; the children are parsed in componentComplete instead | ||||
Q_UNUSED(list) | ||||
Q_UNUSED(element) | ||||
} | ||||
Titta Heikkala
|
r2780 | DeclarativeCategoryAxis::AxisLabelsPosition DeclarativeCategoryAxis::labelsPosition() const | ||
{ | ||||
return (DeclarativeCategoryAxis::AxisLabelsPosition) QCategoryAxis::labelsPosition(); | ||||
} | ||||
void DeclarativeCategoryAxis::setLabelsPosition(AxisLabelsPosition position) | ||||
{ | ||||
QCategoryAxis::AxisLabelsPosition labelsPosition = (QCategoryAxis::AxisLabelsPosition) position; | ||||
if (labelsPosition != m_labelsPosition) { | ||||
QCategoryAxis::setLabelsPosition(labelsPosition); | ||||
emit labelsPositionChanged(position); | ||||
} | ||||
} | ||||
Tero Ahola
|
r1872 | #include "moc_declarativecategoryaxis.cpp" | ||
Titta Heikkala
|
r2712 | QT_CHARTS_END_NAMESPACE | ||