From c5dcabdd5da9b920f7eea981beb078bedd2531be Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Mon, 30 Aug 2021 15:15:21 +0200
Subject: [PATCH] UI: Small factory like patern for the PropertyModel to not
 forget the settings of the view...

---
 src/UI/PropertyModel.cc    | 10 ++++++++++
 src/UI/PropertyModel.hh    |  2 ++
 src/UI/VivyDocumentView.cc |  5 +----
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/UI/PropertyModel.cc b/src/UI/PropertyModel.cc
index c0068cbd..a882df3e 100644
--- a/src/UI/PropertyModel.cc
+++ b/src/UI/PropertyModel.cc
@@ -285,3 +285,13 @@ PropertyModel::flags(const QModelIndex &index) const noexcept
 {
     return QAbstractItemModel::flags(index);
 }
+
+QTreeView *
+PropertyModel::getView(QWidget *parent, PropertyModel *ptr) noexcept
+{
+    QTreeView *view = new QTreeView(parent);
+    view->setModel(ptr);
+    view->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
+    view->expandAll();
+    return view;
+}
diff --git a/src/UI/PropertyModel.hh b/src/UI/PropertyModel.hh
index 2a4d1815..f1802d85 100644
--- a/src/UI/PropertyModel.hh
+++ b/src/UI/PropertyModel.hh
@@ -67,6 +67,8 @@ public:
         root->setKey(object.getElementName());
     }
 
+    [[nodiscard]] static QTreeView *getView(QWidget *parent, PropertyModel *) noexcept;
+
     QVariant data(const QModelIndex &, int role) const noexcept override;
     bool setData(const QModelIndex &, const QVariant &v, int r = Qt::EditRole) noexcept override;
 
diff --git a/src/UI/VivyDocumentView.cc b/src/UI/VivyDocumentView.cc
index 95ba41cf..df87483c 100644
--- a/src/UI/VivyDocumentView.cc
+++ b/src/UI/VivyDocumentView.cc
@@ -167,10 +167,7 @@ void
 VivyDocumentView::openProperties() noexcept
 {
     propertyModel   = std::make_unique<PropertyModel>(*document.get());
-    QTreeView *view = new QTreeView(property);
-    view->setModel(propertyModel.get());
-    view->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
-    view->expandAll();
+    QTreeView *view = PropertyModel::getView(property, propertyModel.get());
 
     if (!property) {
         property = new UnclosableDockWidget("Properties", this);
-- 
GitLab