##// END OF EJS Templates
Fix to domain initialization when log base was preset on axis before adding it to chart
Fix to domain initialization when log base was preset on axis before adding it to chart

File last commit:

r2267:92e7d1168aa1
r2295:8468c10170a2
Show More
datasource.cpp
93 lines | 2.6 KiB | text/x-c | CppLexer
Tero Ahola
Added a new QXYSeries::replace override for performance reasons....
r1783 /****************************************************************************
**
** 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$
**
****************************************************************************/
#include "datasource.h"
#include <QXYSeries>
Tero Ahola
Improved oscilloscope demo functionality
r1785 #include <QAreaSeries>
Tero Ahola
Disabled anti-aliasing by default in declarative impl
r1910 #include <QDeclarativeView>
Tero Ahola
Improved oscilloscope demo functionality
r1785 #include <QGLWidget>
Tero Ahola
Added a new QXYSeries::replace override for performance reasons....
r1783 #include <QDebug>
Tero Ahola
Fix build on OSX: Added missing cmath include
r1786 #include <cmath>
Tero Ahola
Added a new QXYSeries::replace override for performance reasons....
r1783
QTCOMMERCIALCHART_USE_NAMESPACE
Tero Ahola
Disabled anti-aliasing by default in declarative impl
r1910 DataSource::DataSource(QDeclarativeView *appViewer, QObject *parent) :
Tero Ahola
Added a new QXYSeries::replace override for performance reasons....
r1783 QObject(parent),
Tero Ahola
Fix build on OSX: Added missing cmath include
r1786 m_appViewer(appViewer),
Tero Ahola
Improved oscilloscope demo functionality
r1785 m_index(-1)
Tero Ahola
Added a new QXYSeries::replace override for performance reasons....
r1783 {
Tero Ahola
Improved oscilloscope demo functionality
r1785 // generate
generateData(0, 5, 1024);
}
void DataSource::update(QAbstractSeries *series)
{
QXYSeries *xySeries = qobject_cast<QXYSeries *>(series);
Q_ASSERT(xySeries);
m_index++;
if (m_index > m_data.count() - 1)
m_index = 0;
QList<QPointF> points = m_data.at(m_index);
// Use replace instead of clear + append, it's optimized for performance
xySeries->replace(points);
}
void DataSource::generateData(int type, int rowCount, int colCount)
{
qDebug() << "DataSource::generateData:" << type << rowCount << colCount;
Tero Ahola
Added a new QXYSeries::replace override for performance reasons....
r1783
Tero Ahola
Improved oscilloscope demo functionality
r1785 // Remove previous data
foreach (QList<QPointF> row, m_data)
row.clear();
m_data.clear();
// Append the new data depending on the type
Tero Ahola
Added a new QXYSeries::replace override for performance reasons....
r1783 for (int i(0); i < rowCount; i++) {
QList<QPointF> points;
for (int j(0); j < colCount; j++) {
Tero Ahola
Improved oscilloscope demo functionality
r1785 qreal x(0);
qreal y(0);
switch (type) {
case 0:
// data with sin + random component
y = sin(3.14159265358979 / 50 * j) + 0.5 + (qreal) rand() / (qreal) RAND_MAX;
x = j;
break;
case 1:
// linear data
x = j;
y = (qreal) i / 10;
break;
default:
// unknown, do nothing
break;
}
Tero Ahola
Added a new QXYSeries::replace override for performance reasons....
r1783 points.append(QPointF(x, y));
}
m_data.append(points);
}
}
Tero Ahola
Disabled anti-aliasing by default in declarative impl
r1910 void DataSource::setAntialiasing(bool enabled)
{
m_appViewer->setRenderHint(QPainter::Antialiasing, enabled);
}