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