From 8bfc7796c498afa384350fb90b3e4df153719d43 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Sun, 12 May 2024 10:21:16 +0200
Subject: [PATCH] clang-tidy ...

---
 .clang-tidy                                   |  2 --
 Base/Axis/Frame.cpp                           |  4 +--
 CMakeLists.txt                                |  1 +
 Device/Data/Datafield.cpp                     |  4 +--
 Device/IO/ReadWrite2DTable.cpp                | 34 +++++++++----------
 Device/IO/ReadWrite2DTable.h                  |  2 +-
 GUI/Model/Detector/DetectorItem.cpp           |  4 +--
 GUI/Model/File/DatafileItem.cpp               |  2 +-
 GUI/Model/Type/NamedItem.cpp                  |  2 +-
 GUI/View/Canvas/MaskEditorCanvas.cpp          |  4 +--
 GUI/View/FitControl/FitObjectiveBuilder.cpp   |  2 +-
 GUI/View/FitControl/MinimizerEditor.cpp       |  6 ++--
 GUI/View/FitControl/MinimizerEditor.h         |  4 +--
 GUI/View/Loader/ImportDialogs.cpp             | 34 +++++++++----------
 GUI/View/Loader/ProjectionsSaver.cpp          |  2 +-
 GUI/View/Plotter/ProjectionsPlot.cpp          |  2 +-
 GUI/View/Sample/LayerForm.h                   |  4 +--
 GUI/View/Sample/ParticleLayoutForm.cpp        |  2 +-
 GUI/View/Sample/SampleEditor.h                |  2 +-
 GUI/View/Scene/MaskGraphicsScene.cpp          |  4 +--
 GUI/View/Setup/MasksPanel.cpp                 |  2 +-
 GUI/View/View/InstrumentView.cpp              |  2 +-
 GUI/View/View/JobView.h                       |  2 +-
 Resample/Particle/ReCompound.cpp              |  4 +--
 Resample/Specular/ComputeFluxMagnetic.cpp     |  4 +--
 Resample/Specular/ComputeFluxScalar.cpp       |  4 +--
 .../StandardSample/MagneticLayersBuilder.cpp  |  4 +--
 27 files changed, 71 insertions(+), 72 deletions(-)

diff --git a/.clang-tidy b/.clang-tidy
index fc9cb947657..5385a84890e 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -13,10 +13,8 @@ Checks: '
 bugprone-copy-constructor-init,
 bugprone-exception-escape,
 bugprone-misplaced-widening-cast,
-bugprone-unused-return-value,
 clang-analyzer-optin.cplusplus.VirtualCall,
 cppcoreguidelines-explicit-virtual-functions,
-cppcoreguidelines-prefer-member-initializer,
 cppcoreguidelines-pro-type-const-cast,
 hicpp-move-const-arg,
 llvm-qualified-auto,
diff --git a/Base/Axis/Frame.cpp b/Base/Axis/Frame.cpp
index 78620cedf12..9b226387c57 100644
--- a/Base/Axis/Frame.cpp
+++ b/Base/Axis/Frame.cpp
@@ -140,7 +140,7 @@ Frame* Frame::plottableFrame() const
         auto* s = new Scale(axis(k).plottableScale());
         outaxes.emplace_back(s);
     }
-    return new Frame(std::move(outaxes));
+    return new Frame(outaxes);
 }
 
 Frame* Frame::angularFrame(double lambda, double alpha_i) const
@@ -169,5 +169,5 @@ Frame* Frame::flat() const
     for (const Scale* s : m_axes)
         if (s->size() > 1)
             outaxes.emplace_back(s->clone());
-    return new Frame(std::move(outaxes));
+    return new Frame(outaxes);
 }
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 63a8c910fe8..4ec59c6f43b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -160,6 +160,7 @@ endif()
 
 if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
     set(CLANG ON)
+    string(APPEND CMAKE_CXX_FLAGS " -Wno-misleading-indentation")
 elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
     set(GCC ON)
     string(APPEND CMAKE_CXX_FLAGS " -fdiagnostics-color=always")
diff --git a/Device/Data/Datafield.cpp b/Device/Data/Datafield.cpp
index c4995e38c04..76bc5caa8fe 100644
--- a/Device/Data/Datafield.cpp
+++ b/Device/Data/Datafield.cpp
@@ -286,7 +286,7 @@ Datafield* Datafield::crop(double xmin, double ymin, double xmax, double ymax) c
 
     const Scale* xclipped = xAxis().clipped(xmin, xmax).clone();
     const Scale* yclipped = yAxis().clipped(ymin, ymax).clone();
-    Frame* outframe = new Frame(xclipped, yclipped);
+    const auto* outframe = new Frame(xclipped, yclipped);
 
     ASSERT(outframe->size() == out.size());
     return new Datafield(outframe, out);
@@ -308,7 +308,7 @@ Datafield* Datafield::crop(double xmin, double xmax) const
         }
     }
     const Scale* xclipped = xAxis().clipped(xmin, xmax).clone();
-    Frame* outframe = new Frame(xclipped);
+    const auto* outframe = new Frame(xclipped);
 
     ASSERT(outframe->xAxis().size() == out.size());
     return new Datafield(outframe, out, errout);
diff --git a/Device/IO/ReadWrite2DTable.cpp b/Device/IO/ReadWrite2DTable.cpp
index 6ca49a3043c..51282614b67 100644
--- a/Device/IO/ReadWrite2DTable.cpp
+++ b/Device/IO/ReadWrite2DTable.cpp
@@ -137,9 +137,9 @@ Datafield readBareIntensity(std::istream& input_stream)
 
 } // namespace
 
-Datafield Util::RW::read2DTable(std::istream& input_stream, const ImportSettings2D* p)
+Datafield Util::RW::read2DTable(std::istream& input_stream, const ImportSettings2D* pars)
 {
-    if (!p || !p->has_axes)
+    if (!pars || !pars->has_axes)
         return readBareIntensity(input_stream);
 
     // read table with axes info
@@ -156,19 +156,19 @@ Datafield Util::RW::read2DTable(std::istream& input_stream, const ImportSettings
     std::vector<double> q_row(data.front().size());
     std::vector<double> q_col(data.size());
 
-    q_row = p->first_row ? data.front() : data.back();
+    q_row = pars->first_row ? data.front() : data.back();
     for (size_t i = 0; i < nrows; i++)
-        q_col[i] = p->first_col ? data[i].front() : data[i].back();
+        q_col[i] = pars->first_col ? data[i].front() : data[i].back();
 
     // remove redundant elements from axes and data
-    if (p->first_row) {
+    if (pars->first_row) {
         q_col.erase(q_col.begin());
         data.erase(data.begin());
     } else {
         q_col.pop_back();
         data.pop_back();
     }
-    if (p->first_col) {
+    if (pars->first_col) {
         q_row.erase(q_row.begin());
         for (auto& row : data)
             row.erase(row.begin());
@@ -203,16 +203,16 @@ Datafield Util::RW::read2DTable(std::istream& input_stream, const ImportSettings
 
     // scale axes
     double fac = 1.;
-    Coordinate xOutCoord = p->xCoord;
-    Coordinate yOutCoord = p->yCoord;
-    if (p->xCoord.unit() == "1/angstrom") {
+    Coordinate xOutCoord = pars->xCoord;
+    Coordinate yOutCoord = pars->yCoord;
+    if (pars->xCoord.unit() == "1/angstrom") {
         fac = 10;
-        xOutCoord = {p->xCoord.name(), "1/nm"};
-        yOutCoord = {p->yCoord.name(), "1/nm"};
-    } else if (p->xCoord.unit() == "deg") {
+        xOutCoord = {pars->xCoord.name(), "1/nm"};
+        yOutCoord = {pars->yCoord.name(), "1/nm"};
+    } else if (pars->xCoord.unit() == "deg") {
         fac = pi / 180.;
-        xOutCoord = {p->xCoord.name(), "rad"};
-        yOutCoord = {p->yCoord.name(), "rad"};
+        xOutCoord = {pars->xCoord.name(), "rad"};
+        yOutCoord = {pars->yCoord.name(), "rad"};
     }
     for (auto& q : q_row)
         q *= fac;
@@ -220,9 +220,9 @@ Datafield Util::RW::read2DTable(std::istream& input_stream, const ImportSettings
         q *= fac;
 
     // interpret axes
-    std::vector<double> qy = p->swap_axes ? q_col : q_row;
-    std::vector<double> qz = p->swap_axes ? q_row : q_col;
-    if (p->swap_axes)
+    std::vector<double> qy = pars->swap_axes ? q_col : q_row;
+    std::vector<double> qz = pars->swap_axes ? q_row : q_col;
+    if (pars->swap_axes)
         data = DataUtil::transpose(data);
 
     // flatten values
diff --git a/Device/IO/ReadWrite2DTable.h b/Device/IO/ReadWrite2DTable.h
index 227206fa16f..82d4fd704d1 100644
--- a/Device/IO/ReadWrite2DTable.h
+++ b/Device/IO/ReadWrite2DTable.h
@@ -26,7 +26,7 @@ struct ImportSettings2D;
 namespace Util::RW {
 
 //! Reads 2D table from ASCII file.
-Datafield read2DTable(std::istream& input_stream, const ImportSettings2D* importSettings = nullptr);
+Datafield read2DTable(std::istream& input_stream, const ImportSettings2D* pars = nullptr);
 //! Writes Datafield to ASCII file with 2D table layout as in numpy.savetxt.
 void write2DTable(const Datafield& data, std::ostream& output_stream);
 
diff --git a/GUI/Model/Detector/DetectorItem.cpp b/GUI/Model/Detector/DetectorItem.cpp
index 803b88cdcaf..da9fedc60e2 100644
--- a/GUI/Model/Detector/DetectorItem.cpp
+++ b/GUI/Model/Detector/DetectorItem.cpp
@@ -70,9 +70,9 @@ std::unique_ptr<IDetector> DetectorItem::createDetector() const
     auto result = std::make_unique<Detector2D>(x_wid, y_wid, n_x, n_y, x_cen, y_cen);
 
     if (m_masks) {
-        for (const auto m : *m_masks) {
+        for (const auto* m : *m_masks) {
             if (m->isVisible()) {
-                if (auto* ii = dynamic_cast<const RegionOfInterestItem*>(m)) {
+                if (const auto* ii = dynamic_cast<const RegionOfInterestItem*>(m)) {
                     result->setRegionOfInterest(ii->xLow(), ii->yLow(), ii->xUp(), ii->yUp());
                 } else {
                     std::unique_ptr<IShape2D> shape(m->createShape());
diff --git a/GUI/Model/File/DatafileItem.cpp b/GUI/Model/File/DatafileItem.cpp
index 3e6785c465f..a9d7bd98eee 100644
--- a/GUI/Model/File/DatafileItem.cpp
+++ b/GUI/Model/File/DatafileItem.cpp
@@ -59,7 +59,7 @@ DatafileItem::~DatafileItem() = default;
 
 DatafileItem* DatafileItem::clone() const
 {
-    DatafileItem* result = new DatafileItem;
+    auto* result = new DatafileItem;
     GUI::Util::copyContents(this, result);
     if (m_data_item)
         result->m_data_item->setDatafield(*m_data_item->c_field());
diff --git a/GUI/Model/Type/NamedItem.cpp b/GUI/Model/Type/NamedItem.cpp
index de9c0ac25a8..3ade16a0d72 100644
--- a/GUI/Model/Type/NamedItem.cpp
+++ b/GUI/Model/Type/NamedItem.cpp
@@ -41,7 +41,7 @@ void NamedItem::renumber(const QStringList& extant_names)
 
     // Determine highest number for given stem in extant_items
     int imax = 0;
-    for (QString tname : extant_names) {
+    for (const QString& tname : extant_names) {
         QStringList ts = ::splitName(tname);
         if (ts.isEmpty()) {
             if (tname == stem)
diff --git a/GUI/View/Canvas/MaskEditorCanvas.cpp b/GUI/View/Canvas/MaskEditorCanvas.cpp
index b9c2e2e3a00..1deac05845c 100644
--- a/GUI/View/Canvas/MaskEditorCanvas.cpp
+++ b/GUI/View/Canvas/MaskEditorCanvas.cpp
@@ -38,7 +38,7 @@ Datafield* createMaskedField(const Data2DItem* data)
     MaskStack detectorMask;
     for (const MaskItem* t : *data->masks()) {
         if (t->isVisible()) {
-            if (auto* roiItem = dynamic_cast<const RegionOfInterestItem*>(t))
+            if (const auto* roiItem = dynamic_cast<const RegionOfInterestItem*>(t))
                 roi = roiItem->createShape();
             else {
                 std::unique_ptr<IShape2D> shape(t->createShape());
@@ -155,7 +155,7 @@ void MaskEditorCanvas::onPresentationChange(bool pixelized)
         m_data_item->setInterpolated(m_backup_interpolated);
     }
 
-    if (auto* container = m_data_item->masks())
+    if (const auto* container = m_data_item->masks())
         for (MaskItem* t : *container)
             t->setIsVisible(!pixelized && t->wasVisible());
 }
diff --git a/GUI/View/FitControl/FitObjectiveBuilder.cpp b/GUI/View/FitControl/FitObjectiveBuilder.cpp
index a7bcf68823c..f71788f87ba 100644
--- a/GUI/View/FitControl/FitObjectiveBuilder.cpp
+++ b/GUI/View/FitControl/FitObjectiveBuilder.cpp
@@ -76,7 +76,7 @@ std::unique_ptr<FitObjective> FitObjectiveBuilder::createFitObjective() const
         return buildSimulation(params);
     };
 
-    auto* dfile_item = m_job_item->dfileItem();
+    const auto* dfile_item = m_job_item->dfileItem();
     ASSERT(dfile_item);
 
     const DataItem* intensity_item = dfile_item->dataItem();
diff --git a/GUI/View/FitControl/MinimizerEditor.cpp b/GUI/View/FitControl/MinimizerEditor.cpp
index d61087bb9e4..249423cdf90 100644
--- a/GUI/View/FitControl/MinimizerEditor.cpp
+++ b/GUI/View/FitControl/MinimizerEditor.cpp
@@ -41,13 +41,13 @@ void MinimizerEditor::setJobItem(JobItem* job_item)
     setMinContainerItem(job_item->fitSuiteItem()->minimizerContainerItem());
 }
 
-void MinimizerEditor::setMinContainerItem(MinimizerContainerItem* containerItem)
+void MinimizerEditor::setMinContainerItem(MinimizerContainerItem* container_item)
 {
-    ASSERT(containerItem);
+    ASSERT(container_item);
 
     GUI::Util::Layout::clearLayout(m_main_layout);
     m_updaters.clear();
-    m_container_item = containerItem;
+    m_container_item = container_item;
 
     if (!m_container_item)
         return;
diff --git a/GUI/View/FitControl/MinimizerEditor.h b/GUI/View/FitControl/MinimizerEditor.h
index 4bbcab0e9c4..c3cfe468330 100644
--- a/GUI/View/FitControl/MinimizerEditor.h
+++ b/GUI/View/FitControl/MinimizerEditor.h
@@ -30,8 +30,8 @@ public:
     MinimizerEditor(QWidget* parent = nullptr);
 
 public slots:
-    void setJobItem(JobItem* jobItem);
-    void setMinContainerItem(MinimizerContainerItem* containerItem);
+    void setJobItem(JobItem* job_item);
+    void setMinContainerItem(MinimizerContainerItem* container_item);
 
 private:
     void createGroupedAlgorithmsCombo();
diff --git a/GUI/View/Loader/ImportDialogs.cpp b/GUI/View/Loader/ImportDialogs.cpp
index 9b4fcbdf168..2e00c2e45b8 100644
--- a/GUI/View/Loader/ImportDialogs.cpp
+++ b/GUI/View/Loader/ImportDialogs.cpp
@@ -167,64 +167,64 @@ Import1dDialog::Import1dDialog(QWidget* parent, QString fname)
 Import2dDialog::Import2dDialog(QWidget* parent, QString fname)
     : ImportDialog(parent, fname)
 {
-    auto vbox = new QVBoxLayout;
+    auto* vbox = new QVBoxLayout;
     setLayout(vbox);
 
-    auto gridLayout = new QGridLayout;
+    auto* gridLayout = new QGridLayout;
     vbox->addLayout(gridLayout);
 
-    auto has_axes = new QCheckBox("Table contains axes");
+    auto* has_axes = new QCheckBox("Table contains axes");
     has_axes->setChecked(Msettings.has_axes);
     gridLayout->addWidget(has_axes, 0, 0);
     // connect statement is below, as it needs access to other widgets
 
-    auto swap_axes = new QCheckBox("Swap axes");
+    auto* swap_axes = new QCheckBox("Swap axes");
     swap_axes->setChecked(Msettings.swap_axes);
     gridLayout->addWidget(swap_axes, 1, 0);
 
     // row
 
-    auto row_label = new QLabel("Row:");
+    auto* row_label = new QLabel("Row:");
     gridLayout->addWidget(row_label, 2, 0);
 
-    auto row_first = new QRadioButton("first");
+    auto* row_first = new QRadioButton("first");
     row_first->setChecked(Msettings.first_row);
     gridLayout->addWidget(row_first, 2, 1);
     connect(row_first, &QRadioButton::toggled, [](bool b) { Msettings.first_row = b; });
 
-    auto row_last = new QRadioButton("last");
+    auto* row_last = new QRadioButton("last");
     row_last->setChecked(!Msettings.first_row);
     gridLayout->addWidget(row_last, 2, 2);
     connect(row_last, &QRadioButton::toggled, [](bool b) { Msettings.first_row = !b; });
 
-    auto row_group = new QButtonGroup;
+    auto* row_group = new QButtonGroup;
     row_group->addButton(row_first);
     row_group->addButton(row_last);
 
     // column
 
-    auto col_label = new QLabel("Column:");
+    auto* col_label = new QLabel("Column:");
     gridLayout->addWidget(col_label, 3, 0);
 
-    auto col_first = new QRadioButton("first");
+    auto* col_first = new QRadioButton("first");
     col_first->setChecked(Msettings.first_col);
     gridLayout->addWidget(col_first, 3, 1);
     connect(col_first, &QRadioButton::toggled, [](bool b) { Msettings.first_col = b; });
 
-    auto col_last = new QRadioButton("last");
+    auto* col_last = new QRadioButton("last");
     col_last->setChecked(!Msettings.first_col);
     gridLayout->addWidget(col_last, 3, 2);
     connect(col_last, &QRadioButton::toggled, [](bool b) { Msettings.first_col = !b; });
 
-    auto col_group = new QButtonGroup;
+    auto* col_group = new QButtonGroup;
     col_group->addButton(col_first);
     col_group->addButton(col_last);
 
     // Q units
-    auto form_l = new QFormLayout;
+    auto* form_l = new QFormLayout;
     vbox->addLayout(form_l);
 
-    auto unit_label = new QLabel("Axes are given in units of:");
+    auto* unit_label = new QLabel("Axes are given in units of:");
 
     const std::vector<std::string> xCoords{"qy (1/nm)", "qy (1/angstrom)", "phi_i (rad)",
                                            "phi_i (deg)"};
@@ -232,7 +232,7 @@ Import2dDialog::Import2dDialog(QWidget* parent, QString fname)
                                            "alpha_i (deg)"};
     ASSERT(xCoords.size() == yCoords.size());
 
-    auto qUnitCombo = new QComboBox;
+    auto* qUnitCombo = new QComboBox;
     form_l->addRow(unit_label, qUnitCombo);
     qUnitCombo->addItem("1/nm");
     qUnitCombo->addItem("1/Ã…");
@@ -286,10 +286,10 @@ Import2dDialog::Import2dDialog(QWidget* parent, QString fname)
     });
     has_axes->toggled(Msettings.has_axes);
 
-    auto buttonline = new QHBoxLayout;
+    auto* buttonline = new QHBoxLayout;
     vbox->addLayout(buttonline);
 
-    auto okButton = new QPushButton("OK");
+    auto* okButton = new QPushButton("OK");
     buttonline->addWidget(okButton);
     okButton->setDefault(true);
     connect(okButton, &QPushButton::clicked, this, &Import2dDialog::accept);
diff --git a/GUI/View/Loader/ProjectionsSaver.cpp b/GUI/View/Loader/ProjectionsSaver.cpp
index 568bbc9fdd6..59edb6e39e5 100644
--- a/GUI/View/Loader/ProjectionsSaver.cpp
+++ b/GUI/View/Loader/ProjectionsSaver.cpp
@@ -96,7 +96,7 @@ ProjectionsData projectionsData(Qt::Orientation projectionsType, const Data2DIte
     ProjectionsData result;
     result.is_horizontal = (projectionsType == Qt::Horizontal);
 
-    for (auto* item : projectionItems(projectionsType, data_item)) {
+    for (const auto* item : projectionItems(projectionsType, data_item)) {
         std::unique_ptr<Datafield> field;
         Projection data;
 
diff --git a/GUI/View/Plotter/ProjectionsPlot.cpp b/GUI/View/Plotter/ProjectionsPlot.cpp
index ed9b983457a..5a064edc354 100644
--- a/GUI/View/Plotter/ProjectionsPlot.cpp
+++ b/GUI/View/Plotter/ProjectionsPlot.cpp
@@ -170,7 +170,7 @@ void ProjectionsPlot::updateProjectionsData()
 void ProjectionsPlot::updateProjections()
 {
     ASSERT(m_data_item);
-    auto* all_prjns = m_data_item->prjns();
+    const auto* all_prjns = m_data_item->prjns();
     if (!all_prjns)
         return;
     for (const auto* prjn : *all_prjns)
diff --git a/GUI/View/Sample/LayerForm.h b/GUI/View/Sample/LayerForm.h
index 2ef2581ef64..34f750051b6 100644
--- a/GUI/View/Sample/LayerForm.h
+++ b/GUI/View/Sample/LayerForm.h
@@ -31,8 +31,8 @@ public:
     LayerForm(QWidget* parent, LayerItem* layerItem, SampleEditorController* ec);
 
     void updateLayerPositionDependentElements();
-    void onLayoutAdded(ParticleLayoutItem* layoutItem);
-    void onAboutToRemoveLayout(ParticleLayoutItem* layoutItem);
+    void onLayoutAdded(ParticleLayoutItem* t);
+    void onAboutToRemoveLayout(ParticleLayoutItem* t);
     LayerItem* layerItem() const { return m_layer; }
     void updateTitle();
     void expand();
diff --git a/GUI/View/Sample/ParticleLayoutForm.cpp b/GUI/View/Sample/ParticleLayoutForm.cpp
index c1f9ea165b9..e7164e88b45 100644
--- a/GUI/View/Sample/ParticleLayoutForm.cpp
+++ b/GUI/View/Sample/ParticleLayoutForm.cpp
@@ -115,7 +115,7 @@ void ParticleLayoutForm::updateDensityValue()
 
 void ParticleLayoutForm::updateTitle(const LayerItem* layerItem)
 {
-    const auto layouts = layerItem->layoutItems();
+    const auto& layouts = layerItem->layoutItems();
     if (layouts.size() > 1)
         setTitle("Particle layout " + QString::number(Vec::indexOfPtr(m_layout_item, layouts) + 1));
     else
diff --git a/GUI/View/Sample/SampleEditor.h b/GUI/View/Sample/SampleEditor.h
index cac47b67278..8679e269451 100644
--- a/GUI/View/Sample/SampleEditor.h
+++ b/GUI/View/Sample/SampleEditor.h
@@ -29,7 +29,7 @@ public:
     SampleEditor();
     ~SampleEditor() override;
 
-    void setCurrentSample(SampleItem* sampleItem);
+    void setCurrentSample(SampleItem* t);
 
 signals:
     void requestViewInRealspace(Item3D* itemToShow);
diff --git a/GUI/View/Scene/MaskGraphicsScene.cpp b/GUI/View/Scene/MaskGraphicsScene.cpp
index 946bf2b053f..3c7247755a2 100644
--- a/GUI/View/Scene/MaskGraphicsScene.cpp
+++ b/GUI/View/Scene/MaskGraphicsScene.cpp
@@ -42,7 +42,7 @@ template <class T> bool areaContains(QVector<QGraphicsItem*> items)
 } // namespace
 
 
-MaskGraphicsScene::MaskGraphicsScene() {}
+MaskGraphicsScene::MaskGraphicsScene() = default;
 
 MaskGraphicsScene::~MaskGraphicsScene() = default;
 
@@ -320,7 +320,7 @@ void MaskGraphicsScene::removeOverlay(OverlayItem* item)
 {
     if (auto it = m_mask2overlay.find(item); it != m_mask2overlay.end()) {
         // at first, delete views for the points of the PolygonItem
-        if (auto* polygon_item = dynamic_cast<const PolygonItem*>(item))
+        if (const auto* polygon_item = dynamic_cast<const PolygonItem*>(item))
             for (PointItem* point_item : polygon_item->points())
                 removeOverlay(point_item);
 
diff --git a/GUI/View/Setup/MasksPanel.cpp b/GUI/View/Setup/MasksPanel.cpp
index 7e2794eee73..8e9e5443116 100644
--- a/GUI/View/Setup/MasksPanel.cpp
+++ b/GUI/View/Setup/MasksPanel.cpp
@@ -43,7 +43,7 @@ void addSpinBox(MaskItem* mask, QFormLayout* layout, DoubleProperty& property)
 
 
 MasksPanel::MasksPanel(std::function<MasksSet*()> set_source, bool mask_not_prjn)
-    : m_set_source(set_source)
+    : m_set_source(std::move(set_source))
     , m_set_view(new SetView(nullptr))
     , m_mask_not_prjn(mask_not_prjn)
 {
diff --git a/GUI/View/View/InstrumentView.cpp b/GUI/View/View/InstrumentView.cpp
index 4e14331ad9e..853a2239378 100644
--- a/GUI/View/View/InstrumentView.cpp
+++ b/GUI/View/View/InstrumentView.cpp
@@ -78,7 +78,7 @@ void InstrumentView::setToolbarActions(QToolBar* toolbar)
     //... New-instrument actions
 
     auto new_action = [this, toolbar](const QString& name, const QString& description) {
-        QAction* a = new QAction("New " + name, this);
+        auto* a = new QAction("New " + name, this);
         a->setIcon(QIcon(":/images/shape-square-plus.svg"));
         a->setToolTip("Add new " + description + " instrument with default settings");
         toolbar->addAction(a);
diff --git a/GUI/View/View/JobView.h b/GUI/View/View/JobView.h
index 71c3a21f402..d8b73721617 100644
--- a/GUI/View/View/JobView.h
+++ b/GUI/View/View/JobView.h
@@ -47,7 +47,7 @@ public slots:
     void onJobSelectionChanged();
 
 private slots:
-    void onJobSelected(JobItem* jobItem);
+    void onJobSelected(JobItem* job_item);
 
 private:
     JobItem* selectedJobItem();
diff --git a/Resample/Particle/ReCompound.cpp b/Resample/Particle/ReCompound.cpp
index 47ab7e757a6..f904affe1f8 100644
--- a/Resample/Particle/ReCompound.cpp
+++ b/Resample/Particle/ReCompound.cpp
@@ -96,7 +96,7 @@ bool ReCompound::consideredEqualTo(const IReParticle& ire) const
             if (!m_components[i]->consideredEqualTo(*other[i]))
                 return false;
 
-        if (m_components.size() > 0) {
+        if (!m_components.empty()) {
             const R3 shift = posDiff(m_components.front()->position(), other.front()->position());
             for (size_t i = 1; i < m_components.size(); i++)
                 if (shift != posDiff(m_components[i]->position(), other[i]->position()))
@@ -110,7 +110,7 @@ bool ReCompound::consideredEqualTo(const IReParticle& ire) const
 
 const R3* ReCompound::position() const
 {
-    if (m_components.size() == 0)
+    if (m_components.empty())
         return nullptr;
 
     return m_components.front()->position();
diff --git a/Resample/Specular/ComputeFluxMagnetic.cpp b/Resample/Specular/ComputeFluxMagnetic.cpp
index 882564dc191..cb2cf20fb64 100644
--- a/Resample/Specular/ComputeFluxMagnetic.cpp
+++ b/Resample/Specular/ComputeFluxMagnetic.cpp
@@ -183,7 +183,7 @@ std::vector<MatrixFlux> computeTR(const SliceStack& slices, const std::vector<co
     for (size_t i = N - 1; i > 0; --i) {
         const auto* roughness = slices.bottomRoughness(i);
         const double sigma = roughness ? roughness->sigma() : 0.;
-        const auto r_model = roughness ? roughness->roughnessModel() : nullptr;
+        const auto* r_model = roughness ? roughness->roughnessModel() : nullptr;
 
         // compute the 2x2 blocks of the transfer matrix
         const auto [sp, sm] = refractionMatrixBlocks(TR[i - 1], TR[i], sigma, r_model);
@@ -289,7 +289,7 @@ SpinMatrix Compute::polarizedReflectivity(const SliceStack& slices,
         MatrixFlux tr_i = createCoeff(i - 1);
         const auto* roughness = slices.bottomRoughness(i - 1);
         const double sigma = roughness ? roughness->sigma() : 0.;
-        const auto r_model = roughness ? roughness->roughnessModel() : nullptr;
+        const auto* r_model = roughness ? roughness->roughnessModel() : nullptr;
 
         // compute the 2x2 blocks of the transfer matrix
         const auto [sp, sm] = ::refractionMatrixBlocks(tr_i, tr_i1, sigma, r_model);
diff --git a/Resample/Specular/ComputeFluxScalar.cpp b/Resample/Specular/ComputeFluxScalar.cpp
index 723ed05f202..10a158ff001 100644
--- a/Resample/Specular/ComputeFluxScalar.cpp
+++ b/Resample/Specular/ComputeFluxScalar.cpp
@@ -85,7 +85,7 @@ std::vector<Spinor> computeTR(const SliceStack& slices, const std::vector<comple
         const size_t jlast = X[i];
         const auto* roughness = slices.bottomRoughness(jthis);
         const double sigma = roughness ? roughness->sigma() : 0.;
-        const auto r_model = roughness ? roughness->roughnessModel() : nullptr;
+        const auto* r_model = roughness ? roughness->roughnessModel() : nullptr;
 
         const auto [slp, slm] = transition(kz[jthis], kz[jlast], sigma, r_model);
 
@@ -139,7 +139,7 @@ complex_t Compute::scalarReflectivity(const SliceStack& slices, const std::vecto
     for (size_t i = N - 1; i > 0; i--) {
         const auto* roughness = slices.bottomRoughness(i - 1);
         const double sigma = roughness ? roughness->sigma() : 0.;
-        const auto r_model = roughness ? roughness->roughnessModel() : nullptr;
+        const auto* r_model = roughness ? roughness->roughnessModel() : nullptr;
 
         const auto [sp, sm] = ::transition(kz[i - 1], kz[i], sigma, r_model);
 
diff --git a/Sample/StandardSample/MagneticLayersBuilder.cpp b/Sample/StandardSample/MagneticLayersBuilder.cpp
index d49c76fab7d..9f7bb09db1e 100644
--- a/Sample/StandardSample/MagneticLayersBuilder.cpp
+++ b/Sample/StandardSample/MagneticLayersBuilder.cpp
@@ -120,10 +120,10 @@ ExemplarySamples::createSimpleMagneticRotationWithRoughness(const std::string& r
         sigmaRoughness = 0.;
     } else if (roughnessKey == "Tanh") {
         sigmaRoughness = 2. * Units::angstrom;
-        roughnessModel.reset(new TanhRoughness);
+        roughnessModel = std::make_unique<TanhRoughness>();
     } else if (roughnessKey == "Erf") {
         sigmaRoughness = 2. * Units::angstrom;
-        roughnessModel.reset(new ErfRoughness);
+        roughnessModel = std::make_unique<ErfRoughness>();
     } else
         ASSERT_NEVER;
 
-- 
GitLab