From 6caa215f61f2e31826762208d842e5f0bf35c689 Mon Sep 17 00:00:00 2001 From: Joachim Wuttke <j.wuttke@fz-juelich.de> Date: Wed, 29 Nov 2023 22:42:48 +0100 Subject: [PATCH 01/33] ready to tidy readability-simplify-boolean-expr --- .clang-tidy | 156 ++++++------------------------------------------- CMakeLists.txt | 2 +- 2 files changed, 18 insertions(+), 140 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index 52a95dbba51..e32f62adc08 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -15,145 +15,23 @@ Checks: '*, --SectionComment_We_disagree_with_the_following_checks__They_shall_remain_permanently_disabled, - --*-braces-around-statements, --*-convert-member-functions-to-static, --*-implicit-bool-conversion, --*-magic-numbers, --*-named-parameter, --*-trailing-return*, --*-uppercase-literal-suffix, --*nodiscard, --abseil-*, --altera-struct-pack-align, --altera-unroll-loops, --bugprone-branch-clone, --bugprone-easily-swappable-parameters, --bugprone-implicit-widening-of-multiplication-result, --bugprone-suspicious-include, --cert-err58-cpp, --cert-err61-cpp, --cert-msc30-c*, --cert-msc32-c, --cert-msc50-cpp, --cert-msc51-cpp, --clang-analyzer-alpha*, --clang-analyzer-alpha.deadcode.UnreachableCode, --clang-analyzer-security.insecureAPI.strcpy, --cppcoreguidelines-init-variables, --cppcoreguidelines-macro-usage, --cppcoreguidelines-non-private-member-variables-in-classes, --cppcoreguidelines-pro-bounds-constant-array-index, --cppcoreguidelines-pro-bounds-pointer-arithmetic, --cppcoreguidelines-pro-type-cstyle-cast, --cppcoreguidelines-pro-type-member-init, --cppcoreguidelines-pro-type-reinterpret-cast, --cppcoreguidelines-pro-type-vararg, --cppcoreguidelines-slicing, --fuchsia-default-arguments-calls, --fuchsia-default-arguments-declarations, --fuchsia-overloaded-operator, --fuchsia-statically-constructed-objects, --fuchsia-trailing-return, --google-build-using-namespace, --google-default-arguments, --google-explicit-constructor, --google-readability-avoid-underscore-in-googletest-name, --google-readability-casting, --google-readability-todo, --google-runtime-int, --hicpp-exception-baseclass, --hicpp-explicit-conversions, --hicpp-member-init, --hicpp-noexcept-move, --hicpp-signed-bitwise, --hicpp-vararg, --llvmlibc-callee-namespace, --llvmlibc-implementation-in-namespace, --llvmlibc-restrict-system-libc-headers, --misc-no-recursion, --misc-throw-by-value-catch-by-reference, --performance-faster-string-find, --performance-inefficient-string-concatenation, --performance-noexcept-move-constructor, --performance-no-automatic-move, --performance-unnecessary-value-param, --readability-identifier-length, --readability-misleading-indentation, --readability-use-anyofallof, - --SectionComment_To_be_manually_checked_from_time_to_time, - --readability-isolate-declaration, --performance-inefficient-vector-operation, --performance-unnecessary-copy-initialization, --*-move-const-arg, --modernize-use-default-member-init, --readability-redundant-member-init, - - --SectionComment_Disabled_unless_3rdparty_libraries_are_improved, - --*avoid-goto, --*special-member-functions, --clang-analyzer-cplusplus.NewDeleteLeaks, --cppcoreguidelines-avoid-non-const-global-variables, --cppcoreguidelines-pro-bounds-array-to-pointer-decay, --hicpp-no-array-decay, --llvm-include-order, --llvm-namespace-comment, --readability-redundant-access-specifiers, - - --SectionComment_Resolving_the_following_checks_would_be_too_much_work_right_now, - --*avoid-c-arrays, --*narrowing-conversions, --cppcoreguidelines-prefer-member-initializer, --cppcoreguidelines-owning-memory, --bugprone-unused-return-value, --bugprone-parent-virtual-call, - - --SectionComment_Temporarily_disabled_checks__We_need_to_investigate_them_one_by_one, - --altera-id-dependent-backward-branch, --bugprone-copy-constructor-init, --bugprone-exception-escape, --bugprone-misplaced-widening-cast, --clang-analyzer-core.CallAndMessage, --clang-analyzer-optin.cplusplus.VirtualCall, --cppcoreguidelines-pro-type-const-cast, --cppcoreguidelines-pro-type-static-cast-downcast, --google-runtime-references, --misc-non-private-member-variables-in-classes, --modernize-loop-convert, --readability-function-cognitive-complexity, - --SectionComment_Automizable__To_be_kept_satisfied, -*-use-auto, -*-use-emplace, -*-use-equals-default, -*-use-nullptr, -*-use-override, -cppcoreguidelines-explicit-virtual-functions, -google-readability-avoid-underscore-in-googletest-name, -llvm-qualified-auto, -misc-uniqueptr-reset-release, -modernize-avoid-bind, -modernize-make-unique, -modernize-pass-by-value, -modernize-raw-string-literal, -modernize-use-using, -performance-for-range-copy, -readability-avoid-const-params-in-decls, -readability-const-return-type, -readability-non-const-parameter, -readability-container-size-empty, -readability-delete-null-pointer, -readability-inconsistent-declaration-parameter-name, -readability-qualified-auto, +-*, +-cppcoreguidelines-explicit-virtual-functions, +-llvm-qualified-auto, +-misc-uniqueptr-reset-release, +-modernize-avoid-bind, +-modernize-make-unique, +-modernize-pass-by-value, +-modernize-raw-string-literal, +-modernize-use-using, +-performance-for-range-copy, +-readability-avoid-const-params-in-decls, +-readability-const-return-type, +-readability-non-const-parameter, +-readability-container-size-empty, +-readability-delete-null-pointer, +-readability-inconsistent-declaration-parameter-name, +-readability-qualified-auto, readability-simplify-boolean-expr, diff --git a/CMakeLists.txt b/CMakeLists.txt index f45d6097b7d..e871b5b182b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -234,7 +234,7 @@ endif() # from here on our own code, occasionally scrutinized by clang-tidy if(BA_TIDY) - set(CMAKE_CXX_CLANG_TIDY "clang-tidy") # has effect only if compiler is clang; uses .clang-tidy + set(CMAKE_CXX_CLANG_TIDY "clang-tidy;--fix") # has effect only if compiler is clang; uses .clang-tidy endif() # configure core component libraries -- GitLab From 4e79961b4a45594a9b87a545bc46a3b46756247e Mon Sep 17 00:00:00 2001 From: Joachim Wuttke <j.wuttke@fz-juelich.de> Date: Wed, 29 Nov 2023 23:45:56 +0100 Subject: [PATCH 02/33] ready to tidy readability-qualified-auto --- .clang-tidy | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index e32f62adc08..aab41589734 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -31,8 +31,8 @@ Checks: '*, -readability-container-size-empty, -readability-delete-null-pointer, -readability-inconsistent-declaration-parameter-name, --readability-qualified-auto, -readability-simplify-boolean-expr, +readability-qualified-auto, +-readability-simplify-boolean-expr, ' -- GitLab From fdabe423ba610bafe3fa8e54966654405b6e4ffb Mon Sep 17 00:00:00 2001 From: Joachim Wuttke <j.wuttke@fz-juelich.de> Date: Wed, 29 Nov 2023 23:56:20 +0100 Subject: [PATCH 03/33] tidy/readability-qualified-auto: 'auto' -> 'auto*' --- GUI/Model/Model/JobModel.cpp | 2 +- GUI/Model/Model/ParameterTuningModel.cpp | 8 ++++---- GUI/Model/ToCore/SampleToCore.cpp | 2 +- GUI/View/Canvas/IntensityDataCanvas.cpp | 2 +- GUI/View/Canvas/SpecularDataCanvas.cpp | 2 +- GUI/View/Frame/Fit1DFrame.cpp | 2 +- GUI/View/Frame/Fit2DFrame.cpp | 6 +++--- GUI/View/Instrument/DetectorEditor.cpp | 2 +- GUI/View/Scene/MaskGraphicsScene.cpp | 2 +- GUI/View/Setup/Scale1DEditor.cpp | 16 ++++++++-------- GUI/View/Setup/Scale2DEditor.cpp | 24 ++++++++++++------------ 11 files changed, 34 insertions(+), 34 deletions(-) diff --git a/GUI/Model/Model/JobModel.cpp b/GUI/Model/Model/JobModel.cpp index c71c5ce32c0..5b386d0a9c2 100644 --- a/GUI/Model/Model/JobModel.cpp +++ b/GUI/Model/Model/JobModel.cpp @@ -51,7 +51,7 @@ JobItem* JobModel::jobItemForIdentifier(const QString& identifier) JobItem* JobModel::createJobItem() { - auto jobItem = new JobItem(); + auto* jobItem = new JobItem(); m_jobItems.emplace_back(jobItem); return jobItem; } diff --git a/GUI/Model/Model/ParameterTuningModel.cpp b/GUI/Model/Model/ParameterTuningModel.cpp index 3c7d2744171..24b9e33d76a 100644 --- a/GUI/Model/Model/ParameterTuningModel.cpp +++ b/GUI/Model/Model/ParameterTuningModel.cpp @@ -65,7 +65,7 @@ QVariant ParameterTuningModel::data(const QModelIndex& index, int role) const return {}; } - if (auto var = toParameterItem(index)) { + if (auto* var = toParameterItem(index)) { if (role == Qt::DisplayRole || role == Qt::EditRole) { if (index.column() == 0) return var->title(); @@ -96,7 +96,7 @@ QModelIndex ParameterTuningModel::index(int row, int column, const QModelIndex& if (!parent.isValid()) return createIndex(row, column, m_rootObject->children()[row]); - if (auto label = toParameterLabelItem(parent)) + if (auto* label = toParameterLabelItem(parent)) return createIndex(row, column, label->children()[row]); return {}; @@ -189,12 +189,12 @@ ParameterLabelItem* ParameterTuningModel::toParameterLabelItem(const QModelIndex void ParameterTuningModel::setExpanded(const QModelIndex& index) const { - if (auto label = toParameterLabelItem(index)) + if (auto* label = toParameterLabelItem(index)) label->setCollapsed(false); } void ParameterTuningModel::setCollapsed(const QModelIndex& index) const { - if (auto label = toParameterLabelItem(index)) + if (auto* label = toParameterLabelItem(index)) label->setCollapsed(true); } diff --git a/GUI/Model/ToCore/SampleToCore.cpp b/GUI/Model/ToCore/SampleToCore.cpp index 08ba500cbe5..ecc9eff063c 100644 --- a/GUI/Model/ToCore/SampleToCore.cpp +++ b/GUI/Model/ToCore/SampleToCore.cpp @@ -81,7 +81,7 @@ std::unique_ptr<IParticle> createIParticle(const ItemWithParticles& item) std::unique_ptr<ParticleLayout> buildParticleLayout(const ParticleLayoutItem& item) { auto layout = createParticleLayout(item); - for (auto particleItem : item.itemsWithParticles()) { + for (auto* particleItem : item.itemsWithParticles()) { if (auto particle = createIParticle(*particleItem)) { layout->addParticle(*particle); continue; diff --git a/GUI/View/Canvas/IntensityDataCanvas.cpp b/GUI/View/Canvas/IntensityDataCanvas.cpp index e51c202f4ec..f4ab62e5944 100644 --- a/GUI/View/Canvas/IntensityDataCanvas.cpp +++ b/GUI/View/Canvas/IntensityDataCanvas.cpp @@ -99,7 +99,7 @@ QList<QAction*> IntensityDataCanvas::actionList() void IntensityDataCanvas::onResetViewAction() { - for (auto item : allData2DItems()) + for (auto* item : allData2DItems()) item->resetView(); gProjectDocument.value()->setModified(); diff --git a/GUI/View/Canvas/SpecularDataCanvas.cpp b/GUI/View/Canvas/SpecularDataCanvas.cpp index 944ea4f567d..b2e1c454e7b 100644 --- a/GUI/View/Canvas/SpecularDataCanvas.cpp +++ b/GUI/View/Canvas/SpecularDataCanvas.cpp @@ -92,7 +92,7 @@ void SpecularDataCanvas::enableDeprecatedOnMousePress(bool b) void SpecularDataCanvas::onResetViewAction() { - for (auto item : allData1DItems()) + for (auto* item : allData1DItems()) item->resetView(); gProjectDocument.value()->setModified(); } diff --git a/GUI/View/Frame/Fit1DFrame.cpp b/GUI/View/Frame/Fit1DFrame.cpp index cba005e2208..2e0c46c2eac 100644 --- a/GUI/View/Frame/Fit1DFrame.cpp +++ b/GUI/View/Frame/Fit1DFrame.cpp @@ -82,7 +82,7 @@ Fit1DFrame::Fit1DFrame(QWidget* parent) void Fit1DFrame::setJobOrDatafileItem(QObject* item) { - auto job_item = dynamic_cast<JobItem*>(item); + auto* job_item = dynamic_cast<JobItem*>(item); ASSERT(job_item); JobItem* oldJob = jobItem(); diff --git a/GUI/View/Frame/Fit2DFrame.cpp b/GUI/View/Frame/Fit2DFrame.cpp index 857db0e64c6..f97e647a6cf 100644 --- a/GUI/View/Frame/Fit2DFrame.cpp +++ b/GUI/View/Frame/Fit2DFrame.cpp @@ -84,7 +84,7 @@ Fit2DFrame::Fit2DFrame() void Fit2DFrame::setJobOrDatafileItem(QObject* item) { - auto job_item = dynamic_cast<JobItem*>(item); + auto* job_item = dynamic_cast<JobItem*>(item); ASSERT(job_item); JobItem* oldJob = jobItem(); @@ -124,8 +124,8 @@ void Fit2DFrame::onResetViewAction() void Fit2DFrame::connectItems() { // sync XY view area between simulated, real and difference plots - for (auto senderItem : allData2DItems()) - for (auto receiverItem : allData2DItems()) + for (auto* senderItem : allData2DItems()) + for (auto* receiverItem : allData2DItems()) if (receiverItem != senderItem) connect(senderItem, &DataItem::updateOtherPlots, receiverItem, &DataItem::checkXYranges, Qt::UniqueConnection); diff --git a/GUI/View/Instrument/DetectorEditor.cpp b/GUI/View/Instrument/DetectorEditor.cpp index 49200b995a7..d75b627b67f 100644 --- a/GUI/View/Instrument/DetectorEditor.cpp +++ b/GUI/View/Instrument/DetectorEditor.cpp @@ -49,7 +49,7 @@ DetectorEditor::DetectorEditor(QWidget* parent, GISASInstrumentItem* instrItem) auto* resolutionForm = new StaticGroupBox("Resolution function", this); xyrow->addWidget(resolutionForm); - auto resolutionLayout = new QFormLayout; + auto* resolutionLayout = new QFormLayout; resolutionForm->body()->setLayout(resolutionLayout); resolutionLayout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint); diff --git a/GUI/View/Scene/MaskGraphicsScene.cpp b/GUI/View/Scene/MaskGraphicsScene.cpp index b9401775480..4ce0e1acc4b 100644 --- a/GUI/View/Scene/MaskGraphicsScene.cpp +++ b/GUI/View/Scene/MaskGraphicsScene.cpp @@ -387,7 +387,7 @@ void MaskGraphicsScene::updateViews() maskView->addView(itemView); // Add views for the points of the PolygonItem - if (auto polygonItem = dynamic_cast<PolygonItem*>(maskItem)) { + if (auto* polygonItem = dynamic_cast<PolygonItem*>(maskItem)) { IShapeDisplay* const polygonView = itemView; for (PolygonPointItem* pointItem : polygonItem->points()) { IShapeDisplay* pointView = addViewForItem(pointItem); diff --git a/GUI/View/Setup/Scale1DEditor.cpp b/GUI/View/Setup/Scale1DEditor.cpp index 673121b8436..10c40113e7e 100644 --- a/GUI/View/Setup/Scale1DEditor.cpp +++ b/GUI/View/Setup/Scale1DEditor.cpp @@ -37,7 +37,7 @@ void Scale1DEditor::createPanelElements() if (allData1DItems().size() == 0) return; - for (auto item : allData1DItems()) + for (auto* item : allData1DItems()) disconnect(item, nullptr, this, nullptr); GUI::Util::Layout::clearLayout(m_mainLayout); @@ -66,7 +66,7 @@ void Scale1DEditor::createPanelElements() xFormLayout->addRow("Min:", GUI::Util::createDoubleSpinbox( [this] { return currentData1DItem()->axItemX()->min(); }, [this](double newValue) { - for (auto item : allData1DItems()) + for (auto* item : allData1DItems()) item->axItemX()->setMin(newValue); gProjectDocument.value()->setModified(); }, @@ -75,7 +75,7 @@ void Scale1DEditor::createPanelElements() xFormLayout->addRow("Max:", GUI::Util::createDoubleSpinbox( [this] { return currentData1DItem()->axItemX()->max(); }, [this](double newValue) { - for (auto item : allData1DItems()) + for (auto* item : allData1DItems()) item->axItemX()->setMax(newValue); gProjectDocument.value()->setModified(); }, @@ -92,7 +92,7 @@ void Scale1DEditor::createPanelElements() auto* logRangeSpinbox = GUI::Util::createDoubleSpinbox( [this] { return currentData1DItem()->axItemY()->logRangeOrders(); }, [this](double newValue) { - for (auto item : mainData1DItems()) { + for (auto* item : mainData1DItems()) { item->axItemY()->setLogRangeOrders(newValue); updateUIValues(); } @@ -103,7 +103,7 @@ void Scale1DEditor::createPanelElements() yFormLayout->addRow("Min:", GUI::Util::createDoubleSpinbox( [this] { return currentData1DItem()->axItemY()->min(); }, [this](double newValue) { - for (auto item : mainData1DItems()) { + for (auto* item : mainData1DItems()) { item->axItemY()->setMin(newValue); item->axItemY()->adjustLogRangeOrders(); updateUIValues(); @@ -115,7 +115,7 @@ void Scale1DEditor::createPanelElements() yFormLayout->addRow("Max:", GUI::Util::createDoubleSpinbox( [this] { return currentData1DItem()->axItemY()->max(); }, [this](double newValue) { - for (auto item : mainData1DItems()) { + for (auto* item : mainData1DItems()) { item->axItemY()->setMax(newValue); item->axItemY()->adjustLogRangeOrders(); updateUIValues(); @@ -128,7 +128,7 @@ void Scale1DEditor::createPanelElements() "log10", [this] { return currentData1DItem()->axItemY()->isLogScale(); }, [this, logRangeSpinbox](bool b) { logRangeSpinbox->setEnabled(b); - for (auto item : allData1DItems()) + for (auto* item : allData1DItems()) item->axItemY()->setLogScale(b); gProjectDocument.value()->setModified(); }, @@ -145,7 +145,7 @@ void Scale1DEditor::createPanelElements() &Scale1DEditor::updateUIValues, Qt::UniqueConnection); // update coordinates on axes units change - for (auto item : allData1DItems()) + for (auto* item : allData1DItems()) connect(item, &DataItem::axesUnitsChanged, this, &Scale1DEditor::updateItemCoords, Qt::UniqueConnection); } diff --git a/GUI/View/Setup/Scale2DEditor.cpp b/GUI/View/Setup/Scale2DEditor.cpp index c200d470ec8..74f623cf502 100644 --- a/GUI/View/Setup/Scale2DEditor.cpp +++ b/GUI/View/Setup/Scale2DEditor.cpp @@ -34,7 +34,7 @@ Scale2DEditor::Scale2DEditor(QWidget* parent) void Scale2DEditor::unsubscribe() { - for (auto item : allData2DItems()) + for (auto* item : allData2DItems()) disconnect(item, nullptr, this, nullptr); } @@ -65,7 +65,7 @@ void Scale2DEditor::createPanelElements() "Color scheme:", GUI::Util::createComboBox([this] { return currentData2DItem()->gradientCombo(); }, [this](const QString& newVal) { - for (auto item : allData2DItems()) + for (auto* item : allData2DItems()) item->setCurrentGradient(newVal); gProjectDocument.value()->setModified(); }, @@ -74,7 +74,7 @@ void Scale2DEditor::createPanelElements() m_mainLayout->addRow(GUI::Util::createCheckBox( "Interpolate", [this] { return currentData2DItem()->isInterpolated(); }, [this](bool b) { - for (auto item : allData2DItems()) + for (auto* item : allData2DItems()) item->setInterpolated(b); gProjectDocument.value()->setModified(); }, @@ -89,7 +89,7 @@ void Scale2DEditor::createPanelElements() xFormLayout->addRow("Min:", GUI::Util::createDoubleSpinbox( [this] { return currentData2DItem()->axItemX()->min(); }, [this](double newValue) { - for (auto item : allData2DItems()) + for (auto* item : allData2DItems()) item->axItemX()->setMin(newValue); gProjectDocument.value()->setModified(); }, @@ -98,7 +98,7 @@ void Scale2DEditor::createPanelElements() xFormLayout->addRow("Max:", GUI::Util::createDoubleSpinbox( [this] { return currentData2DItem()->axItemX()->max(); }, [this](double newValue) { - for (auto item : allData2DItems()) + for (auto* item : allData2DItems()) item->axItemX()->setMax(newValue); gProjectDocument.value()->setModified(); }, @@ -115,7 +115,7 @@ void Scale2DEditor::createPanelElements() yFormLayout->addRow("Min:", GUI::Util::createDoubleSpinbox( [this] { return currentData2DItem()->axItemY()->min(); }, [this](double newValue) { - for (auto item : allData2DItems()) + for (auto* item : allData2DItems()) item->axItemY()->setMin(newValue); gProjectDocument.value()->setModified(); }, @@ -124,7 +124,7 @@ void Scale2DEditor::createPanelElements() yFormLayout->addRow("Max:", GUI::Util::createDoubleSpinbox( [this] { return currentData2DItem()->axItemY()->max(); }, [this](double newValue) { - for (auto item : allData2DItems()) + for (auto* item : allData2DItems()) item->axItemY()->setMax(newValue); gProjectDocument.value()->setModified(); }, @@ -141,7 +141,7 @@ void Scale2DEditor::createPanelElements() auto* logRangeSpinbox = GUI::Util::createDoubleSpinbox( [this] { return currentData2DItem()->zAxisItem()->logRangeOrders(); }, [this](double newValue) { - for (auto item : mainData2DItems()) { + for (auto* item : mainData2DItems()) { item->zAxisItem()->setLogRangeOrders(newValue); updateUIValues(); } @@ -152,7 +152,7 @@ void Scale2DEditor::createPanelElements() zFormLayout->addRow("Min:", GUI::Util::createDoubleSpinbox( [this] { return currentData2DItem()->zAxisItem()->min(); }, [this](double newValue) { - for (auto item : allData2DItems()) { + for (auto* item : allData2DItems()) { item->zAxisItem()->setMin(newValue); item->zAxisItem()->adjustLogRangeOrders(); updateUIValues(); @@ -164,7 +164,7 @@ void Scale2DEditor::createPanelElements() zFormLayout->addRow("Max:", GUI::Util::createDoubleSpinbox( [this] { return currentData2DItem()->zAxisItem()->max(); }, [this](double newValue) { - for (auto item : mainData2DItems()) { + for (auto* item : mainData2DItems()) { item->zAxisItem()->setMax(newValue); item->zAxisItem()->adjustLogRangeOrders(); updateUIValues(); @@ -177,7 +177,7 @@ void Scale2DEditor::createPanelElements() "log10", [this] { return currentData2DItem()->zAxisItem()->isLogScale(); }, [this, logRangeSpinbox](bool b) { logRangeSpinbox->setEnabled(b); - for (auto item : allData2DItems()) + for (auto* item : allData2DItems()) item->zAxisItem()->setLogScale(b); gProjectDocument.value()->setModified(); }, @@ -188,7 +188,7 @@ void Scale2DEditor::createPanelElements() zFormLayout->addRow(GUI::Util::createCheckBox( "Visible", [this] { return currentData2DItem()->zAxisItem()->isVisible(); }, [this](bool b) { - for (auto item : allData2DItems()) + for (auto* item : allData2DItems()) item->zAxisItem()->setVisible(b); gProjectDocument.value()->setModified(); }, -- GitLab From 94607134bc67bb61e3fa1c97b56b664b7e0f7ba2 Mon Sep 17 00:00:00 2001 From: Joachim Wuttke <j.wuttke@fz-juelich.de> Date: Wed, 29 Nov 2023 23:56:45 +0100 Subject: [PATCH 04/33] ready to tidy readability-inconsistent-declaration-parameter-name --- .clang-tidy | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index aab41589734..08b7df16f04 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -30,8 +30,8 @@ Checks: '*, -readability-non-const-parameter, -readability-container-size-empty, -readability-delete-null-pointer, --readability-inconsistent-declaration-parameter-name, -readability-qualified-auto, +readability-inconsistent-declaration-parameter-name, +-readability-qualified-auto, -readability-simplify-boolean-expr, -- GitLab From e488d7edd7775c91e0cdd14ff58f41bfd6cec33e Mon Sep 17 00:00:00 2001 From: Joachim Wuttke <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 00:23:16 +0100 Subject: [PATCH 05/33] manually correct inconsistent argument names --- GUI/Model/Device/DatafileItem.cpp | 8 ++++---- GUI/Model/Device/DatafileItem.h | 2 +- GUI/Model/Model/ParameterTuningModel.cpp | 8 ++++---- GUI/Model/Sample/SampleItem.h | 4 ++-- GUI/Support/XML/UtilXML.h | 8 ++++---- GUI/View/Fit/FitSessionWidget.h | 2 +- GUI/View/Instrument/DepthprobeInstrumentEditor.h | 2 +- GUI/View/Sample/CompoundForm.cpp | 6 +++--- GUI/View/Sample/ParticleLayoutForm.cpp | 6 +++--- GUI/View/Sample/SampleEditorController.cpp | 16 ++++++++-------- GUI/View/Sample/SampleEditorController.h | 2 +- 11 files changed, 32 insertions(+), 32 deletions(-) diff --git a/GUI/Model/Device/DatafileItem.cpp b/GUI/Model/Device/DatafileItem.cpp index 0f9a67aced8..8667b610359 100644 --- a/GUI/Model/Device/DatafileItem.cpp +++ b/GUI/Model/Device/DatafileItem.cpp @@ -362,15 +362,15 @@ QString DatafileItem::readDatafiles(const QString& projectDir, MessageService* m return (dataError + "\n" + nativeDataError); } -void DatafileItem::copyTo(DatafileItem* const realdata_dst) const +void DatafileItem::copyTo(DatafileItem* const dest) const { - GUI::Util::copyContents(this, realdata_dst); + GUI::Util::copyContents(this, dest); if (m_dataItem) - realdata_dst->dataItem()->setDatafield(*dataItem()->c_field()); + dest->dataItem()->setDatafield(*dataItem()->c_field()); if (m_nativeDataItem) - realdata_dst->nativeDataItem()->setDatafield(*nativeDataItem()->c_field()); + dest->nativeDataItem()->setDatafield(*nativeDataItem()->c_field()); } std::vector<int> DatafileItem::shape() const diff --git a/GUI/Model/Device/DatafileItem.h b/GUI/Model/Device/DatafileItem.h index a379100f527..aa7ce51972a 100644 --- a/GUI/Model/Device/DatafileItem.h +++ b/GUI/Model/Device/DatafileItem.h @@ -89,7 +89,7 @@ public: // other //! Make a copy instance. - void copyTo(DatafileItem* const realdata_new) const; + void copyTo(DatafileItem* const dest) const; //! Returns the shape of underlying data item std::vector<int> shape() const; diff --git a/GUI/Model/Model/ParameterTuningModel.cpp b/GUI/Model/Model/ParameterTuningModel.cpp index 24b9e33d76a..ade797ae66c 100644 --- a/GUI/Model/Model/ParameterTuningModel.cpp +++ b/GUI/Model/Model/ParameterTuningModel.cpp @@ -115,15 +115,15 @@ QModelIndex ParameterTuningModel::parent(const QModelIndex& index) const return createIndex(row, 0, item->parent()); } -int ParameterTuningModel::rowCount(const QModelIndex& index) const +int ParameterTuningModel::rowCount(const QModelIndex& parent) const { - if (index.column() > 0) + if (parent.column() > 0) return 0; - if (!index.isValid()) + if (!parent.isValid()) return m_rootObject->children().size(); - QObject* item = static_cast<QObject*>(index.internalPointer()); + QObject* item = static_cast<QObject*>(parent.internalPointer()); return item->children().size(); } diff --git a/GUI/Model/Sample/SampleItem.h b/GUI/Model/Sample/SampleItem.h index 57b7685e5bc..f4b2ca3d279 100644 --- a/GUI/Model/Sample/SampleItem.h +++ b/GUI/Model/Sample/SampleItem.h @@ -61,8 +61,8 @@ public: LayerItem* createLayerItemAt(int index = -1); void updateTopBottom(); - void removeLayer(LayerItem* item); - void moveLayer(LayerItem* item, LayerItem* aboveThisLayer); + void removeLayer(LayerItem* layer); + void moveLayer(LayerItem* layer, LayerItem* aboveThisLayer); void writeTo(QXmlStreamWriter* w) const; void readFrom(QXmlStreamReader* r); diff --git a/GUI/Support/XML/UtilXML.h b/GUI/Support/XML/UtilXML.h index d7bce77962b..598fcba42b0 100644 --- a/GUI/Support/XML/UtilXML.h +++ b/GUI/Support/XML/UtilXML.h @@ -50,8 +50,8 @@ void writeAttribute(QXmlStreamWriter* writer, const QString& attributeName, unsi void writeAttribute(QXmlStreamWriter* writer, const QString& attributeName, double d); void writeAttribute(QXmlStreamWriter* writer, const QString& attributeName, QString s); void writeAttribute(QXmlStreamWriter* writer, const QString& attributeName, QColor c); -void writeAttribute(QXmlStreamWriter* writer, const QString& attributeName, const R3& vec); -void writeAttribute(QXmlStreamWriter* writer, const QString& attributeName, const complex_t& c); +void writeAttribute(QXmlStreamWriter* writer, const QString& attributeBaseName, const R3& vec); +void writeAttribute(QXmlStreamWriter* writer, const QString& attributeBaseName, const complex_t& c); unsigned readUIntAttribute(QXmlStreamReader* reader, const QString& attributeName); @@ -61,8 +61,8 @@ void readAttribute(QXmlStreamReader* reader, const QString& attributeName, unsig void readAttribute(QXmlStreamReader* reader, const QString& attributeName, double* d); void readAttribute(QXmlStreamReader* reader, const QString& attributeName, QString* s); void readAttribute(QXmlStreamReader* reader, const QString& attributeName, QColor* c); -void readAttribute(QXmlStreamReader* reader, const QString& attributeName, R3* vec); -void readAttribute(QXmlStreamReader* reader, const QString& attributeName, complex_t* c); +void readAttribute(QXmlStreamReader* reader, const QString& attributeBaseName, R3* vec); +void readAttribute(QXmlStreamReader* reader, const QString& attributeBaseName, complex_t* c); } // namespace XML diff --git a/GUI/View/Fit/FitSessionWidget.h b/GUI/View/Fit/FitSessionWidget.h index b67b3b3b881..1185633afeb 100644 --- a/GUI/View/Fit/FitSessionWidget.h +++ b/GUI/View/Fit/FitSessionWidget.h @@ -34,7 +34,7 @@ public: FitSessionWidget(QWidget* parent = nullptr); ~FitSessionWidget(); - void setJobItem(JobItem* jobItem); + void setJobItem(JobItem* job_item); void setModelTuningWidget(ParameterTuningWidget* tuningWidget); void setSessionController(FitSessionController* sessionController); diff --git a/GUI/View/Instrument/DepthprobeInstrumentEditor.h b/GUI/View/Instrument/DepthprobeInstrumentEditor.h index 30222818623..a4a5e8841eb 100644 --- a/GUI/View/Instrument/DepthprobeInstrumentEditor.h +++ b/GUI/View/Instrument/DepthprobeInstrumentEditor.h @@ -26,7 +26,7 @@ class MultiInstrumentNotifier; class DepthprobeInstrumentEditor : public QWidget { Q_OBJECT public: - DepthprobeInstrumentEditor(QWidget* parent, DepthprobeInstrumentItem* item, + DepthprobeInstrumentEditor(QWidget* parent, DepthprobeInstrumentItem* instrument, MultiInstrumentNotifier* ec); signals: diff --git a/GUI/View/Sample/CompoundForm.cpp b/GUI/View/Sample/CompoundForm.cpp index 8bec549fdcf..57e57b9af17 100644 --- a/GUI/View/Sample/CompoundForm.cpp +++ b/GUI/View/Sample/CompoundForm.cpp @@ -76,15 +76,15 @@ CompoundItem* CompoundForm::compositionItem() const return m_compositionItem; } -void CompoundForm::onParticleAdded(ItemWithParticles* p) +void CompoundForm::onParticleAdded(ItemWithParticles* item) { - int index = m_compositionItem->itemsWithParticles().indexOf(p); + int index = m_compositionItem->itemsWithParticles().indexOf(item); const int rowInLayout = m_layout->rowCount() - 1 - (m_compositionItem->itemsWithParticles().size() - 1) + index; // -1: btn m_layout->insertRow(rowInLayout, - LayerEditorUtil::createWidgetForItemWithParticles(this, p, false, m_ec)); + LayerEditorUtil::createWidgetForItemWithParticles(this, item, false, m_ec)); } void CompoundForm::onAboutToRemoveParticle(ItemWithParticles* item) diff --git a/GUI/View/Sample/ParticleLayoutForm.cpp b/GUI/View/Sample/ParticleLayoutForm.cpp index b32df18fc61..773531e2650 100644 --- a/GUI/View/Sample/ParticleLayoutForm.cpp +++ b/GUI/View/Sample/ParticleLayoutForm.cpp @@ -101,14 +101,14 @@ ParticleLayoutItem* ParticleLayoutForm::layoutItem() const return m_layoutItem; } -void ParticleLayoutForm::onParticleAdded(ItemWithParticles* p) +void ParticleLayoutForm::onParticleAdded(ItemWithParticles* item) { - int index = m_layoutItem->itemsWithParticles().indexOf(p); + int index = m_layoutItem->itemsWithParticles().indexOf(item); const int rowInLayout = m_layout->rowCount() - 1 - (m_layoutItem->itemsWithParticles().size() - 1) + index; // -1: btn m_layout->insertRow(rowInLayout, - LayerEditorUtil::createWidgetForItemWithParticles(this, p, true, m_ec)); + LayerEditorUtil::createWidgetForItemWithParticles(this, item, true, m_ec)); } void ParticleLayoutForm::onAboutToRemoveParticle(ItemWithParticles* item) diff --git a/GUI/View/Sample/SampleEditorController.cpp b/GUI/View/Sample/SampleEditorController.cpp index fb7742d1a98..3cc17663805 100644 --- a/GUI/View/Sample/SampleEditorController.cpp +++ b/GUI/View/Sample/SampleEditorController.cpp @@ -181,20 +181,20 @@ void SampleEditorController::onParticleLayoutAdded(ParticleLayoutItem* layout, w->onParticleAdded(newItem); } -void SampleEditorController::addParticleLayoutItem(ParticleLayoutItem* layoutItem, +void SampleEditorController::addParticleLayoutItem(ParticleLayoutItem* layout, FormFactorItemCatalog::Type formFactorType) { auto* newParticle = createAndInitItem(formFactorType); - layoutItem->addItemWithParticleSelection(newParticle); - onParticleLayoutAdded(layoutItem, newParticle); + layout->addItemWithParticleSelection(newParticle); + onParticleLayoutAdded(layout, newParticle); } -void SampleEditorController::addParticleLayoutItem(ParticleLayoutItem* layoutItem, +void SampleEditorController::addParticleLayoutItem(ParticleLayoutItem* layout, ItemWithParticlesCatalog::Type type) { auto* newItem = createAndInitItem(type); - layoutItem->addItemWithParticleSelection(newItem); - onParticleLayoutAdded(layoutItem, newItem); + layout->addItemWithParticleSelection(newItem); + onParticleLayoutAdded(layout, newItem); } void SampleEditorController::duplicateItemWithParticles(ItemWithParticles* item) @@ -251,9 +251,9 @@ SampleEditorController::createAndInitItem(FormFactorItemCatalog::Type formFactor } ItemWithParticles* -SampleEditorController::createAndInitItem(ItemWithParticlesCatalog::Type itemType) const +SampleEditorController::createAndInitItem(ItemWithParticlesCatalog::Type type) const { - auto* newItem = ItemWithParticlesCatalog::create(itemType, materialModel()); + auto* newItem = ItemWithParticlesCatalog::create(type, materialModel()); if (auto* p = dynamic_cast<ItemWithMaterial*>(newItem)) p->setMaterial(materialModel()->defaultMaterialItem()); diff --git a/GUI/View/Sample/SampleEditorController.h b/GUI/View/Sample/SampleEditorController.h index 50831f7fa7f..71792337909 100644 --- a/GUI/View/Sample/SampleEditorController.h +++ b/GUI/View/Sample/SampleEditorController.h @@ -80,7 +80,7 @@ public: void onParticleLayoutAdded(ParticleLayoutItem* layout, ItemWithParticles* newItem); void addParticleLayoutItem(ParticleLayoutItem* layout, ItemWithParticlesCatalog::Type type); - void addParticleLayoutItem(ParticleLayoutItem* layout, FormFactorItemCatalog::Type t); + void addParticleLayoutItem(ParticleLayoutItem* layout, FormFactorItemCatalog::Type type); ParticleLayoutItem* parentLayoutItem(ItemWithParticles* item); void onParticleCompoundAdded(CompoundItem* composition, ItemWithParticles* newItem); -- GitLab From 5a36aa84bdf85106a4bb63e5a8a142d8160cdd46 Mon Sep 17 00:00:00 2001 From: Joachim Wuttke <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 00:24:11 +0100 Subject: [PATCH 06/33] ready to tidy modernize-use-using --- .clang-tidy | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index 08b7df16f04..4e9e1f87957 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -23,14 +23,14 @@ Checks: '*, -modernize-make-unique, -modernize-pass-by-value, -modernize-raw-string-literal, --modernize-use-using, +modernize-use-using, -performance-for-range-copy, -readability-avoid-const-params-in-decls, -readability-const-return-type, -readability-non-const-parameter, -readability-container-size-empty, -readability-delete-null-pointer, -readability-inconsistent-declaration-parameter-name, +-readability-inconsistent-declaration-parameter-name, -readability-qualified-auto, -readability-simplify-boolean-expr, -- GitLab From ec5c481f2e113a1f2bb4d42535ed22aa72b23aff Mon Sep 17 00:00:00 2001 From: Joachim Wuttke <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 07:05:10 +0100 Subject: [PATCH 07/33] tidy/modernize-use-using --- Tests/Unit/GUI/TestDatafilesModel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Unit/GUI/TestDatafilesModel.cpp b/Tests/Unit/GUI/TestDatafilesModel.cpp index 4d7bb26702b..9e5b14b10f1 100644 --- a/Tests/Unit/GUI/TestDatafilesModel.cpp +++ b/Tests/Unit/GUI/TestDatafilesModel.cpp @@ -130,7 +130,7 @@ TEST(TestDatafilesModel, saveXMLData) std::ifstream f1(file1.toStdString()); std::ifstream f2(file2.toStdString()); - typedef std::istreambuf_iterator<char> it; + using it = std::istreambuf_iterator<char>; std::vector<char> contents1((it(f1)), it()); std::vector<char> contents2((it(f2)), it()); -- GitLab From f4b9b9de9fa7ff37b8f7816263cc3c6cf0b2e217 Mon Sep 17 00:00:00 2001 From: Joachim Wuttke <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 07:16:43 +0100 Subject: [PATCH 08/33] ready to tidy modernize-pass-by-value --- .clang-tidy | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index 4e9e1f87957..ecedda1cf4a 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -21,9 +21,9 @@ Checks: '*, -misc-uniqueptr-reset-release, -modernize-avoid-bind, -modernize-make-unique, --modernize-pass-by-value, +modernize-pass-by-value, -modernize-raw-string-literal, -modernize-use-using, +-modernize-use-using, -performance-for-range-copy, -readability-avoid-const-params-in-decls, -readability-const-return-type, -- GitLab From 683535620108dc3bcefb5383ce4bf11f405bac5c Mon Sep 17 00:00:00 2001 From: Joachim Wuttke <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 08:04:28 +0100 Subject: [PATCH 09/33] tidy/modernize-pass-by-value --- GUI/Model/Data/DataItem.cpp | 5 +++-- GUI/Model/Data/DataItem.h | 2 +- GUI/Model/Job/FitParameterItem.cpp | 5 +++-- GUI/Model/Job/FitParameterItem.h | 2 +- GUI/Model/Job/ParameterBackup.cpp | 5 +++-- GUI/Model/Job/ParameterBackup.h | 2 +- GUI/Model/Job/ParameterTreeItems.cpp | 5 +++-- GUI/Model/Job/ParameterTreeItems.h | 2 +- Tests/Functional/Mumufit/ResidualTestPlan.cpp | 3 ++- Tests/Functional/Mumufit/ScalarTestPlan.cpp | 3 ++- 10 files changed, 20 insertions(+), 14 deletions(-) diff --git a/GUI/Model/Data/DataItem.cpp b/GUI/Model/Data/DataItem.cpp index 665e1e50cbf..cfd3ef5e9ca 100644 --- a/GUI/Model/Data/DataItem.cpp +++ b/GUI/Model/Data/DataItem.cpp @@ -22,6 +22,7 @@ #include "GUI/Support/Util/MessageService.h" #include "GUI/Support/XML/UtilXML.h" #include <QFile> +#include <utility> namespace { namespace Tag { @@ -35,8 +36,8 @@ const QString YAxis("YAxis"); } // namespace -DataItem::DataItem(const QString& modelType) - : TYPE(modelType) +DataItem::DataItem(QString modelType) + : TYPE(std::move(modelType)) , m_fname("undefined") , m_xAxis(std::make_unique<BasicAxisItem>()) , m_yAxis(std::make_unique<AmplitudeAxisItem>()) diff --git a/GUI/Model/Data/DataItem.h b/GUI/Model/Data/DataItem.h index 4960a5284c7..8196f390c76 100644 --- a/GUI/Model/Data/DataItem.h +++ b/GUI/Model/Data/DataItem.h @@ -34,7 +34,7 @@ class MessageService; class DataItem : public QObject { Q_OBJECT protected: - explicit DataItem(const QString& modelType); + explicit DataItem(QString modelType); public: ~DataItem(); diff --git a/GUI/Model/Job/FitParameterItem.cpp b/GUI/Model/Job/FitParameterItem.cpp index 14537de50f7..476afa47bf5 100644 --- a/GUI/Model/Job/FitParameterItem.cpp +++ b/GUI/Model/Job/FitParameterItem.cpp @@ -16,6 +16,7 @@ #include "Base/Util/Assert.h" #include "GUI/Model/Job/FitParameterLinkItem.h" #include "GUI/Support/XML/UtilXML.h" +#include <utility> namespace { namespace Tag { @@ -34,9 +35,9 @@ const QString BaseData("BaseData"); } // namespace Tag } // namespace -FitTypeItem::FitTypeItem(const ComboProperty& type, QObject* parent) +FitTypeItem::FitTypeItem(ComboProperty type, QObject* parent) : QObject(parent) - , m_type(type) + , m_type(std::move(type)) { setObjectName("Type"); } diff --git a/GUI/Model/Job/FitParameterItem.h b/GUI/Model/Job/FitParameterItem.h index c6af7789c3b..a5d580e02d9 100644 --- a/GUI/Model/Job/FitParameterItem.h +++ b/GUI/Model/Job/FitParameterItem.h @@ -25,7 +25,7 @@ class FitParameterLinkItem; class FitTypeItem : public QObject { Q_OBJECT public: - explicit FitTypeItem(const ComboProperty& type, QObject* parent = nullptr); + explicit FitTypeItem(ComboProperty type, QObject* parent = nullptr); const ComboProperty& type() const { return m_type; } void setType(const ComboProperty& c) { m_type = c; } diff --git a/GUI/Model/Job/ParameterBackup.cpp b/GUI/Model/Job/ParameterBackup.cpp index bc4b0c29343..ae3ffef4bad 100644 --- a/GUI/Model/Job/ParameterBackup.cpp +++ b/GUI/Model/Job/ParameterBackup.cpp @@ -14,6 +14,7 @@ #include "GUI/Model/Job/ParameterBackup.h" #include "GUI/Support/XML/UtilXML.h" +#include <utility> namespace { namespace Tag { @@ -25,8 +26,8 @@ const QString BackupValue("BackupValue"); } // namespace Tag } // namespace -ParameterBackup::ParameterBackup(const QString& title) - : m_title(title) +ParameterBackup::ParameterBackup(QString title) + : m_title(std::move(title)) { } diff --git a/GUI/Model/Job/ParameterBackup.h b/GUI/Model/Job/ParameterBackup.h index 72396e57e8e..5b48308d0f9 100644 --- a/GUI/Model/Job/ParameterBackup.h +++ b/GUI/Model/Job/ParameterBackup.h @@ -22,7 +22,7 @@ class ParameterBackup { public: - ParameterBackup(const QString& title = ""); + ParameterBackup(QString title = ""); QString title() const { return m_title; } void setTitle(const QString& title) { m_title = title; } diff --git a/GUI/Model/Job/ParameterTreeItems.cpp b/GUI/Model/Job/ParameterTreeItems.cpp index f9b5b1f683e..3c923c5aa62 100644 --- a/GUI/Model/Job/ParameterTreeItems.cpp +++ b/GUI/Model/Job/ParameterTreeItems.cpp @@ -15,6 +15,7 @@ #include "GUI/Model/Job/ParameterTreeItems.h" #include "Base/Util/Assert.h" #include "GUI/Support/XML/UtilXML.h" +#include <utility> namespace { namespace Tag { @@ -49,9 +50,9 @@ ParameterItem* findParameterItem(QObject* item, const QString& link) // class ParameterLabelItem // ************************************************************************************************ -ParameterLabelItem::ParameterLabelItem(const QString& title, QObject* parent) +ParameterLabelItem::ParameterLabelItem(QString title, QObject* parent) : QObject(parent) - , m_title(title) + , m_title(std::move(title)) { } diff --git a/GUI/Model/Job/ParameterTreeItems.h b/GUI/Model/Job/ParameterTreeItems.h index ead125bf52d..21f2591982e 100644 --- a/GUI/Model/Job/ParameterTreeItems.h +++ b/GUI/Model/Job/ParameterTreeItems.h @@ -31,7 +31,7 @@ class ParameterLabelItem : public QObject { Q_OBJECT public: - ParameterLabelItem(const QString& title, QObject* parent); + ParameterLabelItem(QString title, QObject* parent); QString title() const { return m_title; } void setTitle(const QString& title) { m_title = title; } diff --git a/Tests/Functional/Mumufit/ResidualTestPlan.cpp b/Tests/Functional/Mumufit/ResidualTestPlan.cpp index 00a7341e2aa..70b630aa22c 100644 --- a/Tests/Functional/Mumufit/ResidualTestPlan.cpp +++ b/Tests/Functional/Mumufit/ResidualTestPlan.cpp @@ -16,11 +16,12 @@ #include "Fit/Kernel/Minimizer.h" #include <cassert> #include <iostream> +#include <utility> using namespace mumufit; ResidualTestPlan::ResidualTestPlan(const std::string&, test_funct_t func) - : m_test_func(func) + : m_test_func(std::move(func)) { m_xvalues.resize(101); for (int i = 0; i <= 100; ++i) diff --git a/Tests/Functional/Mumufit/ScalarTestPlan.cpp b/Tests/Functional/Mumufit/ScalarTestPlan.cpp index b16512e6bcd..1e1570f8079 100644 --- a/Tests/Functional/Mumufit/ScalarTestPlan.cpp +++ b/Tests/Functional/Mumufit/ScalarTestPlan.cpp @@ -17,12 +17,13 @@ #include <cmath> #include <iostream> #include <sstream> +#include <utility> using namespace mumufit; ScalarTestPlan::ScalarTestPlan(const std::string&, scalar_function_t func, double expected_minimum, double tolerance) - : m_objective_function(func) + : m_objective_function(std::move(func)) , m_expected_minimum(expected_minimum) , m_tolerance_on_minimum(tolerance) { -- GitLab From d7247d9da5ac53d493d4077fbc75eaf8bbe1a47f Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 08:09:14 +0100 Subject: [PATCH 10/33] tidy ready for unique/make --- .clang-tidy | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index ecedda1cf4a..50f4bdfd1fc 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -18,10 +18,10 @@ Checks: '*, -*, -cppcoreguidelines-explicit-virtual-functions, -llvm-qualified-auto, --misc-uniqueptr-reset-release, --modernize-avoid-bind, --modernize-make-unique, -modernize-pass-by-value, +misc-uniqueptr-reset-release, +modernize-avoid-bind, +modernize-make-unique, +-modernize-pass-by-value, -modernize-raw-string-literal, -modernize-use-using, -performance-for-range-copy, -- GitLab From 6723f6cc335b5b64c728cbe5d119ff6d3d422cb1 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 08:14:08 +0100 Subject: [PATCH 11/33] tidy/modernize-make-unique, misc-uniqueptr-reset-release + manual cleanup --- GUI/Model/Data/DataItem.cpp | 2 +- GUI/Model/Data/DataItem.h | 2 +- GUI/Model/Device/InstrumentItems.cpp | 4 ++-- GUI/Model/Job/FitParameterItem.cpp | 2 +- GUI/Model/Job/FitParameterItem.h | 2 +- GUI/Model/Job/ParameterBackup.cpp | 2 +- GUI/Model/Job/ParameterBackup.h | 2 +- GUI/Model/Job/ParameterTreeItems.cpp | 5 +++-- GUI/Model/Job/ParameterTreeItems.h | 2 +- GUI/Model/Sample/CoreAndShellItem.cpp | 4 ++-- GUI/View/Manager/ProjectManager.cpp | 3 ++- GUI/View/Tuning/FitParameterWidget.cpp | 3 ++- 12 files changed, 18 insertions(+), 15 deletions(-) diff --git a/GUI/Model/Data/DataItem.cpp b/GUI/Model/Data/DataItem.cpp index cfd3ef5e9ca..9ee84ffbff6 100644 --- a/GUI/Model/Data/DataItem.cpp +++ b/GUI/Model/Data/DataItem.cpp @@ -36,7 +36,7 @@ const QString YAxis("YAxis"); } // namespace -DataItem::DataItem(QString modelType) +DataItem::DataItem(QString modelType) : TYPE(std::move(modelType)) , m_fname("undefined") , m_xAxis(std::make_unique<BasicAxisItem>()) diff --git a/GUI/Model/Data/DataItem.h b/GUI/Model/Data/DataItem.h index 8196f390c76..50b60a90bf5 100644 --- a/GUI/Model/Data/DataItem.h +++ b/GUI/Model/Data/DataItem.h @@ -34,7 +34,7 @@ class MessageService; class DataItem : public QObject { Q_OBJECT protected: - explicit DataItem(QString modelType); + explicit DataItem(QString modelType); public: ~DataItem(); diff --git a/GUI/Model/Device/InstrumentItems.cpp b/GUI/Model/Device/InstrumentItems.cpp index 2af8e505b71..e0e60d85635 100644 --- a/GUI/Model/Device/InstrumentItems.cpp +++ b/GUI/Model/Device/InstrumentItems.cpp @@ -676,8 +676,8 @@ void OffspecInstrumentItem::readFrom(QXmlStreamReader* r) GISASInstrumentItem::GISASInstrumentItem() { - m_detectorItem.reset(new DetectorItem()); - m_beamItem.reset(new BeamItem()); + m_detectorItem = std::make_unique<DetectorItem>(); + m_beamItem = std::make_unique<BeamItem>(); } std::vector<int> GISASInstrumentItem::shape() const diff --git a/GUI/Model/Job/FitParameterItem.cpp b/GUI/Model/Job/FitParameterItem.cpp index 476afa47bf5..0e43193571c 100644 --- a/GUI/Model/Job/FitParameterItem.cpp +++ b/GUI/Model/Job/FitParameterItem.cpp @@ -35,7 +35,7 @@ const QString BaseData("BaseData"); } // namespace Tag } // namespace -FitTypeItem::FitTypeItem(ComboProperty type, QObject* parent) +FitTypeItem::FitTypeItem(ComboProperty type, QObject* parent) : QObject(parent) , m_type(std::move(type)) { diff --git a/GUI/Model/Job/FitParameterItem.h b/GUI/Model/Job/FitParameterItem.h index a5d580e02d9..a2285cf9716 100644 --- a/GUI/Model/Job/FitParameterItem.h +++ b/GUI/Model/Job/FitParameterItem.h @@ -25,7 +25,7 @@ class FitParameterLinkItem; class FitTypeItem : public QObject { Q_OBJECT public: - explicit FitTypeItem(ComboProperty type, QObject* parent = nullptr); + explicit FitTypeItem(ComboProperty type, QObject* parent = nullptr); const ComboProperty& type() const { return m_type; } void setType(const ComboProperty& c) { m_type = c; } diff --git a/GUI/Model/Job/ParameterBackup.cpp b/GUI/Model/Job/ParameterBackup.cpp index ae3ffef4bad..403a0b8cfd8 100644 --- a/GUI/Model/Job/ParameterBackup.cpp +++ b/GUI/Model/Job/ParameterBackup.cpp @@ -26,7 +26,7 @@ const QString BackupValue("BackupValue"); } // namespace Tag } // namespace -ParameterBackup::ParameterBackup(QString title) +ParameterBackup::ParameterBackup(QString title) : m_title(std::move(title)) { } diff --git a/GUI/Model/Job/ParameterBackup.h b/GUI/Model/Job/ParameterBackup.h index 5b48308d0f9..8cf056a892c 100644 --- a/GUI/Model/Job/ParameterBackup.h +++ b/GUI/Model/Job/ParameterBackup.h @@ -22,7 +22,7 @@ class ParameterBackup { public: - ParameterBackup(QString title = ""); + ParameterBackup(QString title = ""); QString title() const { return m_title; } void setTitle(const QString& title) { m_title = title; } diff --git a/GUI/Model/Job/ParameterTreeItems.cpp b/GUI/Model/Job/ParameterTreeItems.cpp index 3c923c5aa62..52c99b26f81 100644 --- a/GUI/Model/Job/ParameterTreeItems.cpp +++ b/GUI/Model/Job/ParameterTreeItems.cpp @@ -15,6 +15,7 @@ #include "GUI/Model/Job/ParameterTreeItems.h" #include "Base/Util/Assert.h" #include "GUI/Support/XML/UtilXML.h" +#include <memory> #include <utility> namespace { @@ -50,7 +51,7 @@ ParameterItem* findParameterItem(QObject* item, const QString& link) // class ParameterLabelItem // ************************************************************************************************ -ParameterLabelItem::ParameterLabelItem(QString title, QObject* parent) +ParameterLabelItem::ParameterLabelItem(QString title, QObject* parent) : QObject(parent) , m_title(std::move(title)) { @@ -147,7 +148,7 @@ QString ParameterItem::titleForFitItem() const ParameterContainerItem::ParameterContainerItem() { - m_parameterTreeRoot.reset(new QObject()); + m_parameterTreeRoot = std::make_unique<QObject>(); } void ParameterContainerItem::writeTo(QXmlStreamWriter* w) const diff --git a/GUI/Model/Job/ParameterTreeItems.h b/GUI/Model/Job/ParameterTreeItems.h index 21f2591982e..848b579b9e6 100644 --- a/GUI/Model/Job/ParameterTreeItems.h +++ b/GUI/Model/Job/ParameterTreeItems.h @@ -31,7 +31,7 @@ class ParameterLabelItem : public QObject { Q_OBJECT public: - ParameterLabelItem(QString title, QObject* parent); + ParameterLabelItem(QString title, QObject* parent); QString title() const { return m_title; } void setTitle(const QString& title) { m_title = title; } diff --git a/GUI/Model/Sample/CoreAndShellItem.cpp b/GUI/Model/Sample/CoreAndShellItem.cpp index 4f50a590e37..d6b9af0abc1 100644 --- a/GUI/Model/Sample/CoreAndShellItem.cpp +++ b/GUI/Model/Sample/CoreAndShellItem.cpp @@ -154,7 +154,7 @@ ParticleItem* CoreAndShellItem::coreItem() const ParticleItem* CoreAndShellItem::createCoreItem(const MaterialModel* materials) { - m_core.reset(new ParticleItem(materials)); + m_core = std::make_unique<ParticleItem>(materials); m_core->setMaterial(materials->defaultCoreMaterialItem()); return m_core.get(); } @@ -166,7 +166,7 @@ ParticleItem* CoreAndShellItem::shellItem() const ParticleItem* CoreAndShellItem::createShellItem(const MaterialModel* materials) { - m_shell.reset(new ParticleItem(materials)); + m_shell = std::make_unique<ParticleItem>(materials); m_shell->setMaterial(materials->defaultParticleMaterialItem()); // position is not used for shell item diff --git a/GUI/View/Manager/ProjectManager.cpp b/GUI/View/Manager/ProjectManager.cpp index a81461ef59d..1af6318058c 100644 --- a/GUI/View/Manager/ProjectManager.cpp +++ b/GUI/View/Manager/ProjectManager.cpp @@ -28,6 +28,7 @@ #include <QFileDialog> #include <QMessageBox> #include <QSettings> +#include <memory> namespace { @@ -193,7 +194,7 @@ AutosaveController* ProjectManager::autosaveController() const void ProjectManager::setAutosaveEnabled(bool value) { if (value) - m_autosave.reset(new AutosaveController()); + m_autosave = std::make_unique<AutosaveController>(); else m_autosave.reset(); diff --git a/GUI/View/Tuning/FitParameterWidget.cpp b/GUI/View/Tuning/FitParameterWidget.cpp index 5d1e886abef..6b4c15b6155 100644 --- a/GUI/View/Tuning/FitParameterWidget.cpp +++ b/GUI/View/Tuning/FitParameterWidget.cpp @@ -28,6 +28,7 @@ #include <QMenu> #include <QVBoxLayout> #include <boost/polymorphic_cast.hpp> +#include <memory> FitParameterWidget::FitParameterWidget() : m_treeView(new QTreeView) @@ -250,7 +251,7 @@ void FitParameterWidget::init_fit_model() { m_treeView->setModel(nullptr); - m_fitParameterModel.reset(new FitParameterModel(fitContainerItem(), m_job_item)); + m_fitParameterModel = std::make_unique<FitParameterModel>(fitContainerItem(), m_job_item); m_treeView->setModel(m_fitParameterModel.get()); connect(m_fitParameterModel.get(), &FitParameterModel::dataChanged, this, -- GitLab From 5961cabbf552d7f3340a80cceabec13538959971 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 08:14:40 +0100 Subject: [PATCH 12/33] ready for cppcoreguidelines-explicit-virtual-functions and llvm-qualified-auto --- .clang-tidy | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index 50f4bdfd1fc..1a9d5f3a777 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -16,11 +16,11 @@ Checks: '*, -*, --cppcoreguidelines-explicit-virtual-functions, --llvm-qualified-auto, -misc-uniqueptr-reset-release, -modernize-avoid-bind, -modernize-make-unique, +cppcoreguidelines-explicit-virtual-functions, +llvm-qualified-auto, +-misc-uniqueptr-reset-release, +-modernize-avoid-bind, +-modernize-make-unique, -modernize-pass-by-value, -modernize-raw-string-literal, -modernize-use-using, -- GitLab From df35ac346238b19aee306b75330cfd56d6407d34 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 08:19:38 +0100 Subject: [PATCH 13/33] tidy switch off all --- .clang-tidy | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index 1a9d5f3a777..d37babccc8a 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -16,8 +16,8 @@ Checks: '*, -*, -cppcoreguidelines-explicit-virtual-functions, -llvm-qualified-auto, +-cppcoreguidelines-explicit-virtual-functions, +-llvm-qualified-auto, -misc-uniqueptr-reset-release, -modernize-avoid-bind, -modernize-make-unique, -- GitLab From bf05831bc0750bb791a01ed10e4359f2c9b94a50 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 08:24:28 +0100 Subject: [PATCH 14/33] tidy + member-init checks --- .clang-tidy | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.clang-tidy b/.clang-tidy index d37babccc8a..2057eed9d3f 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -16,6 +16,11 @@ Checks: '*, -*, +-performance-inefficient-vector-operation, +-performance-unnecessary-copy-initialization, +-*-move-const-arg, +modernize-use-default-member-init, +readability-redundant-member-init, -cppcoreguidelines-explicit-virtual-functions, -llvm-qualified-auto, -misc-uniqueptr-reset-release, -- GitLab From 1d68ef74670137c7fd0444399ed70c0698844397 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 08:26:03 +0100 Subject: [PATCH 15/33] ready for tidy/readability-redundant-member-init --- .clang-tidy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.clang-tidy b/.clang-tidy index 2057eed9d3f..283ff566e56 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -19,7 +19,7 @@ Checks: '*, -performance-inefficient-vector-operation, -performance-unnecessary-copy-initialization, -*-move-const-arg, -modernize-use-default-member-init, +-modernize-use-default-member-init, readability-redundant-member-init, -cppcoreguidelines-explicit-virtual-functions, -llvm-qualified-auto, -- GitLab From baf4270a573397b5d040f725b5303f8561407cd5 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 08:30:42 +0100 Subject: [PATCH 16/33] tidy/readability-redundant-member-init + manual correction --- Device/Beam/Beam.cpp | 3 +-- Device/Detector/IDetector.cpp | 3 +-- GUI/Model/Mask/MaskItems.cpp | 1 - GUI/Model/Model/FitParameterModel.cpp | 3 +-- GUI/Model/Sample/MaterialItem.cpp | 3 +-- GUI/View/Sample/HeinzFormLayout.cpp | 3 +-- Sim/Fitting/ObjectiveMetric.cpp | 15 +++------------ 7 files changed, 8 insertions(+), 23 deletions(-) diff --git a/Device/Beam/Beam.cpp b/Device/Beam/Beam.cpp index 2b9e176c66d..739018a9920 100644 --- a/Device/Beam/Beam.cpp +++ b/Device/Beam/Beam.cpp @@ -24,8 +24,7 @@ using std::numbers::pi; //... Constructors, destructors: Beam::Beam(double intensity, double wavelength, double alpha, double phi) - : INode() - , m_intensity(intensity) + : m_intensity(intensity) , m_wavelength(wavelength) , m_alpha(alpha) , m_phi(phi) diff --git a/Device/Detector/IDetector.cpp b/Device/Detector/IDetector.cpp index dee16f00e66..ed6451990cf 100644 --- a/Device/Detector/IDetector.cpp +++ b/Device/Detector/IDetector.cpp @@ -76,8 +76,7 @@ IDetector::IDetector(Frame* frame) } IDetector::IDetector(const IDetector& other) - : INode() - , m_explicitROI(other.m_explicitROI) + : m_explicitROI(other.m_explicitROI) , m_frame(other.m_frame->clone()) , m_polAnalyzer(other.m_polAnalyzer) , m_resolution(other.m_resolution ? other.m_resolution->clone() : nullptr) diff --git a/GUI/Model/Mask/MaskItems.cpp b/GUI/Model/Mask/MaskItems.cpp index 86b47f0122b..dd866f8e6dc 100644 --- a/GUI/Model/Mask/MaskItems.cpp +++ b/GUI/Model/Mask/MaskItems.cpp @@ -262,7 +262,6 @@ void RectangleItem::readFrom(QXmlStreamReader* r) /* ------------------------------------------------------------------------- */ RegionOfInterestItem::RegionOfInterestItem() - : RectangleItem() { setMaskName("RegionOfInterest"); setMaskValue(false); diff --git a/GUI/Model/Model/FitParameterModel.cpp b/GUI/Model/Model/FitParameterModel.cpp index 427e7a66bd8..7c747f3f907 100644 --- a/GUI/Model/Model/FitParameterModel.cpp +++ b/GUI/Model/Model/FitParameterModel.cpp @@ -21,8 +21,7 @@ #include <QMimeData> FitParameterModel::FitParameterModel(FitParameterContainerItem* fitParContainer, JobItem* jobItem) - : QAbstractItemModel() - , m_fitParameterContainer(fitParContainer) + : m_fitParameterContainer(fitParContainer) , m_jobItem(jobItem) { addColumn(COL_NAME, "Name", "Name of fit parameter"); diff --git a/GUI/Model/Sample/MaterialItem.cpp b/GUI/Model/Sample/MaterialItem.cpp index 1a6177069c6..b6636aa28c7 100644 --- a/GUI/Model/Sample/MaterialItem.cpp +++ b/GUI/Model/Sample/MaterialItem.cpp @@ -55,8 +55,7 @@ MaterialItem::MaterialItem() } MaterialItem::MaterialItem(const MaterialItem& other) - : QObject() - , m_name(other.m_name) + : m_name(other.m_name) , m_id(other.m_id) , m_color(other.m_color) , m_magnetization(other.m_magnetization) diff --git a/GUI/View/Sample/HeinzFormLayout.cpp b/GUI/View/Sample/HeinzFormLayout.cpp index 80c511789a4..ca9600501a8 100644 --- a/GUI/View/Sample/HeinzFormLayout.cpp +++ b/GUI/View/Sample/HeinzFormLayout.cpp @@ -37,8 +37,7 @@ QLabel* createBoldLabel(const QString& text) HeinzFormLayout::HeinzFormLayout(SampleEditorController* ec) - : QFormLayout() - , m_ec(ec) + : m_ec(ec) { QFormLayout::setFormAlignment(Qt::AlignLeft | Qt::AlignBottom); QFormLayout::setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint); diff --git a/Sim/Fitting/ObjectiveMetric.cpp b/Sim/Fitting/ObjectiveMetric.cpp index 8b0151c6600..03350fb2404 100644 --- a/Sim/Fitting/ObjectiveMetric.cpp +++ b/Sim/Fitting/ObjectiveMetric.cpp @@ -121,10 +121,7 @@ double Chi2Metric::computeFromArrays(std::vector<double> sim_data, // ----------------------- Poisson-like metric --------------------------- -PoissonLikeMetric::PoissonLikeMetric() - : Chi2Metric() -{ -} +PoissonLikeMetric::PoissonLikeMetric() {} PoissonLikeMetric* PoissonLikeMetric::clone() const { @@ -201,10 +198,7 @@ double LogMetric::computeFromArrays(std::vector<double> sim_data, // ----------------------- Relative difference --------------------------- -meanRelativeDifferenceMetric::meanRelativeDifferenceMetric() - : Chi2Metric() -{ -} +meanRelativeDifferenceMetric::meanRelativeDifferenceMetric() {} meanRelativeDifferenceMetric* meanRelativeDifferenceMetric::clone() const { @@ -231,10 +225,7 @@ double meanRelativeDifferenceMetric::computeFromArrays(std::vector<double> sim_d // ----------------------- RQ4 metric --------------------------- -RQ4Metric::RQ4Metric() - : Chi2Metric() -{ -} +RQ4Metric::RQ4Metric() {} RQ4Metric* RQ4Metric::clone() const { -- GitLab From f8860a2e9203746ce9d5a00b5d71d86bc61f3dfb Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 08:30:58 +0100 Subject: [PATCH 17/33] ready for tidy/modernize-use-default-member-init --- .clang-tidy | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index 283ff566e56..78f394f4f35 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -19,8 +19,8 @@ Checks: '*, -performance-inefficient-vector-operation, -performance-unnecessary-copy-initialization, -*-move-const-arg, --modernize-use-default-member-init, -readability-redundant-member-init, +modernize-use-default-member-init, +-readability-redundant-member-init, -cppcoreguidelines-explicit-virtual-functions, -llvm-qualified-auto, -misc-uniqueptr-reset-release, -- GitLab From 4905f88a442516828c6baec84a38abb9621efec2 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 08:37:24 +0100 Subject: [PATCH 18/33] tidy/modernize-use-default-member-init + manual corrections --- GUI/View/Instrument/InstrumentLibraryEditor.cpp | 1 - GUI/View/Item/ItemViewOverlayButtons.cpp | 3 +-- GUI/View/Sample/SampleEditor.cpp | 1 - GUI/View/Setup/MaskEditorToolpanel.cpp | 1 - 4 files changed, 1 insertion(+), 5 deletions(-) diff --git a/GUI/View/Instrument/InstrumentLibraryEditor.cpp b/GUI/View/Instrument/InstrumentLibraryEditor.cpp index fa94c2d8084..eae70270b83 100644 --- a/GUI/View/Instrument/InstrumentLibraryEditor.cpp +++ b/GUI/View/Instrument/InstrumentLibraryEditor.cpp @@ -300,7 +300,6 @@ void InstrumentLibraryEditor::onInstrumentChangedByEditor() InstrumentLibraryEditor::TreeModel::TreeModel(QObject* parent, InstrumentModel* model) : InstrumentsTreeModel(parent, model) - , m_newInstrument(nullptr) { } diff --git a/GUI/View/Item/ItemViewOverlayButtons.cpp b/GUI/View/Item/ItemViewOverlayButtons.cpp index 497d9f0c99d..6ec49223e2d 100644 --- a/GUI/View/Item/ItemViewOverlayButtons.cpp +++ b/GUI/View/Item/ItemViewOverlayButtons.cpp @@ -39,7 +39,7 @@ protected: void mouseDoubleClickEvent(QMouseEvent* event) override; private: - bool m_hover; + bool m_hover{false}; QAbstractItemView* m_view; QModelIndex m_index; Qt::Alignment m_horizontalAlignment; @@ -61,7 +61,6 @@ public: ItemViewOverlayWidget::ItemViewOverlayWidget(QAbstractItemView* view, const QModelIndex& index) : QWidget(view) - , m_hover(false) , m_view(view) , m_index(index) , m_horizontalAlignment(Qt::AlignRight) diff --git a/GUI/View/Sample/SampleEditor.cpp b/GUI/View/Sample/SampleEditor.cpp index 78c8a7af6f6..47cde94bc51 100644 --- a/GUI/View/Sample/SampleEditor.cpp +++ b/GUI/View/Sample/SampleEditor.cpp @@ -28,7 +28,6 @@ SampleEditor::SampleEditor(QWidget* parent, ProjectDocument* document) : QScrollArea(parent) , m_currentSampleWidget(nullptr) - , m_currentSample(nullptr) , m_document(document) { QScrollArea::setWidgetResizable(true); diff --git a/GUI/View/Setup/MaskEditorToolpanel.cpp b/GUI/View/Setup/MaskEditorToolpanel.cpp index be9d8bb0666..d620ca0b29f 100644 --- a/GUI/View/Setup/MaskEditorToolpanel.cpp +++ b/GUI/View/Setup/MaskEditorToolpanel.cpp @@ -30,7 +30,6 @@ MaskEditorToolpanel::MaskEditorToolpanel() : m_listView(new QListView) , m_maskContainerModel(nullptr) , m_currentMaskItem(nullptr) - , m_inhibitSelectionChange(false) { setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding); setObjectName(QLatin1String("MaskEditorToolPanel")); -- GitLab From 3f5bbd0a4c204a0ffbabeee4703b19124429b9b8 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 08:37:37 +0100 Subject: [PATCH 19/33] ready for next 3 --- .clang-tidy | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index 78f394f4f35..6792ec0edca 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -16,10 +16,10 @@ Checks: '*, -*, --performance-inefficient-vector-operation, --performance-unnecessary-copy-initialization, --*-move-const-arg, -modernize-use-default-member-init, +performance-inefficient-vector-operation, +performance-unnecessary-copy-initialization, +*-move-const-arg, +-modernize-use-default-member-init, -readability-redundant-member-init, -cppcoreguidelines-explicit-virtual-functions, -llvm-qualified-auto, -- GitLab From 9b2d421f391c0362f03c6347dac6d9b0301fdf49 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 08:42:02 +0100 Subject: [PATCH 20/33] tidy/performance-inefficient-vector-operation,performance-unnecessary-copy-initialization,*-move-const-arg --- Base/Axis/Scale.cpp | 1 + Base/Py/PyFmt.cpp | 2 ++ Device/Mask/Polygon.cpp | 1 + GUI/View/Instrument/DistributionSelector.cpp | 2 +- Param/Distrib/Distributions.cpp | 1 + Resample/Processed/Slicer.cpp | 2 +- Sim/Export/SampleToPython.cpp | 2 +- Tests/Functional/Mumufit/ResidualTestPlan.cpp | 1 + Tests/Unit/Fit/MultiOptionTest.cpp | 2 +- Tests/Unit/Resample/MaterialTest.cpp | 2 +- 10 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Base/Axis/Scale.cpp b/Base/Axis/Scale.cpp index bf055e547ad..94bf17a7a50 100644 --- a/Base/Axis/Scale.cpp +++ b/Base/Axis/Scale.cpp @@ -116,6 +116,7 @@ double Scale::binCenter(size_t i) const std::vector<double> Scale::binCenters() const { std::vector<double> result; + result.reserve(m_bins.size()); for (const Bin1D& b : m_bins) result.emplace_back(b.center()); return result; diff --git a/Base/Py/PyFmt.cpp b/Base/Py/PyFmt.cpp index a1075aa0710..266f120c0c1 100644 --- a/Base/Py/PyFmt.cpp +++ b/Base/Py/PyFmt.cpp @@ -152,6 +152,7 @@ std::string Py::Fmt::printString(const std::string& value) std::string Py::Fmt::printArguments(const std::vector<std::pair<double, std::string>>& arguments) { std::vector<std::string> args; + args.reserve(arguments.size()); for (const auto& argument : arguments) args.push_back(Py::Fmt::printValue(argument.first, argument.second)); return Base::String::join(args, ", "); @@ -161,6 +162,7 @@ std::string Py::Fmt::printArguments( const std::vector<std::pair<std::variant<double, int>, std::string>>& arguments) { std::vector<std::string> args; + args.reserve(arguments.size()); for (const auto& argument : arguments) args.push_back(Py::Fmt::printValue(argument.first, argument.second)); return Base::String::join(args, ", "); diff --git a/Device/Mask/Polygon.cpp b/Device/Mask/Polygon.cpp index cd3b98c91e2..f81d2b84237 100644 --- a/Device/Mask/Polygon.cpp +++ b/Device/Mask/Polygon.cpp @@ -41,6 +41,7 @@ PolygonPrivate::PolygonPrivate(const std::vector<double>& x, const std::vector<d PolygonPrivate::PolygonPrivate(const std::vector<std::pair<double, double>>& pts) { std::vector<point_t> points; + points.reserve(pts.size()); for (const std::pair<double, double>& p : pts) points.emplace_back(p.first, p.second); boost::geometry::assign_points(polygon, points); diff --git a/GUI/View/Instrument/DistributionSelector.cpp b/GUI/View/Instrument/DistributionSelector.cpp index b9af4ed4aa6..a1ed0b529d6 100644 --- a/GUI/View/Instrument/DistributionSelector.cpp +++ b/GUI/View/Instrument/DistributionSelector.cpp @@ -27,7 +27,7 @@ DistributionSelector::DistributionSelector(std::optional<MeanConfig> mean_config BeamDistributionItem* item, bool allow_distr) : QWidget(parent) , m_item(item) - , m_meanConfig(std::move(mean_config)) + , m_meanConfig(mean_config) , m_distributions(distributions) { ASSERT(item); diff --git a/Param/Distrib/Distributions.cpp b/Param/Distrib/Distributions.cpp index 5588f4904f3..63215d1acbd 100644 --- a/Param/Distrib/Distributions.cpp +++ b/Param/Distrib/Distributions.cpp @@ -148,6 +148,7 @@ std::vector<ParameterSample> DistributionGate::distributionSamples() const { std::vector<double> xx = equidistantPointsInRange(nSamples(), m_min, m_max); std::vector<ParameterSample> result; + result.reserve(xx.size()); for (double x : xx) result.push_back({x, 1. / xx.size()}); return result; diff --git a/Resample/Processed/Slicer.cpp b/Resample/Processed/Slicer.cpp index fb481f0e6ff..31d682032f7 100644 --- a/Resample/Processed/Slicer.cpp +++ b/Resample/Processed/Slicer.cpp @@ -179,7 +179,7 @@ IReParticle* processBasis(const IParticle* basis, const Material& ambientMat) const IRotation* rot = p->rotation(); auto particleSlice = std::make_unique<ReParticle>( p->pFormfactor()->clone(), new const R3(p->particlePosition()), - rot && !rot->isIdentity() ? std::move(new const RotMatrix(rot->rotMatrix())) : nullptr); + rot && !rot->isIdentity() ? new const RotMatrix(rot->rotMatrix()) : nullptr); if (!particleSlice) return {}; double volume = particleSlice->volume(); diff --git a/Sim/Export/SampleToPython.cpp b/Sim/Export/SampleToPython.cpp index fc9442402c3..d276f15736b 100644 --- a/Sim/Export/SampleToPython.cpp +++ b/Sim/Export/SampleToPython.cpp @@ -88,7 +88,7 @@ std::string defineMaterials(const MaterialKeyHandler& matHandler) {MATERIAL_TYPES::RefractiveMaterial, "RefractiveMaterial"}, {MATERIAL_TYPES::MaterialBySLD, "MaterialBySLD"}}; - const auto themap = matHandler.materialMap(); + const auto& themap = matHandler.materialMap(); if (themap.empty()) return ""; std::ostringstream result; diff --git a/Tests/Functional/Mumufit/ResidualTestPlan.cpp b/Tests/Functional/Mumufit/ResidualTestPlan.cpp index 70b630aa22c..4ba37bfe067 100644 --- a/Tests/Functional/Mumufit/ResidualTestPlan.cpp +++ b/Tests/Functional/Mumufit/ResidualTestPlan.cpp @@ -43,6 +43,7 @@ bool ResidualTestPlan::checkMinimizer(Minimizer& minimizer) const void ResidualTestPlan::finalizeParameters() { std::vector<double> pars; + pars.reserve(m_parameter_references.size()); for (const auto& plan : m_parameter_references) pars.push_back(plan.expected_value); diff --git a/Tests/Unit/Fit/MultiOptionTest.cpp b/Tests/Unit/Fit/MultiOptionTest.cpp index ef9b07d3284..d304fe5bdf2 100644 --- a/Tests/Unit/Fit/MultiOptionTest.cpp +++ b/Tests/Unit/Fit/MultiOptionTest.cpp @@ -49,7 +49,7 @@ TEST(MultiOptionTest, Copying) const double double_value(2.0); MultiOption opt(name, double_value, description); - MultiOption copy(opt); + const MultiOption& copy(opt); EXPECT_EQ(name, copy.name()); EXPECT_EQ(description, copy.description()); EXPECT_EQ(double_value, copy.get<double>()); diff --git a/Tests/Unit/Resample/MaterialTest.cpp b/Tests/Unit/Resample/MaterialTest.cpp index 1a8179e1bd1..9fcca2f5c0f 100644 --- a/Tests/Unit/Resample/MaterialTest.cpp +++ b/Tests/Unit/Resample/MaterialTest.cpp @@ -214,7 +214,7 @@ TEST(MaterialTest, MaterialCopy) R3 magnetism = R3(3.0, 4.0, 5.0); Material material = RefractiveMaterial("MagMaterial", refIndex, magnetism); - Material copy = material; + const Material& copy = material; EXPECT_EQ(material_data, copy.refractiveIndex_or_SLD()); EXPECT_EQ(magnetism, copy.magnetization()); EXPECT_TRUE(material == copy); -- GitLab From 73a73adba80cd5590e467a2bd5df282cd413377d Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 08:48:53 +0100 Subject: [PATCH 21/33] corr warnings --- Device/Detector/IDetector.cpp | 3 ++- GUI/Model/Sample/MaterialItem.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Device/Detector/IDetector.cpp b/Device/Detector/IDetector.cpp index ed6451990cf..dee16f00e66 100644 --- a/Device/Detector/IDetector.cpp +++ b/Device/Detector/IDetector.cpp @@ -76,7 +76,8 @@ IDetector::IDetector(Frame* frame) } IDetector::IDetector(const IDetector& other) - : m_explicitROI(other.m_explicitROI) + : INode() + , m_explicitROI(other.m_explicitROI) , m_frame(other.m_frame->clone()) , m_polAnalyzer(other.m_polAnalyzer) , m_resolution(other.m_resolution ? other.m_resolution->clone() : nullptr) diff --git a/GUI/Model/Sample/MaterialItem.cpp b/GUI/Model/Sample/MaterialItem.cpp index b6636aa28c7..1a6177069c6 100644 --- a/GUI/Model/Sample/MaterialItem.cpp +++ b/GUI/Model/Sample/MaterialItem.cpp @@ -55,7 +55,8 @@ MaterialItem::MaterialItem() } MaterialItem::MaterialItem(const MaterialItem& other) - : m_name(other.m_name) + : QObject() + , m_name(other.m_name) , m_id(other.m_id) , m_color(other.m_color) , m_magnetization(other.m_magnetization) -- GitLab From bf244972e7c77ab170a67d05a6acfb563f86d36f Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 09:08:53 +0100 Subject: [PATCH 22/33] release -> reset --- .clang-tidy | 13 +++++++++---- GUI/Support/Data/JobWorker.cpp | 2 +- GUI/View/Scene/MaskGraphicsScene.cpp | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index 6792ec0edca..a73842cf4a9 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -16,11 +16,16 @@ Checks: '*, -*, -performance-inefficient-vector-operation, -performance-unnecessary-copy-initialization, -*-move-const-arg, +-*avoid-c-arrays, +-*narrowing-conversions, +-cppcoreguidelines-prefer-member-initializer, +cppcoreguidelines-owning-memory, +-bugprone-unused-return-value, + +-performance-inefficient-vector-operation, +-performance-unnecessary-copy-initialization, +-hicpp-move-const-arg, -modernize-use-default-member-init, --readability-redundant-member-init, -cppcoreguidelines-explicit-virtual-functions, -llvm-qualified-auto, -misc-uniqueptr-reset-release, diff --git a/GUI/Support/Data/JobWorker.cpp b/GUI/Support/Data/JobWorker.cpp index 79062ada3db..7eb7501474a 100644 --- a/GUI/Support/Data/JobWorker.cpp +++ b/GUI/Support/Data/JobWorker.cpp @@ -44,7 +44,7 @@ void JobWorker::start() m_terminate_request_flag = false; m_simulation_start = QDateTime::currentDateTime(); m_simulation_end = QDateTime(); - m_result.release(); + m_result.reset(); emit started(); try { diff --git a/GUI/View/Scene/MaskGraphicsScene.cpp b/GUI/View/Scene/MaskGraphicsScene.cpp index 4ce0e1acc4b..0caac8928b3 100644 --- a/GUI/View/Scene/MaskGraphicsScene.cpp +++ b/GUI/View/Scene/MaskGraphicsScene.cpp @@ -559,7 +559,7 @@ void MaskGraphicsScene::setDrawingInProgress(bool value) if (value) gProjectDocument.value()->setModified(); // manual mask creation else - m_currentItem.release(); + m_currentItem.reset(); } //! Sets the state of all views in pan&zoom mode. -- GitLab From 462184b92421f40d224e74d4e57b7a591ae20d4e Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 09:16:55 +0100 Subject: [PATCH 23/33] tidy/cppcoreguidelines-prefer-member-initializer + manual corrections --- .clang-tidy | 16 +++++++--------- GUI/Model/Beam/GrazingScanItem.cpp | 2 +- GUI/Model/Sample/LayerItem.cpp | 4 ++-- GUI/Model/Sample/MaterialItem.cpp | 3 ++- GUI/Model/Sample/SampleItem.cpp | 3 ++- GUI/Support/Data/SimulationOptionsItem.cpp | 10 +--------- GUI/Support/Data/SimulationOptionsItem.h | 16 ++++++++-------- GUI/View/Access/DataPropertyWidget.cpp | 2 +- GUI/View/Canvas/IntensityDataCanvas.cpp | 8 ++++---- GUI/View/Canvas/MaskEditorActions.cpp | 2 +- GUI/View/Canvas/SpecularDataCanvas.cpp | 6 ++---- GUI/View/Combo/ItemComboToolbar.cpp | 4 +--- GUI/View/Combo/ItemComboWidget.cpp | 3 ++- GUI/View/Device/BackgroundForm.cpp | 2 +- GUI/View/Device/FootprintForm.cpp | 3 +-- GUI/View/Device/SphericalAxisForm.cpp | 6 +++--- GUI/View/Fit/FitActivityPanel.cpp | 7 ++++--- GUI/View/Fit/FitSessionWidget.cpp | 2 +- GUI/View/FitControl/MinimizerSettingsWidget.cpp | 3 ++- GUI/View/Frame/Fit1DFrame.cpp | 5 ++--- GUI/View/Frame/Fit2DFrame.cpp | 5 ++--- GUI/View/Frame/Plot2DFrame.cpp | 5 ++--- GUI/View/Frame/SpecularFrame.cpp | 5 ++--- GUI/View/Instrument/AlphaScanEditor.cpp | 3 ++- GUI/View/Instrument/DistributionEditor.cpp | 4 ++-- GUI/View/Instrument/InstrumentListing.cpp | 6 +++--- GUI/View/Instrument/InstrumentView.cpp | 6 ++++-- GUI/View/Job/JobView.cpp | 6 +++--- GUI/View/JobControl/JobListing.cpp | 9 ++++++--- GUI/View/JobControl/JobPropertiesWidget.cpp | 9 +++++---- GUI/View/JobControl/JobSelector.cpp | 5 +++-- GUI/View/Manager/NewProjectDialog.cpp | 12 +++++------- GUI/View/Numeric/DoubleLineEdit.cpp | 2 +- GUI/View/Plotter/ColorMap.cpp | 6 +++--- GUI/View/Project/SimulationView.cpp | 15 ++++++++++----- GUI/View/Sample/CompoundForm.cpp | 2 +- GUI/View/Sample/InterferenceForm.cpp | 3 ++- GUI/View/Sample/LayerForm.cpp | 7 ++++--- GUI/View/Sample/LayerForm.h | 4 ++-- GUI/View/Sample/MaterialInplaceForm.cpp | 2 +- GUI/View/Sample/MesocrystalForm.cpp | 9 ++++++--- GUI/View/Sample/ParticleLayoutForm.cpp | 2 +- GUI/View/Sample/SampleForm.cpp | 4 ++-- GUI/View/Sample/SampleListing.cpp | 11 +++++++---- GUI/View/Sample/SampleView.cpp | 4 ++-- GUI/View/Sample/SampleView.h | 6 +++--- GUI/View/Tuning/ParameterBackupWidget.cpp | 3 ++- GUI/View/Widget/GroupBoxes.cpp | 10 +++++----- Img3D/Plot/AxesPlotter.cpp | 3 +-- 49 files changed, 140 insertions(+), 135 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index a73842cf4a9..a5e70ba1d58 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -18,32 +18,30 @@ Checks: '*, -*, -*avoid-c-arrays, -*narrowing-conversions, --cppcoreguidelines-prefer-member-initializer, -cppcoreguidelines-owning-memory, --bugprone-unused-return-value, --performance-inefficient-vector-operation, --performance-unnecessary-copy-initialization, --hicpp-move-const-arg, --modernize-use-default-member-init, +-bugprone-unused-return-value, -cppcoreguidelines-explicit-virtual-functions, +-cppcoreguidelines-prefer-member-initializer, +-hicpp-move-const-arg, -llvm-qualified-auto, -misc-uniqueptr-reset-release, -modernize-avoid-bind, -modernize-make-unique, -modernize-pass-by-value, -modernize-raw-string-literal, +-modernize-use-default-member-init, -modernize-use-using, -performance-for-range-copy, +-performance-inefficient-vector-operation, +-performance-unnecessary-copy-initialization, -readability-avoid-const-params-in-decls, -readability-const-return-type, --readability-non-const-parameter, -readability-container-size-empty, -readability-delete-null-pointer, -readability-inconsistent-declaration-parameter-name, +-readability-non-const-parameter, -readability-qualified-auto, -readability-simplify-boolean-expr, - ' # keep the closing quotation mark \ No newline at end of file diff --git a/GUI/Model/Beam/GrazingScanItem.cpp b/GUI/Model/Beam/GrazingScanItem.cpp index 0c93e0de95d..e0dc4a00c13 100644 --- a/GUI/Model/Beam/GrazingScanItem.cpp +++ b/GUI/Model/Beam/GrazingScanItem.cpp @@ -63,13 +63,13 @@ void initDistribution(DistributionItem* newDistribution, GrazingScanItem::GrazingScanItem() : BeamDistributionItem() + , m_currentAxisIsUniformAxis(true) { m_distribution.initWithInitializer("Distribution", "", DistributionItemCatalog::symmetricTypes(), initDistribution); m_uniformAlphaAxis = std::make_unique<BasicAxisItem>(); setAxisPresentationDefaults(m_uniformAlphaAxis.get()); - m_currentAxisIsUniformAxis = true; } void GrazingScanItem::writeTo(QXmlStreamWriter* w) const diff --git a/GUI/Model/Sample/LayerItem.cpp b/GUI/Model/Sample/LayerItem.cpp index 7411e76f3ad..d97c0d19687 100644 --- a/GUI/Model/Sample/LayerItem.cpp +++ b/GUI/Model/Sample/LayerItem.cpp @@ -65,14 +65,14 @@ QVector<ItemWithMaterial*> layoutItemsWithMaterial(ParticleLayoutItem* layout) } // namespace + LayerItem::LayerItem(const MaterialModel* materials) : ItemWithMaterial(materials) + , m_name("Layer") { m_thickness.init("Thickness (nm)", "Thickness of the layer", 0.0, 3, RealLimits::lowerLimited(0.0), "thickness"); - m_name = "Layer"; - m_roughness.init("Top roughness", "Roughness of top interface", RoughnessItemCatalog::Type::Basic); } diff --git a/GUI/Model/Sample/MaterialItem.cpp b/GUI/Model/Sample/MaterialItem.cpp index 1a6177069c6..ebf9843dc92 100644 --- a/GUI/Model/Sample/MaterialItem.cpp +++ b/GUI/Model/Sample/MaterialItem.cpp @@ -36,9 +36,10 @@ const QString Magnetization("Magnetization"); } // namespace + MaterialItem::MaterialItem() + : m_color(Qt::red) { - m_color = Qt::red; m_id = QUuid::createUuid().toString(); m_delta.init("Delta", "Delta of refractive index (n = 1 - delta + i*beta)", 0.0, 3, diff --git a/GUI/Model/Sample/SampleItem.cpp b/GUI/Model/Sample/SampleItem.cpp index bcef950a27c..4b0d1608db9 100644 --- a/GUI/Model/Sample/SampleItem.cpp +++ b/GUI/Model/Sample/SampleItem.cpp @@ -33,8 +33,9 @@ const QString ExpandInfoGroupbox("ExpandInfoGroupbox"); } // namespace SampleItem::SampleItem() + : m_name("Sample") { - m_name = "Sample"; + m_crossCorrelationLength.init("Cross-correlation length (nm)", "Cross correlation length of roughnesses between interfaces", 0.0, 5, RealLimits::nonnegative(), "cross"); diff --git a/GUI/Support/Data/SimulationOptionsItem.cpp b/GUI/Support/Data/SimulationOptionsItem.cpp index 971fff418f2..6dc921e74b4 100644 --- a/GUI/Support/Data/SimulationOptionsItem.cpp +++ b/GUI/Support/Data/SimulationOptionsItem.cpp @@ -35,16 +35,8 @@ const QString SelectedDataIndex("SelectedDataIndex"); SimulationOptionsItem::SimulationOptionsItem() + : m_numberOfThreads(std::thread::hardware_concurrency()) { - m_runImmediately = true; - m_numberOfThreads = std::thread::hardware_concurrency(); - m_computationMethodAnalytical = true; - m_numberOfMonteCarloPoints = 100; - m_useAverageMaterials = false; - m_includeSpecularPeak = false; - m_selectedInstrumentIndex = -1; - m_selectedSampleIndex = -1; - m_selectedDataIndex = -1; } bool SimulationOptionsItem::useMonteCarloIntegration() const diff --git a/GUI/Support/Data/SimulationOptionsItem.h b/GUI/Support/Data/SimulationOptionsItem.h index df65bf33a79..d9fb1ebbec3 100644 --- a/GUI/Support/Data/SimulationOptionsItem.h +++ b/GUI/Support/Data/SimulationOptionsItem.h @@ -58,15 +58,15 @@ public: void readFrom(QXmlStreamReader* r); private: - bool m_runImmediately; + bool m_runImmediately = true; unsigned m_numberOfThreads; - bool m_computationMethodAnalytical; - unsigned m_numberOfMonteCarloPoints; - bool m_useAverageMaterials; - bool m_includeSpecularPeak; - int m_selectedInstrumentIndex; - int m_selectedSampleIndex; - int m_selectedDataIndex; + bool m_computationMethodAnalytical = true; + unsigned m_numberOfMonteCarloPoints = 100; + bool m_useAverageMaterials = false; + bool m_includeSpecularPeak = false; + int m_selectedInstrumentIndex = -1; + int m_selectedSampleIndex = -1; + int m_selectedDataIndex = -1; }; #endif // BORNAGAIN_GUI_SUPPORT_DATA_SIMULATIONOPTIONSITEM_H diff --git a/GUI/View/Access/DataPropertyWidget.cpp b/GUI/View/Access/DataPropertyWidget.cpp index 2c433670b95..40b87fae65f 100644 --- a/GUI/View/Access/DataPropertyWidget.cpp +++ b/GUI/View/Access/DataPropertyWidget.cpp @@ -23,10 +23,10 @@ DataPropertyWidget::DataPropertyWidget(QWidget* parent) : DataAccessWidget(parent) + , m_mainLayout(new QFormLayout(this)) { setWindowTitle("Properties"); - m_mainLayout = new QFormLayout(this); m_mainLayout->setContentsMargins(8, 20, 8, 8); m_mainLayout->setSpacing(5); } diff --git a/GUI/View/Canvas/IntensityDataCanvas.cpp b/GUI/View/Canvas/IntensityDataCanvas.cpp index f4ab62e5944..dd22d690eed 100644 --- a/GUI/View/Canvas/IntensityDataCanvas.cpp +++ b/GUI/View/Canvas/IntensityDataCanvas.cpp @@ -35,12 +35,13 @@ const QString SettingsKeyInterpolation = SettingsGroup + "Interpolation"; } // namespace + IntensityDataCanvas::IntensityDataCanvas() : DataAccessWidget(nullptr) , m_colorMapCanvas(new ColorMapCanvas) - , m_resetViewAction(nullptr) + , m_resetViewAction(new QAction(this)) , m_rotateDataAction(nullptr) - , m_savePlotAction(nullptr) + , m_savePlotAction(new QAction(this)) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); @@ -51,7 +52,6 @@ IntensityDataCanvas::IntensityDataCanvas() m_colorMapCanvas->setStatusLabelEnabled(true); - m_resetViewAction = new QAction(this); m_resetViewAction->setText("Center view"); m_resetViewAction->setIcon(QIcon(":/images/camera-metering-center.svg")); m_resetViewAction->setToolTip("Reset view\n" @@ -59,7 +59,7 @@ IntensityDataCanvas::IntensityDataCanvas() connect(m_resetViewAction, &QAction::triggered, this, &IntensityDataCanvas::onResetViewAction, Qt::UniqueConnection); - m_savePlotAction = new QAction(this); + m_savePlotAction->setText("Save"); m_savePlotAction->setIcon(QIcon(":/images/content-save-outline.svg")); m_savePlotAction->setToolTip("Save plot"); diff --git a/GUI/View/Canvas/MaskEditorActions.cpp b/GUI/View/Canvas/MaskEditorActions.cpp index ef774a840eb..2e83f7b522d 100644 --- a/GUI/View/Canvas/MaskEditorActions.cpp +++ b/GUI/View/Canvas/MaskEditorActions.cpp @@ -27,6 +27,7 @@ MaskEditorActions::MaskEditorActions(QWidget* parent) , m_deleteMaskAction(new QAction("Remove mask", parent)) , m_resetViewAction(new QAction(this)) , m_savePlotAction(new QAction(this)) + , m_togglePanelAction(ActionFactory::createTogglePropertiesPanelAction(this)) , m_maskContainerModel(nullptr) , m_selectionModel(nullptr) { @@ -60,7 +61,6 @@ MaskEditorActions::MaskEditorActions(QWidget* parent) m_savePlotAction->setToolTip("Save Plot"); connect(m_savePlotAction, &QAction::triggered, this, &MaskEditorActions::savePlotRequest); - m_togglePanelAction = ActionFactory::createTogglePropertiesPanelAction(this); connect(m_togglePanelAction, &QAction::triggered, this, &MaskEditorActions::propertyPanelRequest); } diff --git a/GUI/View/Canvas/SpecularDataCanvas.cpp b/GUI/View/Canvas/SpecularDataCanvas.cpp index b2e1c454e7b..5893228f0d4 100644 --- a/GUI/View/Canvas/SpecularDataCanvas.cpp +++ b/GUI/View/Canvas/SpecularDataCanvas.cpp @@ -24,8 +24,8 @@ SpecularDataCanvas::SpecularDataCanvas(QWidget* parent) : DataAccessWidget(parent) , m_plot_canvas(new SpecularPlotCanvas) - , m_reset_view_action(nullptr) - , m_save_plot_action(nullptr) + , m_reset_view_action(new QAction(this)) + , m_save_plot_action(new QAction(this)) { auto* vlayout = new QVBoxLayout(this); vlayout->setContentsMargins(0, 0, 0, 0); @@ -36,7 +36,6 @@ SpecularDataCanvas::SpecularDataCanvas(QWidget* parent) m_plot_canvas->setStatusLabelEnabled(true); - m_reset_view_action = new QAction(this); m_reset_view_action->setText("Center view"); m_reset_view_action->setIcon(QIcon(":/images/camera-metering-center.svg")); m_reset_view_action->setToolTip("Reset view\n" @@ -44,7 +43,6 @@ SpecularDataCanvas::SpecularDataCanvas(QWidget* parent) connect(m_reset_view_action, &QAction::triggered, this, &SpecularDataCanvas::onResetViewAction, Qt::UniqueConnection); - m_save_plot_action = new QAction(this); m_save_plot_action->setText("Save"); m_save_plot_action->setIcon(QIcon(":/images/content-save-outline.svg")); m_save_plot_action->setToolTip("Save plot"); diff --git a/GUI/View/Combo/ItemComboToolbar.cpp b/GUI/View/Combo/ItemComboToolbar.cpp index ffae37632d5..c6dca7184b9 100644 --- a/GUI/View/Combo/ItemComboToolbar.cpp +++ b/GUI/View/Combo/ItemComboToolbar.cpp @@ -20,14 +20,12 @@ ItemComboToolbar::ItemComboToolbar(QWidget* parent) : StyledToolbar(parent) , m_comboBox(new QComboBox) - , m_comboBoxAction(nullptr) + , m_comboBoxAction(addWidget(m_comboBox)) { setToolButtonStyle(Qt::ToolButtonTextBesideIcon); m_comboBox->setToolTip("Select type of graphical presentation."); - m_comboBoxAction = addWidget(m_comboBox); - setComboConnected(true); } diff --git a/GUI/View/Combo/ItemComboWidget.cpp b/GUI/View/Combo/ItemComboWidget.cpp index dcdb871fdbe..2a958026f7b 100644 --- a/GUI/View/Combo/ItemComboWidget.cpp +++ b/GUI/View/Combo/ItemComboWidget.cpp @@ -23,10 +23,11 @@ ItemComboWidget::ItemComboWidget() : m_toolbar(new ItemComboToolbar) , m_stackedWidget(new QStackedWidget) + , m_blankWidget(new QWidget) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); m_stackedWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - m_blankWidget = new QWidget; + m_stackedWidget->addWidget(m_blankWidget); auto* layout = new QVBoxLayout; diff --git a/GUI/View/Device/BackgroundForm.cpp b/GUI/View/Device/BackgroundForm.cpp index 768e9eed5fd..876569ad7ba 100644 --- a/GUI/View/Device/BackgroundForm.cpp +++ b/GUI/View/Device/BackgroundForm.cpp @@ -23,8 +23,8 @@ BackgroundForm::BackgroundForm(QWidget* parent, InstrumentItem* instrument) : CollapsibleGroupBox("Environment", parent, instrument->expandEnvironment) , m_instrument(instrument) + , m_formLayout(new QFormLayout) { - m_formLayout = new QFormLayout; m_formLayout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint); body()->setLayout(m_formLayout); diff --git a/GUI/View/Device/FootprintForm.cpp b/GUI/View/Device/FootprintForm.cpp index 70b9cc9e20b..0d7de774995 100644 --- a/GUI/View/Device/FootprintForm.cpp +++ b/GUI/View/Device/FootprintForm.cpp @@ -23,10 +23,9 @@ FootprintForm::FootprintForm(QWidget* parent, SourceItem* item) : StaticGroupBox("Footprint correction", parent) + , m_formLayout(new QFormLayout(body())) , m_item(item) { - m_formLayout = new QFormLayout(body()); - m_formLayout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint); ASSERT(item->footprintSelection().currentItem()); auto* typeCombo = GUI::Util::createComboBoxFromProperty( diff --git a/GUI/View/Device/SphericalAxisForm.cpp b/GUI/View/Device/SphericalAxisForm.cpp index d868bdf848f..345bd2dd41a 100644 --- a/GUI/View/Device/SphericalAxisForm.cpp +++ b/GUI/View/Device/SphericalAxisForm.cpp @@ -19,14 +19,15 @@ SphericalAxisForm::SphericalAxisForm(QFormLayout* form, QWidget* parent) : QObject(parent) + , m_nbinsSpinBox(new SafeSpinBox) + , m_minimumSpinBox(new ScientificSpinBox(parent)) + , m_maximumSpinBox(new ScientificSpinBox(parent)) , m_axisItem(nullptr) { - m_nbinsSpinBox = new SafeSpinBox; m_nbinsSpinBox->setRange(1, 65536); connect(m_nbinsSpinBox, &QSpinBox::valueChanged, this, &SphericalAxisForm::onNbinsValueChanged); form->addRow("# scan points:", m_nbinsSpinBox); - m_minimumSpinBox = new ScientificSpinBox(parent); m_minimumSpinBox->setMinimum(0); m_minimumSpinBox->setMaximum(90); m_minimumSpinBox->setDecimals(5); @@ -35,7 +36,6 @@ SphericalAxisForm::SphericalAxisForm(QFormLayout* form, QWidget* parent) &SphericalAxisForm::onMinimumValueChanged); form->addRow("Initial angle [deg]:", m_minimumSpinBox); - m_maximumSpinBox = new ScientificSpinBox(parent); m_maximumSpinBox->setMinimum(0); m_maximumSpinBox->setMaximum(90); m_maximumSpinBox->setDecimals(5); diff --git a/GUI/View/Fit/FitActivityPanel.cpp b/GUI/View/Fit/FitActivityPanel.cpp index 9e2dc5a3584..1b446ced9f2 100644 --- a/GUI/View/Fit/FitActivityPanel.cpp +++ b/GUI/View/Fit/FitActivityPanel.cpp @@ -27,6 +27,9 @@ FitActivityPanel::FitActivityPanel(QWidget* parent) : QWidget(parent) + , m_stack(new QStackedWidget(this)) + , m_blankWidget(new QWidget(m_stack)) + , m_fitSessionWidget(new FitSessionWidget(m_stack)) , m_realTimeWidget(nullptr) , m_fitSessionManager(new FitSessionManager(this)) { @@ -37,17 +40,15 @@ FitActivityPanel::FitActivityPanel(QWidget* parent) auto* layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); - m_stack = new QStackedWidget(this); + layout->addWidget(m_stack); - m_blankWidget = new QWidget(m_stack); m_stack->addWidget(m_blankWidget); m_nofitLabel = new QLabel("Job has no real data linked to it for fitting.", m_stack); m_nofitLabel->setAlignment(Qt::AlignCenter); m_stack->addWidget(m_nofitLabel); - m_fitSessionWidget = new FitSessionWidget(m_stack); m_stack->addWidget(m_fitSessionWidget); setFixedSize(GUI::Style::FIT_ACTIVITY_PANEL_WIDTH, GUI::Style::FIT_ACTIVITY_PANEL_HEIGHT); diff --git a/GUI/View/Fit/FitSessionWidget.cpp b/GUI/View/Fit/FitSessionWidget.cpp index 2aea3ecfd2e..9473ce72704 100644 --- a/GUI/View/Fit/FitSessionWidget.cpp +++ b/GUI/View/Fit/FitSessionWidget.cpp @@ -25,6 +25,7 @@ FitSessionWidget::FitSessionWidget(QWidget* parent) : QWidget(parent) + , m_tabWidget(new QTabWidget(this)) , m_controlWidget(new RunFitControlWidget) , m_fitParametersWidget(new FitParameterWidget) , m_minimizerSettingsWidget(new MinimizerSettingsWidget) @@ -33,7 +34,6 @@ FitSessionWidget::FitSessionWidget(QWidget* parent) auto* layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); - m_tabWidget = new QTabWidget(this); m_tabWidget->addTab(m_fitParametersWidget, "Fit Parameters"); m_tabWidget->addTab(m_minimizerSettingsWidget, "Minimizer"); diff --git a/GUI/View/FitControl/MinimizerSettingsWidget.cpp b/GUI/View/FitControl/MinimizerSettingsWidget.cpp index d4ad6739e11..5fb6e1d9374 100644 --- a/GUI/View/FitControl/MinimizerSettingsWidget.cpp +++ b/GUI/View/FitControl/MinimizerSettingsWidget.cpp @@ -26,10 +26,11 @@ MinimizerSettingsWidget::MinimizerSettingsWidget(QWidget* parent) : QWidget(parent) , m_containerItem(nullptr) + , m_mainLayout(new QFormLayout(this)) { setWindowTitle(QLatin1String("Minimizer Settings")); - m_mainLayout = new QFormLayout(this); + m_mainLayout->setSpacing(5); } diff --git a/GUI/View/Frame/Fit1DFrame.cpp b/GUI/View/Frame/Fit1DFrame.cpp index 2e0c46c2eac..a84ca2142a8 100644 --- a/GUI/View/Frame/Fit1DFrame.cpp +++ b/GUI/View/Frame/Fit1DFrame.cpp @@ -38,6 +38,8 @@ Fit1DFrame::Fit1DFrame(QWidget* parent) , m_statusLabel(new PlotStatusLabel(nullptr, this)) , m_scaleEditor(new Scale1DEditor) , m_resetViewAction(new QAction(this)) + , m_togglePropertiesAction( + ActionFactory::createTogglePropertiesPanelAction(this, m_scaleEditor)) { m_scaleEditor->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::MinimumExpanding); @@ -72,9 +74,6 @@ Fit1DFrame::Fit1DFrame(QWidget* parent) connect(m_resetViewAction, &QAction::triggered, this, &Fit1DFrame::onResetViewAction, Qt::UniqueConnection); - m_togglePropertiesAction = - ActionFactory::createTogglePropertiesPanelAction(this, m_scaleEditor); - m_scaleEditor->setVisible(false); connect(m_scaleEditor, &DataPropertyWidget::axesRangeResetRequested, this, &Fit1DFrame::onResetViewAction, Qt::UniqueConnection); diff --git a/GUI/View/Frame/Fit2DFrame.cpp b/GUI/View/Frame/Fit2DFrame.cpp index f97e647a6cf..7831c98b140 100644 --- a/GUI/View/Frame/Fit2DFrame.cpp +++ b/GUI/View/Frame/Fit2DFrame.cpp @@ -38,6 +38,8 @@ Fit2DFrame::Fit2DFrame() , m_statusLabel(new PlotStatusLabel(nullptr, this)) , m_scaleEditor(new Scale2DEditor) , m_resetViewAction(new QAction(this)) + , m_togglePropertiesAction( + ActionFactory::createTogglePropertiesPanelAction(this, m_scaleEditor)) { auto* vlayout = new QVBoxLayout; vlayout->setContentsMargins(0, 0, 0, 0); @@ -74,9 +76,6 @@ Fit2DFrame::Fit2DFrame() connect(m_resetViewAction, &QAction::triggered, this, &Fit2DFrame::onResetViewAction, Qt::UniqueConnection); - m_togglePropertiesAction = - ActionFactory::createTogglePropertiesPanelAction(this, m_scaleEditor); - m_scaleEditor->setVisible(false); connect(m_scaleEditor, &DataPropertyWidget::axesRangeResetRequested, this, &Fit2DFrame::onResetViewAction, Qt::UniqueConnection); diff --git a/GUI/View/Frame/Plot2DFrame.cpp b/GUI/View/Frame/Plot2DFrame.cpp index 1c57b3038f1..fbac11330ea 100644 --- a/GUI/View/Frame/Plot2DFrame.cpp +++ b/GUI/View/Frame/Plot2DFrame.cpp @@ -24,6 +24,8 @@ Plot2DFrame::Plot2DFrame() : DataAccessWidget(nullptr) , m_intensityCanvas(new IntensityDataCanvas) , m_scaleEditor(new Scale2DEditor(this)) + , m_togglePropertiesAction( + ActionFactory::createTogglePropertiesPanelAction(this, m_scaleEditor)) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); @@ -40,9 +42,6 @@ Plot2DFrame::Plot2DFrame() connect(m_intensityCanvas, &IntensityDataCanvas::customContextMenuRequested, this, &Plot2DFrame::onContextMenuRequest); - - m_togglePropertiesAction = - ActionFactory::createTogglePropertiesPanelAction(this, m_scaleEditor); } void Plot2DFrame::setJobOrDatafileItem(QObject* item) diff --git a/GUI/View/Frame/SpecularFrame.cpp b/GUI/View/Frame/SpecularFrame.cpp index d07d28283d0..5415acbed5f 100644 --- a/GUI/View/Frame/SpecularFrame.cpp +++ b/GUI/View/Frame/SpecularFrame.cpp @@ -24,6 +24,8 @@ SpecularFrame::SpecularFrame(QWidget* parent) : DataAccessWidget(parent) , m_specular_canvas(new SpecularDataCanvas) , m_scaleEditor(new Scale1DEditor(this)) + , m_togglePropertiesAction( + ActionFactory::createTogglePropertiesPanelAction(this, m_scaleEditor)) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); m_scaleEditor->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::MinimumExpanding); @@ -37,9 +39,6 @@ SpecularFrame::SpecularFrame(QWidget* parent) connect(m_specular_canvas, &SpecularDataCanvas::customContextMenuRequested, this, &SpecularFrame::onContextMenuRequest); - m_togglePropertiesAction = - ActionFactory::createTogglePropertiesPanelAction(this, m_scaleEditor); - m_scaleEditor->setVisible(false); } diff --git a/GUI/View/Instrument/AlphaScanEditor.cpp b/GUI/View/Instrument/AlphaScanEditor.cpp index b3b1d1721bf..40c55cec75e 100644 --- a/GUI/View/Instrument/AlphaScanEditor.cpp +++ b/GUI/View/Instrument/AlphaScanEditor.cpp @@ -22,6 +22,7 @@ AlphaScanEditor::AlphaScanEditor(QWidget* parent, GrazingScanItem* item, bool allow_distr) : StaticGroupBox("Grazing angles (deg)", parent) , m_item(item) + , m_plot(new DistributionPlot(this)) { auto* layout = new QFormLayout(body()); @@ -54,7 +55,7 @@ AlphaScanEditor::AlphaScanEditor(QWidget* parent, GrazingScanItem* item, bool al &AlphaScanEditor::onAxisTypeSelected); //... distribution plot - m_plot = new DistributionPlot(this); + m_plot->setFixedHeight(170); m_plot->setShowMouseCoords(false); layout->addRow(m_plot); diff --git a/GUI/View/Instrument/DistributionEditor.cpp b/GUI/View/Instrument/DistributionEditor.cpp index 73d666767b7..a89b1161867 100644 --- a/GUI/View/Instrument/DistributionEditor.cpp +++ b/GUI/View/Instrument/DistributionEditor.cpp @@ -22,13 +22,13 @@ DistributionEditor::DistributionEditor(const QString& title, GUI::ID::Distributions distributions, QWidget* parent, BeamDistributionItem* item, bool allow_distr) : StaticGroupBox(title, parent) + , m_selector(new DistributionSelector(mean_config, distributions, this, item, allow_distr)) + , m_plot(new DistributionPlot(this)) { auto* layout = new QVBoxLayout(body()); - m_selector = new DistributionSelector(mean_config, distributions, this, item, allow_distr); layout->addWidget(m_selector); - m_plot = new DistributionPlot(this); m_plot->setFixedHeight(170); m_plot->setShowMouseCoords(false); layout->addWidget(m_plot); diff --git a/GUI/View/Instrument/InstrumentListing.cpp b/GUI/View/Instrument/InstrumentListing.cpp index 7c7dd697a48..ced2275faf4 100644 --- a/GUI/View/Instrument/InstrumentListing.cpp +++ b/GUI/View/Instrument/InstrumentListing.cpp @@ -23,6 +23,9 @@ InstrumentListing::InstrumentListing(ProjectDocument* document) : m_document(document) + , m_model(new InstrumentListModel(this, m_document->multiNotifier())) + , m_separatorAction1(new QAction(this)) + , m_separatorAction2(new QAction(this)) { m_instrumentLibrary.load(); @@ -33,7 +36,6 @@ InstrumentListing::InstrumentListing(ProjectDocument* document) setMaximumWidth(200); setSelectionMode(QAbstractItemView::SingleSelection); - m_model = new InstrumentListModel(this, m_document->multiNotifier()); setModel(m_model); m_newGisasAction = new QAction("New GISAS", this); @@ -60,7 +62,6 @@ InstrumentListing::InstrumentListing(ProjectDocument* document) connect(m_newDepthprobeAction, &QAction::triggered, this, &InstrumentListing::onNewDepthprobe); addAction(m_newDepthprobeAction); - m_separatorAction1 = new QAction(this); m_separatorAction1->setSeparator(true); addAction(m_separatorAction1); @@ -76,7 +77,6 @@ InstrumentListing::InstrumentListing(ProjectDocument* document) connect(m_copyAction, &QAction::triggered, this, &InstrumentListing::onCopy); addAction(m_copyAction); - m_separatorAction2 = new QAction(this); m_separatorAction2->setSeparator(true); addAction(m_separatorAction2); diff --git a/GUI/View/Instrument/InstrumentView.cpp b/GUI/View/Instrument/InstrumentView.cpp index c51a70ce534..236489e0a5b 100644 --- a/GUI/View/Instrument/InstrumentView.cpp +++ b/GUI/View/Instrument/InstrumentView.cpp @@ -30,7 +30,9 @@ InstrumentView::InstrumentView(QWidget* parent, ProjectDocument* document) : QWidget(parent) + , m_listing(new InstrumentListing(document)) , m_document(document) + , m_scrollArea(new QScrollArea) { auto* layout = new QVBoxLayout(this); @@ -44,11 +46,11 @@ InstrumentView::InstrumentView(QWidget* parent, ProjectDocument* document) layout->addLayout(hLayout); // Left margin: instrument list - m_listing = new InstrumentListing(document); + hLayout->addWidget(m_listing); // Large widget: current instrument - m_scrollArea = new QScrollArea; + hLayout->addWidget(m_scrollArea); m_scrollArea->setWidgetResizable(true); m_scrollArea->setMinimumWidth( diff --git a/GUI/View/Job/JobView.cpp b/GUI/View/Job/JobView.cpp index 78af2152933..07c3fdc338f 100644 --- a/GUI/View/Job/JobView.cpp +++ b/GUI/View/Job/JobView.cpp @@ -29,6 +29,9 @@ JobView::JobView(QProgressBar* progressBar, ProjectDocument* document) : m_docks(new DocksController(this)) , m_progressAssistant(new JobProgressAssistant(progressBar, document->jobModel())) + , m_jobResultsPresenter(new JobResultsPresenter) + , m_fitActivityPanel(new FitActivityPanel) + , m_jobMessagePanel(new JobMessagePanel) , m_activityActions(this) , m_document(document) { @@ -54,11 +57,8 @@ JobView::JobView(QProgressBar* progressBar, ProjectDocument* document) //... Subwindows - m_jobResultsPresenter = new JobResultsPresenter; m_jobSelector = new JobSelector(m_document->jobModel(), this); m_jobRealTimeWidget = new JobRealTimeWidget(m_document->jobModel(), this); - m_fitActivityPanel = new FitActivityPanel; - m_jobMessagePanel = new JobMessagePanel; m_docks->addWidget(JobViewFlags::JOB_LIST_DOCK, m_jobSelector, Qt::LeftDockWidgetArea); m_docks->addWidget(JobViewFlags::REAL_TIME_DOCK, m_jobRealTimeWidget, Qt::RightDockWidgetArea); diff --git a/GUI/View/JobControl/JobListing.cpp b/GUI/View/JobControl/JobListing.cpp index 1719d2db59e..700d217d28f 100644 --- a/GUI/View/JobControl/JobListing.cpp +++ b/GUI/View/JobControl/JobListing.cpp @@ -47,6 +47,9 @@ bool row_ascending(const QModelIndex& idx1, const QModelIndex& idx2) JobListing::JobListing(JobModel* jobs, QWidget* parent, Qt::WindowFlags f) : QWidget(parent, f) + , m_listView(new QListView(this)) + , m_listViewDelegate(new JobListingDelegate(this)) + , m_model(new JobListModel(jobs, this)) { auto* layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); @@ -79,15 +82,15 @@ JobListing::JobListing(JobModel* jobs, QWidget* parent, Qt::WindowFlags f) toolbar->addAction(m_removeAction); layout->addWidget(toolbar); - m_listView = new QListView(this); + m_listView->setSelectionMode(QAbstractItemView::ExtendedSelection); - m_listViewDelegate = new JobListingDelegate(this); + connect(m_listViewDelegate, &JobListingDelegate::cancelButtonClicked, this, &JobListing::onCancel); m_listView->setItemDelegate(m_listViewDelegate); layout->addWidget(m_listView); - m_model = new JobListModel(jobs, this); + m_listView->setModel(m_model); setContextMenuPolicy(Qt::CustomContextMenu); diff --git a/GUI/View/JobControl/JobPropertiesWidget.cpp b/GUI/View/JobControl/JobPropertiesWidget.cpp index bd86dc1ee75..1071f2b53ca 100644 --- a/GUI/View/JobControl/JobPropertiesWidget.cpp +++ b/GUI/View/JobControl/JobPropertiesWidget.cpp @@ -34,6 +34,10 @@ enum ETabId { JOB_PROPERTIES, JOB_MESSAGES }; JobPropertiesWidget::JobPropertiesWidget(QWidget* parent, Qt::WindowFlags f) : QWidget(parent, f) + , m_tabWidget(new QTabWidget(this)) + , m_propertiesView(new QTreeView(this)) + , m_propertiesModel(new JobPropertiesTableModel(this)) + , m_commentsEditor(new QTextEdit(this)) , m_jobItem(nullptr) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::MinimumExpanding); @@ -43,19 +47,16 @@ JobPropertiesWidget::JobPropertiesWidget(QWidget* parent, Qt::WindowFlags f) layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); - m_tabWidget = new QTabWidget(this); m_tabWidget->setTabPosition(QTabWidget::South); layout->addWidget(m_tabWidget); - m_propertiesView = new QTreeView(this); m_propertiesView->setRootIsDecorated(false); m_propertiesView->setAlternatingRowColors(true); m_tabWidget->insertTab(JOB_PROPERTIES, m_propertiesView, "Job Properties"); - m_propertiesModel = new JobPropertiesTableModel(this); + m_propertiesView->setModel(m_propertiesModel); m_propertiesView->header()->setSectionResizeMode(QHeaderView::ResizeToContents); - m_commentsEditor = new QTextEdit(this); m_tabWidget->insertTab(JOB_MESSAGES, m_commentsEditor, "Messages"); connect(m_commentsEditor, &QTextEdit::textChanged, this, diff --git a/GUI/View/JobControl/JobSelector.cpp b/GUI/View/JobControl/JobSelector.cpp index dc38b0d1595..a35b075dd7c 100644 --- a/GUI/View/JobControl/JobSelector.cpp +++ b/GUI/View/JobControl/JobSelector.cpp @@ -41,6 +41,8 @@ QList<int> qVariantToList(const QVariant& var) } // namespace JobSelector::JobSelector(JobModel* jobModel, QWidget* parent) : QWidget(parent) + , m_splitter(new QSplitter(Qt::Vertical, this)) + , m_jobProperties(new JobPropertiesWidget(this)) , m_jobModel(jobModel) { setWindowTitle(GUI::Style::JobSelectorName); @@ -50,7 +52,7 @@ JobSelector::JobSelector(JobModel* jobModel, QWidget* parent) layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); - m_splitter = new QSplitter(Qt::Vertical, this); + m_splitter->setChildrenCollapsible(true); layout->addWidget(m_splitter); @@ -59,7 +61,6 @@ JobSelector::JobSelector(JobModel* jobModel, QWidget* parent) m_splitter->setCollapsible(0, false); m_splitter->setStretchFactor(0, 1); - m_jobProperties = new JobPropertiesWidget(this); m_splitter->addWidget(m_jobProperties); m_splitter->setCollapsible(1, false); m_splitter->setStretchFactor(1, 0); diff --git a/GUI/View/Manager/NewProjectDialog.cpp b/GUI/View/Manager/NewProjectDialog.cpp index ac2107de62d..5c0f9832be7 100644 --- a/GUI/View/Manager/NewProjectDialog.cpp +++ b/GUI/View/Manager/NewProjectDialog.cpp @@ -24,10 +24,10 @@ NewProjectDialog::NewProjectDialog(QWidget* parent, const QString& workingDirectory, const QString& projectName) : QDialog(parent) - , m_projectNameEdit(nullptr) - , m_workDirEdit(nullptr) + , m_projectNameEdit(new QLineEdit) + , m_workDirEdit(new QLineEdit) , m_browseButton(nullptr) - , m_warningLabel(nullptr) + , m_warningLabel(new QLabel()) , m_cancelButton(nullptr) , m_createButton(nullptr) , m_valid_projectName(true) @@ -38,14 +38,14 @@ NewProjectDialog::NewProjectDialog(QWidget* parent, const QString& workingDirect setWindowTitle("Save project"); auto* nameLabel = new QLabel("Project name:"); - m_projectNameEdit = new QLineEdit; + m_projectNameEdit->setText(projectName); connect(m_projectNameEdit, &QLineEdit::textEdited, this, &NewProjectDialog::checkIfProjectNameIsValid); nameLabel->setBuddy(m_projectNameEdit); auto* parentDirLabel = new QLabel("Save in:"); - m_workDirEdit = new QLineEdit; + m_workDirEdit->setText(QDir::toNativeSeparators(QDir::homePath())); connect(m_workDirEdit, &QLineEdit::textEdited, this, &NewProjectDialog::checkIfProjectPathIsValid); @@ -54,8 +54,6 @@ NewProjectDialog::NewProjectDialog(QWidget* parent, const QString& workingDirect m_browseButton = new QPushButton("Browse"); connect(m_browseButton, &QPushButton::clicked, this, &NewProjectDialog::onBrowseDirectory); - m_warningLabel = new QLabel(); - m_createButton = new QPushButton("Save"); connect(m_createButton, &QPushButton::clicked, this, &NewProjectDialog::createProjectDir); m_createButton->setDefault(true); diff --git a/GUI/View/Numeric/DoubleLineEdit.cpp b/GUI/View/Numeric/DoubleLineEdit.cpp index 7c58878bc6d..26dcea58d8a 100644 --- a/GUI/View/Numeric/DoubleLineEdit.cpp +++ b/GUI/View/Numeric/DoubleLineEdit.cpp @@ -16,9 +16,9 @@ DoubleLineEdit::DoubleLineEdit(QWidget* parent, const DoubleProperty& d) : QLineEdit(parent) + , m_validator(new QDoubleValidator(0.0, 1e200, 1000, this)) , m_valueProperty(d) { - m_validator = new QDoubleValidator(0.0, 1e200, 1000, this); m_validator->setNotation(QDoubleValidator::ScientificNotation); const double minimum = d.limits().hasLowerLimit() ? std::max(d.limits().lowerLimit(), -1e200) : -1e200; diff --git a/GUI/View/Plotter/ColorMap.cpp b/GUI/View/Plotter/ColorMap.cpp index 67ad99c1f3f..7a82eb3074c 100644 --- a/GUI/View/Plotter/ColorMap.cpp +++ b/GUI/View/Plotter/ColorMap.cpp @@ -43,22 +43,22 @@ QCPRange qcpRange(double xmin, double xmax, int nbins) ColorMap::ColorMap() : ScientificPlot(PLOT_TYPE::Plot2D) + , m_qcpMap(new QCPColorMap(m_qcp->xAxis, m_qcp->yAxis)) + , m_colorScale(new QCPColorScale(m_qcp)) + , m_colorBarLayout(new QCPLayoutGrid) , m_updateTimer(new UpdateTimer(replot_update_interval, this)) { m_qcp->xAxis->setTickLabelFont(QFont(QFont().family(), GUI::Style::fontSizeSmall())); m_qcp->yAxis->setTickLabelFont(QFont(QFont().family(), GUI::Style::fontSizeSmall())); m_qcp->setAttribute(Qt::WA_NoMousePropagation, false); - m_qcpMap = new QCPColorMap(m_qcp->xAxis, m_qcp->yAxis); - m_colorScale = new QCPColorScale(m_qcp); m_colorScale->axis()->axisRect()->setMargins(QMargins(0, 0, 0, 0)); m_colorScale->axis()->axisRect()->setAutoMargins(QCP::msNone); m_colorScale->setBarWidth(GUI::Style::SizeOfLetterM().width()); m_colorScale->axis()->setTickLabelFont(QFont(QFont().family(), GUI::Style::fontSizeSmall())); m_qcpMap->setColorScale(m_colorScale); - m_colorBarLayout = new QCPLayoutGrid; m_colorBarLayout->addElement(0, 0, m_colorScale); m_colorBarLayout->setMinimumSize(colorbar_width_logz, 10); const auto base_size = GUI::Style::SizeOfLetterM(this).width() * 0.5; diff --git a/GUI/View/Project/SimulationView.cpp b/GUI/View/Project/SimulationView.cpp index fe18e66187b..1ffc70dd903 100644 --- a/GUI/View/Project/SimulationView.cpp +++ b/GUI/View/Project/SimulationView.cpp @@ -36,6 +36,11 @@ SimulationView::SimulationView(QWidget* parent, ProjectDocument* document) : QWidget(parent) , m_document(document) + , m_instrumentCombo(new QComboBox) + , m_sampleCombo(new QComboBox) + , m_realDataCombo(new QComboBox) + , m_numberOfMonteCarloPoints(new QSpinBox) + , m_numberOfThreadsCombo(new QComboBox) { auto* layout = new QVBoxLayout; setLayout(layout); @@ -47,11 +52,11 @@ SimulationView::SimulationView(QWidget* parent, ProjectDocument* document) auto* f1 = new QFormLayout; g1->body()->setLayout(f1); m_instrumentLabel = new QLabel("Instrument"); - m_instrumentCombo = new QComboBox; + f1->addRow(m_instrumentLabel, m_instrumentCombo); - m_sampleCombo = new QComboBox; + f1->addRow("Sample", m_sampleCombo); - m_realDataCombo = new QComboBox; + f1->addRow("Data", m_realDataCombo); //... Model evaluation settings @@ -71,7 +76,7 @@ SimulationView::SimulationView(QWidget* parent, ProjectDocument* document) auto* l_mc2 = new QHBoxLayout; l2->addLayout(l_mc2); l_mc2->addWidget(m_monteCarloRadio); - m_numberOfMonteCarloPoints = new QSpinBox; + l_mc2->addWidget(m_numberOfMonteCarloPoints); l_mc2->addStretch(1); l2->addSpacerItem(new QSpacerItem(10, 10)); @@ -109,7 +114,7 @@ SimulationView::SimulationView(QWidget* parent, ProjectDocument* document) // number of threads auto* f3 = new QFormLayout; - m_numberOfThreadsCombo = new QComboBox; + m_numberOfThreadsCombo->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); f3->addRow("Number of threads", m_numberOfThreadsCombo); l3->addLayout(f3); diff --git a/GUI/View/Sample/CompoundForm.cpp b/GUI/View/Sample/CompoundForm.cpp index 57e57b9af17..45051782b81 100644 --- a/GUI/View/Sample/CompoundForm.cpp +++ b/GUI/View/Sample/CompoundForm.cpp @@ -23,10 +23,10 @@ CompoundForm::CompoundForm(QWidget* parent, CompoundItem* compoundItem, SampleEditorController* ec, bool allowRemove) : CollapsibleGroupBox("Compound", parent, compoundItem->expandCompound) + , m_layout(new HeinzFormLayout(ec)) , m_compositionItem(compoundItem) , m_ec(ec) { - m_layout = new HeinzFormLayout(ec); body()->setLayout(m_layout); m_layout->setContentsMargins(30, 6, 0, 0); m_layout->addVector(compoundItem->position(), false); diff --git a/GUI/View/Sample/InterferenceForm.cpp b/GUI/View/Sample/InterferenceForm.cpp index 83212c1e68f..1caacf72c13 100644 --- a/GUI/View/Sample/InterferenceForm.cpp +++ b/GUI/View/Sample/InterferenceForm.cpp @@ -24,13 +24,14 @@ InterferenceForm::InterferenceForm(QWidget* parent, ParticleLayoutItem* layoutItem, SampleEditorController* ec) : CollapsibleGroupBox("Interference Function", parent, layoutItem->expandInterference) + , m_interferenceTypeCombo(new QComboBox(this)) , m_layoutItem(layoutItem) , m_ec(ec) { m_layout = new HeinzFormLayout(m_ec); body()->setLayout(m_layout); - m_interferenceTypeCombo = new QComboBox(this); + WheelEventEater::install(m_interferenceTypeCombo); const auto& d = layoutItem->interferenceSelection(); m_interferenceTypeCombo->addItems(d.options()); diff --git a/GUI/View/Sample/LayerForm.cpp b/GUI/View/Sample/LayerForm.cpp index a5e2861cf79..3c9ab5d2712 100644 --- a/GUI/View/Sample/LayerForm.cpp +++ b/GUI/View/Sample/LayerForm.cpp @@ -30,11 +30,14 @@ LayerForm::LayerForm(QWidget* parent, LayerItem* layerItem, SampleEditorController* ec) : CollapsibleGroupBox(layerItem->layerName(), parent, layerItem->expandLayer) + , m_layout(new HeinzFormLayout(ec)) , m_layer(layerItem) + , m_thicknessRow(m_layout->rowCount() - 1) + , m_roughnessRow(m_layout->rowCount() - 1) , m_ec(ec) { setContentsMargins(5, 5, 5, 5); - m_layout = new HeinzFormLayout(ec); + body()->setLayout(m_layout); //... top right corner actions @@ -93,7 +96,6 @@ LayerForm::LayerForm(QWidget* parent, LayerItem* layerItem, SampleEditorControll m_layout->addBoldRow("Material:", new MaterialInplaceForm(this, layerItem, ec)); m_layout->addValue(m_layer->thickness()); - m_thicknessRow = m_layout->rowCount() - 1; m_layout->addBoldRow("Number of slices:", GUI::Util::createIntSpinbox( [this] { return m_layer->numSlices(); }, @@ -107,7 +109,6 @@ LayerForm::LayerForm(QWidget* parent, LayerItem* layerItem, SampleEditorControll "when corresponding simulation option is set.")); m_layout->addSelection(m_layer->roughnessSelection()); - m_roughnessRow = m_layout->rowCount() - 1; // -- layouts for (auto* layout : layerItem->layoutItems()) diff --git a/GUI/View/Sample/LayerForm.h b/GUI/View/Sample/LayerForm.h index a4483c4d28a..ab7153644d8 100644 --- a/GUI/View/Sample/LayerForm.h +++ b/GUI/View/Sample/LayerForm.h @@ -45,8 +45,8 @@ private: LayerItem* m_layer; QAction* m_duplicateAction; QAction* m_removeAction; - int m_roughnessRow = -1; - int m_thicknessRow = -1; + int m_thicknessRow; + int m_roughnessRow; SampleEditorController* m_ec; QList<QWidget*> m_structureEditingWidgets; WidgetMoverButton* m_moveButton; diff --git a/GUI/View/Sample/MaterialInplaceForm.cpp b/GUI/View/Sample/MaterialInplaceForm.cpp index a5c92802fc6..ea54d6dc751 100644 --- a/GUI/View/Sample/MaterialInplaceForm.cpp +++ b/GUI/View/Sample/MaterialInplaceForm.cpp @@ -36,8 +36,8 @@ MaterialInplaceForm::MaterialInplaceForm(QWidget* parent, ItemWithMaterial* item : QWidget(parent) , m_item(item) , m_ec(ec) + , m_layout(new QGridLayout(this)) { - m_layout = new QGridLayout(this); m_layout->setContentsMargins(0, 0, 0, 0); createWidgets(); diff --git a/GUI/View/Sample/MesocrystalForm.cpp b/GUI/View/Sample/MesocrystalForm.cpp index 8d010166850..5d504f6cca6 100644 --- a/GUI/View/Sample/MesocrystalForm.cpp +++ b/GUI/View/Sample/MesocrystalForm.cpp @@ -24,10 +24,13 @@ MesocrystalForm::MesocrystalForm(QWidget* parent, MesocrystalItem* mesocrystalItem, SampleEditorController* ec, bool allowRemove) : CollapsibleGroupBox("Mesocrystal", parent, mesocrystalItem->expandMesocrystal) + , m_layout(new HeinzFormLayout(ec)) , m_item(mesocrystalItem) , m_ec(ec) + , m_basisCombo(createBasisCombo(this, mesocrystalItem->basisItem())) + , m_rowOfBasisTypeCombo(m_layout->rowCount() - 1) { - m_layout = new HeinzFormLayout(ec); + body()->setLayout(m_layout); m_layout->setContentsMargins(30, 6, 0, 0); m_layout->addVector(mesocrystalItem->position(), false); @@ -39,11 +42,11 @@ MesocrystalForm::MesocrystalForm(QWidget* parent, MesocrystalItem* mesocrystalIt m_layout->addSelection(mesocrystalItem->outerShapeSelection()); - m_basisCombo = createBasisCombo(this, mesocrystalItem->basisItem()); + connect(m_basisCombo, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &MesocrystalForm::onBasisComboChanged); m_layout->addBoldRow("Basis type", m_basisCombo); - m_rowOfBasisTypeCombo = m_layout->rowCount() - 1; + createBasisWidgets(); //... top right corner actions diff --git a/GUI/View/Sample/ParticleLayoutForm.cpp b/GUI/View/Sample/ParticleLayoutForm.cpp index 773531e2650..0aad34eeda8 100644 --- a/GUI/View/Sample/ParticleLayoutForm.cpp +++ b/GUI/View/Sample/ParticleLayoutForm.cpp @@ -31,10 +31,10 @@ ParticleLayoutForm::ParticleLayoutForm(LayerForm* form, ParticleLayoutItem* pLayoutItem, SampleEditorController* ec) : CollapsibleGroupBox("TODO", form, pLayoutItem->expandParticleLayout) + , m_layout(new HeinzFormLayout(ec)) , m_layoutItem(pLayoutItem) , m_ec(ec) { - m_layout = new HeinzFormLayout(ec); body()->setLayout(m_layout); m_layout->addValue(m_layoutItem->ownDensity()); diff --git a/GUI/View/Sample/SampleForm.cpp b/GUI/View/Sample/SampleForm.cpp index dbfa8a5193a..89233c6278c 100644 --- a/GUI/View/Sample/SampleForm.cpp +++ b/GUI/View/Sample/SampleForm.cpp @@ -57,12 +57,12 @@ public: SampleForm::SampleForm(SampleItem* sampleItem, SampleEditorController* ec) - : m_sampleItem(sampleItem) + : m_layout(new QVBoxLayout(this)) + , m_sampleItem(sampleItem) , m_ec(ec) { setAttribute(Qt::WA_StyledBackground, true); - m_layout = new QVBoxLayout(this); m_layout->setAlignment(Qt::AlignTop); auto* summary = new CollapsibleGroupBox("Summary and layer-independent parameters", this, diff --git a/GUI/View/Sample/SampleListing.cpp b/GUI/View/Sample/SampleListing.cpp index 6c80d875919..ffe9943d858 100644 --- a/GUI/View/Sample/SampleListing.cpp +++ b/GUI/View/Sample/SampleListing.cpp @@ -64,11 +64,14 @@ protected: SampleListing::SampleListing(QWidget* parent, ProjectDocument* document) : QListView(parent) + , m_model(new SampleListModel(this, document->sampleModel())) , m_document(document) + , m_newSampleAction(new QAction(this)) + , m_importSampleAction(new QAction(this)) + , m_chooseFromLibraryAction(new QAction(this)) { setMaximumWidth(200); - m_model = new SampleListModel(this, document->sampleModel()); setContextMenuPolicy(Qt::CustomContextMenu); setModel(m_model); @@ -83,14 +86,14 @@ SampleListing::SampleListing(QWidget* parent, ProjectDocument* document) connect(this, &QWidget::customContextMenuRequested, this, &SampleListing::showContextMenu); - m_newSampleAction = new QAction(this); + m_newSampleAction->setText("Create new sample"); m_newSampleAction->setIcon(QIcon(":/images/shape-square-plus.svg")); m_newSampleAction->setIconText("New"); m_newSampleAction->setToolTip("Create new sample"); connect(m_newSampleAction, &QAction::triggered, this, &SampleListing::createNewSample); - m_importSampleAction = new QAction(this); + m_importSampleAction->setText("Import sample from python script (experimental)"); m_importSampleAction->setIcon(QIcon(":/images/import.svg")); m_importSampleAction->setIconText("Import"); @@ -105,7 +108,7 @@ SampleListing::SampleListing(QWidget* parent, ProjectDocument* document) m_importSampleAction->setVisible(false); #endif - m_chooseFromLibraryAction = new QAction(this); + m_chooseFromLibraryAction->setText("Choose from sample examples"); m_chooseFromLibraryAction->setIcon(QIcon(":/images/library.svg")); m_chooseFromLibraryAction->setIconText("Examples"); diff --git a/GUI/View/Sample/SampleView.cpp b/GUI/View/Sample/SampleView.cpp index cf0103a6dbc..0cc769fc89b 100644 --- a/GUI/View/Sample/SampleView.cpp +++ b/GUI/View/Sample/SampleView.cpp @@ -38,6 +38,8 @@ SampleView::SampleView(QWidget* parent, ProjectDocument* document) : QWidget(parent) , m_document(document) + , m_realspacePanel(new RealspacePanel(this)) + , m_listing(new SampleListing(this, m_document)) { auto* layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); @@ -53,7 +55,6 @@ SampleView::SampleView(QWidget* parent, ProjectDocument* document) //... Left margin: sample listing - m_listing = new SampleListing(this, m_document); hLayout->addWidget(m_listing); m_listing->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); @@ -72,7 +73,6 @@ SampleView::SampleView(QWidget* parent, ProjectDocument* document) hSplitter->setOrientation(Qt::Horizontal); vSplitter->addWidget(hSplitter); - m_realspacePanel = new RealspacePanel(this); hSplitter->addWidget(m_realspacePanel); auto* scriptPanel = new ScriptPanel(this); diff --git a/GUI/View/Sample/SampleView.h b/GUI/View/Sample/SampleView.h index 247a7cb348b..25f24689190 100644 --- a/GUI/View/Sample/SampleView.h +++ b/GUI/View/Sample/SampleView.h @@ -42,9 +42,9 @@ private: void applySplitterPos(); void saveSplitterPos(); - ProjectDocument* m_document = nullptr; - RealspacePanel* m_realspacePanel = nullptr; - SampleListing* m_listing = nullptr; + ProjectDocument* m_document; + RealspacePanel* m_realspacePanel; + SampleListing* m_listing; }; #endif // BORNAGAIN_GUI_VIEW_SAMPLE_SAMPLEVIEW_H diff --git a/GUI/View/Tuning/ParameterBackupWidget.cpp b/GUI/View/Tuning/ParameterBackupWidget.cpp index 88e44b65a83..7d022dd57aa 100644 --- a/GUI/View/Tuning/ParameterBackupWidget.cpp +++ b/GUI/View/Tuning/ParameterBackupWidget.cpp @@ -62,12 +62,13 @@ public: ParameterBackupWidget::ParameterBackupWidget(QWidget* parent) : QWidget(parent) + , m_combo(new QComboBox) { auto* mainLayout = new QVBoxLayout(this); auto* h1 = new QHBoxLayout; h1->setAlignment(Qt::AlignLeft); - m_combo = new QComboBox; + m_combo->setSizeAdjustPolicy(QComboBox::AdjustToContents); h1->addWidget(m_combo); diff --git a/GUI/View/Widget/GroupBoxes.cpp b/GUI/View/Widget/GroupBoxes.cpp index 6ea9525e312..564bdf1b2c9 100644 --- a/GUI/View/Widget/GroupBoxes.cpp +++ b/GUI/View/Widget/GroupBoxes.cpp @@ -24,6 +24,7 @@ StaticGroupBox::StaticGroupBox(const QString& title, QWidget* parent) : QssWidget(parent) + , m_body(new QWidget) { auto* layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); @@ -35,7 +36,6 @@ StaticGroupBox::StaticGroupBox(const QString& title, QWidget* parent) label->setText(title); label->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::MinimumExpanding); - m_body = new QWidget; layout->addWidget(m_body); } @@ -45,6 +45,10 @@ StaticGroupBox::StaticGroupBox(const QString& title, QWidget* parent) CollapsibleGroupBox::CollapsibleGroupBox(const QString& title, QWidget* parent, bool& expanded) : QssWidget(parent) + , m_titleWidget(new QWidget) + , m_titleLayout(new QHBoxLayout(m_titleWidget)) + , m_toggleButton(new QToolButton) + , m_body(new QWidget(this)) { auto* layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); @@ -52,17 +56,14 @@ CollapsibleGroupBox::CollapsibleGroupBox(const QString& title, QWidget* parent, //... Header widget - m_titleWidget = new QWidget; layout->setMenuBar(m_titleWidget); m_titleWidget->setObjectName("GroupBoxTitleWidget"); m_titleWidget->setAttribute(Qt::WA_StyledBackground, true); - m_titleLayout = new QHBoxLayout(m_titleWidget); m_titleLayout->setContentsMargins(1, 1, 1, 1); m_titleLayout->setSpacing(3); m_titleLayout->setAlignment(Qt::AlignVCenter); - m_toggleButton = new QToolButton; m_titleLayout->addWidget(m_toggleButton); m_toggleButton->setObjectName("GroupBoxToggler"); m_toggleButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); @@ -74,7 +75,6 @@ CollapsibleGroupBox::CollapsibleGroupBox(const QString& title, QWidget* parent, //... Body - m_body = new QWidget(this); layout->addWidget(m_body); m_body->setVisible(expanded); m_toggleButton->setArrowType(expanded ? Qt::ArrowType::DownArrow : Qt::ArrowType::RightArrow); diff --git a/Img3D/Plot/AxesPlotter.cpp b/Img3D/Plot/AxesPlotter.cpp index d2aba9e5c95..1d861d7f778 100644 --- a/Img3D/Plot/AxesPlotter.cpp +++ b/Img3D/Plot/AxesPlotter.cpp @@ -24,6 +24,7 @@ const float cz = 100; // multiplication scale for controlling how long the axes namespace Img3D { AxesPlotter::AxesPlotter() + : m_vertexCount3DAxes(30) { initializeOpenGLFunctions(); @@ -62,8 +63,6 @@ AxesPlotter::AxesPlotter() cz * -0.05f, cz * 0.95f, 0.0f, 0.0f, 1.0f, }; - m_vertexCount3DAxes = 30; - m_glAxesPlotter.create(); m_glAxesPlotter.bind(); m_glAxesPlotter.allocate(vertices3DAxes, int(sizeof(vertices3DAxes))); -- GitLab From e63841d9db2a2f8cd55e91785c3bba62f5b5af4a Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 09:43:07 +0100 Subject: [PATCH 24/33] tidy/llvm-namespace-comment --- .clang-tidy | 10 +++++++--- Device/IO/ReadWriteTiff.cpp | 2 +- GUI/Model/Device/BackgroundItems.cpp | 2 +- GUI/View/Fit/FitSessionController.cpp | 2 +- GUI/View/Info/DetailedMessageBox.cpp | 2 +- GUI/View/JobControl/JobPropertiesTableModel.cpp | 4 ++-- GUI/View/JobControl/JobPropertiesWidget.cpp | 2 +- GUI/View/Manager/AutosaveController.cpp | 2 +- GUI/View/Manager/ProjectLoadProblemDialog.cpp | 2 +- GUI/View/Sample/ScriptPanel.cpp | 2 +- GUI/View/Shape/PolygonDisplay.cpp | 2 +- Tests/Functional/Mumufit/PlanCases.cpp | 2 +- 12 files changed, 19 insertions(+), 15 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index a5e70ba1d58..89adc605ed4 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -16,19 +16,22 @@ Checks: '*, -*, --*avoid-c-arrays, --*narrowing-conversions, +-clang-analyzer-cplusplus.NewDeleteLeaks, +-cppcoreguidelines-avoid-non-const-global-variables, +-cppcoreguidelines-pro-bounds-array-to-pointer-decay, +-hicpp-no-array-decay, +-llvm-include-order, -bugprone-unused-return-value, -cppcoreguidelines-explicit-virtual-functions, -cppcoreguidelines-prefer-member-initializer, -hicpp-move-const-arg, +-llvm-namespace-comment, -llvm-qualified-auto, -misc-uniqueptr-reset-release, -modernize-avoid-bind, -modernize-make-unique, -modernize-pass-by-value, --modernize-raw-string-literal, -modernize-use-default-member-init, -modernize-use-using, -performance-for-range-copy, @@ -41,6 +44,7 @@ Checks: '*, -readability-inconsistent-declaration-parameter-name, -readability-non-const-parameter, -readability-qualified-auto, +-readability-redundant-access-specifiers, -readability-simplify-boolean-expr, ' diff --git a/Device/IO/ReadWriteTiff.cpp b/Device/IO/ReadWriteTiff.cpp index e05797ca495..cb82925fb76 100644 --- a/Device/IO/ReadWriteTiff.cpp +++ b/Device/IO/ReadWriteTiff.cpp @@ -30,7 +30,7 @@ namespace { const std::string ref_to_doc = "\n\nThe TIFF format requirements can be found in the web documentation."; -} +} // namespace Datafield* Util::RW::readTiff(std::istream& input_stream) { diff --git a/GUI/Model/Device/BackgroundItems.cpp b/GUI/Model/Device/BackgroundItems.cpp index 55995e63f8a..fe32a8a9b3e 100644 --- a/GUI/Model/Device/BackgroundItems.cpp +++ b/GUI/Model/Device/BackgroundItems.cpp @@ -22,7 +22,7 @@ namespace Tag { const QString BackgroundValue("BackgroundValue"); -} +} // namespace Tag } // namespace ConstantBackgroundItem::ConstantBackgroundItem() diff --git a/GUI/View/Fit/FitSessionController.cpp b/GUI/View/Fit/FitSessionController.cpp index 4ec9bd17e39..b1b977bef24 100644 --- a/GUI/View/Fit/FitSessionController.cpp +++ b/GUI/View/Fit/FitSessionController.cpp @@ -26,7 +26,7 @@ namespace { const bool use_fit_objective = true; -} +} // namespace FitSessionController::FitSessionController(QObject* parent) : QObject(parent) diff --git a/GUI/View/Info/DetailedMessageBox.cpp b/GUI/View/Info/DetailedMessageBox.cpp index 314921bd0f7..7123fe0070b 100644 --- a/GUI/View/Info/DetailedMessageBox.cpp +++ b/GUI/View/Info/DetailedMessageBox.cpp @@ -21,7 +21,7 @@ namespace { const QSize default_dialog_size(512, 300); -} +} // namespace DetailedMessageBox::DetailedMessageBox(QWidget* parent, const QString& title, const QString& text, const QString& details) diff --git a/GUI/View/JobControl/JobPropertiesTableModel.cpp b/GUI/View/JobControl/JobPropertiesTableModel.cpp index 1acad412208..99bfce7a308 100644 --- a/GUI/View/JobControl/JobPropertiesTableModel.cpp +++ b/GUI/View/JobControl/JobPropertiesTableModel.cpp @@ -21,13 +21,13 @@ namespace { namespace Column { enum Columns { Name, Value }; -} +} // namespace Column const QString ColumnNames[] = {"Name", "Value"}; const int NumColumns = (int)std::size(ColumnNames); namespace Row { enum Rows { Name, Sample, Instrument, Status, Begin, End, Duration }; -} +} // namespace Row const QString RowNames[] = {"Name", "Sample", "Instrument", "Status", "Begin", "End", "Duration"}; const int NumRows = (int)std::size(RowNames); diff --git a/GUI/View/JobControl/JobPropertiesWidget.cpp b/GUI/View/JobControl/JobPropertiesWidget.cpp index 1071f2b53ca..d329927bc93 100644 --- a/GUI/View/JobControl/JobPropertiesWidget.cpp +++ b/GUI/View/JobControl/JobPropertiesWidget.cpp @@ -22,7 +22,7 @@ namespace { enum ETabId { JOB_PROPERTIES, JOB_MESSAGES }; -} +} // namespace //================================================================================================== // JobPropertiesWidget diff --git a/GUI/View/Manager/AutosaveController.cpp b/GUI/View/Manager/AutosaveController.cpp index 2c7e32eb00e..3323e3d9315 100644 --- a/GUI/View/Manager/AutosaveController.cpp +++ b/GUI/View/Manager/AutosaveController.cpp @@ -21,7 +21,7 @@ namespace { const int update_every = 20000; // in msec -} +} // namespace AutosaveController::AutosaveController(QObject* parent) : QObject(parent) diff --git a/GUI/View/Manager/ProjectLoadProblemDialog.cpp b/GUI/View/Manager/ProjectLoadProblemDialog.cpp index c7ef8407856..7cbfbfa49cb 100644 --- a/GUI/View/Manager/ProjectLoadProblemDialog.cpp +++ b/GUI/View/Manager/ProjectLoadProblemDialog.cpp @@ -23,7 +23,7 @@ namespace { const int top_panel_height = 80; -} +} // namespace ProjectLoadProblemDialog::ProjectLoadProblemDialog(QWidget* parent, const QStringList& details, QString documentVersion) diff --git a/GUI/View/Sample/ScriptPanel.cpp b/GUI/View/Sample/ScriptPanel.cpp index 3a9715915cf..d61d7cbb5e4 100644 --- a/GUI/View/Sample/ScriptPanel.cpp +++ b/GUI/View/Sample/ScriptPanel.cpp @@ -29,7 +29,7 @@ namespace { const int accumulateUpdatesDuringMsec = 20.; -} +} // namespace ScriptPanel::ScriptPanel(QWidget* parent) : QWidget(parent) diff --git a/GUI/View/Shape/PolygonDisplay.cpp b/GUI/View/Shape/PolygonDisplay.cpp index 0173824ff04..768da6fafbc 100644 --- a/GUI/View/Shape/PolygonDisplay.cpp +++ b/GUI/View/Shape/PolygonDisplay.cpp @@ -22,7 +22,7 @@ namespace { const double bbox_margins = 5; // additional margins around points to form bounding box -} +} // namespace PolygonDisplay::PolygonDisplay(PolygonItem* item) : IShapeDisplay(item) diff --git a/Tests/Functional/Mumufit/PlanCases.cpp b/Tests/Functional/Mumufit/PlanCases.cpp index 743f7f0ab59..6b982c5c331 100644 --- a/Tests/Functional/Mumufit/PlanCases.cpp +++ b/Tests/Functional/Mumufit/PlanCases.cpp @@ -18,7 +18,7 @@ namespace { const double loose_tolerance = 0.1; -} +} // namespace using namespace mumufit; -- GitLab From d1e3d07dea877782c8a8fe40b66c9951ad080d78 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 10:01:56 +0100 Subject: [PATCH 25/33] some file-wide variables -> const --- .clang-tidy | 5 +---- App/AppOptions.cpp | 8 +++----- GUI/Model/Data/Data2DItem.cpp | 4 ++-- GUI/Model/Job/MinimizerItem.cpp | 5 ++++- Sample/Correlations/IDistribution2DSampler.cpp | 4 ++-- Sample/StandardSamples/PlainMultiLayerBySLDBuilder.cpp | 6 +++--- Tests/SimFactory/MakeSimulations.cpp | 4 ++-- 7 files changed, 17 insertions(+), 19 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index 89adc605ed4..a2b2450bf81 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -17,10 +17,7 @@ Checks: '*, -*, -clang-analyzer-cplusplus.NewDeleteLeaks, --cppcoreguidelines-avoid-non-const-global-variables, --cppcoreguidelines-pro-bounds-array-to-pointer-decay, --hicpp-no-array-decay, --llvm-include-order, +cppcoreguidelines-avoid-non-const-global-variables, -bugprone-unused-return-value, -cppcoreguidelines-explicit-virtual-functions, diff --git a/App/AppOptions.cpp b/App/AppOptions.cpp index 7f30532cf94..530a436b182 100644 --- a/App/AppOptions.cpp +++ b/App/AppOptions.cpp @@ -24,8 +24,6 @@ namespace { -const char* geometry = "geometry"; - //! Converts string "1600x1000" to QSize(1600, 1000) QSize windowSize(const QString& size_string) { @@ -60,7 +58,7 @@ ApplicationOptions::ApplicationOptions(int argc, char** argv) m_options.add_options()("help,h", "print help message and exit"); m_options.add_options()("version,v", "print version and exit"); m_options.add_options()("with-debug", "run application with debug printout"); - m_options.add_options()(geometry, bpo::value<std::string>(), + m_options.add_options()("geometry", bpo::value<std::string>(), "Main window geometry, e.g. 1600x1000"); m_options.add_options()("project-file", bpo::value<std::string>(), "project file"); m_positional_options.add("project-file", -1); @@ -117,7 +115,7 @@ void ApplicationOptions::processOptions() exit(0); } - else if (m_variables_map.count(geometry)) { + else if (m_variables_map.count("geometry")) { if (!isValid(mainWindowSize())) exitWithGuiMessage("Wrong window size, try --geometry=1600x900\n"); } @@ -125,7 +123,7 @@ void ApplicationOptions::processOptions() QSize ApplicationOptions::mainWindowSize() const { - QString size_str = QString::fromStdString(m_variables_map[geometry].as<std::string>()); + QString size_str = QString::fromStdString(m_variables_map["geometry"].as<std::string>()); return windowSize(size_str); } diff --git a/GUI/Model/Data/Data2DItem.cpp b/GUI/Model/Data/Data2DItem.cpp index a0e7c115587..6d5299315f0 100644 --- a/GUI/Model/Data/Data2DItem.cpp +++ b/GUI/Model/Data/Data2DItem.cpp @@ -37,7 +37,7 @@ const QString ZAxis("ZAxis"); } // namespace Tag -QCPColorGradient infernoGradient = GUI::QCP_Util::colorGradientInferno(); +const QCPColorGradient infernoGradient = GUI::QCP_Util::colorGradientInferno(); // gradient map for colormaps const QMap<QString, QCPColorGradient::GradientPreset> gradient_map = { @@ -56,7 +56,7 @@ const QMap<QString, QCPColorGradient::GradientPreset> gradient_map = { const QMap<QString, QCPColorGradient> custom_gradient_map = {{"Inferno", infernoGradient}}; -QString startGradient = "Inferno"; +const QString startGradient = "Inferno"; } // namespace diff --git a/GUI/Model/Job/MinimizerItem.cpp b/GUI/Model/Job/MinimizerItem.cpp index 18434e94760..52de1456ec6 100644 --- a/GUI/Model/Job/MinimizerItem.cpp +++ b/GUI/Model/Job/MinimizerItem.cpp @@ -72,7 +72,8 @@ QString minimizerTypeToName(MinimizerType type) namespace { -QMap<QString /*algorithm*/, QString /*minimizer*/> algorithm_minimizer_map; +QMap<QString, QString> algorithm_minimizer_map; + QString add_algorithm_from_minimizer_to_list_and_map(MinimizerType minimizer_type, QStringList& common_algorithms_list, QStringList& common_algorithms_descriptions) @@ -90,6 +91,7 @@ QString add_algorithm_from_minimizer_to_list_and_map(MinimizerType minimizer_typ ASSERT(algorithms.size() > 0); return algorithms.first(); } + void create_algorithm_list_and_map(QString& default_common_algorithm, QStringList& algorithms_list, QStringList& algorithms_descriptions) { @@ -136,6 +138,7 @@ void create_algorithm_list_and_map(QString& default_common_algorithm, QStringLis } // namespace + MinimizerContainerItem::MinimizerContainerItem() : m_MinuitMinimizer(std::make_unique<MinuitMinimizerItem>()) , m_GSLMultiMinimizer(std::make_unique<GSLMultiMinimizerItem>()) diff --git a/Sample/Correlations/IDistribution2DSampler.cpp b/Sample/Correlations/IDistribution2DSampler.cpp index a9e47bc4f51..4bd499365e3 100644 --- a/Sample/Correlations/IDistribution2DSampler.cpp +++ b/Sample/Correlations/IDistribution2DSampler.cpp @@ -20,8 +20,8 @@ using std::numbers::pi; namespace { -double sigma_scale = 3.0; -size_t n_boxes = 256; // number of boxes for Ziggurat sampling +const double sigma_scale = 3.0; +const size_t n_boxes = 256; // number of boxes for Ziggurat sampling struct ZigguratBox { ZigguratBox(double x_min, double x_max, double y_max, double y_lower) diff --git a/Sample/StandardSamples/PlainMultiLayerBySLDBuilder.cpp b/Sample/StandardSamples/PlainMultiLayerBySLDBuilder.cpp index 161539761bc..f39e69c963f 100644 --- a/Sample/StandardSamples/PlainMultiLayerBySLDBuilder.cpp +++ b/Sample/StandardSamples/PlainMultiLayerBySLDBuilder.cpp @@ -24,9 +24,9 @@ struct MaterialData { double sld_imag; //!< imaginary part of sld in AA^{-2} }; -MaterialData m_si{2.0704e-06, 2.3726e-11}; -MaterialData m_ti{-1.9493e-06, 9.6013e-10}; -MaterialData m_ni{9.4245e-06, 1.1423e-09}; +const MaterialData m_si{2.0704e-06, 2.3726e-11}; +const MaterialData m_ti{-1.9493e-06, 9.6013e-10}; +const MaterialData m_ni{9.4245e-06, 1.1423e-09}; } // namespace diff --git a/Tests/SimFactory/MakeSimulations.cpp b/Tests/SimFactory/MakeSimulations.cpp index aaf5ed0dbe5..a11cc5bd936 100644 --- a/Tests/SimFactory/MakeSimulations.cpp +++ b/Tests/SimFactory/MakeSimulations.cpp @@ -59,8 +59,8 @@ const std::map<std::string, std::pair<R3, R3>> YPolarizationCases = { {"MM", {-yplus, -yplus}}, }; -Beam stdBeam(Beam(1, 1 * angstrom, 0.2 * deg)); -Beam powerBeam(Beam(1e7, 1 * angstrom, 0.2 * deg)); +const Beam stdBeam(1, 1 * angstrom, 0.2 * deg); +const Beam powerBeam(1e7, 1 * angstrom, 0.2 * deg); } // namespace -- GitLab From 59bc1e147721add6e9fea2901bbc2520fea5e7de Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 10:03:07 +0100 Subject: [PATCH 26/33] + TODO note --- GUI/Model/Job/MinimizerItem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GUI/Model/Job/MinimizerItem.cpp b/GUI/Model/Job/MinimizerItem.cpp index 52de1456ec6..837adf4e9f3 100644 --- a/GUI/Model/Job/MinimizerItem.cpp +++ b/GUI/Model/Job/MinimizerItem.cpp @@ -72,7 +72,7 @@ QString minimizerTypeToName(MinimizerType type) namespace { -QMap<QString, QString> algorithm_minimizer_map; +QMap<QString, QString> algorithm_minimizer_map; // TODO make this a class member QString add_algorithm_from_minimizer_to_list_and_map(MinimizerType minimizer_type, QStringList& common_algorithms_list, -- GitLab From 2bf7f0a3d2830fa8360ac2819c2d10f9339a22e0 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 10:31:04 +0100 Subject: [PATCH 27/33] tidy/modernize-loop-convert --- .clang-tidy | 13 +++++++++++-- Base/Util/StringUtil.cpp | 4 ++-- Device/Mask/Polygon.cpp | 6 +++--- Device/Resolution/Convolve.cpp | 6 +++--- GUI/Model/Data/MaskResultsPresenter.cpp | 12 +++++++----- GUI/Model/Detector/DetectorItem.cpp | 12 +++++++----- GUI/Model/Job/JobItem.cpp | 4 ++-- GUI/Model/Mask/MaskContainerItem.cpp | 6 +++--- GUI/View/Instrument/DistributionPlot.cpp | 4 ++-- GUI/View/PlotScale/SavePlotAssistant.cpp | 10 +++++----- Resample/Particle/ReCompound.cpp | 20 ++++++++++---------- Sample/Particle/Compound.cpp | 8 ++++---- Sim/Fitting/SimDataPair.cpp | 12 ++++++------ Sim/Scan/AlphaScan.cpp | 10 +++++----- Sim/Scan/QzScan.cpp | 13 ++++++------- Tests/Unit/Sample/MultiLayerTest.cpp | 3 +-- 16 files changed, 77 insertions(+), 66 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index a2b2450bf81..666b0f684a9 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -16,8 +16,17 @@ Checks: '*, -*, --clang-analyzer-cplusplus.NewDeleteLeaks, -cppcoreguidelines-avoid-non-const-global-variables, +-altera-id-dependent-backward-branch, +-bugprone-copy-constructor-init, +-bugprone-exception-escape, +-bugprone-misplaced-widening-cast, +-clang-analyzer-core.CallAndMessage, +-clang-analyzer-optin.cplusplus.VirtualCall, +-cppcoreguidelines-pro-type-const-cast, +-cppcoreguidelines-pro-type-static-cast-downcast, +-google-runtime-references, +-misc-non-private-member-variables-in-classes, +modernize-loop-convert, -bugprone-unused-return-value, -cppcoreguidelines-explicit-virtual-functions, diff --git a/Base/Util/StringUtil.cpp b/Base/Util/StringUtil.cpp index 3870da1b1bc..58c718602c7 100644 --- a/Base/Util/StringUtil.cpp +++ b/Base/Util/StringUtil.cpp @@ -31,8 +31,8 @@ std::vector<std::string> Base::String::split(const std::string& text, const std: void Base::String::replaceItemsFromString(std::string& text, const std::vector<std::string>& items, const std::string& replacement) { - for (size_t i = 0; i < items.size(); ++i) - boost::replace_all(text, items[i], replacement); + for (const auto& item : items) + boost::replace_all(text, item, replacement); } std::string Base::String::join(const std::vector<std::string>& joinable, const std::string& joint) diff --git a/Device/Mask/Polygon.cpp b/Device/Mask/Polygon.cpp index f81d2b84237..7981e053ab5 100644 --- a/Device/Mask/Polygon.cpp +++ b/Device/Mask/Polygon.cpp @@ -52,10 +52,10 @@ void PolygonPrivate::get_points(std::vector<double>& xpos, std::vector<double>& { xpos.clear(); ypos.clear(); - for (auto it = polygon.outer().begin(); it != polygon.outer().end(); ++it) { + for (auto& it : polygon.outer()) { // for vectors of x and y, extract the x/y from the point - xpos.push_back(boost::geometry::get<0>(*it)); - ypos.push_back(boost::geometry::get<1>(*it)); + xpos.push_back(boost::geometry::get<0>(it)); + ypos.push_back(boost::geometry::get<1>(it)); } } diff --git a/Device/Resolution/Convolve.cpp b/Device/Resolution/Convolve.cpp index 0ce849ef877..4ceed5e6c21 100644 --- a/Device/Resolution/Convolve.cpp +++ b/Device/Resolution/Convolve.cpp @@ -24,9 +24,9 @@ bool is_optimal(int n) if (n == 1) return false; size_t ntest = n; - for (size_t i = 0; i < favored_factors.size(); i++) - while ((ntest % favored_factors[i]) == 0) - ntest = ntest / favored_factors[i]; + for (int favored_factor : favored_factors) + while ((ntest % favored_factor) == 0) + ntest = ntest / favored_factor; return ntest == 1; } diff --git a/GUI/Model/Data/MaskResultsPresenter.cpp b/GUI/Model/Data/MaskResultsPresenter.cpp index f66ae033940..b9341533fa0 100644 --- a/GUI/Model/Data/MaskResultsPresenter.cpp +++ b/GUI/Model/Data/MaskResultsPresenter.cpp @@ -13,12 +13,14 @@ // ************************************************************************************************ #include "GUI/Model/Data/MaskResultsPresenter.h" + #include "Device/Data/Datafield.h" #include "Device/Mask/IShape2D.h" #include "Device/Mask/MaskStack.h" #include "GUI/Model/Data/Data2DItem.h" #include "GUI/Model/Mask/MaskContainerItem.h" #include "GUI/Model/Mask/MaskItems.h" +#include <ranges> namespace { @@ -32,13 +34,13 @@ Datafield* createMaskPresentation(Data2DItem* data2DItem) Datafield* result = data2DItem->c_field()->clone(); MaskStack detectorMask; const QVector<MaskItem*> maskItems = data2DItem->maskContainerItem()->maskItems(); - for (auto maskIter = maskItems.rbegin(); maskIter != maskItems.rend(); maskIter++) - if ((*maskIter)->isVisible()) { - if (auto* roiItem = dynamic_cast<RegionOfInterestItem*>((*maskIter))) + for (auto maskItem : std::ranges::reverse_view(maskItems)) + if (maskItem->isVisible()) { + if (auto* roiItem = dynamic_cast<RegionOfInterestItem*>(maskItem)) roi = roiItem->createShape(); else { - std::unique_ptr<IShape2D> shape((*maskIter)->createShape()); - detectorMask.maskToStack(*shape, (*maskIter)->maskValue(), false); + std::unique_ptr<IShape2D> shape(maskItem->createShape()); + detectorMask.maskToStack(*shape, maskItem->maskValue(), false); } } diff --git a/GUI/Model/Detector/DetectorItem.cpp b/GUI/Model/Detector/DetectorItem.cpp index d3f5081451c..b481efc839b 100644 --- a/GUI/Model/Detector/DetectorItem.cpp +++ b/GUI/Model/Detector/DetectorItem.cpp @@ -13,6 +13,7 @@ // ************************************************************************************************ #include "GUI/Model/Detector/DetectorItem.h" + #include "Base/Axis/Scale.h" #include "Base/Const/Units.h" #include "Base/Util/Assert.h" @@ -23,6 +24,7 @@ #include "GUI/Model/Mask/MaskContainerItem.h" #include "GUI/Model/Mask/MaskItems.h" #include "GUI/Support/XML/Backup.h" +#include <ranges> namespace { namespace Tag { @@ -67,13 +69,13 @@ std::unique_ptr<IDetector> DetectorItem::createDetector() const if (m_maskContainerItem) { const QVector<MaskItem*> maskItems = m_maskContainerItem->maskItems(); - for (auto maskIter = maskItems.rbegin(); maskIter != maskItems.rend(); maskIter++) { - if ((*maskIter)->isVisible()) { - if (auto* ii = dynamic_cast<RegionOfInterestItem*>(*maskIter)) { + for (auto maskItem : std::ranges::reverse_view(maskItems)) { + if (maskItem->isVisible()) { + if (auto* ii = dynamic_cast<RegionOfInterestItem*>(maskItem)) { result->setRegionOfInterest(ii->xLow(), ii->yLow(), ii->xUp(), ii->yUp()); } else { - std::unique_ptr<IShape2D> shape((*maskIter)->createShape()); - result->addBinMask(*shape, (*maskIter)->maskValue()); + std::unique_ptr<IShape2D> shape(maskItem->createShape()); + result->addBinMask(*shape, maskItem->maskValue()); } } } diff --git a/GUI/Model/Job/JobItem.cpp b/GUI/Model/Job/JobItem.cpp index 7b0ca05d57f..3d10b1fd21f 100644 --- a/GUI/Model/Job/JobItem.cpp +++ b/GUI/Model/Job/JobItem.cpp @@ -385,8 +385,8 @@ void JobItem::cropRealData() std::unique_ptr<const IDetector> det = iiI->normalDetector(); ASSERT(det->frame().rank() == 2); std::vector<size_t> ai = det->activeIndices(); - for (size_t i = 0; i < ai.size(); ++i) - (*data2DItem->p_field())[ai[i]] = (*origData)[det->roiToFullIndex(ai[i])]; + for (unsigned long i : ai) + (*data2DItem->p_field())[i] = (*origData)[det->roiToFullIndex(i)]; data2DItem->updateDataRange(); } diff --git a/GUI/Model/Mask/MaskContainerItem.cpp b/GUI/Model/Mask/MaskContainerItem.cpp index a674ec35dbe..9c39a7091c1 100644 --- a/GUI/Model/Mask/MaskContainerItem.cpp +++ b/GUI/Model/Mask/MaskContainerItem.cpp @@ -94,9 +94,9 @@ void MaskContainerItem::updateMaskNames() const auto reg = QRegularExpression("[0-9]"); QMap<QString, int> numMasksByType; - for (size_t i = 0; i < m_maskItems.size(); i++) { + for (const auto& m_maskItem : m_maskItems) { - QString name = m_maskItems[i].currentItem()->maskName(); + QString name = m_maskItem.currentItem()->maskName(); name.remove(reg); int numMasks = 1; @@ -107,7 +107,7 @@ void MaskContainerItem::updateMaskNames() numMasksByType.insert(name, numMasks); name += QString::number(numMasks); - m_maskItems[i].currentItem()->setMaskName(name); + m_maskItem.currentItem()->setMaskName(name); } } diff --git a/GUI/View/Instrument/DistributionPlot.cpp b/GUI/View/Instrument/DistributionPlot.cpp index e20eb6e7d24..922ee0fd61a 100644 --- a/GUI/View/Instrument/DistributionPlot.cpp +++ b/GUI/View/Instrument/DistributionPlot.cpp @@ -138,8 +138,8 @@ void DistributionPlot::plot_distributions() //... Plot function graph std::vector<std::pair<double, double>> graph = distrib->plotGraph(); double max_y = 0; - for (size_t i = 0; i < graph.size(); ++i) - max_y = std::max(max_y, graph[i].second); + for (auto& i : graph) + max_y = std::max(max_y, i.second); QVector<double> xFunc(graph.size()); QVector<double> yFunc(graph.size()); diff --git a/GUI/View/PlotScale/SavePlotAssistant.cpp b/GUI/View/PlotScale/SavePlotAssistant.cpp index 254b0df5c61..f7affd2b8ad 100644 --- a/GUI/View/PlotScale/SavePlotAssistant.cpp +++ b/GUI/View/PlotScale/SavePlotAssistant.cpp @@ -103,17 +103,17 @@ QString getFilterString() bool isValidExtension(const QString& fname) { - for (int i = 0; i < outFormats.size(); ++i) - if (fname.endsWith(outFormats[i].m_file_extention, Qt::CaseInsensitive)) + for (const auto& outFormat : outFormats) + if (fname.endsWith(outFormat.m_file_extention, Qt::CaseInsensitive)) return true; return false; } QString getExtensionFromFilterName(const QString& filterName) { - for (int i = 0; i < outFormats.size(); ++i) - if (outFormats[i].m_filter == filterName) - return outFormats[i].m_file_extention; + for (const auto& outFormat : outFormats) + if (outFormat.m_filter == filterName) + return outFormat.m_file_extention; return ""; } diff --git a/Resample/Particle/ReCompound.cpp b/Resample/Particle/ReCompound.cpp index 8f46d427d49..8bca9fa9c00 100644 --- a/Resample/Particle/ReCompound.cpp +++ b/Resample/Particle/ReCompound.cpp @@ -27,16 +27,16 @@ ReCompound::~ReCompound() = default; ReCompound* ReCompound::clone() const { auto* result = new ReCompound(i_layer()); - for (size_t index = 0; index < m_components.size(); ++index) - result->addFormFactor(*m_components[index]); + for (auto m_component : m_components) + result->addFormFactor(*m_component); return result; } double ReCompound::radialExtension() const { double result{0.0}; - for (size_t index = 0; index < m_components.size(); ++index) - result += m_components[index]->radialExtension(); + for (auto m_component : m_components) + result += m_component->radialExtension(); return result; } @@ -56,22 +56,22 @@ void ReCompound::addFormFactor(const IReParticle& formfactor) void ReCompound::setAmbientMaterial(const Material& material) { - for (size_t index = 0; index < m_components.size(); ++index) - m_components[index]->setAmbientMaterial(material); + for (auto m_component : m_components) + m_component->setAmbientMaterial(material); } complex_t ReCompound::theFF(const WavevectorInfo& wavevectors) const { complex_t result(0.0, 0.0); - for (size_t index = 0; index < m_components.size(); ++index) - result += m_components[index]->theFF(wavevectors); + for (auto m_component : m_components) + result += m_component->theFF(wavevectors); return result; } SpinMatrix ReCompound::thePolFF(const WavevectorInfo& wavevectors) const { SpinMatrix result; - for (size_t index = 0; index < m_components.size(); ++index) - result += m_components[index]->thePolFF(wavevectors); + for (auto m_component : m_components) + result += m_component->thePolFF(wavevectors); return result; } diff --git a/Sample/Particle/Compound.cpp b/Sample/Particle/Compound.cpp index e384a8a2935..6438f83ac3c 100644 --- a/Sample/Particle/Compound.cpp +++ b/Sample/Particle/Compound.cpp @@ -25,8 +25,8 @@ Compound* Compound::clone() const { auto* result = new Compound(); result->setAbundance(m_abundance); - for (size_t index = 0; index < m_particles.size(); ++index) - result->addComponent(*m_particles[index]); + for (auto m_particle : m_particles) + result->addComponent(*m_particle); if (rotation()) result->rotate(*rotation()); result->translate(particlePosition()); @@ -73,8 +73,8 @@ void Compound::addComponent(const IParticle& particle, R3 position) // enable python lists to std::vector conversion void Compound::addComponents(const IParticle& particle, std::vector<R3> positions) { - for (size_t i = 0; i < positions.size(); ++i) - addComponent(particle, positions[i]); + for (const auto& position : positions) + addComponent(particle, position); } std::vector<const IParticle*> Compound::particles() const diff --git a/Sim/Fitting/SimDataPair.cpp b/Sim/Fitting/SimDataPair.cpp index 83914cc198e..3c8f6ecab5a 100644 --- a/Sim/Fitting/SimDataPair.cpp +++ b/Sim/Fitting/SimDataPair.cpp @@ -52,18 +52,18 @@ Datafield repositionData(const ScatteringSimulation& simulation, const Datafield const IDetector& det = simulation.detector(); std::vector<size_t> ai = det.activeIndices(); if (coordSystem.hasSameSizes(data.frame())) { - for (size_t i = 0; i < ai.size(); ++i) { - values[ai[i]] = data[ai[i]]; + for (unsigned long i : ai) { + values[i] = data[i]; if (data.hasErrorSigmas()) - errors[ai[i]] = data.errorSigmas()[ai[i]]; + errors[i] = data.errorSigmas()[i]; } } else if (haveSameSizes(simulation.detector(), data)) { // experimental data has same shape as the detector, we have to copy the original // data to a smaller roi map - for (size_t i = 0; i < ai.size(); ++i) { - values[ai[i]] = data[det.roiToFullIndex(ai[i])]; + for (unsigned long i : ai) { + values[i] = data[det.roiToFullIndex(i)]; if (data.hasErrorSigmas()) - errors[ai[i]] = data.errorSigmas()[det.roiToFullIndex(ai[i])]; + errors[i] = data.errorSigmas()[det.roiToFullIndex(i)]; } } else throw std::runtime_error( diff --git a/Sim/Scan/AlphaScan.cpp b/Sim/Scan/AlphaScan.cpp index 523bb233b8a..f9c08727957 100644 --- a/Sim/Scan/AlphaScan.cpp +++ b/Sim/Scan/AlphaScan.cpp @@ -85,12 +85,12 @@ std::vector<SpecularElement> AlphaScan::generateElements() const drawDistribution(m_alpha_distrib.get(), inclinationAt(i) + m_alpha_offset); const std::vector<ParameterSample> lambdaDistrib = drawDistribution(m_lambda_distrib.get(), wavelengthAt(i)); - for (size_t j = 0; j < alphaDistrib.size(); ++j) { - const double alpha = alphaDistrib[j].value; - for (size_t k = 0; k < lambdaDistrib.size(); ++k) { - const double lambda = lambdaDistrib[k].value; + for (auto j : alphaDistrib) { + const double alpha = j.value; + for (auto k : lambdaDistrib) { + const double lambda = k.value; const bool computable = lambda >= 0 && alpha >= 0 && alpha <= (pi / 2); - const double weight = alphaDistrib[j].weight * lambdaDistrib[k].weight; + const double weight = j.weight * k.weight; const double footprint = footprintAt(i) ? footprintAt(i)->calculate(alpha) : 1; const R3 veck = vecOfLambdaAlphaPhi(lambda, -alpha); result.emplace_back(SpecularElement(i, computable, intensityAt(i), weight, diff --git a/Sim/Scan/QzScan.cpp b/Sim/Scan/QzScan.cpp index c7e698ab6ee..9b00d82d328 100644 --- a/Sim/Scan/QzScan.cpp +++ b/Sim/Scan/QzScan.cpp @@ -85,18 +85,17 @@ std::vector<SpecularElement> QzScan::generateElements() const const double q0 = m_axis->binCenter(i); if (m_qz_distrib) { const std::vector<ParameterSample> qzDistrib = m_qz_distrib->distributionSamples(); - for (size_t j = 0; j < qzDistrib.size(); ++j) { + for (auto j : qzDistrib) { double qz = q0; ASSERT(!m_resol_width.empty()); if (m_relative_resolution) - qz += q0 * m_resol_width[0] * qzDistrib[j].value; + qz += q0 * m_resol_width[0] * j.value; else if (m_resol_width.size() > 1) - qz += m_resol_width[i] * qzDistrib[j].value; + qz += m_resol_width[i] * j.value; else - qz += m_resol_width[0] * qzDistrib[j].value; - SpecularElement ele(i, qz >= 0, qzDistrib[j].weight, intensityAt(i), 1., - polarizerMatrixAt(i), analyzerMatrix(), - R3(0, 0, -(qz + m_offset) / 2)); + qz += m_resol_width[0] * j.value; + SpecularElement ele(i, qz >= 0, j.weight, intensityAt(i), 1., polarizerMatrixAt(i), + analyzerMatrix(), R3(0, 0, -(qz + m_offset) / 2)); result.emplace_back(std::move(ele)); } } else { diff --git a/Tests/Unit/Sample/MultiLayerTest.cpp b/Tests/Unit/Sample/MultiLayerTest.cpp index 7f7539973ed..5cdcb7bf059 100644 --- a/Tests/Unit/Sample/MultiLayerTest.cpp +++ b/Tests/Unit/Sample/MultiLayerTest.cpp @@ -212,8 +212,7 @@ TEST_F(MultiLayerTest, MultiLayerComposite) int counter(0); std::vector<const INode*> children = mLayer.nodeChildren(); - for (size_t index = 0; index < children.size(); ++index) { - const INode* sample = children[index]; + for (auto sample : children) { if (counter % 2 == 1) { const auto* interface = dynamic_cast<const LayerInterface*>(sample); EXPECT_TRUE(nullptr != interface); -- GitLab From 25f3f95f91f048265d7ae7b066c5576f2c34e48c Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 10:43:34 +0100 Subject: [PATCH 28/33] corr memory leak --- .clang-tidy | 12 ++++++++---- Resample/Processed/Slicer.cpp | 6 +++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index 666b0f684a9..a49ce5952f8 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -23,10 +23,13 @@ Checks: '*, -clang-analyzer-core.CallAndMessage, -clang-analyzer-optin.cplusplus.VirtualCall, -cppcoreguidelines-pro-type-const-cast, --cppcoreguidelines-pro-type-static-cast-downcast, --google-runtime-references, --misc-non-private-member-variables-in-classes, -modernize-loop-convert, +cppcoreguidelines-pro-type-static-cast-downcast, + +-*-use-auto, +-*-use-emplace, +-*-use-equals-default, +-*-use-nullptr, +-*-use-override, -bugprone-unused-return-value, -cppcoreguidelines-explicit-virtual-functions, @@ -36,6 +39,7 @@ modernize-loop-convert, -llvm-qualified-auto, -misc-uniqueptr-reset-release, -modernize-avoid-bind, +-modernize-loop-convert, -modernize-make-unique, -modernize-pass-by-value, -modernize-use-default-member-init, diff --git a/Resample/Processed/Slicer.cpp b/Resample/Processed/Slicer.cpp index 31d682032f7..54b4a4402f6 100644 --- a/Resample/Processed/Slicer.cpp +++ b/Resample/Processed/Slicer.cpp @@ -124,13 +124,13 @@ IFormFactor* doSlice(const IFormFactor* ff, double dz_bottom, double dz_top) ReParticle* createParticleSlice(const IFormFactor* ff, ZLimits limits, const R3& position, const IRotation* rot) { - const RotMatrix* rotMatrix = - rot && !rot->isIdentity() ? new RotMatrix(rot->rotMatrix()) : nullptr; const Span span = ff->spanZ(rot) + position.z(); - if (span.hig() <= limits.low() || span.low() >= limits.hig()) return nullptr; + const RotMatrix* rotMatrix = + rot && !rot->isIdentity() ? new RotMatrix(rot->rotMatrix()) : nullptr; + if (limits.low() <= span.low() && span.hig() <= limits.hig()) return new ReParticle(ff->clone(), new R3(position), rotMatrix); -- GitLab From 6832e894af2a1d92f2d3fcdc44ba46903edf2630 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 10:52:43 +0100 Subject: [PATCH 29/33] corr code critized by memory leak checker --- GUI/View/Project/PythonScriptWidget.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/GUI/View/Project/PythonScriptWidget.cpp b/GUI/View/Project/PythonScriptWidget.cpp index 7dad5259428..42ce13b3fad 100644 --- a/GUI/View/Project/PythonScriptWidget.cpp +++ b/GUI/View/Project/PythonScriptWidget.cpp @@ -36,6 +36,10 @@ PythonScriptWidget::PythonScriptWidget(QWidget* parent) , m_textEdit(new QTextEdit) , m_cautionSign(new CautionSign(m_textEdit)) { + auto* layout = new QVBoxLayout; + setLayout(layout); + layout->setContentsMargins(0, 0, 0, 0); + setObjectName("PythonScriptWidget"); setWindowTitle("Python Script"); setMinimumSize(128, 128); @@ -43,6 +47,7 @@ PythonScriptWidget::PythonScriptWidget(QWidget* parent) setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); auto* toolbar = new StyledToolbar; + layout->addWidget(toolbar); toolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); auto* exportAction = new QAction(this); @@ -53,6 +58,7 @@ PythonScriptWidget::PythonScriptWidget(QWidget* parent) toolbar->addAction(exportAction); + layout->addWidget(m_textEdit); m_textEdit->setReadOnly(true); QFont textFont("Monospace"); m_textEdit->setFont(textFont); @@ -61,11 +67,6 @@ PythonScriptWidget::PythonScriptWidget(QWidget* parent) auto* highlighter = new PythonSyntaxHighlighter(m_textEdit->document()); Q_UNUSED(highlighter); - auto* mainLayout = new QVBoxLayout(this); - mainLayout->setContentsMargins(0, 0, 0, 0); - mainLayout->addWidget(toolbar); - mainLayout->addWidget(m_textEdit); - setAttribute(Qt::WA_DeleteOnClose, true); GUI::Style::setResizable(this); appSettings->loadWindowSizeAndPos(this); -- GitLab From b09814facde786db8fc16641db9cf8eb733e3dc4 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 10:58:26 +0100 Subject: [PATCH 30/33] tidy/modernize-use-auto --- .clang-tidy | 3 +-- GUI/Model/Model/FitParameterModel.cpp | 4 ++-- GUI/Model/Model/ParameterTuningModel.cpp | 8 ++++---- GUI/View/FitControl/MinimizerSettingsWidget.cpp | 2 +- GUI/View/Tuning/FitParameterWidget.cpp | 4 ++-- 5 files changed, 10 insertions(+), 11 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index a49ce5952f8..8592bdaa268 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -23,9 +23,8 @@ Checks: '*, -clang-analyzer-core.CallAndMessage, -clang-analyzer-optin.cplusplus.VirtualCall, -cppcoreguidelines-pro-type-const-cast, -cppcoreguidelines-pro-type-static-cast-downcast, --*-use-auto, +*-use-auto, -*-use-emplace, -*-use-equals-default, -*-use-nullptr, diff --git a/GUI/Model/Model/FitParameterModel.cpp b/GUI/Model/Model/FitParameterModel.cpp index 7c747f3f907..2ff98f436dd 100644 --- a/GUI/Model/Model/FitParameterModel.cpp +++ b/GUI/Model/Model/FitParameterModel.cpp @@ -240,7 +240,7 @@ QMimeData* FitParameterModel::mimeData(const QModelIndexList& indexes) const auto* mimeData = new QMimeData(); QModelIndex index = indexes.first(); if (index.isValid()) { - QObject* item = static_cast<QObject*>(index.internalPointer()); + auto* item = static_cast<QObject*>(index.internalPointer()); if (auto* linkItem = dynamic_cast<LinkItem*>(item)) { QString path = linkItem->link(); ASSERT(m_jobItem); @@ -276,7 +276,7 @@ bool FitParameterModel::dropMimeData(const QMimeData* data, Qt::DropAction actio Q_UNUSED(column); if (parent.isValid()) { - QObject* parentItem = static_cast<QObject*>(parent.internalPointer()); + auto* parentItem = static_cast<QObject*>(parent.internalPointer()); if (auto* fitPar = dynamic_cast<FitParameterItem*>(parentItem)) { ASSERT(fitPar); ParameterItem* parItem = diff --git a/GUI/Model/Model/ParameterTuningModel.cpp b/GUI/Model/Model/ParameterTuningModel.cpp index ade797ae66c..5d7b2e67ccc 100644 --- a/GUI/Model/Model/ParameterTuningModel.cpp +++ b/GUI/Model/Model/ParameterTuningModel.cpp @@ -107,7 +107,7 @@ QModelIndex ParameterTuningModel::parent(const QModelIndex& index) const if (!index.isValid()) return {}; - QObject* item = static_cast<QObject*>(index.internalPointer()); + auto* item = static_cast<QObject*>(index.internalPointer()); if (item->parent() == m_rootObject) return {}; @@ -123,7 +123,7 @@ int ParameterTuningModel::rowCount(const QModelIndex& parent) const if (!parent.isValid()) return m_rootObject->children().size(); - QObject* item = static_cast<QObject*>(parent.internalPointer()); + auto* item = static_cast<QObject*>(parent.internalPointer()); return item->children().size(); } @@ -177,13 +177,13 @@ QModelIndex ParameterTuningModel::indexForItem(ParameterItem* item) const ParameterItem* ParameterTuningModel::toParameterItem(const QModelIndex& index) { - QObject* item = static_cast<QObject*>(index.internalPointer()); + auto* item = static_cast<QObject*>(index.internalPointer()); return dynamic_cast<ParameterItem*>(item); } ParameterLabelItem* ParameterTuningModel::toParameterLabelItem(const QModelIndex& index) { - QObject* item = static_cast<QObject*>(index.internalPointer()); + auto* item = static_cast<QObject*>(index.internalPointer()); return dynamic_cast<ParameterLabelItem*>(item); } diff --git a/GUI/View/FitControl/MinimizerSettingsWidget.cpp b/GUI/View/FitControl/MinimizerSettingsWidget.cpp index 5fb6e1d9374..ecac7997666 100644 --- a/GUI/View/FitControl/MinimizerSettingsWidget.cpp +++ b/GUI/View/FitControl/MinimizerSettingsWidget.cpp @@ -99,7 +99,7 @@ void MinimizerSettingsWidget::createGroupedAlgorithmsCombo() qsizetype header_index = comboBox->count() - 1; header_indices.append(header_index); non_separator_indices.append(header_index); - QStandardItemModel* model = qobject_cast<QStandardItemModel*>(comboBox->model()); + auto* model = qobject_cast<QStandardItemModel*>(comboBox->model()); QStandardItem* header_item = model->item(header_index); header_item->setSelectable(false); diff --git a/GUI/View/Tuning/FitParameterWidget.cpp b/GUI/View/Tuning/FitParameterWidget.cpp index 6b4c15b6155..817b91006dc 100644 --- a/GUI/View/Tuning/FitParameterWidget.cpp +++ b/GUI/View/Tuning/FitParameterWidget.cpp @@ -313,7 +313,7 @@ QVector<FitParameterItem*> FitParameterWidget::selectedFitParameterItems() QVector<FitParameterItem*> result; QModelIndexList indexes = m_treeView->selectionModel()->selectedIndexes(); for (auto index : indexes) { - QObject* item = static_cast<QObject*>(index.internalPointer()); + auto* item = static_cast<QObject*>(index.internalPointer()); if (auto* fitParItem = dynamic_cast<FitParameterItem*>(item)) result.push_back(fitParItem); } @@ -339,7 +339,7 @@ QStringList FitParameterWidget::selectedFitParameterLinks() QStringList result; QModelIndexList indexes = m_treeView->selectionModel()->selectedIndexes(); for (QModelIndex index : indexes) { - QObject* item = static_cast<QObject*>(index.internalPointer()); + auto* item = static_cast<QObject*>(index.internalPointer()); if (auto* linkItem = dynamic_cast<LinkItem*>(item)) result.push_back(linkItem->link()); } -- GitLab From a36e4fb14ba6c25200009782b0aa1b50153f081f Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 11:00:52 +0100 Subject: [PATCH 31/33] revert change that requires <ranges>, not yet available on mac_x64 --- .clang-tidy | 2 +- GUI/Model/Data/MaskResultsPresenter.cpp | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index 8592bdaa268..e9ed472a49f 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -24,7 +24,6 @@ Checks: '*, -clang-analyzer-optin.cplusplus.VirtualCall, -cppcoreguidelines-pro-type-const-cast, -*-use-auto, -*-use-emplace, -*-use-equals-default, -*-use-nullptr, @@ -41,6 +40,7 @@ Checks: '*, -modernize-loop-convert, -modernize-make-unique, -modernize-pass-by-value, +-modernize-use-auto, -modernize-use-default-member-init, -modernize-use-using, -performance-for-range-copy, diff --git a/GUI/Model/Data/MaskResultsPresenter.cpp b/GUI/Model/Data/MaskResultsPresenter.cpp index b9341533fa0..6c60e88b6ea 100644 --- a/GUI/Model/Data/MaskResultsPresenter.cpp +++ b/GUI/Model/Data/MaskResultsPresenter.cpp @@ -20,7 +20,6 @@ #include "GUI/Model/Data/Data2DItem.h" #include "GUI/Model/Mask/MaskContainerItem.h" #include "GUI/Model/Mask/MaskItems.h" -#include <ranges> namespace { @@ -34,13 +33,13 @@ Datafield* createMaskPresentation(Data2DItem* data2DItem) Datafield* result = data2DItem->c_field()->clone(); MaskStack detectorMask; const QVector<MaskItem*> maskItems = data2DItem->maskContainerItem()->maskItems(); - for (auto maskItem : std::ranges::reverse_view(maskItems)) - if (maskItem->isVisible()) { - if (auto* roiItem = dynamic_cast<RegionOfInterestItem*>(maskItem)) + for (auto maskIter = maskItems.rbegin(); maskIter != maskItems.rend(); maskIter++) + if ((*maskIter)->isVisible()) { + if (auto* roiItem = dynamic_cast<RegionOfInterestItem*>((*maskIter))) roi = roiItem->createShape(); else { - std::unique_ptr<IShape2D> shape(maskItem->createShape()); - detectorMask.maskToStack(*shape, maskItem->maskValue(), false); + std::unique_ptr<IShape2D> shape((*maskIter)->createShape()); + detectorMask.maskToStack(*shape, (*maskIter)->maskValue(), false); } } -- GitLab From 64b5a5f634a26f632f457df62f11ffaa0757d505 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 11:08:11 +0100 Subject: [PATCH 32/33] emplace_back w/o c'tor --- .clang-tidy | 2 +- Sample/Correlations/IDistribution2DSampler.cpp | 2 +- Sample/Shapes/IShape3D.cpp | 10 +++++----- Sim/Scan/AlphaScan.cpp | 5 ++--- Tests/Unit/Sample/ParticleCompositionTest.cpp | 2 +- 5 files changed, 10 insertions(+), 11 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index e9ed472a49f..e5cd5da044c 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -24,7 +24,7 @@ Checks: '*, -clang-analyzer-optin.cplusplus.VirtualCall, -cppcoreguidelines-pro-type-const-cast, --*-use-emplace, +*-use-emplace, -*-use-equals-default, -*-use-nullptr, -*-use-override, diff --git a/Sample/Correlations/IDistribution2DSampler.cpp b/Sample/Correlations/IDistribution2DSampler.cpp index 4bd499365e3..c846b7d8e48 100644 --- a/Sample/Correlations/IDistribution2DSampler.cpp +++ b/Sample/Correlations/IDistribution2DSampler.cpp @@ -74,7 +74,7 @@ std::pair<double, double> samplingZiggurat(double r, double x_func_max, double ( y_lower = func_phi(x_max); } - boxes.emplace_back(ZigguratBox(x_min, x_max, y_max, y_lower)); + boxes.emplace_back(x_min, x_max, y_max, y_lower); cum_area_box += box_width * y_max; cum_area_vector.emplace_back(cum_area_box); diff --git a/Sample/Shapes/IShape3D.cpp b/Sample/Shapes/IShape3D.cpp index dc6d18c4477..0627d701359 100644 --- a/Sample/Shapes/IShape3D.cpp +++ b/Sample/Shapes/IShape3D.cpp @@ -70,7 +70,7 @@ std::vector<R3> EllipseVerticesXtrunc(double x, double r_y, double r_z, double z double z = r_z * std::sin(angle) - z_b; // bottom is at 0, top at z_t-z_b if (0 <= z && z <= (z_t - z_b)) - result.emplace_back(R3(x, y, z)); + result.emplace_back(x, y, z); } double alpha_t = atan(z_t / sqrt(r_z * r_z - z_t * z_t) * r_z / r_y); double alpha_b = atan(z_b / sqrt(r_z * r_z - z_b * z_b) * r_z / r_y); @@ -78,10 +78,10 @@ std::vector<R3> EllipseVerticesXtrunc(double x, double r_y, double r_z, double z double y_t = r_y * std::cos(alpha_t); double y_b = r_y * std::cos(alpha_b); - result.emplace_back(R3(x, y_t, z_t - z_b)); - result.emplace_back(R3(x, -y_t, z_t - z_b)); - result.emplace_back(R3(x, y_b, 0)); - result.emplace_back(R3(x, -y_b, 0)); + result.emplace_back(x, y_t, z_t - z_b); + result.emplace_back(x, -y_t, z_t - z_b); + result.emplace_back(x, y_b, 0); + result.emplace_back(x, -y_b, 0); return result; } diff --git a/Sim/Scan/AlphaScan.cpp b/Sim/Scan/AlphaScan.cpp index f9c08727957..2ea97985b19 100644 --- a/Sim/Scan/AlphaScan.cpp +++ b/Sim/Scan/AlphaScan.cpp @@ -93,9 +93,8 @@ std::vector<SpecularElement> AlphaScan::generateElements() const const double weight = j.weight * k.weight; const double footprint = footprintAt(i) ? footprintAt(i)->calculate(alpha) : 1; const R3 veck = vecOfLambdaAlphaPhi(lambda, -alpha); - result.emplace_back(SpecularElement(i, computable, intensityAt(i), weight, - footprint, polarizerMatrixAt(i), - analyzerMatrix(), veck)); + result.emplace_back(i, computable, intensityAt(i), weight, footprint, + polarizerMatrixAt(i), analyzerMatrix(), veck); } } } diff --git a/Tests/Unit/Sample/ParticleCompositionTest.cpp b/Tests/Unit/Sample/ParticleCompositionTest.cpp index 82b42018795..88ca7db4e8f 100644 --- a/Tests/Unit/Sample/ParticleCompositionTest.cpp +++ b/Tests/Unit/Sample/ParticleCompositionTest.cpp @@ -10,7 +10,7 @@ TEST(CompoundTest, CompoundDefaultConstructor) { std::unique_ptr<Compound> composition(new Compound()); std::vector<R3> positions; - positions.emplace_back(R3()); + positions.emplace_back(); EXPECT_EQ(0u, composition->nbrParticles()); } -- GitLab From d0094ab95f4267026f31782fbd6ea2680e40bf43 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Thu, 30 Nov 2023 11:10:09 +0100 Subject: [PATCH 33/33] revert one more <ranges> --- GUI/Model/Detector/DetectorItem.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/GUI/Model/Detector/DetectorItem.cpp b/GUI/Model/Detector/DetectorItem.cpp index b481efc839b..7922370e814 100644 --- a/GUI/Model/Detector/DetectorItem.cpp +++ b/GUI/Model/Detector/DetectorItem.cpp @@ -24,7 +24,6 @@ #include "GUI/Model/Mask/MaskContainerItem.h" #include "GUI/Model/Mask/MaskItems.h" #include "GUI/Support/XML/Backup.h" -#include <ranges> namespace { namespace Tag { @@ -69,13 +68,13 @@ std::unique_ptr<IDetector> DetectorItem::createDetector() const if (m_maskContainerItem) { const QVector<MaskItem*> maskItems = m_maskContainerItem->maskItems(); - for (auto maskItem : std::ranges::reverse_view(maskItems)) { - if (maskItem->isVisible()) { - if (auto* ii = dynamic_cast<RegionOfInterestItem*>(maskItem)) { + for (auto maskIter = maskItems.rbegin(); maskIter != maskItems.rend(); maskIter++) { + if ((*maskIter)->isVisible()) { + if (auto* ii = dynamic_cast<RegionOfInterestItem*>(*maskIter)) { result->setRegionOfInterest(ii->xLow(), ii->yLow(), ii->xUp(), ii->yUp()); } else { - std::unique_ptr<IShape2D> shape(maskItem->createShape()); - result->addBinMask(*shape, maskItem->maskValue()); + std::unique_ptr<IShape2D> shape((*maskIter)->createShape()); + result->addBinMask(*shape, (*maskIter)->maskValue()); } } } -- GitLab