From 1e5d1ee5039360747c6363e09033e4cf98483842 Mon Sep 17 00:00:00 2001
From: Mikhail Svechnikov <svechnikovmv@gmail.com>
Date: Fri, 10 Feb 2023 15:09:08 +0100
Subject: [PATCH] MaskGraphicsScene: cleanup

---
 GUI/View/Mask/MaskGraphicsScene.cpp | 20 ++++++++------------
 GUI/View/Mask/MaskGraphicsScene.h   |  1 -
 2 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/GUI/View/Mask/MaskGraphicsScene.cpp b/GUI/View/Mask/MaskGraphicsScene.cpp
index 581c61e5d53..342736ceecf 100644
--- a/GUI/View/Mask/MaskGraphicsScene.cpp
+++ b/GUI/View/Mask/MaskGraphicsScene.cpp
@@ -40,7 +40,7 @@ MaskGraphicsScene::MaskGraphicsScene(QObject* parent)
 {
     setSceneRect(default_scene_rect);
     connect(this, &MaskGraphicsScene::selectionChanged, this,
-            &MaskGraphicsScene::onSceneSelectionChanged);
+            &MaskGraphicsScene::onSceneSelectionChanged, Qt::UniqueConnection);
 }
 
 MaskGraphicsScene::~MaskGraphicsScene()
@@ -85,7 +85,7 @@ void MaskGraphicsScene::connectMaskContainer(MaskContainerModel* maskContainerMo
     connect(maskContainerModel, &QAbstractListModel::rowsAboutToBeRemoved, this,
             &MaskGraphicsScene::onRowsAboutToBeRemoved);
     connect(maskContainerModel, &QAbstractListModel::rowsRemoved, this,
-            &MaskGraphicsScene::onRowsRemoved);
+            &MaskGraphicsScene::updateScene);
     connect(maskContainerModel, &QAbstractListModel::modelReset, this,
             &MaskGraphicsScene::updateScene);
     connect(maskContainerModel, &QAbstractListModel::rowsMoved, this,
@@ -104,7 +104,7 @@ void MaskGraphicsScene::disconnectMaskContainer(MaskContainerModel* maskContaine
     disconnect(maskContainerModel, &QAbstractListModel::rowsAboutToBeRemoved, this,
                &MaskGraphicsScene::onRowsAboutToBeRemoved);
     disconnect(maskContainerModel, &QAbstractListModel::rowsRemoved, this,
-               &MaskGraphicsScene::onRowsRemoved);
+               &MaskGraphicsScene::updateScene);
     disconnect(maskContainerModel, &QAbstractListModel::modelReset, this,
                &MaskGraphicsScene::updateScene);
     disconnect(maskContainerModel, &QAbstractListModel::rowsMoved, this,
@@ -168,11 +168,6 @@ void MaskGraphicsScene::onRowsAboutToBeRemoved(const QModelIndex&, int first, in
     m_block_selection = false;
 }
 
-void MaskGraphicsScene::onRowsRemoved(const QModelIndex&, int, int)
-{
-    updateScene();
-}
-
 void MaskGraphicsScene::cancelCurrentDrawing()
 {
     if (isDrawingInProgress()) {
@@ -732,13 +727,14 @@ void MaskGraphicsScene::processMaskAllItem(QGraphicsSceneMouseEvent* event)
 
 void MaskGraphicsScene::subscribeMaskItem(MaskItemObject* item)
 {
-    auto* maskItem = dynamic_cast<MaskItem*>(item);
-    if (!maskItem)
+    if (!item)
         return;
 
-    connect(maskItem, &MaskItemObject::maskGeometryChanged, this, &MaskGraphicsScene::lineItemMoved,
+    connect(item, &MaskItemObject::maskGeometryChanged, this, &MaskGraphicsScene::lineItemMoved,
+            Qt::UniqueConnection);
+    connect(item, &MaskItemObject::maskGeometryChanged, this, &MaskGraphicsScene::onMaskMove,
             Qt::UniqueConnection);
-    connect(maskItem, &MaskItem::maskToBeDestroyed, this, &MaskGraphicsScene::lineItemDeleted,
+    connect(item, &MaskItemObject::maskToBeDestroyed, this, &MaskGraphicsScene::lineItemDeleted,
             Qt::UniqueConnection);
 }
 
diff --git a/GUI/View/Mask/MaskGraphicsScene.h b/GUI/View/Mask/MaskGraphicsScene.h
index b731628c87e..c1e6ef6cebf 100644
--- a/GUI/View/Mask/MaskGraphicsScene.h
+++ b/GUI/View/Mask/MaskGraphicsScene.h
@@ -60,7 +60,6 @@ public slots:
     void onMaskValueChanged(MaskEditorFlags::MaskValue value);
     void onRowsInserted(const QModelIndex&, int, int);
     void onRowsAboutToBeRemoved(const QModelIndex&, int first, int last);
-    void onRowsRemoved(const QModelIndex&, int, int);
     void cancelCurrentDrawing();
     void resetScene();
     void updateScene();
-- 
GitLab