##// END OF EJS Templates
Added new model mappers for pie to QML api
Added new model mappers for pie to QML api

File last commit:

r1197:9dfce0b917b8
r1249:94a47eb3a2ef
Show More
declarativemodel.cpp
111 lines | 3.0 KiB | text/x-c | CppLexer
Tero Ahola
Draft version for QML PieSeries model API
r1130 /****************************************************************************
**
** 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
Draft for QML demo that shows weather forecasts
r1139 #include "declarativemodel.h"
Tero Ahola
Draft version for QML PieSeries model API
r1130 #include <qdeclarativelist.h>
Tero Ahola
Draft for QML demo that shows weather forecasts
r1139 #include <QDebug>
Tero Ahola
Draft version for QML PieSeries model API
r1130
QTCOMMERCIALCHART_BEGIN_NAMESPACE
Tero Ahola
Now using only one declarative model
r1169
////////////// Table model row ///////////////////
Tero Ahola
Cleaning up ChartModel impl before moving it into a demo app
r1190 DeclarativeTableModelElement::DeclarativeTableModelElement(QObject *parent)
Tero Ahola
Now using only one declarative model
r1169 : QObject(parent)
{
}
Tero Ahola
Cleaning up ChartModel impl before moving it into a demo app
r1190 QVariantList DeclarativeTableModelElement::values()
Tero Ahola
Now using only one declarative model
r1169 {
return m_values;
}
Tero Ahola
Cleaning up ChartModel impl before moving it into a demo app
r1190 void DeclarativeTableModelElement::setValues(QVariantList values)
Tero Ahola
Now using only one declarative model
r1169 {
m_values = values;
}
////////////// Table model ///////////////////
Tero Ahola
Added declarative model for bar series
r1162
DeclarativeTableModel::DeclarativeTableModel(QObject *parent) :
ChartTableModel(parent)
{
}
void DeclarativeTableModel::classBegin()
{
}
void DeclarativeTableModel::componentComplete()
{
Tero Ahola
QML and static data in pie and xy series
r1186 foreach (QObject *child, children()) {
Tero Ahola
Cleaning up ChartModel impl before moving it into a demo app
r1190 if (qobject_cast<DeclarativeTableModelElement *>(child)) {
append(qobject_cast<DeclarativeTableModelElement *>(child)->values());
Tero Ahola
QML and static data in pie and xy series
r1186 }
}
Tero Ahola
Added declarative model for bar series
r1162 }
QDeclarativeListProperty<QObject> DeclarativeTableModel::modelChildren()
{
return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeTableModel::appendModelChild);
}
void DeclarativeTableModel::appendModelChild(QDeclarativeListProperty<QObject> *list,
QObject *child)
{
// childs are added in componentComplete instead
Q_UNUSED(list)
Q_UNUSED(child)
}
Tero Ahola
Now using only one declarative model
r1169 void DeclarativeTableModel::append(QVariantList values)
Tero Ahola
Added declarative model for bar series
r1162 {
Tero Ahola
Now using only one declarative model
r1169 // qDebug() << "DeclarativeTableModel::append:" << values;
Tero Ahola
Added declarative model for bar series
r1162
Tero Ahola
Now using only one declarative model
r1169 while (columnCount() < values.count())
insertColumn(columnCount());
Tero Ahola
Draft for QML demo that shows weather forecasts
r1139
Tero Ahola
Now using only one declarative model
r1169 insertRow(rowCount());
QModelIndex beginIndex = QModelIndex();
QModelIndex endIndex = QModelIndex();
for (int i(0); i < values.count(); i++) {
QModelIndex modelIndex = createIndex(rowCount() - 1, i);
if (i == 0)
beginIndex = modelIndex;
if (i == (values.count() - 1))
endIndex = modelIndex;
setData(modelIndex, values.at(i));
}
dataChanged(beginIndex, endIndex);
Tero Ahola
Draft version for QML PieSeries model API
r1130 }
Tero Ahola
QML and static data in pie and xy series
r1186 void DeclarativeTableModel::appendPoint(QXYModelMapper *mapper, DeclarativeXyPoint *point)
Tero Ahola
Draft for QML demo that shows weather forecasts
r1139 {
Tero Ahola
Cleaning up ChartModel impl before moving it into a demo app
r1190 // qDebug() << "DeclarativeTableModel::appendPoint:" << point;
Tero Ahola
QML and static data in pie and xy series
r1186 QVariantList values;
values.insert(mapper->mapX(), point->x());
values.insert(mapper->mapY(), point->y());
append(values);
Tero Ahola
Draft for QML demo that shows weather forecasts
r1139 }
Tero Ahola
Draft version for QML PieSeries model API
r1130
Tero Ahola
Draft for QML demo that shows weather forecasts
r1139 #include "moc_declarativemodel.cpp"
Tero Ahola
Draft version for QML PieSeries model API
r1130
QTCOMMERCIALCHART_END_NAMESPACE