From 5f98f32634dc49feaed12d4798838e2da9f28194 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 24 Feb 2023 14:25:02 +0100 Subject: Brush up the graphgallery example MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Basic C++ polishing: - Use nullptr - Use initializer lists - Replace typedef by using - Port to qsizetype - Default functions - Fix up copy constructor and assignent - Instantiate the main widget, BarGraph and ScatterGraph on the stack for proper clean up Amends 00272ac80843d94217e4f1ea36392e22919afa22. Pick-to: 6.5 Task-number: QTBUG-110698 Change-Id: Ibb9e3ecf5e20ebaaeac2483c768d7b5eb00c0558 Reviewed-by: Tomi Korpipää --- examples/datavisualization/graphgallery/bargraph.h | 2 +- .../graphgallery/graphmodifier.cpp | 9 +++--- examples/datavisualization/graphgallery/main.cpp | 24 +++++++-------- .../graphgallery/rainfalldata.cpp | 9 +++--- .../graphgallery/scatterdatamodifier.cpp | 2 +- .../graphgallery/scattergraph.cpp | 6 ++-- .../datavisualization/graphgallery/scattergraph.h | 2 +- .../datavisualization/graphgallery/surfacegraph.h | 2 +- .../graphgallery/topographicseries.cpp | 4 +-- .../graphgallery/topographicseries.h | 4 +-- .../graphgallery/variantbardatamapping.cpp | 34 +++++++++++----------- .../graphgallery/variantbardataproxy.cpp | 15 ++++------ .../graphgallery/variantbardataproxy.h | 2 -- .../graphgallery/variantdataset.cpp | 5 +--- .../graphgallery/variantdataset.h | 4 +-- 15 files changed, 57 insertions(+), 67 deletions(-) (limited to 'examples/datavisualization') diff --git a/examples/datavisualization/graphgallery/bargraph.h b/examples/datavisualization/graphgallery/bargraph.h index dae991f9..79c78510 100644 --- a/examples/datavisualization/graphgallery/bargraph.h +++ b/examples/datavisualization/graphgallery/bargraph.h @@ -11,7 +11,7 @@ class BarGraph : public QObject { Q_OBJECT public: - explicit BarGraph(); + BarGraph(); ~BarGraph(); bool initialize(); diff --git a/examples/datavisualization/graphgallery/graphmodifier.cpp b/examples/datavisualization/graphgallery/graphmodifier.cpp index 56ec102a..2f79fa7a 100644 --- a/examples/datavisualization/graphgallery/graphmodifier.cpp +++ b/examples/datavisualization/graphgallery/graphmodifier.cpp @@ -36,8 +36,9 @@ GraphModifier::GraphModifier(Q3DBars *bargraph) m_graph->setMultiSeriesUniform(true); //! [2] - m_months << "January" << "February" << "March" << "April" << "May" << "June" << "July" << "August" << "September" << "October" << "November" << "December"; - m_years << "2015" << "2016" << "2017" << "2018" << "2019" << "2020" << "2021" << "2022"; + m_months = {"January", "February", "March", "April", "May", "June" , "July", + "August", "September", "October" , "November", "December"}; + m_years = {"2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022"}; //! [3] m_temperatureAxis->setTitle("Average temperature"); @@ -161,11 +162,11 @@ void GraphModifier::resetTemperatureData() QBarDataRow *dataRow2= nullptr; dataSet->reserve(m_years.size()); - for (int year = 0; year < m_years.size(); year++) { + for (qsizetype year = 0; year < m_years.size(); ++year) { // Create a data row dataRow = new QBarDataRow(m_months.size()); dataRow2 = new QBarDataRow(m_months.size()); - for (int month = 0; month < m_months.size(); month++) { + for (qsizetype month = 0; month < m_months.size(); ++month) { // Add data to the row (*dataRow)[month].setValue(tempOulu[year][month]); (*dataRow2)[month].setValue(tempHelsinki[year][month]); diff --git a/examples/datavisualization/graphgallery/main.cpp b/examples/datavisualization/graphgallery/main.cpp index 005ca1bf..88000d28 100644 --- a/examples/datavisualization/graphgallery/main.cpp +++ b/examples/datavisualization/graphgallery/main.cpp @@ -16,31 +16,31 @@ int main(int argc, char **argv) QApplication app(argc, argv); // Create bar graph - BarGraph *bars = new BarGraph(); - if (!bars->initialize()) + BarGraph bars; + if (!bars.initialize()) return -1; // Create scatter graph - ScatterGraph *scatter = new ScatterGraph(); - if (!scatter->initialize()) + ScatterGraph scatter; + if (!scatter.initialize()) return -1; // Create surface graph - SurfaceGraph *surface = new SurfaceGraph(); - if (!surface->initialize()) + SurfaceGraph surface; + if (!surface.initialize()) return -1; // Create a tab widget for creating own tabs for Q3DBars, Q3DScatter, and Q3DSurface - QTabWidget *tabWidget = new QTabWidget(); - tabWidget->setWindowTitle(QLatin1String("Graph Gallery")); + QTabWidget tabWidget; + tabWidget.setWindowTitle(QLatin1String("Graph Gallery")); // Add bars widget - tabWidget->addTab(bars->barsWidget(), QLatin1String("Bar Graph")); + tabWidget.addTab(bars.barsWidget(), QLatin1String("Bar Graph")); // Add scatter widget - tabWidget->addTab(scatter->scatterWidget(), QLatin1String("Scatter Graph")); + tabWidget.addTab(scatter.scatterWidget(), QLatin1String("Scatter Graph")); // Add surface widget - tabWidget->addTab(surface->surfaceWidget(), QLatin1String("Surface Graph")); + tabWidget.addTab(surface.surfaceWidget(), QLatin1String("Surface Graph")); - tabWidget->show(); + tabWidget.show(); return app.exec(); } diff --git a/examples/datavisualization/graphgallery/rainfalldata.cpp b/examples/datavisualization/graphgallery/rainfalldata.cpp index ac366564..498e09ae 100644 --- a/examples/datavisualization/graphgallery/rainfalldata.cpp +++ b/examples/datavisualization/graphgallery/rainfalldata.cpp @@ -36,8 +36,9 @@ RainfallData::RainfallData() m_valueAxis->setAutoAdjustRange(true); // Set axis labels and titles - QStringList months; - months << "January" << "February" << "March" << "April" << "May" << "June" << "July" << "August" << "September" << "October" << "November" << "December"; + QStringList months{"January", "February", "March", "April", + "May", "June", "July", "August", "September", "October", + "November","December"}; m_rowAxis->setTitle("Year"); m_colAxis->setTitle("Month"); m_valueAxis->setTitle("rainfall (mm)"); @@ -82,9 +83,9 @@ void RainfallData::addDataSet() stream.setDevice(&dataFile); while (!stream.atEnd()) { QString line = stream.readLine(); - if (line.startsWith("#")) // Ignore comments + if (line.startsWith('#')) // Ignore comments continue; - QStringList strList = line.split(",", Qt::SkipEmptyParts); + QStringList strList = line.split(',', Qt::SkipEmptyParts); // Each line has three data items: Year, month, and rainfall value if (strList.size() < 3) { qWarning() << "Invalid row read from data:" << line; diff --git a/examples/datavisualization/graphgallery/scatterdatamodifier.cpp b/examples/datavisualization/graphgallery/scatterdatamodifier.cpp index 5dff1548..9b61ab24 100644 --- a/examples/datavisualization/graphgallery/scatterdatamodifier.cpp +++ b/examples/datavisualization/graphgallery/scatterdatamodifier.cpp @@ -106,7 +106,7 @@ void ScatterDataModifier::changeStyle(int style) QComboBox *comboBox = qobject_cast(sender()); if (comboBox) { m_style = QAbstract3DSeries::Mesh(comboBox->itemData(style).toInt()); - if (m_graph->seriesList().size()) + if (!m_graph->seriesList().isEmpty()) m_graph->seriesList().at(0)->setMesh(m_style); } } diff --git a/examples/datavisualization/graphgallery/scattergraph.cpp b/examples/datavisualization/graphgallery/scattergraph.cpp index 17bb485b..b841a585 100644 --- a/examples/datavisualization/graphgallery/scattergraph.cpp +++ b/examples/datavisualization/graphgallery/scattergraph.cpp @@ -132,13 +132,13 @@ bool ScatterGraph::initialize() QObject::connect(modifier, &ScatterDataModifier::gridEnabledChanged, gridCheckBox, &QCheckBox::setChecked); QObject::connect(itemStyleList, &QComboBox::currentIndexChanged, modifier, - qOverload(&ScatterDataModifier::changeStyle)); + &ScatterDataModifier::changeStyle); QObject::connect(themeList, &QComboBox::currentIndexChanged, modifier, - qOverload(&ScatterDataModifier::changeTheme)); + &ScatterDataModifier::changeTheme); QObject::connect(shadowQuality, &QComboBox::currentIndexChanged, modifier, - qOverload(&ScatterDataModifier::changeShadowQuality)); + &ScatterDataModifier::changeShadowQuality); QObject::connect(modifier, &ScatterDataModifier::shadowQualityChanged, shadowQuality, &QComboBox::setCurrentIndex); diff --git a/examples/datavisualization/graphgallery/scattergraph.h b/examples/datavisualization/graphgallery/scattergraph.h index 6e34082d..0d3b8fc3 100644 --- a/examples/datavisualization/graphgallery/scattergraph.h +++ b/examples/datavisualization/graphgallery/scattergraph.h @@ -11,7 +11,7 @@ class ScatterGraph : public QObject { Q_OBJECT public: - explicit ScatterGraph(); + ScatterGraph(); ~ScatterGraph(); bool initialize(); diff --git a/examples/datavisualization/graphgallery/surfacegraph.h b/examples/datavisualization/graphgallery/surfacegraph.h index 90494d17..92b448ad 100644 --- a/examples/datavisualization/graphgallery/surfacegraph.h +++ b/examples/datavisualization/graphgallery/surfacegraph.h @@ -11,7 +11,7 @@ class SurfaceGraph : public QObject { Q_OBJECT public: - explicit SurfaceGraph(); + SurfaceGraph(); ~SurfaceGraph(); bool initialize(); diff --git a/examples/datavisualization/graphgallery/topographicseries.cpp b/examples/datavisualization/graphgallery/topographicseries.cpp index d33fa6bd..ea0be77d 100644 --- a/examples/datavisualization/graphgallery/topographicseries.cpp +++ b/examples/datavisualization/graphgallery/topographicseries.cpp @@ -15,9 +15,7 @@ TopographicSeries::TopographicSeries() setBaseColor(Qt::white); } -TopographicSeries::~TopographicSeries() -{ -} +TopographicSeries::~TopographicSeries() = default; void TopographicSeries::setTopographyFile(const QString file, float width, float height) { diff --git a/examples/datavisualization/graphgallery/topographicseries.h b/examples/datavisualization/graphgallery/topographicseries.h index 8c49c338..b54971a3 100644 --- a/examples/datavisualization/graphgallery/topographicseries.h +++ b/examples/datavisualization/graphgallery/topographicseries.h @@ -10,7 +10,7 @@ class TopographicSeries : public QSurface3DSeries { Q_OBJECT public: - explicit TopographicSeries(); + TopographicSeries(); ~TopographicSeries(); void setTopographyFile(const QString file, float width, float height); @@ -18,8 +18,6 @@ public: float sampleCountX() { return m_sampleCountX; } float sampleCountZ() { return m_sampleCountZ; } -public Q_SLOTS: - private: float m_sampleCountX = 0.f; float m_sampleCountZ = 0.f; diff --git a/examples/datavisualization/graphgallery/variantbardatamapping.cpp b/examples/datavisualization/graphgallery/variantbardatamapping.cpp index 2e375f10..acac28c8 100644 --- a/examples/datavisualization/graphgallery/variantbardatamapping.cpp +++ b/examples/datavisualization/graphgallery/variantbardatamapping.cpp @@ -3,21 +3,22 @@ #include "variantbardatamapping.h" -VariantBarDataMapping::VariantBarDataMapping() - : QObject(0) -{ -} +VariantBarDataMapping::VariantBarDataMapping() = default; -VariantBarDataMapping::VariantBarDataMapping(const VariantBarDataMapping &other) - : QObject(0) +VariantBarDataMapping::VariantBarDataMapping(const VariantBarDataMapping &other) : + QObject(nullptr), + m_rowIndex(other.m_rowIndex), + m_columnIndex(other.m_columnIndex), + m_valueIndex(other.m_valueIndex), + m_rowCategories(other.m_rowCategories), + m_columnCategories(other.m_columnCategories) { - operator=(other); } VariantBarDataMapping::VariantBarDataMapping(int rowIndex, int columnIndex, int valueIndex, const QStringList &rowCategories, const QStringList &columnCategories) - : QObject(0) + : QObject(nullptr) { m_rowIndex = rowIndex; m_columnIndex = columnIndex; @@ -26,18 +27,17 @@ VariantBarDataMapping::VariantBarDataMapping(int rowIndex, int columnIndex, int m_columnCategories = columnCategories; } -VariantBarDataMapping::~VariantBarDataMapping() -{ -} +VariantBarDataMapping::~VariantBarDataMapping() = default; VariantBarDataMapping &VariantBarDataMapping::operator=(const VariantBarDataMapping &other) { - m_rowIndex = other.m_rowIndex; - m_columnIndex = other.m_columnIndex; - m_valueIndex = other.m_valueIndex; - m_rowCategories = other.m_rowCategories; - m_columnCategories = other.m_columnCategories; - + if (this != &other) { + m_rowIndex = other.m_rowIndex; + m_columnIndex = other.m_columnIndex; + m_valueIndex = other.m_valueIndex; + m_rowCategories = other.m_rowCategories; + m_columnCategories = other.m_columnCategories; + } return *this; } diff --git a/examples/datavisualization/graphgallery/variantbardataproxy.cpp b/examples/datavisualization/graphgallery/variantbardataproxy.cpp index e15a8148..3bc3ec13 100644 --- a/examples/datavisualization/graphgallery/variantbardataproxy.cpp +++ b/examples/datavisualization/graphgallery/variantbardataproxy.cpp @@ -3,10 +3,7 @@ #include "variantbardataproxy.h" -VariantBarDataProxy::VariantBarDataProxy() : - QBarDataProxy() -{ -} +VariantBarDataProxy::VariantBarDataProxy() = default; VariantBarDataProxy::VariantBarDataProxy(VariantDataSet *newSet, VariantBarDataMapping *mapping) : @@ -24,7 +21,7 @@ VariantBarDataProxy::~VariantBarDataProxy() void VariantBarDataProxy::setDataSet(VariantDataSet *newSet) { if (!m_dataSet.isNull()) - QObject::disconnect(m_dataSet.data(), 0, this, 0); + QObject::disconnect(m_dataSet.data(), nullptr, this, nullptr); m_dataSet = newSet; @@ -76,7 +73,7 @@ void VariantBarDataProxy::handleItemsAdded(int index, int count) void VariantBarDataProxy::handleDataCleared() { // Data cleared, reset array - resetArray(0); + resetArray(nullptr); } void VariantBarDataProxy::handleMappingChanged() @@ -91,7 +88,7 @@ void VariantBarDataProxy::resolveDataSet() // If we have no data or mapping, or the categories are not defined, simply clear the array if (m_dataSet.isNull() || m_mapping.isNull() || !m_mapping->rowCategories().size() || !m_mapping->columnCategories().size()) { - resetArray(0); + resetArray(nullptr); return; } const VariantDataItemList &itemList = m_dataSet->itemList(); @@ -103,7 +100,7 @@ void VariantBarDataProxy::resolveDataSet() const QStringList &columnList = m_mapping->columnCategories(); // Sort values into rows and columns - typedef QHash ColumnValueMap; + using ColumnValueMap = QHash; QHash itemValueMap; for (const VariantDataItem *item : itemList) { itemValueMap[item->at(rowIndex).toString()][item->at(columnIndex).toString()] @@ -114,7 +111,7 @@ void VariantBarDataProxy::resolveDataSet() QBarDataArray *newProxyArray = new QBarDataArray; for (const QString &rowKey : rowList) { QBarDataRow *newProxyRow = new QBarDataRow(columnList.size()); - for (int i = 0; i < columnList.size(); i++) + for (qsizetype i = 0; i < columnList.size(); ++i) (*newProxyRow)[i].setValue(itemValueMap[rowKey][columnList.at(i)]); newProxyArray->append(newProxyRow); } diff --git a/examples/datavisualization/graphgallery/variantbardataproxy.h b/examples/datavisualization/graphgallery/variantbardataproxy.h index d2ed185a..3b5bcfef 100644 --- a/examples/datavisualization/graphgallery/variantbardataproxy.h +++ b/examples/datavisualization/graphgallery/variantbardataproxy.h @@ -7,8 +7,6 @@ #include "variantdataset.h" #include "variantbardatamapping.h" #include -#include -#include #include //! [0] diff --git a/examples/datavisualization/graphgallery/variantdataset.cpp b/examples/datavisualization/graphgallery/variantdataset.cpp index 400ff2a4..c0bfa9d3 100644 --- a/examples/datavisualization/graphgallery/variantdataset.cpp +++ b/examples/datavisualization/graphgallery/variantdataset.cpp @@ -3,10 +3,7 @@ #include "variantdataset.h" -VariantDataSet::VariantDataSet() - : QObject(0) -{ -} +VariantDataSet::VariantDataSet() = default; VariantDataSet::~VariantDataSet() { diff --git a/examples/datavisualization/graphgallery/variantdataset.h b/examples/datavisualization/graphgallery/variantdataset.h index ce52db10..219e58cf 100644 --- a/examples/datavisualization/graphgallery/variantdataset.h +++ b/examples/datavisualization/graphgallery/variantdataset.h @@ -7,8 +7,8 @@ #include //! [0] -typedef QVariantList VariantDataItem; -typedef QList VariantDataItemList; +using VariantDataItem = QVariantList; +using VariantDataItemList = QList; //! [0] class VariantDataSet : public QObject -- cgit v1.2.3