From 778504e9e5e53eaa5a28f930d2274993c97569f3 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de> Date: Mon, 26 Feb 2024 14:58:04 +0100 Subject: [PATCH] SampleEditor controller: map -> unique_ptr --- GUI/View/Sample/SampleEditor.cpp | 10 ++-------- GUI/View/Sample/SampleEditor.h | 4 ++-- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/GUI/View/Sample/SampleEditor.cpp b/GUI/View/Sample/SampleEditor.cpp index c4a9aedcf44..0eb7c02c7bf 100644 --- a/GUI/View/Sample/SampleEditor.cpp +++ b/GUI/View/Sample/SampleEditor.cpp @@ -33,16 +33,11 @@ SampleEditor::SampleEditor() SampleEditor::~SampleEditor() { - qDeleteAll(m_edit_controllers.values()); } void SampleEditor::setCurrentSample(SampleItem* sampleItem) { - if (m_current_sample != nullptr) - m_edit_controllers[m_current_sample]->setSampleForm(nullptr); - m_current_sample_widget = nullptr; - delete QScrollArea::takeWidget(); m_current_sample = sampleItem; if (m_current_sample == nullptr) { @@ -50,9 +45,8 @@ void SampleEditor::setCurrentSample(SampleItem* sampleItem) return; } - if (!m_edit_controllers.contains(m_current_sample)) - m_edit_controllers.insert(m_current_sample, new SampleEditorController(m_current_sample)); - auto* ec = m_edit_controllers[m_current_sample]; + m_edit_controller = std::make_unique<SampleEditorController>(m_current_sample); + auto* ec = m_edit_controller.get(); connect(ec, &SampleEditorController::requestViewInRealspace, this, &SampleEditor::requestViewInRealspace); connect(ec, &SampleEditorController::aboutToRemoveItem, this, &SampleEditor::aboutToRemoveItem); diff --git a/GUI/View/Sample/SampleEditor.h b/GUI/View/Sample/SampleEditor.h index ab970543384..4cad7280da9 100644 --- a/GUI/View/Sample/SampleEditor.h +++ b/GUI/View/Sample/SampleEditor.h @@ -15,8 +15,8 @@ #ifndef BORNAGAIN_GUI_VIEW_SAMPLE_SAMPLEEDITOR_H #define BORNAGAIN_GUI_VIEW_SAMPLE_SAMPLEEDITOR_H -#include <QMap> #include <QScrollArea> +#include <memory> class Item3D; class SampleEditorController; @@ -40,7 +40,7 @@ signals: private: SampleForm* m_current_sample_widget; SampleItem* m_current_sample = nullptr; - QMap<SampleItem*, SampleEditorController*> m_edit_controllers; + std::unique_ptr<SampleEditorController> m_edit_controller; }; -- GitLab