diff options
Diffstat (limited to 'src/charts/xychart/qhxymodelmapper.cpp')
-rw-r--r-- | src/charts/xychart/qhxymodelmapper.cpp | 243 |
1 files changed, 243 insertions, 0 deletions
diff --git a/src/charts/xychart/qhxymodelmapper.cpp b/src/charts/xychart/qhxymodelmapper.cpp new file mode 100644 index 00000000..4edc8aeb --- /dev/null +++ b/src/charts/xychart/qhxymodelmapper.cpp @@ -0,0 +1,243 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#include "qhxymodelmapper.h" + +QT_CHARTS_BEGIN_NAMESPACE + +/*! + \class QHXYModelMapper + \inmodule Qt Charts + \brief Horizontal model mapper for QXYSeries. + \mainclass + + Model mappers allow you to use QAbstractItemModel derived models as a data source for a chart series. + 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. + Note: used model has to support adding/removing rows/columns and modifying the data of the cells. +*/ +/*! + \qmltype HXYModelMapper + \instantiates QHXYModelMapper + \inqmlmodule QtCharts + + \brief Horizontal model mapper for QXYSeries + + 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. +*/ + +/*! + \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) +*/ +/*! + \qmlproperty XYSeries HXYModelMapper::series + Defines the XYSeries 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). +*/ + +/*! + \property QHXYModelMapper::model + \brief Defines the model that is used by the mapper. +*/ +/*! + \qmlproperty SomeModel HXYModelMapper::model + The QAbstractItemModel based model that is used by the mapper. You need to implement the model + and expose it to QML. Note: the model has to support adding/removing rows/columns and modifying + the data of the cells. +*/ + +/*! + \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) +*/ +/*! + \qmlproperty int HXYModelMapper::xRow + Defines which row of the model is kept in sync with the x values of the series. Default value is -1 (invalid + mapping). +*/ + +/*! + \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) +*/ +/*! + \qmlproperty int HXYModelMapper::yRow + Defines which row of the model is kept in sync with the y values of the series. Default value is -1 + (invalid mapping). +*/ + +/*! + \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 +*/ +/*! + \qmlproperty int HXYModelMapper::firstColumn + 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) +*/ +/*! + \qmlproperty int HXYModelMapper::columnCount + 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. +*/ + +/*! + \fn void QHXYModelMapper::xRowChanged() + + Emitted when the xRow has changed. +*/ + +/*! + \fn void QHXYModelMapper::yRowChanged() + + Emitted when the yRow has changed. +*/ + +/*! + \fn void QHXYModelMapper::firstColumnChanged() + Emitted when the firstColumn has changed. +*/ + +/*! + \fn void QHXYModelMapper::columnCountChanged() + Emitted when the columnCount has changed. +*/ + +/*! + Constructs a mapper object which is a child of \a parent. +*/ +QHXYModelMapper::QHXYModelMapper(QObject *parent) : + QXYModelMapper(parent) +{ + QXYModelMapper::setOrientation(Qt::Horizontal); +} + +QAbstractItemModel *QHXYModelMapper::model() const +{ + return QXYModelMapper::model(); +} + +void QHXYModelMapper::setModel(QAbstractItemModel *model) +{ + if (model != QXYModelMapper::model()) { + QXYModelMapper::setModel(model); + emit modelReplaced(); + } +} + +QXYSeries *QHXYModelMapper::series() const +{ + return QXYModelMapper::series(); +} + +void QHXYModelMapper::setSeries(QXYSeries *series) +{ + if (series != QXYModelMapper::series()) { + QXYModelMapper::setSeries(series); + emit seriesReplaced(); + } +} + +int QHXYModelMapper::xRow() const +{ + return QXYModelMapper::xSection(); +} + +void QHXYModelMapper::setXRow(int xRow) +{ + if (xRow != xSection()) { + QXYModelMapper::setXSection(xRow); + emit xRowChanged(); + } +} + +int QHXYModelMapper::yRow() const +{ + return QXYModelMapper::ySection(); +} + +void QHXYModelMapper::setYRow(int yRow) +{ + if (yRow != ySection()) { + QXYModelMapper::setYSection(yRow); + emit yRowChanged(); + } +} + +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); + emit columnCountChanged(); + } +} + +#include "moc_qhxymodelmapper.cpp" + +QT_CHARTS_END_NAMESPACE |