From 5e14fe85815f2c16fe09bdabbad301901a216a01 Mon Sep 17 00:00:00 2001 From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de> Date: Mon, 9 Dec 2024 15:47:49 +0100 Subject: [PATCH] invert mask order in set --- GUI/Model/Type/SetWithModel.h | 9 +++++---- GUI/View/Scene/MaskGraphicsScene.cpp | 10 +++++----- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/GUI/Model/Type/SetWithModel.h b/GUI/Model/Type/SetWithModel.h index 21a4cd1d620..6671ea3c980 100644 --- a/GUI/Model/Type/SetWithModel.h +++ b/GUI/Model/Type/SetWithModel.h @@ -72,15 +72,16 @@ public: m_qmodel->endRemoveRows(); emit AbstractSetModel::setChanged(); } - void add_item(T* t) + void insert_item(size_t i, T* t) { - m_qmodel->beginInsertRows({}, size(), size()); + m_qmodel->beginInsertRows({}, i, i); t->renumber(itemNames()); - m_vec.push_back(t); - m_idx = m_vec.size() - 1; + m_vec.insert_at(i, t); + m_idx = i; m_qmodel->endInsertRows(); emit AbstractSetModel::setChanged(); } + void add_item(T* t) { insert_item(size(), t); } void add_items(const std::vector<T*>& v) { if (v.empty()) diff --git a/GUI/View/Scene/MaskGraphicsScene.cpp b/GUI/View/Scene/MaskGraphicsScene.cpp index 4c2968a755c..1d496c9323d 100644 --- a/GUI/View/Scene/MaskGraphicsScene.cpp +++ b/GUI/View/Scene/MaskGraphicsScene.cpp @@ -607,7 +607,7 @@ void MaskGraphicsScene::processRectangleOrEllipseItem(QGraphicsSceneMouseEvent* else ASSERT_NEVER; - m_masks->add_item(m_active_mask); + m_masks->insert_item(0, m_active_mask); if (m_mode != Canvas2DMode::ROI) m_active_mask->setMaskValue(m_mask_value); @@ -651,7 +651,7 @@ void MaskGraphicsScene::processPolygonItem(QGraphicsSceneMouseEvent* event) if (!m_active_mask) { setDrawingInProgress(true); MaskItem* new_poly = new PolygonItem; - m_masks->add_item(new_poly); + m_masks->insert_item(0, new_poly); new_poly->setMaskValue(m_mask_value); m_active_mask = new_poly; registerOverlay(new_poly, false); @@ -687,9 +687,9 @@ void MaskGraphicsScene::processLineItem(QGraphicsSceneMouseEvent* event) ASSERT_NEVER; if (Canvas2DMode::isPrjn(m_mode)) - m_prjns->add_item(m_active_mask); + m_prjns->insert_item(0, m_active_mask); else - m_masks->add_item(m_active_mask); + m_masks->insert_item(0, m_active_mask); emit m_active_mask->maskGeometryChanged(); @@ -707,7 +707,7 @@ void MaskGraphicsScene::processFullframeItem(QGraphicsSceneMouseEvent* event) Q_UNUSED(event); setDrawingInProgress(true); MaskItem* item = new FullframeItem; - m_masks->add_item(item); + m_masks->insert_item(0, item); m_active_mask = item; setDrawingInProgress(false); } -- GitLab