summaryrefslogtreecommitdiffstats
path: root/examples/datavisualization/qmlsurfacegallery/datasource.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-03-15 13:12:57 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-03-16 07:35:55 +0000
commita9752eb22dc64249d6c6473f954174cdf599383c (patch)
treed8de7b1f2363aaf09a679daf1bddc41f8e8ca5fa /examples/datavisualization/qmlsurfacegallery/datasource.cpp
parente590aec2cac500c1933d982735cd7c46895c5c60 (diff)
Brush up the qmlsurfacegallery example
- Use modern string literals - Use member initialization - Streamline the code a bit with algorithms Task-number: QTBUG-110700 Change-Id: Iad834c22f4dc14858b0f5da4fc2a550de9906072 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> (cherry picked from commit acdaea0c859ba7b78756011ea60ec2765b5a8f04) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'examples/datavisualization/qmlsurfacegallery/datasource.cpp')
-rw-r--r--examples/datavisualization/qmlsurfacegallery/datasource.cpp40
1 files changed, 18 insertions, 22 deletions
diff --git a/examples/datavisualization/qmlsurfacegallery/datasource.cpp b/examples/datavisualization/qmlsurfacegallery/datasource.cpp
index 93073554..7aeea178 100644
--- a/examples/datavisualization/qmlsurfacegallery/datasource.cpp
+++ b/examples/datavisualization/qmlsurfacegallery/datasource.cpp
@@ -5,10 +5,10 @@
#include <QtCore/qmath.h>
#include <QtCore/qrandom.h>
+#include <algorithm>
+
DataSource::DataSource(QObject *parent) :
- QObject(parent),
- m_index(-1),
- m_resetArray(nullptr)
+ QObject(parent)
{
//! [3]
qRegisterMetaType<QSurface3DSeries *>();
@@ -32,10 +32,10 @@ void DataSource::generateData(int cacheCount, int rowCount, int columnCount,
// Re-create the cache array
m_data.resize(cacheCount);
- for (int i = 0; i < cacheCount; i++) {
+ for (int i = 0; i < cacheCount; ++i) {
QSurfaceDataArray &array = m_data[i];
array.reserve(rowCount);
- for (int j = 0; j < rowCount; j++)
+ for (int j = 0; j < rowCount; ++j)
array.append(new QSurfaceDataRow(columnCount));
}
@@ -47,11 +47,12 @@ void DataSource::generateData(int cacheCount, int rowCount, int columnCount,
//! [0]
// Populate caches
- for (int i = 0; i < cacheCount; i++) {
+ auto *generator = QRandomGenerator::global();
+ for (int i = 0; i < cacheCount; ++i) {
QSurfaceDataArray &cache = m_data[i];
float cacheXAdjustment = cacheStep * i;
float cacheIndexAdjustment = cacheIndexStep * i;
- for (int j = 0; j < rowCount; j++) {
+ for (int j = 0; j < rowCount; ++j) {
QSurfaceDataRow &row = *(cache[j]);
float rowMod = (float(j)) / float(rowCount);
float yRangeMod = yRange * rowMod;
@@ -66,7 +67,7 @@ void DataSource::generateData(int cacheCount, int rowCount, int columnCount,
float colWave = float(qSin((2.0 * M_PI * colMod) - (1.0 / 2.0 * M_PI)) + 1.0);
float y = (colWave * ((float(qSin(rowColWaveAngleMul * colMod) + 1.0))))
* rowColWaveMul
- + QRandomGenerator::global()->bounded(0.15f) * yRangeMod;
+ + generator->bounded(0.15f) * yRangeMod;
int index = k + cacheIndexAdjustment;
if (index >= columnCount) {
@@ -83,14 +84,13 @@ void DataSource::generateData(int cacheCount, int rowCount, int columnCount,
void DataSource::update(QSurface3DSeries *series)
{
- if (series && m_data.size()) {
+ if (series && !m_data.isEmpty()) {
//! [1]
// Each iteration uses data from a different cached array
- m_index++;
- if (m_index > m_data.count() - 1)
+ if (++m_index >= m_data.size())
m_index = 0;
- QSurfaceDataArray array = m_data.at(m_index);
+ const QSurfaceDataArray &array = m_data.at(m_index);
int newRowCount = array.size();
int newColumnCount = array.at(0)->size();
@@ -100,16 +100,15 @@ void DataSource::update(QSurface3DSeries *series)
|| series->dataProxy()->columnCount() != newColumnCount) {
m_resetArray = new QSurfaceDataArray();
m_resetArray->reserve(newRowCount);
- for (int i = 0; i < newRowCount; i++)
+ for (int i = 0; i < newRowCount; ++i)
m_resetArray->append(new QSurfaceDataRow(newColumnCount));
}
// Copy items from our cache to the reset array
- for (int i = 0; i < newRowCount; i++) {
+ for (int i = 0; i < newRowCount; ++i) {
const QSurfaceDataRow &sourceRow = *(array.at(i));
QSurfaceDataRow &row = *(*m_resetArray)[i];
- for (int j = 0; j < newColumnCount; j++)
- row[j].setPosition(sourceRow.at(j).position());
+ std::copy(sourceRow.cbegin(), sourceRow.cend(), row.begin());
}
// Notify the proxy that data has changed
@@ -120,10 +119,7 @@ void DataSource::update(QSurface3DSeries *series)
void DataSource::clearData()
{
- for (int i = 0; i < m_data.size(); i++) {
- QSurfaceDataArray &array = m_data[i];
- for (int j = 0; j < array.size(); j++)
- delete array[j];
- array.clear();
- }
+ for (auto &array : std::as_const(m_data))
+ qDeleteAll(array);
+ m_data.clear();
}