diff options
Diffstat (limited to 'src/charts/boxplotchart/qvboxplotmodelmapper.cpp')
-rw-r--r-- | src/charts/boxplotchart/qvboxplotmodelmapper.cpp | 257 |
1 files changed, 257 insertions, 0 deletions
diff --git a/src/charts/boxplotchart/qvboxplotmodelmapper.cpp b/src/charts/boxplotchart/qvboxplotmodelmapper.cpp new file mode 100644 index 00000000..fd35e938 --- /dev/null +++ b/src/charts/boxplotchart/qvboxplotmodelmapper.cpp @@ -0,0 +1,257 @@ +/**************************************************************************** +** +** 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 "qvboxplotmodelmapper.h" + +QT_CHARTS_BEGIN_NAMESPACE + +/*! + \class QVBoxPlotModelMapper + \inmodule Qt Charts + \brief Vertical model mapper for box plot series. + \mainclass + + Model mappers allow you to use QAbstractItemModel derived models as a data source for a chart series. + Vertical model mapper is used to create a connection between QBoxPlotSeries and QAbstractItemModel derived model object. + Model mapper maintains equal size of all the QBoxSets. + \note used model has to support adding/removing rows/columns and modifying the data of the cells. +*/ +/*! + \qmltype VBoxPlotModelMapper + \instantiates QVBoxPlotModelMapper + \inqmlmodule QtCharts + + \brief Vertical model mapper for box plot series. + + VBoxPlotModelMapper allows you to use your own QAbstractItemModel derived model with data in + columns as a data source for any box-and-whiskers series. It is possible to use both + QAbstractItemModel and box-and-whiskers series data API to manipulate data. VBoxPlotModelMapper + keeps the series and the model in sync. + + The following QML example would create a box-and-whiskers series with three box sets (assuming + the model has at least four columns). Each box set would contain data starting from row 1. The + name of a set would be defined by the horizontal header (of the column). + \code + BoxPlotSeries { + VBoxPlotModelMapper { + model: myCustomModel // QAbstractItemModel derived implementation + firstBoxSetColumn: 1 + lastBoxSetColumn: 3 + firstRow: 1 + } + } + \endcode +*/ + +/*! + \property QVBoxPlotModelMapper::series + \brief Defines the QBoxPlotSeries 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 AbstractBarSeries VBoxPlotModelMapper::series + Defines the AbstractBarSeries based 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 QVBoxPlotModelMapper::model + \brief Defines the model that is used by the mapper. +*/ +/*! + \qmlproperty SomeModel VBoxPlotModelMapper::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 QVBoxPlotModelMapper::firstBoxSetColumn + \brief Defines which column of the model is used as the data source for the first box-and-whiskers set. + + Default value is: -1 (invalid mapping) +*/ +/*! + \qmlproperty int VBarModelMapper::firstBoxSetColumn + Defines which column of the model is used as the data source for the first box-and-whiskers set. Default value + is: -1 (invalid mapping). +*/ + +/*! + \property QVBoxPlotModelMapper::lastBoxSetColumn + \brief Defines which column of the model is used as the data source for the last box-and-whiskers set. + + Default value is: -1 (invalid mapping) +*/ +/*! + \qmlproperty int VBarModelMapper::lastBoxSetColumn + Defines which column of the model is used as the data source for the last box-and-whiskers set. Default + value is: -1 (invalid mapping). +*/ + +/*! + \property QVBoxPlotModelMapper::firstRow + \brief Defines which row of the model contains the first values of the QBoxSets in the series. + + Minimal and default value is: 0 +*/ +/*! + \qmlproperty int VBoxPlotModelMapper::firstRow + Defines which row of the model contains the first values of the QBoxSets in the series. + The default value is 0. +*/ + +/*! + \property QVBoxPlotModelMapper::rowCount + \brief Defines the number of rows of the model that are mapped as the data for QBoxPlotSeries + + Minimal and default value is: -1 (count limited by the number of rows in the model) +*/ +/*! + \qmlproperty int VBoxModelMapper::rowCount + Defines the number of rows of the model that are mapped as the data for QBoxPlotSeries. The default value is + -1 (count limited by the number of rows in the model) +*/ + +/*! + \fn void QVBoxPlotModelMapper::seriesReplaced() + + Emitted when the series to which mapper is connected to has changed. +*/ + +/*! + \fn void QVBoxPlotModelMapper::modelReplaced() + + Emitted when the model to which mapper is connected to has changed. +*/ + +/*! + \fn void QVBoxPlotModelMapper::firstBoxSetColumnChanged() + Emitted when the firstBoxSetColumn has changed. +*/ + +/*! + \fn void QVBoxPlotModelMapper::lastBoxSetColumnChanged() + Emitted when the lastBoxSetColumn has changed. +*/ + +/*! + \fn void QVBoxPlotModelMapper::firstRowChanged() + Emitted when the firstRow has changed. +*/ + +/*! + \fn void QVBoxPlotModelMapper::rowCountChanged() + Emitted when the rowCount has changed. +*/ + +/*! + Constructs a mapper object which is a child of \a parent. +*/ +QVBoxPlotModelMapper::QVBoxPlotModelMapper(QObject *parent) : + QBoxPlotModelMapper(parent) +{ + QBoxPlotModelMapper::setOrientation(Qt::Vertical); +} + +QAbstractItemModel *QVBoxPlotModelMapper::model() const +{ + return QBoxPlotModelMapper::model(); +} + +void QVBoxPlotModelMapper::setModel(QAbstractItemModel *model) +{ + if (model != QBoxPlotModelMapper::model()) { + QBoxPlotModelMapper::setModel(model); + emit modelReplaced(); + } +} + +QBoxPlotSeries *QVBoxPlotModelMapper::series() const +{ + return QBoxPlotModelMapper::series(); +} + +void QVBoxPlotModelMapper::setSeries(QBoxPlotSeries *series) +{ + if (series != QBoxPlotModelMapper::series()) { + QBoxPlotModelMapper::setSeries(series); + emit seriesReplaced(); + } +} + +int QVBoxPlotModelMapper::firstBoxSetColumn() const +{ + return QBoxPlotModelMapper::firstBoxSetSection(); +} + +void QVBoxPlotModelMapper::setFirstBoxSetColumn(int firstBoxSetColumn) +{ + if (firstBoxSetColumn != firstBoxSetSection()) { + QBoxPlotModelMapper::setFirstBoxSetSection(firstBoxSetColumn); + emit firstBoxSetColumnChanged(); + } +} + +int QVBoxPlotModelMapper::lastBoxSetColumn() const +{ + return QBoxPlotModelMapper::lastBoxSetSection(); +} + +void QVBoxPlotModelMapper::setLastBoxSetColumn(int lastBoxSetColumn) +{ + if (lastBoxSetColumn != lastBoxSetSection()) { + QBoxPlotModelMapper::setLastBoxSetSection(lastBoxSetColumn); + emit lastBoxSetColumnChanged(); + } +} + +int QVBoxPlotModelMapper::firstRow() const +{ + return QBoxPlotModelMapper::first(); +} + +void QVBoxPlotModelMapper::setFirstRow(int firstRow) +{ + if (firstRow != first()) { + QBoxPlotModelMapper::setFirst(firstRow); + emit firstRowChanged(); + } +} + +int QVBoxPlotModelMapper::rowCount() const +{ + return QBoxPlotModelMapper::count(); +} + +void QVBoxPlotModelMapper::setRowCount(int rowCount) +{ + if (rowCount != count()) { + QBoxPlotModelMapper::setCount(rowCount); + emit rowCountChanged(); + } +} + +#include "moc_qvboxplotmodelmapper.cpp" + +QT_CHARTS_END_NAMESPACE + |