##// END OF EJS Templates
Cleaning up ChartModel impl before moving it into a demo app
Cleaning up ChartModel impl before moving it into a demo app

File last commit:

r1190:f9f8ff23359b
r1190:f9f8ff23359b
Show More
declarativemodel.cpp
132 lines | 3.7 KiB | text/x-c | CppLexer
/ qmlplugin / declarativemodel.cpp
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
Added declarative model for bar series
r1162 ////////////// Bar model ///////////////////////
DeclarativeBarModel::DeclarativeBarModel(QObject *parent) :
DeclarativeTableModel(parent)
Tero Ahola
Draft version for QML PieSeries model API
r1130 {
}
Tero Ahola
Added declarative model for bar series
r1162 void DeclarativeBarModel::append(QBarSet* barSet)
Tero Ahola
Draft version for QML PieSeries model API
r1130 {
Tero Ahola
Added declarative model for bar series
r1162 insertColumn(columnCount());
for (int i(0); i < barSet->count(); i++) {
if (rowCount() < (i + 1))
insertRow(rowCount());
setData(createIndex(i, columnCount() - 1), barSet->at(i));
// insertRow(rowCount());
// setData(createIndex(rowCount() - 1, 0), );
// setData(createIndex(rowCount() - 1, 1), barSet->at(i));
}
// TODO: setModelMapping(0, 1, columnCount(), Qt::Vertical);
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