diff options
author | Titta Heikkala <titta.heikkala@digia.com> | 2014-07-01 07:10:00 +0300 |
---|---|---|
committer | Titta Heikkala <titta.heikkala@theqtcompany.com> | 2014-10-14 13:04:52 +0300 |
commit | c544258484ff4fd5d2b88402fbaa5d154b89a3a2 (patch) | |
tree | 7659625abb566dec55d3783ed820b928542d9b2b /src/charts/piechart/qhpiemodelmapper.cpp | |
parent | 76339f714f088645e911cee65bdb66055fe029aa (diff) |
Qt Charts project file structure change
Charts repository structure is changed to follow the structure of a
Qt Add-On module. The task includes following changes:
- All macros and definitions named 'commercial' have been renamed.
- Compile errors related to QString and qSort usage have been fixed.
- Old demos are moved under examples. The QML examples now support only
Qt Quick 2.0, the support for Qt Quick 1 is removed.
- The QML examples with multiple views are updated so that they are
usable also with touch devices.
- Unnecessary version checks are removed from examples.
- The build stamp has been removed as it was only meant for Charts
development purposes and it's no longer needed. Also development
build related debug prints are removed as __DATE__ can't be used
for all OS thus it doesn't make much sense.
- Documentation structure has been updated based on the new module
structure. The raw HTML files have been removed. Demos are
combined to examples.
- Unnecessary .qdocinc files are no longer needed. The content is
moved to the corresponding .cpp files.
- The Charts widget designer plugin is updated according to the module
change.
- The test cases updated according to the project structure change.
Tests are added also for version 2.0.
- cmake modules generation is not needed with Qt 5.4 and Qt Charts
so it's disabled.
- The new module name and version are updated to the plugin.qmltypes
file.
Task-number: QTRD-2844, QTRD-3217, QTRD-3218, QTRD-3277, QTRD-3228,
QTRD-2526, QTRD-3233, QTRD-3222
Change-Id: Ib7fb26057cde710ffaf6bc780c8bf52a16f45160
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com>
Diffstat (limited to 'src/charts/piechart/qhpiemodelmapper.cpp')
-rw-r--r-- | src/charts/piechart/qhpiemodelmapper.cpp | 267 |
1 files changed, 267 insertions, 0 deletions
diff --git a/src/charts/piechart/qhpiemodelmapper.cpp b/src/charts/piechart/qhpiemodelmapper.cpp new file mode 100644 index 00000000..b1c7d84f --- /dev/null +++ b/src/charts/piechart/qhpiemodelmapper.cpp @@ -0,0 +1,267 @@ +/**************************************************************************** +** +** 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 "qhpiemodelmapper.h" + +QT_CHARTS_BEGIN_NAMESPACE + +/*! + \class QHPieModelMapper + \inmodule Qt Charts + \brief Horizontal model mapper for pie series. + \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 QPieSeries and QAbstractItemModel derived model object that keeps the consecutive pie slices data in rows. + It is possible to use both QAbstractItemModel and QPieSeries model API. QHPieModelMapper makes sure that Pie 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 HPieModelMapper + \instantiates QHPieModelMapper + \inqmlmodule QtCharts + + \brief Horizontal model mapper for pie series. + + HPieModelMapper allows you to use your own QAbstractItemModel derived model with data in rows as + a data source for a pie series. It is possible to use both QAbstractItemModel and PieSeries data + API to manipulate data. HPieModelMapper keeps the Pie and the model in sync. + + The following QML example would create a pie series with four slices (assuming the model has + at least five columns). Each slice would contain a label from row 1 and a value from row 2. + \code + HPieModelMapper { + series: pieSeries + model: customModel + labelsRow: 1 + valuesRow: 2 + firstColumn: 1 + columnCount: 4 + } + \endcode +*/ + +/*! + \property QHPieModelMapper::series + \brief Defines the QPieSeries 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 PieSeries HPieModelMapper::series + Defines the PieSeries object that is used by the mapper. If you define the mapper element as a child for a + PieSeries, leave this property undefined. 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 QHPieModelMapper::model + \brief Defines the model that is used by the mapper. +*/ +/*! + \qmlproperty SomeModel HPieModelMapper::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 QHPieModelMapper::valuesRow + \brief Defines which row of the model is kept in sync with the values of the pie's slices. + + Default value is: -1 (invalid mapping) +*/ +/*! + \qmlproperty int HPieModelMapper::valuesRow + Defines which row of the model is kept in sync with the values of the pie's slices. Default value is: -1 (invalid + mapping). +*/ + +/*! + \property QHPieModelMapper::labelsRow + \brief Defines which row of the model is kept in sync with the labels of the pie's slices. + + Default value is: -1 (invalid mapping) +*/ +/*! + \qmlproperty int HPieModelMapper::labelsRow + Defines which row of the model is kept in sync with the labels of the pie's slices + Default value is: -1 (invalid mapping) +*/ + +/*! + \property QHPieModelMapper::firstColumn + \brief Defines which column of the model contains the first slice value. + + Minimal and default value is: 0 +*/ +/*! + \qmlproperty int HPieModelMapper::firstColumn + Defines which column of the model contains the first slice value. + The default value is 0. +*/ + +/*! + \property QHPieModelMapper::columnCount + \brief Defines the number of columns of the model that are mapped as the data for QPieSeries. + + Minimal and default value is: -1 (count limited by the number of columns in the model) +*/ +/*! + \qmlproperty int HPieModelMapper::columnCount + Defines the number of columns of the model that are mapped as the data for QPieSeries. The default value is + -1 (count limited by the number of columns in the model) +*/ + +/*! + \fn void QHPieModelMapper::seriesReplaced() + Emitted when the series to which mapper is connected to has changed. +*/ + +/*! + \fn void QHPieModelMapper::modelReplaced() + Emitted when the model to which mapper is connected to has changed. +*/ + +/*! + \fn void QHPieModelMapper::valuesRowChanged() + Emitted when the valuesRow has changed. +*/ + +/*! + \fn void QHPieModelMapper::labelsRowChanged() + Emitted when the labelsRow has changed. +*/ + +/*! + \fn void QHPieModelMapper::firstColumnChanged() + Emitted when the firstColumn has changed. +*/ + +/*! + \fn void QHPieModelMapper::columnCountChanged() + Emitted when the columnCount has changed. +*/ + +/*! + Constructs a mapper object which is a child of \a parent. +*/ +QHPieModelMapper::QHPieModelMapper(QObject *parent) : + QPieModelMapper(parent) +{ + setOrientation(Qt::Horizontal); +} + +QAbstractItemModel *QHPieModelMapper::model() const +{ + return QPieModelMapper::model(); +} + +void QHPieModelMapper::setModel(QAbstractItemModel *model) +{ + if (model != QPieModelMapper::model()) { + QPieModelMapper::setModel(model); + emit modelReplaced(); + } +} + +QPieSeries *QHPieModelMapper::series() const +{ + return QPieModelMapper::series(); +} + +void QHPieModelMapper::setSeries(QPieSeries *series) +{ + if (series != QPieModelMapper::series()) { + QPieModelMapper::setSeries(series); + emit seriesReplaced(); + } +} + +/*! + Returns which row of the model is kept in sync with the values of the pie's slices +*/ +int QHPieModelMapper::valuesRow() const +{ + return valuesSection(); +} + +/*! + Sets the model row that is kept in sync with the pie slices values. + Parameter \a valuesRow specifies the row of the model. +*/ +void QHPieModelMapper::setValuesRow(int valuesRow) +{ + if (valuesRow != valuesSection()) { + setValuesSection(valuesRow); + emit valuesRowChanged(); + } +} + +/*! + Returns which row of the model is kept in sync with the labels of the pie's slices +*/ +int QHPieModelMapper::labelsRow() const +{ + return labelsSection(); +} + +/*! + Sets the model row that is kept in sync with the pie's slices labels. + Parameter \a labelsRow specifies the row of the model. +*/ +void QHPieModelMapper::setLabelsRow(int labelsRow) +{ + if (labelsRow != labelsSection()) { + setLabelsSection(labelsRow); + emit labelsRowChanged(); + } +} + +int QHPieModelMapper::firstColumn() const +{ + return first(); +} + +void QHPieModelMapper::setFirstColumn(int firstColumn) +{ + if (firstColumn != first()) { + setFirst(firstColumn); + emit firstColumnChanged(); + } +} + +int QHPieModelMapper::columnCount() const +{ + return count(); +} + +void QHPieModelMapper::setColumnCount(int columnCount) +{ + if (columnCount != count()) { + setCount(columnCount); + emit columnCountChanged(); + } +} + +#include "moc_qhpiemodelmapper.cpp" + +QT_CHARTS_END_NAMESPACE |