From f50d6cb0f8e68cafc88a7e0a162213e52a20e817 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Wed, 21 Feb 2024 18:23:00 +0100
Subject: [PATCH] + VectorWC::delete_current, simplify instrs model code

rename member var
---
 Base/Types/VectorWC.h               | 6 ++++++
 GUI/View/List/InstrumentsQModel.cpp | 9 ++++-----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/Base/Types/VectorWC.h b/Base/Types/VectorWC.h
index c193c1cca3e..fb2e2929586 100644
--- a/Base/Types/VectorWC.h
+++ b/Base/Types/VectorWC.h
@@ -52,6 +52,12 @@ public:
         super::delete_at(i);
         update_current();
     }
+    void delete_current()
+    {
+	ASSERT(m_current_index != size_t(-1));
+	super::delete_at(m_current_index);
+	update_current();
+    }
     T* release_at(size_t i)
     {
         super::release_at(i);
diff --git a/GUI/View/List/InstrumentsQModel.cpp b/GUI/View/List/InstrumentsQModel.cpp
index 97dd95225b7..ee37de0a2fc 100644
--- a/GUI/View/List/InstrumentsQModel.cpp
+++ b/GUI/View/List/InstrumentsQModel.cpp
@@ -58,11 +58,10 @@ QVariant InstrumentsQModel::data(const QModelIndex& index, int role) const
 
 void InstrumentsQModel::removeInstrument()
 {
-    const InstrumentItem* t = set()->currentItem();
-
-    const int row = set()->index_of(t);
+    const size_t row = set()->currentIndex();
+    ASSERT(row != size_t(-1));
     beginRemoveRows({}, row, row);
-    set()->delete_element(t);
+    set()->delete_current();
     endRemoveRows();
 
     emit set()->setChanged();
@@ -78,7 +77,7 @@ QModelIndex InstrumentsQModel::copyInstrument()
 
 QModelIndex InstrumentsQModel::pushInstrument(InstrumentItem* t)
 {
-    const int row = set()->instrumentItems().size();
+    const size_t row = set()->size();
     beginInsertRows({}, row, row);
     set()->push_back(t);
     endInsertRows();
-- 
GitLab