From 500d97d7d3916f30f383e120a56244c06cfc7b3c Mon Sep 17 00:00:00 2001
From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr>
Date: Wed, 3 May 2023 11:28:13 +0200
Subject: [PATCH] BC: Fix delete elements.

---
 src/Model/BoundaryCondition/BoundaryCondition.py |  3 +++
 .../BoundaryCondition/BoundaryConditionList.py   | 16 ++++++++--------
 .../BoundaryCondition/BoundaryConditionWindow.py |  7 +++++++
 3 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/src/Model/BoundaryCondition/BoundaryCondition.py b/src/Model/BoundaryCondition/BoundaryCondition.py
index cf844ff6..cca0ebe9 100644
--- a/src/Model/BoundaryCondition/BoundaryCondition.py
+++ b/src/Model/BoundaryCondition/BoundaryCondition.py
@@ -1,5 +1,7 @@
 # -*- coding: utf-8 -*-
 
+from tools import trace, timer
+
 from Model.Except import NotImplementedMethodeError
 
 class BoundaryCondition(object):
@@ -88,6 +90,7 @@ class BoundaryCondition(object):
     def set_i_1(self, index:int, value):
         self._set_i_c_v(index, 1, value)
 
+    @timer
     def convert(self, cls):
         new = cls(name = self.name)
         for i, _ in self.data:
diff --git a/src/Model/BoundaryCondition/BoundaryConditionList.py b/src/Model/BoundaryCondition/BoundaryConditionList.py
index d5c2d9ad..a44629d4 100644
--- a/src/Model/BoundaryCondition/BoundaryConditionList.py
+++ b/src/Model/BoundaryCondition/BoundaryConditionList.py
@@ -25,16 +25,16 @@ class BoundaryConditionList(list):
             self.remove(bc)
 
     def delete_i(self, indexes):
-        bcs = map(
-            lambda x: x[1],
-            filter(
-                lambda x: x[0] in indexes,
-                enumerate(self)
+        bcs = list(
+            map(
+                lambda x: x[1],
+                filter(
+                    lambda x: x[0] in indexes,
+                    enumerate(self)
+                )
             )
         )
-
-        for bc in bcs:
-            self.remove(bc)
+        self.delete(bcs)
 
     def move_up(self, index):
         if index < len(self):
diff --git a/src/View/BoundaryCondition/BoundaryConditionWindow.py b/src/View/BoundaryCondition/BoundaryConditionWindow.py
index 7fcc91c9..de56722d 100644
--- a/src/View/BoundaryCondition/BoundaryConditionWindow.py
+++ b/src/View/BoundaryCondition/BoundaryConditionWindow.py
@@ -301,6 +301,10 @@ class BoundaryConditionWindow(ASubMainWindow, ListedSubWindow):
             2, self._delegate_node
         )
 
+        table.setSelectionBehavior(QAbstractItemView.SelectRows)
+        table.setAlternatingRowColors(True)
+
+
     def setup_connections(self):
         self.find(QAction, "action_add").triggered.connect(self.add)
         self.find(QAction, "action_del").triggered.connect(self.delete)
@@ -339,6 +343,9 @@ class BoundaryConditionWindow(ASubMainWindow, ListedSubWindow):
 
     def delete(self):
         rows = self.index_selected_rows()
+        if len(rows) == 0:
+            return
+
         self._table.delete(rows)
 
     def sort(self):
-- 
GitLab