From bed66fbde790fe5d3c93f4230bf2946a0f3354a9 Mon Sep 17 00:00:00 2001
From: Theophile Terraz <theophile.terraz@inrae.fr>
Date: Tue, 1 Oct 2024 09:47:35 +0200
Subject: [PATCH] debug import geometry

---
 src/View/Geometry/MeshingDialog.py |  2 ++
 src/View/Geometry/UndoCommand.py   | 10 ++++++++++
 2 files changed, 12 insertions(+)

diff --git a/src/View/Geometry/MeshingDialog.py b/src/View/Geometry/MeshingDialog.py
index e3beff06..07478f6e 100644
--- a/src/View/Geometry/MeshingDialog.py
+++ b/src/View/Geometry/MeshingDialog.py
@@ -50,6 +50,8 @@ class MeshingDialog(PamhyrDialog):
         self._init_default_values()
 
     def _init_default_values(self):
+        gl, _ = self._reach.compute_guidelines()
+        self._gl = list(gl)
         self._space_step = 50.0
         self._lplan = False
         self._lm = "3"
diff --git a/src/View/Geometry/UndoCommand.py b/src/View/Geometry/UndoCommand.py
index d3cc29ef..456705f2 100644
--- a/src/View/Geometry/UndoCommand.py
+++ b/src/View/Geometry/UndoCommand.py
@@ -204,19 +204,29 @@ class ImportCommand(QUndoCommand):
         self._row = row
         self._filename = filename
         self._profiles = None
+        self._old_profiles = []
+        for row in range(len(self._reach)):
+            self._old_profiles.append((self._reach.profile(row)))
+        self._old_profiles.reverse()
 
     def undo(self):
         self._reach.delete_profiles(self._profiles)
+        for profile in self._old_profiles:
+            self._reach.insert_profile(self._row, profile)
 
     def redo(self):
         if self._profiles is None:
+            self._reach.delete_profiles(self._old_profiles)
             try:
                 self._profiles = self._reach.import_geometry(self._filename)
                 self._profiles.reverse()
             except Exception as e:
+                for profile in self._old_profiles:
+                    self._reach.insert_profile(self._row, profile)
                 logger_exception(e)
                 exception_message_box(e)
         else:
+            self._reach.delete_profiles(self._old_profiles)
             for profile in self._profiles:
                 self._reach.insert_profile(self._row, profile)
 
-- 
GitLab