From 675d84727b4d0e6b6a4e7c95556dc5c4c4394ccf Mon Sep 17 00:00:00 2001
From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de>
Date: Wed, 5 Jul 2023 11:58:00 +0200
Subject: [PATCH] keep selection model in MaskContainerItem

---
 GUI/Model/Data/MaskItems.cpp | 6 ++++++
 GUI/Model/Data/MaskItems.h   | 5 +++++
 2 files changed, 11 insertions(+)

diff --git a/GUI/Model/Data/MaskItems.cpp b/GUI/Model/Data/MaskItems.cpp
index a623b84c4d9..f777c129dbe 100644
--- a/GUI/Model/Data/MaskItems.cpp
+++ b/GUI/Model/Data/MaskItems.cpp
@@ -49,6 +49,7 @@ const QString Mask("Mask");
 MaskContainerItem::MaskContainerItem()
     : MaskItemObject()
     , m_model(new MaskContainerModel(this))
+    , m_selectionModel(new QItemSelectionModel(m_model.get()))
 {
 }
 
@@ -129,6 +130,11 @@ MaskContainerModel* MaskContainerItem::model()
     return m_model.get();
 }
 
+QItemSelectionModel* MaskContainerItem::selectionModel()
+{
+    return m_selectionModel.get();
+}
+
 void MaskContainerItem::updateMaskNames()
 {
     const auto reg = QRegularExpression("[0-9]");
diff --git a/GUI/Model/Data/MaskItems.h b/GUI/Model/Data/MaskItems.h
index dbb1d8b0003..9ab8aab319a 100644
--- a/GUI/Model/Data/MaskItems.h
+++ b/GUI/Model/Data/MaskItems.h
@@ -20,6 +20,7 @@
 #include "GUI/Model/Data/MaskItemCatalog.h"
 #include "GUI/Model/Descriptor/SelectionProperty.h"
 #include <QAbstractListModel>
+#include <QItemSelectionModel>
 
 class IShape2D;
 class MessageService;
@@ -253,6 +254,9 @@ public:
     //! Return the corresponding MaskContainerModel
     MaskContainerModel* model();
 
+    //! Return the corresponding QItemSelectionModel
+    QItemSelectionModel* selectionModel();
+
     //! Update numbers in mask names
     void updateMaskNames();
 
@@ -262,6 +266,7 @@ public:
 protected:
     SelectionVector<MaskItemCatalog> m_maskItems;
     std::unique_ptr<MaskContainerModel> m_model;
+    std::unique_ptr<QItemSelectionModel> m_selectionModel;
 };
 
 //! Provides interfaces to a MaskContainerItem, allowing its contents to be displayed and modified
-- 
GitLab