From b9d3cef2d9a2ec74ade8262a7c31b39d0689a62a Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Wed, 28 Feb 2024 11:18:13 +0100
Subject: [PATCH] proper use of beginResetModel instead of extra connections

---
 GUI/Model/Type/SetWithModel.h          | 4 ++++
 GUI/View/List/InstrumentsQListView.cpp | 6 ------
 GUI/View/List/SamplesQListView.cpp     | 8 --------
 3 files changed, 4 insertions(+), 14 deletions(-)

diff --git a/GUI/Model/Type/SetWithModel.h b/GUI/Model/Type/SetWithModel.h
index 065770e1aef..c563184fa6d 100644
--- a/GUI/Model/Type/SetWithModel.h
+++ b/GUI/Model/Type/SetWithModel.h
@@ -45,8 +45,10 @@ public:
 
     void clear()
     {
+        m_qmodel->beginResetModel();
         m_vec.clear();
         m_idx = -1;
+        m_qmodel->endResetModel();
         emit SetBase::setChanged();
     }
     void delete_current()
@@ -70,8 +72,10 @@ public:
     void setCurrentIndex(size_t i)
     {
         ASSERT(i < m_vec.size() || i == size_t(-1));
+        m_qmodel->beginResetModel();
         if (i != m_idx)
             m_idx = i;
+        m_qmodel->endResetModel();
         emit SetBase::setChanged();
     }
 
diff --git a/GUI/View/List/InstrumentsQListView.cpp b/GUI/View/List/InstrumentsQListView.cpp
index 262ce614e01..209a575b675 100644
--- a/GUI/View/List/InstrumentsQListView.cpp
+++ b/GUI/View/List/InstrumentsQListView.cpp
@@ -27,10 +27,4 @@ InstrumentsQListView::InstrumentsQListView(InstrumentsSet* set)
 
     connect(this, &QListView::clicked,
             [this, set](const QModelIndex& qi) { set->setCurrentIndex(qi.row()); });
-
-    disconnect(gDoc->instruments(), &InstrumentsSet::setChanged, nullptr, nullptr);
-    connect(gDoc->instruments(), &InstrumentsSet::setChanged, [this, set] {
-        setCurrentIndex(set->model()->index(set->currentIndex(), 0));
-        repaint();
-    });
 }
diff --git a/GUI/View/List/SamplesQListView.cpp b/GUI/View/List/SamplesQListView.cpp
index 871f34ab042..f1aee8891ff 100644
--- a/GUI/View/List/SamplesQListView.cpp
+++ b/GUI/View/List/SamplesQListView.cpp
@@ -27,12 +27,4 @@ SamplesQListView::SamplesQListView(SamplesSet* set)
 
     connect(this, &QListView::clicked,
             [this, set](const QModelIndex& qi) { set->setCurrentIndex(qi.row()); });
-
-    disconnect(gDoc->samples(), &SamplesSet::setChanged, nullptr, nullptr);
-    connect(gDoc->samples(), &SamplesSet::setChanged, [this, set] {
-        setCurrentIndex(set->model()->index(set->currentIndex(), 0));
-        repaint();
-    });
-
-    // TODO reinvestigate connect(selectionModel(), &QItemSelectionModel::currentChanged,
 }
-- 
GitLab