declarativebarseries.cpp
201 lines
| 5.2 KiB
| text/x-c
|
CppLexer
Jani Honkonen
|
r830 | /**************************************************************************** | ||
** | ||||
** 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$ | ||||
** | ||||
****************************************************************************/ | ||||
Tero Ahola
|
r646 | #include "declarativebarseries.h" | ||
#include "declarativechart.h" | ||||
Tero Ahola
|
r1162 | #include <QBarSet> | ||
Tero Ahola
|
r1313 | #include <QVBarModelMapper> | ||
#include <QHBarModelMapper> | ||||
Tero Ahola
|
r646 | |||
QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||||
Tero Ahola
|
r1162 | DeclarativeBarSet::DeclarativeBarSet(QObject *parent) : | ||
QBarSet("", parent) | ||||
Tero Ahola
|
r646 | { | ||
} | ||||
Tero Ahola
|
r1162 | QVariantList DeclarativeBarSet::values() | ||
Tero Ahola
|
r646 | { | ||
Tero Ahola
|
r1162 | QVariantList values; | ||
for (int i(0); i < count(); i++) | ||||
values.append(QVariant(at(i))); | ||||
return values; | ||||
Tero Ahola
|
r1004 | } | ||
Tero Ahola
|
r646 | |||
Tero Ahola
|
r1162 | void DeclarativeBarSet::setValues(QVariantList values) | ||
Tero Ahola
|
r1004 | { | ||
Tero Ahola
|
r1162 | while (count()) | ||
remove(count() - 1); | ||||
Tero Ahola
|
r646 | |||
Tero Ahola
|
r1162 | for (int i(0); i < values.count(); i++) { | ||
if (values.at(i).canConvert(QVariant::Double)) | ||||
append(values[i].toDouble()); | ||||
Tero Ahola
|
r1004 | } | ||
Tero Ahola
|
r1162 | } | ||
Tero Ahola
|
r646 | |||
Tero Ahola
|
r1302 | QColor DeclarativeBarSet::color() | ||
{ | ||||
return brush().color(); | ||||
} | ||||
void DeclarativeBarSet::setColor(QColor color) | ||||
{ | ||||
QBrush b = brush(); | ||||
b.setColor(color); | ||||
setBrush(b); | ||||
} | ||||
QColor DeclarativeBarSet::borderColor() | ||||
{ | ||||
return pen().color(); | ||||
} | ||||
void DeclarativeBarSet::setBorderColor(QColor color) | ||||
{ | ||||
QPen p = pen(); | ||||
p.setColor(color); | ||||
setPen(p); | ||||
} | ||||
QColor DeclarativeBarSet::labelColor() | ||||
{ | ||||
return labelBrush().color(); | ||||
} | ||||
void DeclarativeBarSet::setLabelColor(QColor color) | ||||
{ | ||||
QBrush b = labelBrush(); | ||||
b.setColor(color); | ||||
setLabelBrush(b); | ||||
} | ||||
Tero Ahola
|
r1162 | DeclarativeBarSeries::DeclarativeBarSeries(QDeclarativeItem *parent) : | ||
Tero Ahola
|
r1222 | QBarSeries(parent) | ||
Tero Ahola
|
r1162 | { | ||
} | ||||
Tero Ahola
|
r646 | |||
Tero Ahola
|
r1162 | void DeclarativeBarSeries::classBegin() | ||
{ | ||||
} | ||||
Tero Ahola
|
r646 | |||
Tero Ahola
|
r1162 | void DeclarativeBarSeries::componentComplete() | ||
{ | ||||
Tero Ahola
|
r1193 | foreach(QObject *child, children()) { | ||
Tero Ahola
|
r1302 | if (qobject_cast<DeclarativeBarSet *>(child)) { | ||
QBarSeries::append(qobject_cast<DeclarativeBarSet *>(child)); | ||||
Tero Ahola
|
r1313 | } else if(qobject_cast<QVBarModelMapper *>(child)) { | ||
QVBarModelMapper *mapper = qobject_cast<QVBarModelMapper *>(child); | ||||
mapper->setSeries(this); | ||||
} else if(qobject_cast<QHBarModelMapper *>(child)) { | ||||
QHBarModelMapper *mapper = qobject_cast<QHBarModelMapper *>(child); | ||||
mapper->setSeries(this); | ||||
Tero Ahola
|
r1193 | } | ||
} | ||||
} | ||||
Tero Ahola
|
r1313 | QDeclarativeListProperty<QObject> DeclarativeBarSeries::seriesChildren() | ||
Tero Ahola
|
r1193 | { | ||
Tero Ahola
|
r1313 | return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren); | ||
} | ||||
void DeclarativeBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element) | ||||
{ | ||||
// Empty implementation; the children are parsed in componentComplete instead | ||||
Q_UNUSED(list); | ||||
Q_UNUSED(element); | ||||
Tero Ahola
|
r1162 | } | ||
Tero Ahola
|
r646 | |||
Tero Ahola
|
r1222 | void DeclarativeBarSeries::setBarCategories(QStringList categories) | ||
{ | ||||
setCategories(categories); | ||||
} | ||||
QStringList DeclarativeBarSeries::barCategories() | ||||
{ | ||||
return categories(); | ||||
} | ||||
Tero Ahola
|
r1302 | DeclarativeBarSet *DeclarativeBarSeries::at(int index) | ||
{ | ||||
QList<QBarSet*> setList = barSets(); | ||||
if (index < setList.count()) | ||||
return qobject_cast<DeclarativeBarSet *>(setList[index]); | ||||
return 0; | ||||
} | ||||
Tero Ahola
|
r1211 | DeclarativeGroupedBarSeries::DeclarativeGroupedBarSeries(QDeclarativeItem *parent) : | ||
QGroupedBarSeries(parent) | ||||
{ | ||||
} | ||||
void DeclarativeGroupedBarSeries::classBegin() | ||||
{ | ||||
} | ||||
void DeclarativeGroupedBarSeries::componentComplete() | ||||
{ | ||||
foreach(QObject *child, children()) { | ||||
Tero Ahola
|
r1302 | if (qobject_cast<DeclarativeBarSet *>(child)) { | ||
QBarSeries::append(qobject_cast<DeclarativeBarSet *>(child)); | ||||
Tero Ahola
|
r1313 | } else if(qobject_cast<QVBarModelMapper *>(child)) { | ||
QVBarModelMapper *mapper = qobject_cast<QVBarModelMapper *>(child); | ||||
mapper->setSeries(this); | ||||
} else if(qobject_cast<QHBarModelMapper *>(child)) { | ||||
QHBarModelMapper *mapper = qobject_cast<QHBarModelMapper *>(child); | ||||
mapper->setSeries(this); | ||||
Tero Ahola
|
r1211 | } | ||
} | ||||
} | ||||
Tero Ahola
|
r1313 | QDeclarativeListProperty<QObject> DeclarativeGroupedBarSeries::seriesChildren() | ||
{ | ||||
return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren); | ||||
} | ||||
void DeclarativeGroupedBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element) | ||||
Tero Ahola
|
r1211 | { | ||
Tero Ahola
|
r1313 | // Empty implementation; the children are parsed in componentComplete instead | ||
Q_UNUSED(list); | ||||
Q_UNUSED(element); | ||||
Tero Ahola
|
r1211 | } | ||
void DeclarativeGroupedBarSeries::setBarCategories(QStringList categories) | ||||
Tero Ahola
|
r1162 | { | ||
setCategories(categories); | ||||
Tero Ahola
|
r726 | } | ||
Tero Ahola
|
r1211 | QStringList DeclarativeGroupedBarSeries::barCategories() | ||
Tero Ahola
|
r726 | { | ||
Tero Ahola
|
r1162 | return categories(); | ||
Tero Ahola
|
r726 | } | ||
Tero Ahola
|
r1302 | DeclarativeBarSet *DeclarativeGroupedBarSeries::at(int index) | ||
{ | ||||
QList<QBarSet*> setList = barSets(); | ||||
if (index < setList.count()) | ||||
return qobject_cast<DeclarativeBarSet *>(setList[index]); | ||||
return 0; | ||||
} | ||||
Tero Ahola
|
r646 | #include "moc_declarativebarseries.cpp" | ||
QTCOMMERCIALCHART_END_NAMESPACE | ||||