qhxymodelmapper.cpp
232 lines
| 6.5 KiB
| text/x-c
|
CppLexer
Marek Rosa
|
r1355 | /**************************************************************************** | ||
** | ||||
** 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$ | ||||
** | ||||
****************************************************************************/ | ||||
Marek Rosa
|
r1252 | #include "qhxymodelmapper.h" | ||
QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||||
Marek Rosa
|
r1331 | /*! | ||
\class QHXYModelMapper | ||||
\mainclass | ||||
Marek Rosa
|
r1397 | Model mappers allow you to use QAbstractItemModel derived models as a data source for a chart series. | ||
Marek Rosa
|
r1378 | Horizontal model mapper is used to create a connection between QXYSeries and QAbstractItemModel derived model object. | ||
It is possible to use both QAbstractItemModel and QXYSeries model API. QXYModelMapper makes sure that QXYSeries and the model are kept in sync. | ||||
Marek Rosa
|
r2396 | Note: used model has to support adding/removing rows/columns and modifying the data of the cells. | ||
Marek Rosa
|
r1331 | */ | ||
Tero Ahola
|
r1516 | /*! | ||
\qmlclass HXYModelMapper QHXYModelMapper | ||||
HXYModelMapper allows you to use your own QAbstractItemModel derived model with data in rows as a data source | ||||
for XYSeries based series. It is possible to use both QAbstractItemModel and XYSeries data API to manipulate data. | ||||
HXYModelMapper keeps the series and the model in sync. | ||||
*/ | ||||
Marek Rosa
|
r1331 | |||
Marek Rosa
|
r1507 | /*! | ||
\property QHXYModelMapper::series | ||||
\brief Defines the QXYSeries object that is used by the mapper. | ||||
All the data in the series is discarded when it is set to the mapper. | ||||
When new series is specified the old series is disconnected (it preserves its data) | ||||
*/ | ||||
Tero Ahola
|
r1516 | /*! | ||
\qmlproperty XYSeries HXYModelMapper::series | ||||
Tero Ahola
|
r1519 | Defines the XYSeries object that is used by the mapper. All the data in the series is discarded when it is set to | ||
Tero Ahola
|
r1516 | the mapper. When new series is specified the old series is disconnected (it preserves its data). | ||
*/ | ||||
Marek Rosa
|
r1507 | |||
/*! | ||||
\property QHXYModelMapper::model | ||||
\brief Defines the model that is used by the mapper. | ||||
*/ | ||||
Tero Ahola
|
r1516 | /*! | ||
\qmlproperty SomeModel HXYModelMapper::model | ||||
The QAbstractItemModel based model that is used by the mapper. You need to implement the model and expose it to | ||||
Marek Rosa
|
r2396 | QML as shown in \l {QML Custom Model} demo application. Note: the model has to support adding/removing rows/columns | ||
Tero Ahola
|
r1516 | and modifying the data of the cells. | ||
*/ | ||||
Marek Rosa
|
r1507 | |||
Marek Rosa
|
r1344 | /*! | ||
\property QHXYModelMapper::xRow | ||||
\brief Defines which row of the model is kept in sync with the x values of the QXYSeries | ||||
Default value is: -1 (invalid mapping) | ||||
*/ | ||||
Tero Ahola
|
r1516 | /*! | ||
\qmlproperty int HXYModelMapper::xRow | ||||
Tero Ahola
|
r1519 | Defines which row of the model is kept in sync with the x values of the series. Default value is -1 (invalid | ||
Tero Ahola
|
r1516 | mapping). | ||
*/ | ||||
Marek Rosa
|
r1344 | |||
/*! | ||||
\property QHXYModelMapper::yRow | ||||
\brief Defines which row of the model is kept in sync with the y values of the QXYSeries | ||||
Default value is: -1 (invalid mapping) | ||||
*/ | ||||
Tero Ahola
|
r1516 | /*! | ||
\qmlproperty int HXYModelMapper::yRow | ||||
Tero Ahola
|
r1519 | Defines which row of the model is kept in sync with the y values of the series. Default value is -1 | ||
Tero Ahola
|
r1516 | (invalid mapping). | ||
*/ | ||||
Marek Rosa
|
r1344 | |||
Marek Rosa
|
r1507 | /*! | ||
\property QHXYModelMapper::firstColumn | ||||
\brief Defines which column of the model contains the data for the first point of the series. | ||||
Minimal and default value is: 0 | ||||
*/ | ||||
/*! | ||||
Tero Ahola
|
r1516 | \qmlproperty int HXYModelMapper::firstColumn | ||
Marek Rosa
|
r1507 | Defines which column of the model contains the data for the first point of the series. | ||
The default value is 0. | ||||
*/ | ||||
/*! | ||||
\property QHXYModelMapper::columnCount | ||||
\brief Defines the number of columns of the model that are mapped as the data for series | ||||
Minimal and default value is: -1 (count limited by the number of columns in the model) | ||||
*/ | ||||
/*! | ||||
Tero Ahola
|
r1516 | \qmlproperty int HXYModelMapper::columnCount | ||
Marek Rosa
|
r1507 | Defines the number of columns of the model that are mapped as the data for series. The default value is | ||
-1 (count limited by the number of columns in the model) | ||||
*/ | ||||
/*! | ||||
\fn void QHXYModelMapper::seriesReplaced() | ||||
Emitted when the series to which mapper is connected to has changed. | ||||
*/ | ||||
/*! | ||||
\fn void QHXYModelMapper::modelReplaced() | ||||
Emitted when the model to which mapper is connected to has changed. | ||||
*/ | ||||
Marek Rosa
|
r1477 | /*! | ||
\fn void QHXYModelMapper::xRowChanged() | ||||
Emitted when the xRow has changed. | ||||
*/ | ||||
/*! | ||||
\fn void QHXYModelMapper::yRowChanged() | ||||
Emitted when the yRow has changed. | ||||
*/ | ||||
Marek Rosa
|
r1507 | /*! | ||
\fn void QHXYModelMapper::firstColumnChanged() | ||||
Emitted when the firstColumn has changed. | ||||
*/ | ||||
/*! | ||||
\fn void QHXYModelMapper::columnCountChanged() | ||||
Emitted when the columnCount has changed. | ||||
*/ | ||||
Marek Rosa
|
r1347 | /*! | ||
Constructs a mapper object which is a child of \a parent. | ||||
*/ | ||||
Marek Rosa
|
r1252 | QHXYModelMapper::QHXYModelMapper(QObject *parent) : | ||
QXYModelMapper(parent) | ||||
{ | ||||
Marek Rosa
|
r1310 | QXYModelMapper::setOrientation(Qt::Horizontal); | ||
Marek Rosa
|
r1252 | } | ||
Jani Honkonen
|
r2104 | QAbstractItemModel *QHXYModelMapper::model() const | ||
Marek Rosa
|
r1507 | { | ||
return QXYModelMapper::model(); | ||||
} | ||||
void QHXYModelMapper::setModel(QAbstractItemModel *model) | ||||
{ | ||||
if (model != QXYModelMapper::model()) { | ||||
QXYModelMapper::setModel(model); | ||||
emit modelReplaced(); | ||||
} | ||||
} | ||||
Jani Honkonen
|
r2104 | QXYSeries *QHXYModelMapper::series() const | ||
Marek Rosa
|
r1507 | { | ||
return QXYModelMapper::series(); | ||||
} | ||||
void QHXYModelMapper::setSeries(QXYSeries *series) | ||||
{ | ||||
if (series != QXYModelMapper::series()) { | ||||
QXYModelMapper::setSeries(series); | ||||
emit seriesReplaced(); | ||||
} | ||||
} | ||||
Marek Rosa
|
r1252 | int QHXYModelMapper::xRow() const | ||
{ | ||||
return QXYModelMapper::xSection(); | ||||
} | ||||
void QHXYModelMapper::setXRow(int xRow) | ||||
{ | ||||
Marek Rosa
|
r1477 | if (xRow != xSection()) { | ||
Marek Rosa
|
r1920 | QXYModelMapper::setXSection(xRow); | ||
Marek Rosa
|
r1477 | emit xRowChanged(); | ||
} | ||||
Marek Rosa
|
r1252 | } | ||
int QHXYModelMapper::yRow() const | ||||
{ | ||||
return QXYModelMapper::ySection(); | ||||
} | ||||
void QHXYModelMapper::setYRow(int yRow) | ||||
{ | ||||
Marek Rosa
|
r1477 | if (yRow != ySection()) { | ||
Marek Rosa
|
r1920 | QXYModelMapper::setYSection(yRow); | ||
Marek Rosa
|
r1477 | emit yRowChanged(); | ||
} | ||||
Marek Rosa
|
r1252 | } | ||
Marek Rosa
|
r1507 | int QHXYModelMapper::firstColumn() const | ||
{ | ||||
return first(); | ||||
} | ||||
void QHXYModelMapper::setFirstColumn(int firstColumn) | ||||
{ | ||||
if (firstColumn != first()) { | ||||
setFirst(firstColumn); | ||||
emit firstColumnChanged(); | ||||
} | ||||
} | ||||
int QHXYModelMapper::columnCount() const | ||||
{ | ||||
return count(); | ||||
} | ||||
void QHXYModelMapper::setColumnCount(int columnCount) | ||||
{ | ||||
if (columnCount != count()) { | ||||
setCount(columnCount); | ||||
Marek Rosa
|
r1922 | emit columnCountChanged(); | ||
Marek Rosa
|
r1507 | } | ||
} | ||||
Marek Rosa
|
r1252 | #include "moc_qhxymodelmapper.cpp" | ||
QTCOMMERCIALCHART_END_NAMESPACE | ||||