##// END OF EJS Templates
Bugfix in barchartmodel max -> return 0if no count
Bugfix in barchartmodel max -> return 0if no count

File last commit:

r909:61db0e530636
r915:5580e2c7f492
Show More
qxyseries.cpp
557 lines | 16.4 KiB | text/x-c | CppLexer
Jani Honkonen
Add license headers
r794 /****************************************************************************
**
** 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$
**
****************************************************************************/
Michal Klocek
Add missing files from previous commit
r466 #include "qxyseries.h"
Marek Rosa
Fixed: QAbstractItemModel could be forward declaration
r862 #include <QAbstractItemModel>
Michal Klocek
Add missing files from previous commit
r466
QTCOMMERCIALCHART_BEGIN_NAMESPACE
/*!
\class QXYSeries
Michal Klocek
Refactor scatter chart to fit the other classes...
r470 \brief The QXYSeries class is a base class for line, spline and scatter series.
Michal Klocek
Add missing files from previous commit
r466 */
/*!
\fn QPen QXYSeries::pen() const
Michal Klocek
minor. some docs fix
r480 \brief Returns pen used to draw points for series.
Michal Klocek
Add missing files from previous commit
r466 \sa setPen()
*/
Michal Klocek
minor. some docs fix
r480 /*!
\fn QBrush QXYSeries::brush() const
\brief Returns brush used to draw points for series.
\sa setBrush()
*/
Michal Klocek
Updates presenter example documentation
r574 /*!
\fn void QXYSeries::clicked(const QPointF& point)
\brief Signal is emitted when user clicks the \a point on chart.
*/
Michal Klocek
Add missing files from previous commit
r466 /*!
\fn void QXYSeries::pointReplaced(int index)
\brief \internal \a index
*/
/*!
\fn void QXYSeries::pointAdded(int index)
\brief \internal \a index
*/
/*!
\fn void QXYSeries::pointRemoved(int index)
\brief \internal \a index
*/
/*!
\fn void QXYSeries::updated()
\brief \internal
*/
Marek Rosa
Added documentation for model related funtions
r900 /*!
\fn int QXYSeries::mapFirst() const
Returns the index of the model's item that is used as a first one for the series.
\sa mapCount()
*/
/*!
\fn int QXYSeries::mapCount() const
Returns the number of the items that are taken from the model.
If -1 it means all the items of the model following the first one are used.
\sa mapFirst()
*/
Michal Klocek
Add missing files from previous commit
r466 /*!
Constructs empty series object which is a child of \a parent.
When series object is added to QChartView or QChart instance ownerships is transfered.
*/
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 QXYSeries::QXYSeries(QObject *parent):QSeries(parent)
Michal Klocek
Add missing files from previous commit
r466 {
Marek Rosa
QXYSeries: model data orientation added. QBarSeries: some model data function placeholders
r527 m_mapX = -1;
m_mapY = -1;
Marek Rosa
XYSeries: added support for limited mapping area
r734 m_mapFirst = 0;
m_mapCount = 0;
m_mapLimited = false;
Marek Rosa
QXYSeries: model data orientation added. QBarSeries: some model data function placeholders
r527 m_mapOrientation = Qt::Vertical;
Marek Rosa
Added support for data from model to QBarSeries. Various fixes and small modifications to data from model support to other series
r630 // m_mapYOrientation = Qt::Vertical;
Michal Klocek
Add missing files from previous commit
r466 }
/*!
Destroys the object. Series added to QChartView or QChart instances are owned by those,
and are deleted when mentioned object are destroyed.
*/
QXYSeries::~QXYSeries()
{
}
/*!
Adds data point \a x \a y to the series. Points are connected with lines on the chart.
*/
Jani Honkonen
rename functions add() -> append()
r796 void QXYSeries::append(qreal x,qreal y)
Michal Klocek
Add missing files from previous commit
r466 {
Q_ASSERT(m_x.size() == m_y.size());
m_x<<x;
m_y<<y;
emit pointAdded(m_x.size()-1);
}
/*!
This is an overloaded function.
Adds data \a point to the series. Points are connected with lines on the chart.
*/
Jani Honkonen
rename functions add() -> append()
r796 void QXYSeries::append(const QPointF &point)
Michal Klocek
Add missing files from previous commit
r466 {
Jani Honkonen
rename functions add() -> append()
r796 append(point.x(),point.y());
Michal Klocek
Add missing files from previous commit
r466 }
Michal Klocek
Fixes for docs , adds xyseries docs
r481 /*!
This is an overloaded function.
Adds list of data \a points to the series. Points are connected with lines on the chart.
*/
Jani Honkonen
rename functions add() -> append()
r796 void QXYSeries::append(const QList<QPointF> points)
Michal Klocek
Fixes for docs , adds xyseries docs
r481 {
foreach(const QPointF& point , points) {
Jani Honkonen
rename functions add() -> append()
r796 append(point.x(),point.y());
Michal Klocek
Fixes for docs , adds xyseries docs
r481 }
}
Michal Klocek
Add missing files from previous commit
r466 /*!
Modifies \a y value for given \a x a value.
*/
void QXYSeries::replace(qreal x,qreal y)
{
int index = m_x.indexOf(x);
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 m_x[index] = x;
m_y[index] = y;
Michal Klocek
Add missing files from previous commit
r466 emit pointReplaced(index);
}
/*!
This is an overloaded function.
Replaces current y value of for given \a point x value with \a point y value.
*/
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 void QXYSeries::replace(const QPointF &point)
Michal Klocek
Add missing files from previous commit
r466 {
Marek Rosa
Table model data example
r519 replace(point.x(),point.y());
Michal Klocek
Add missing files from previous commit
r466 }
Michal Klocek
Improves spline interpolation...
r622 /*!
Removes first \a x value and related y value.
*/
void QXYSeries::remove(qreal x)
{
int index = m_x.indexOf(x);
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (index == -1) return;
Michal Klocek
Improves spline interpolation...
r622
m_x.remove(index);
m_y.remove(index);
emit pointRemoved(index);
}
Michal Klocek
Add missing files from previous commit
r466 /*!
Michal Klocek
Adds missing scatter intercation implementation...
r541 Removes current \a x and \a y value.
Michal Klocek
Add missing files from previous commit
r466 */
Michal Klocek
Adds missing scatter intercation implementation...
r541 void QXYSeries::remove(qreal x,qreal y)
Michal Klocek
Add missing files from previous commit
r466 {
Michal Klocek
Adds missing scatter intercation implementation...
r541 int index =-1;
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 do {
Michal Klocek
Adds missing scatter intercation implementation...
r541 index = m_x.indexOf(x,index+1);
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 } while (index !=-1 && m_y.at(index)!=y);
Michal Klocek
Adds missing scatter intercation implementation...
r541
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (index==-1) return;
Marek Rosa
Added support for adding and removing data with model. Updated the example
r545
Michal Klocek
Add missing files from previous commit
r466 m_x.remove(index);
m_y.remove(index);
Marek Rosa
Added support for adding and removing data with model. Updated the example
r545 emit pointRemoved(index);
Michal Klocek
Add missing files from previous commit
r466 }
/*!
Removes current \a point x value. Note \a point y value is ignored.
*/
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 void QXYSeries::remove(const QPointF &point)
Michal Klocek
Add missing files from previous commit
r466 {
Michal Klocek
Adds missing scatter intercation implementation...
r541 remove(point.x(),point.y());
Michal Klocek
Add missing files from previous commit
r466 }
/*!
Michal Klocek
Fixes for docs , adds xyseries docs
r481 Removes all data points from the series.
Michal Klocek
Add missing files from previous commit
r466 */
Michal Klocek
Fixes for docs , adds xyseries docs
r481 void QXYSeries::removeAll()
Michal Klocek
Add missing files from previous commit
r466 {
m_x.clear();
m_y.clear();
}
/*!
\internal \a pos
*/
qreal QXYSeries::x(int pos) const
{
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (m_model) {
Marek Rosa
QXYSeries: model data orientation added. QBarSeries: some model data function placeholders
r527 if (m_mapOrientation == Qt::Vertical)
// consecutive data is read from model's column
Marek Rosa
XYSeries: added support for limited mapping area
r734 return m_model->data(m_model->index(pos + m_mapFirst, m_mapX), Qt::DisplayRole).toDouble();
Marek Rosa
QXYSeries: model data orientation added. QBarSeries: some model data function placeholders
r527 else
// consecutive data is read from model's row
Marek Rosa
XYSeries: added support for limited mapping area
r734 return m_model->data(m_model->index(m_mapX, pos + m_mapFirst), Qt::DisplayRole).toDouble();
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 } else {
Marek Rosa
QXYSeries: model data orientation added. QBarSeries: some model data function placeholders
r527 // model is not specified, return the data from series' internal data store
Marek Rosa
Table model data example
r519 return m_x.at(pos);
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 }
Michal Klocek
Add missing files from previous commit
r466 }
/*!
\internal \a pos
*/
qreal QXYSeries::y(int pos) const
{
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (m_model) {
Marek Rosa
QXYSeries: model data orientation added. QBarSeries: some model data function placeholders
r527 if (m_mapOrientation == Qt::Vertical)
// consecutive data is read from model's column
Marek Rosa
XYSeries: added support for limited mapping area
r734 return m_model->data(m_model->index(pos + m_mapFirst, m_mapY), Qt::DisplayRole).toDouble();
Marek Rosa
QXYSeries: model data orientation added. QBarSeries: some model data function placeholders
r527 else
// consecutive data is read from model's row
Marek Rosa
XYSeries: added support for limited mapping area
r734 return m_model->data(m_model->index(m_mapY, pos + m_mapFirst), Qt::DisplayRole).toDouble();
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 } else {
Marek Rosa
QXYSeries: model data orientation added. QBarSeries: some model data function placeholders
r527 // model is not specified, return the data from series' internal data store
Marek Rosa
Table model data example
r519 return m_y.at(pos);
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 }
Michal Klocek
Add missing files from previous commit
r466 }
/*!
Returns number of data points within series.
*/
int QXYSeries::count() const
{
Marek Rosa
Table model data example
r519 Q_ASSERT(m_x.size() == m_y.size());
Michal Klocek
Add missing files from previous commit
r466
Jani Honkonen
We have so many stupid warnings that "treat warnings as errors" flag is needed...
r609 if (m_model) {
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (m_mapOrientation == Qt::Vertical) {
Marek Rosa
XYSeries: added support for limited mapping area
r734 // data is in a column. Return the number of mapped items if the model's column have enough items
// or the number of items that can be mapped
if (m_mapLimited)
return qMin(m_mapCount, qMax(m_model->rowCount() - m_mapFirst, 0));
else
return qMax(m_model->rowCount() - m_mapFirst, 0);
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 } else {
Marek Rosa
XYSeries: added support for limited mapping area
r734 // data is in a row. Return the number of mapped items if the model's row have enough items
// or the number of items that can be mapped
if (m_mapLimited)
return qMin(m_mapCount, qMax(m_model->columnCount() - m_mapFirst, 0));
else
return qMax(m_model->columnCount() - m_mapFirst, 0);
}
Jani Honkonen
We have so many stupid warnings that "treat warnings as errors" flag is needed...
r609 }
// model is not specified, return the number of points in the series internal data store
return m_x.size();
Michal Klocek
Add missing files from previous commit
r466 }
Tero Ahola
Added data getter for XY series; example for customizing the looks
r491 /*!
Returns the data points of the series.
*/
QList<QPointF> QXYSeries::data()
{
QList<QPointF> data;
for (int i(0); i < m_x.count() && i < m_y.count(); i++)
data.append(QPointF(m_x.at(i), m_y.at(i)));
return data;
}
Michal Klocek
Spline series windows compilation fix
r467 /*!
Michal Klocek
Fixes for docs , adds xyseries docs
r481 Sets \a pen used for drawing points on the chart. If the pen is not defined, the
pen from chart theme is used.
Marek Rosa
Various documentation fixes
r909 \sa QChart::setTheme()
Michal Klocek
Spline series windows compilation fix
r467 */
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 void QXYSeries::setPen(const QPen &pen)
Michal Klocek
Spline series windows compilation fix
r467 {
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (pen != m_pen) {
m_pen = pen;
Michal Klocek
Refactor scatter chart to fit the other classes...
r470 emit updated();
Michal Klocek
Spline series windows compilation fix
r467 }
}
/*!
Michal Klocek
Fixes for docs , adds xyseries docs
r481 Sets \a brush used for drawing points on the chart. If the brush is not defined, brush
from chart theme setting is used.
Marek Rosa
Various documentation fixes
r909 \sa QChart::setTheme()
Michal Klocek
Spline series windows compilation fix
r467 */
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 void QXYSeries::setBrush(const QBrush &brush)
Michal Klocek
Spline series windows compilation fix
r467 {
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (brush != m_brush) {
m_brush = brush;
Michal Klocek
Refactor scatter chart to fit the other classes...
r470 emit updated();
Michal Klocek
Spline series windows compilation fix
r467 }
}
Michal Klocek
Add missing files from previous commit
r466 /*!
Stream operator for adding a data \a point to the series.
Jani Honkonen
rename functions add() -> append()
r796 \sa append()
Michal Klocek
Add missing files from previous commit
r466 */
QXYSeries& QXYSeries::operator<< (const QPointF &point)
{
Jani Honkonen
rename functions add() -> append()
r796 append(point);
Michal Klocek
Add missing files from previous commit
r466 return *this;
}
Michal Klocek
Fixes for docs , adds xyseries docs
r481 /*!
Stream operator for adding a list of \a points to the series.
Jani Honkonen
rename functions add() -> append()
r796 \sa append()
Michal Klocek
Fixes for docs , adds xyseries docs
r481 */
QXYSeries& QXYSeries::operator<< (const QList<QPointF> points)
{
Jani Honkonen
rename functions add() -> append()
r796 append(points);
Michal Klocek
Fixes for docs , adds xyseries docs
r481 return *this;
}
Marek Rosa
BarSeries - renamed internal model getter to modelInternal. Some smaller changes to other files to have in headers forward declarations for model related members instead of include
r877 /*!
\internal
*/
Marek Rosa
Table model data example
r519 void QXYSeries::modelUpdated(QModelIndex topLeft, QModelIndex bottomRight)
{
Tero Ahola
Squashed bunch of warnings
r611 Q_UNUSED(bottomRight)
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (m_mapOrientation == Qt::Vertical) {
Marek Rosa
XYSeries: added support for limited mapping area
r734 if (topLeft.row() >= m_mapFirst && (!m_mapLimited || topLeft.row() < m_mapFirst + m_mapCount))
emit pointReplaced(topLeft.row() - m_mapFirst);
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 } else {
Marek Rosa
XYSeries: added support for limited mapping area
r734 if (topLeft.column() >= m_mapFirst && (!m_mapLimited || topLeft.column() < m_mapFirst + m_mapCount))
emit pointReplaced(topLeft.column() - m_mapFirst);
}
}
Marek Rosa
BarSeries - renamed internal model getter to modelInternal. Some smaller changes to other files to have in headers forward declarations for model related members instead of include
r877 /*!
\internal
*/
Marek Rosa
XYSeries: added support for limited mapping area
r734 void QXYSeries::modelDataAboutToBeAdded(QModelIndex parent, int start, int end)
{
Q_UNUSED(parent)
// Q_UNUSED(end)
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (m_mapLimited) {
if (start >= m_mapFirst + m_mapCount) {
Marek Rosa
XYSeries: added support for limited mapping area
r734 // the added data is below mapped area
// therefore it has no relevance
return;
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 } else {
Marek Rosa
XYSeries: added support for limited mapping area
r734 // the added data is in the mapped area or before it and update is needed
// check how many mapped items there is currently (before new items are added)
// if the number of items currently is equal the m_mapCount then some needs to be removed from xychartitem
// internal storage before new ones can be added
Marek Rosa
Some more work on mapping with limits
r735
Marek Rosa
XYSeries model with limits working.
r833 int itemsToRemove = qMin(count() - qMax(start - m_mapFirst, 0), end - start + 1);
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (m_mapCount == count()) {
Marek Rosa
Some more work on mapping with limits
r735 for (int i = 0; i < itemsToRemove; i++)
Marek Rosa
XYSeries model with limits working.
r833 emit pointRemoved(qMin(end, count()) - i);
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 }
Marek Rosa
XYSeries: added support for limited mapping area
r734 }
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 } else {
Marek Rosa
XYSeries: added support for limited mapping area
r734 // map is not limited (it includes all the items starting from m_mapFirst till the end of model)
// nothing to do
// emit pointAdded(qMax(start - m_mapFirst, 0));
}
Marek Rosa
Table model data example
r519 }
Marek Rosa
BarSeries - renamed internal model getter to modelInternal. Some smaller changes to other files to have in headers forward declarations for model related members instead of include
r877 /*!
\internal
*/
Marek Rosa
Added support for adding and removing data with model. Updated the example
r545 void QXYSeries::modelDataAdded(QModelIndex parent, int start, int end)
{
Tero Ahola
Squashed bunch of warnings
r611 Q_UNUSED(parent)
Marek Rosa
XYSeries: added support for limited mapping area
r734 // Q_UNUSED(end)
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (m_mapLimited) {
if (start >= m_mapFirst + m_mapCount) {
Marek Rosa
XYSeries: added support for limited mapping area
r734 // the added data is below mapped area
// therefore it has no relevance
return;
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 } else {
Marek Rosa
XYSeries: added support for limited mapping area
r734 // the added data is in the mapped area or before it
// update needed
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (count() > 0) {
Marek Rosa
XYSeries model with limits working.
r833 int toBeAdded = qMin(m_mapCount - (start - m_mapFirst), end - start + 1);
for (int i = 0; i < toBeAdded; i++)
if (start + i >= m_mapFirst)
emit pointAdded(start + i);
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 }
Marek Rosa
XYSeries: added support for limited mapping area
r734 }
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 } else {
Marek Rosa
XYSeries: added support for limited mapping area
r734 // map is not limited (it included all the items starting from m_mapFirst till the end of model)
for (int i = 0; i < end - start + 1; i++)
Marek Rosa
XYSeries model with limits working.
r833 emit pointAdded(start + i);
Marek Rosa
XYSeries: added support for limited mapping area
r734 }
}
Marek Rosa
BarSeries - renamed internal model getter to modelInternal. Some smaller changes to other files to have in headers forward declarations for model related members instead of include
r877 /*!
\internal
*/
Marek Rosa
XYSeries: added support for limited mapping area
r734 void QXYSeries::modelDataAboutToBeRemoved(QModelIndex parent, int start, int end)
{
Q_UNUSED(parent)
// Q_UNUSED(end)
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (m_mapLimited) {
if (start >= m_mapFirst + m_mapCount) {
Marek Rosa
XYSeries: added support for limited mapping area
r734 // the removed data is below mapped area
// therefore it has no relevance
return;
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 } else {
Marek Rosa
XYSeries: added support for limited mapping area
r734 // the removed data is in the mapped area or before it
// update needed
Marek Rosa
Some more work on mapping with limits
r735
// check how many items need to be removed from the xychartitem storage
// the number equals the number of items that are removed and that lay before
// or in the mapped area. Items that lay beyond the map do not count
// the max is the current number of items in storage (count())
int itemsToRemove = qMin(count(), qMin(end, m_mapFirst + m_mapCount - 1) - start + 1);
Marek Rosa
XYSeries: added support for limited mapping area
r734 for (int i = 0; i < itemsToRemove; i++)
Marek Rosa
XYSeries model with limits working.
r833 emit pointRemoved(start);
Marek Rosa
XYSeries: added support for limited mapping area
r734 }
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 } else {
Marek Rosa
XYSeries: added support for limited mapping area
r734 // map is not limited (it included all the items starting from m_mapFirst till the end of model)
for (int i = 0; i < end - start + 1; i++)
Marek Rosa
XYSeries model with limits working.
r833 emit pointRemoved(start);
Marek Rosa
XYSeries: added support for limited mapping area
r734 }
Marek Rosa
Added support for adding and removing data with model. Updated the example
r545 }
Marek Rosa
BarSeries - renamed internal model getter to modelInternal. Some smaller changes to other files to have in headers forward declarations for model related members instead of include
r877 /*!
\internal
*/
Marek Rosa
Added support for adding and removing data with model. Updated the example
r545 void QXYSeries::modelDataRemoved(QModelIndex parent, int start, int end)
{
Tero Ahola
Squashed bunch of warnings
r611 Q_UNUSED(parent)
Q_UNUSED(end)
Marek Rosa
XYSeries: added support for limited mapping area
r734
// how many items there were before data was removed
// int oldCount = count() - 1;
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (m_mapLimited) {
if (start >= m_mapFirst + m_mapCount) {
Marek Rosa
XYSeries: added support for limited mapping area
r734 // the removed data is below mapped area
// therefore it has no relevance
return;
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 } else {
Marek Rosa
Some more work on mapping with limits
r735 // if the current items count in the whole model is bigger than the index of the last item
// that was removed than it means there are some extra items available
Marek Rosa
XYSeries model with limits working.
r833
int removedItemsCount = qMin(count(), qMin(end, m_mapFirst + m_mapCount - 1) - start + 1);
Marek Rosa
XYSeries: added support for limited mapping area
r734 int extraItemsAvailable = 0;
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (m_mapOrientation == Qt::Vertical) {
Marek Rosa
XYSeries model with limits working.
r833 extraItemsAvailable = qMax(m_model->rowCount() + (end - start + 1) - qMax(end + 1, m_mapFirst + m_mapCount), 0);
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 } else {
Marek Rosa
XYSeries model with limits working.
r833 extraItemsAvailable = qMax(m_model->columnCount() + (end - start + 1) - qMax(end + 1, m_mapFirst + m_mapCount), 0);
Marek Rosa
XYSeries: added support for limited mapping area
r734 }
Marek Rosa
Some more work on mapping with limits
r735 // if there are excess items available (below the mapped area) use them to repopulate mapped area
int toBeAdded = qMin(extraItemsAvailable, removedItemsCount);
for (int k = 0; k < toBeAdded; k++)
Marek Rosa
XYSeries model with limits working.
r833 emit pointAdded(m_mapFirst + m_mapCount - removedItemsCount + k);
Marek Rosa
XYSeries: added support for limited mapping area
r734 }
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 } else {
Marek Rosa
Some more work on mapping with limits
r735 // data was removed from XYSeries interal storage. Nothing more to do
Marek Rosa
XYSeries: added support for limited mapping area
r734 }
Marek Rosa
Added support for adding and removing data with model. Updated the example
r545 }
Marek Rosa
BarSeries - renamed internal model getter to modelInternal. Some smaller changes to other files to have in headers forward declarations for model related members instead of include
r877 /*!
\fn bool QXYSeries::setModel(QAbstractItemModel *model)
Sets the \a model to be used as a data source
Marek Rosa
Added documentation for model related funtions
r900 \sa setModelMapping(), setModelMappingRange()
Marek Rosa
BarSeries - renamed internal model getter to modelInternal. Some smaller changes to other files to have in headers forward declarations for model related members instead of include
r877 */
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 bool QXYSeries::setModel(QAbstractItemModel *model) {
Marek Rosa
Added support for data from model to QBarSeries. Various fixes and small modifications to data from model support to other series
r630
// disconnect signals from old model
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (m_model) {
Marek Rosa
Added support for data from model to QBarSeries. Various fixes and small modifications to data from model support to other series
r630 disconnect(m_model, 0, this, 0);
m_mapX = -1;
m_mapY = -1;
Marek Rosa
XYSeries: added support for limited mapping area
r734 m_mapFirst = 0;
m_mapCount = 0;
m_mapLimited = false;
Marek Rosa
Added support for data from model to QBarSeries. Various fixes and small modifications to data from model support to other series
r630 m_mapOrientation = Qt::Vertical;
}
// set new model
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (model) {
Marek Rosa
Added support for data from model to QBarSeries. Various fixes and small modifications to data from model support to other series
r630 m_model = model;
return true;
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 } else {
m_model = 0;
Marek Rosa
Added support for data from model to QBarSeries. Various fixes and small modifications to data from model support to other series
r630 return false;
}
Marek Rosa
Table model data example
r519 }
Marek Rosa
Added documentation for model related funtions
r900 /*!
\fn bool QXYSeries::setModelMapping(int modelX, int modelY, Qt::Orientation orientation)
Sets the \a modelX to be used as a data source for x coordinate and \a modelY to be used
as a data source for y coordinate. The \a orientation paramater specifies whether the data
is in columns or in rows.
\sa setModel(), setModelMappingRange()
*/
Marek Rosa
QXYSeries: model data orientation added. QBarSeries: some model data function placeholders
r527 void QXYSeries::setModelMapping(int modelX, int modelY, Qt::Orientation orientation)
{
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (m_model == 0)
Marek Rosa
Added support for data from model to QBarSeries. Various fixes and small modifications to data from model support to other series
r630 return;
Marek Rosa
QXYSeries: model data orientation added. QBarSeries: some model data function placeholders
r527 m_mapX = modelX;
m_mapY = modelY;
Marek Rosa
XYSeries: added support for limited mapping area
r734 m_mapFirst = 0;
Marek Rosa
QXYSeries: model data orientation added. QBarSeries: some model data function placeholders
r527 m_mapOrientation = orientation;
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (m_mapOrientation == Qt::Vertical) {
Marek Rosa
Added support for data from model to QBarSeries. Various fixes and small modifications to data from model support to other series
r630 connect(m_model,SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(modelUpdated(QModelIndex, QModelIndex)));
Marek Rosa
XYSeries: added support for limited mapping area
r734 connect(m_model,SIGNAL(rowsAboutToBeInserted(QModelIndex, int, int)), this, SLOT(modelDataAboutToBeAdded(QModelIndex,int,int)));
Marek Rosa
Added support for data from model to QBarSeries. Various fixes and small modifications to data from model support to other series
r630 connect(m_model,SIGNAL(rowsInserted(QModelIndex, int, int)), this, SLOT(modelDataAdded(QModelIndex,int,int)));
Marek Rosa
XYSeries: added support for limited mapping area
r734 connect(m_model, SIGNAL(rowsAboutToBeRemoved(QModelIndex, int, int)), this, SLOT(modelDataAboutToBeRemoved(QModelIndex,int,int)));
Marek Rosa
Added support for data from model to QBarSeries. Various fixes and small modifications to data from model support to other series
r630 connect(m_model, SIGNAL(rowsRemoved(QModelIndex, int, int)), this, SLOT(modelDataRemoved(QModelIndex,int,int)));
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 } else {
Marek Rosa
Added support for data from model to QBarSeries. Various fixes and small modifications to data from model support to other series
r630 connect(m_model,SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(modelUpdated(QModelIndex, QModelIndex)));
Marek Rosa
XYSeries: added support for limited mapping area
r734 connect(m_model,SIGNAL(columnsAboutToBeInserted(QModelIndex, int, int)), this, SLOT(modelDataAboutToBeAdded(QModelIndex,int,int)));
Marek Rosa
Added support for data from model to QBarSeries. Various fixes and small modifications to data from model support to other series
r630 connect(m_model,SIGNAL(columnsInserted(QModelIndex, int, int)), this, SLOT(modelDataAdded(QModelIndex,int,int)));
Marek Rosa
XYSeries: added support for limited mapping area
r734 connect(m_model, SIGNAL(columnsAboutToBeRemoved(QModelIndex, int, int)), this, SLOT(modelDataAboutToBeRemoved(QModelIndex,int,int)));
Marek Rosa
Added support for data from model to QBarSeries. Various fixes and small modifications to data from model support to other series
r630 connect(m_model, SIGNAL(columnsRemoved(QModelIndex, int, int)), this, SLOT(modelDataRemoved(QModelIndex,int,int)));
}
Marek Rosa
QXYSeries: model data orientation added. QBarSeries: some model data function placeholders
r527 }
Marek Rosa
Added documentation for model related funtions
r900 /*!
\fn bool QXYSeries::setModelMappingRange(int first, int count)
Allows limiting the model mapping.
Parameter \a first specifies which element of the model should be used as a first one of the series.
Parameter \a count specifies how many elements should be mapped. If count is not specified (defaults to -1)
then all the items following \a first item in a model are used.
\sa setModel(), setModelMapping()
*/
Marek Rosa
Quick fix: Refactoring the name did not work correctly
r864 void QXYSeries::setModelMappingRange(int first, int count)
Marek Rosa
XYSeries: added support for limited mapping area
r734 {
m_mapFirst = first;
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 if (count == 0) {
Marek Rosa
XYSeries: added support for limited mapping area
r734 m_mapLimited = false;
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 } else {
Marek Rosa
XYSeries: added support for limited mapping area
r734 m_mapCount = count;
m_mapLimited = true;
}
}
Marek Rosa
QXYSeries: model data orientation added. QBarSeries: some model data function placeholders
r527
Michal Klocek
Add missing files from previous commit
r466 #include "moc_qxyseries.cpp"
QTCOMMERCIALCHART_END_NAMESPACE