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