summaryrefslogtreecommitdiffstats
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
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>
-rw-r--r--examples/datavisualization/qmlsurfacegallery/datasource.cpp40
-rw-r--r--examples/datavisualization/qmlsurfacegallery/datasource.h6
-rw-r--r--examples/datavisualization/qmlsurfacegallery/main.cpp12
3 files changed, 28 insertions, 30 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();
}
diff --git a/examples/datavisualization/qmlsurfacegallery/datasource.h b/examples/datavisualization/qmlsurfacegallery/datasource.h
index 5cfebbd8..bac5eeb2 100644
--- a/examples/datavisualization/qmlsurfacegallery/datasource.h
+++ b/examples/datavisualization/qmlsurfacegallery/datasource.h
@@ -16,7 +16,7 @@ class DataSource : public QObject
QML_ELEMENT
//! [2]
public:
- explicit DataSource(QObject *parent = 0);
+ explicit DataSource(QObject *parent = nullptr);
virtual ~DataSource();
//! [1]
@@ -31,8 +31,8 @@ private:
void clearData();
QList<QSurfaceDataArray> m_data;
- int m_index;
- QSurfaceDataArray *m_resetArray;
+ int m_index = -1;
+ QSurfaceDataArray *m_resetArray = nullptr;
};
#endif
diff --git a/examples/datavisualization/qmlsurfacegallery/main.cpp b/examples/datavisualization/qmlsurfacegallery/main.cpp
index 24690ce9..cbd831b6 100644
--- a/examples/datavisualization/qmlsurfacegallery/main.cpp
+++ b/examples/datavisualization/qmlsurfacegallery/main.cpp
@@ -13,6 +13,8 @@
#include "datasource.h"
#endif
+using namespace Qt::StringLiterals;
+
int main(int argc, char *argv[])
{
qputenv("QSG_RHI_BACKEND", "opengl");
@@ -32,17 +34,17 @@ int main(int argc, char *argv[])
// The following are needed to make examples run without having to install the module
// in desktop environments.
#ifdef Q_OS_WIN
- QString extraImportPath(QStringLiteral("%1/../../../../%2"));
+ QString extraImportPath(u"%1/../../../../%2"_s);
#else
- QString extraImportPath(QStringLiteral("%1/../../../%2"));
+ QString extraImportPath(u"%1/../../../%2"_s);
#endif
viewer.engine()->addImportPath(extraImportPath.arg(QGuiApplication::applicationDirPath(),
- QString::fromLatin1("qml")));
+ u"qml"_s));
QObject::connect(viewer.engine(), &QQmlEngine::quit, &viewer, &QWindow::close);
- viewer.setTitle(QStringLiteral("Surface Graph Gallery"));
+ viewer.setTitle(u"Surface Graph Gallery"_s);
- viewer.setSource(QUrl("qrc:/qml/qmlsurfacegallery/main.qml"));
+ viewer.setSource(QUrl(u"qrc:/qml/qmlsurfacegallery/main.qml"_s));
viewer.setResizeMode(QQuickView::SizeRootObjectToView);
viewer.show();