From 2c0a541b278a85e3533a78008e0ddff49185b61b Mon Sep 17 00:00:00 2001
From: Matthias Puchner <github@mpuchner.de>
Date: Mon, 15 Nov 2021 15:35:36 +0100
Subject: [PATCH] simplify ComponentEditor

---
 GUI/View/PropertyEditor/ComponentEditor.cpp | 40 ++-------------------
 GUI/View/PropertyEditor/ComponentEditor.h   | 26 +++-----------
 2 files changed, 8 insertions(+), 58 deletions(-)

diff --git a/GUI/View/PropertyEditor/ComponentEditor.cpp b/GUI/View/PropertyEditor/ComponentEditor.cpp
index 7b4092422fb..3f0cde8a77f 100644
--- a/GUI/View/PropertyEditor/ComponentEditor.cpp
+++ b/GUI/View/PropertyEditor/ComponentEditor.cpp
@@ -13,43 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/PropertyEditor/ComponentEditor.h"
-#include "GUI/View/PropertyEditor/ComponentFlatView.h"
-#include "GUI/View/PropertyEditor/ComponentTreeView.h"
-#include <QBoxLayout>
 
-ComponentEditor::ComponentEditor(EditorType editorType) : m_componentView(nullptr), m_item(nullptr)
+ComponentEditor::ComponentEditor(EditorType editorType)
 {
-    if (editorType.testFlag(Tree)) {
-        auto* view = new ComponentTreeView;
-        view->setShowHeader(editorType.testFlag(T_Header));
-        view->setShowRootItem(editorType.testFlag(T_Root));
-        m_componentView = view;
-    } else
-        m_componentView = new ComponentFlatView;
-
-    auto* mainLayout = new QVBoxLayout;
-    mainLayout->setSpacing(0);
-    mainLayout->setMargin(0);
-    mainLayout->addWidget(m_componentView);
-
-    setLayout(mainLayout);
-}
-
-void ComponentEditor::setItem(SessionItem* item)
-{
-    m_item = item;
-    m_componentView->setItem(item);
-}
-
-void ComponentEditor::clearEditor()
-{
-    m_item = nullptr;
-    m_componentView->clearEditor();
-}
-
-void ComponentEditor::addItem(SessionItem* item)
-{
-    if (!m_item)
-        m_item = item;
-    m_componentView->addItem(item);
+    setShowHeader(editorType.testFlag(T_Header));
+    setShowRootItem(editorType.testFlag(T_Root));
 }
diff --git a/GUI/View/PropertyEditor/ComponentEditor.h b/GUI/View/PropertyEditor/ComponentEditor.h
index b3592d7f01a..88063ba950e 100644
--- a/GUI/View/PropertyEditor/ComponentEditor.h
+++ b/GUI/View/PropertyEditor/ComponentEditor.h
@@ -15,41 +15,25 @@
 #ifndef BORNAGAIN_GUI_VIEW_PROPERTYEDITOR_COMPONENTEDITOR_H
 #define BORNAGAIN_GUI_VIEW_PROPERTYEDITOR_COMPONENTEDITOR_H
 
-#include <QWidget>
-
-class ComponentView;
-class SessionItem;
-class QBoxLayout;
+#include "GUI/View/PropertyEditor/ComponentTreeView.h"
 
 //! Component editor for SessionItem. Can have various appearance depending
 //! on EditorFlags
 
-class ComponentEditor : public QWidget {
+class ComponentEditor : public ComponentTreeView {
     Q_OBJECT
 public:
     enum EditorFlags {
-        Tree = 0x1000,
-
-        PlainLayout = 0x0010, // editor embedded in standard box layout
-
         T_Header = 0x0100, // to show QTreeView header (Tree mode only)
         T_Root = 0x0200,   // to show root item  (Tree mode only)
 
-        FullTree = Tree | PlainLayout | T_Header | T_Root,
-        HeaderTree = Tree | PlainLayout | T_Header,
-        MiniTree = Tree | PlainLayout,
+        FullTree = T_Header | T_Root,
+        HeaderTree = T_Header,
+        MiniTree = 0,
     };
     Q_DECLARE_FLAGS(EditorType, EditorFlags)
 
     ComponentEditor(EditorType editorType = HeaderTree);
-
-    void setItem(SessionItem* item);
-    void clearEditor();
-    void addItem(SessionItem* item);
-
-private:
-    ComponentView* m_componentView;
-    SessionItem* m_item;
 };
 
 Q_DECLARE_OPERATORS_FOR_FLAGS(ComponentEditor::EditorType)
-- 
GitLab