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