declarativemodel.cpp
132 lines
| 3.7 KiB
| text/x-c
|
CppLexer
/ qmlplugin / declarativemodel.cpp
Tero Ahola
|
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
|
r1139 | #include "declarativemodel.h" | ||
Tero Ahola
|
r1130 | #include <qdeclarativelist.h> | ||
Tero Ahola
|
r1139 | #include <QDebug> | ||
Tero Ahola
|
r1130 | |||
QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||||
Tero Ahola
|
r1169 | |||
////////////// Table model row /////////////////// | ||||
Tero Ahola
|
r1190 | DeclarativeTableModelElement::DeclarativeTableModelElement(QObject *parent) | ||
Tero Ahola
|
r1169 | : QObject(parent) | ||
{ | ||||
} | ||||
Tero Ahola
|
r1190 | QVariantList DeclarativeTableModelElement::values() | ||
Tero Ahola
|
r1169 | { | ||
return m_values; | ||||
} | ||||
Tero Ahola
|
r1190 | void DeclarativeTableModelElement::setValues(QVariantList values) | ||
Tero Ahola
|
r1169 | { | ||
m_values = values; | ||||
} | ||||
////////////// Table model /////////////////// | ||||
Tero Ahola
|
r1162 | |||
DeclarativeTableModel::DeclarativeTableModel(QObject *parent) : | ||||
ChartTableModel(parent) | ||||
{ | ||||
} | ||||
void DeclarativeTableModel::classBegin() | ||||
{ | ||||
} | ||||
void DeclarativeTableModel::componentComplete() | ||||
{ | ||||
Tero Ahola
|
r1186 | foreach (QObject *child, children()) { | ||
Tero Ahola
|
r1190 | if (qobject_cast<DeclarativeTableModelElement *>(child)) { | ||
append(qobject_cast<DeclarativeTableModelElement *>(child)->values()); | ||||
Tero Ahola
|
r1186 | } | ||
} | ||||
Tero Ahola
|
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
|
r1169 | void DeclarativeTableModel::append(QVariantList values) | ||
Tero Ahola
|
r1162 | { | ||
Tero Ahola
|
r1169 | // qDebug() << "DeclarativeTableModel::append:" << values; | ||
Tero Ahola
|
r1162 | |||
Tero Ahola
|
r1169 | while (columnCount() < values.count()) | ||
insertColumn(columnCount()); | ||||
Tero Ahola
|
r1139 | |||
Tero Ahola
|
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
|
r1130 | } | ||
Tero Ahola
|
r1186 | void DeclarativeTableModel::appendPoint(QXYModelMapper *mapper, DeclarativeXyPoint *point) | ||
Tero Ahola
|
r1139 | { | ||
Tero Ahola
|
r1190 | // qDebug() << "DeclarativeTableModel::appendPoint:" << point; | ||
Tero Ahola
|
r1186 | QVariantList values; | ||
values.insert(mapper->mapX(), point->x()); | ||||
values.insert(mapper->mapY(), point->y()); | ||||
append(values); | ||||
Tero Ahola
|
r1139 | } | ||
Tero Ahola
|
r1130 | |||
Tero Ahola
|
r1162 | ////////////// Bar model /////////////////////// | ||
DeclarativeBarModel::DeclarativeBarModel(QObject *parent) : | ||||
DeclarativeTableModel(parent) | ||||
Tero Ahola
|
r1130 | { | ||
} | ||||
Tero Ahola
|
r1162 | void DeclarativeBarModel::append(QBarSet* barSet) | ||
Tero Ahola
|
r1130 | { | ||
Tero Ahola
|
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
|
r1130 | } | ||
Tero Ahola
|
r1139 | #include "moc_declarativemodel.cpp" | ||
Tero Ahola
|
r1130 | |||
QTCOMMERCIALCHART_END_NAMESPACE | ||||