From a5eef260fae0a38aee49cc48754f62cefca0d06c Mon Sep 17 00:00:00 2001
From: Samuel Gaist <samuel,gaist@idiap.ch>
Date: Thu, 31 Mar 2022 14:04:05 +0200
Subject: [PATCH] [widgets][experimenteditor] Refactor io_mapping on load

Something has change at some point and the original
mapping created from the input was replaced during
the loading process.
---
 beat/editor/widgets/experimenteditor.py | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/beat/editor/widgets/experimenteditor.py b/beat/editor/widgets/experimenteditor.py
index a6d1f262..be4d3c75 100644
--- a/beat/editor/widgets/experimenteditor.py
+++ b/beat/editor/widgets/experimenteditor.py
@@ -597,7 +597,7 @@ class ExecutionPropertiesEditor(AbstractBaseEditor):
         super().__init__(prefix_path, parent)
 
         self.json_object = {}
-        self.io_mapping = {}
+        self.io_mapping = {"inputs": {}}
         self.environment_changed = False
         self.queue_changed = False
         self._queue_enabled = True
@@ -664,7 +664,6 @@ class ExecutionPropertiesEditor(AbstractBaseEditor):
 
     @pyqtSlot()
     def __remapIO(self):
-
         status, mapping = IOMapperDialog.getIOMapping(self.prefix_path, self.dump())
 
         if status and self.io_mapping != mapping:
@@ -756,12 +755,7 @@ class ExecutionPropertiesEditor(AbstractBaseEditor):
     def load(self, json_object):
         self.json_object = copy.deepcopy(json_object)
         inputs = json_object.get("inputs", {})
-
-        self.io_mapping = {"inputs": inputs}
-
         outputs = json_object.get("outputs", {})
-        if outputs:
-            self.io_mapping["outputs"] = outputs
 
         self.algorithm_model.setInputCount(len(inputs))
         self.algorithm_model.setOutputCount(len(outputs))
@@ -793,6 +787,10 @@ class ExecutionPropertiesEditor(AbstractBaseEditor):
         if parameters:
             self.parameters_editor.load(parameters)
 
+        self.io_mapping = {"inputs": inputs}
+        if outputs:
+            self.io_mapping["outputs"] = outputs
+
         self.environment_changed = False
         self.queue_changed = False
         self.parameters_changed = False
-- 
GitLab