From c540e2c93d5585a1f5edf3b8e177a905593cfe86 Mon Sep 17 00:00:00 2001 From: PaulJonasJost Date: Wed, 14 May 2025 15:17:10 +0200 Subject: [PATCH] Creating a new file clears tables and sbml model. Closes #95 --- src/petab_gui/controllers/mother_controller.py | 12 +++++------- src/petab_gui/controllers/sbml_controller.py | 9 +++++++++ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/petab_gui/controllers/mother_controller.py b/src/petab_gui/controllers/mother_controller.py index db3d302..19d82eb 100644 --- a/src/petab_gui/controllers/mother_controller.py +++ b/src/petab_gui/controllers/mother_controller.py @@ -702,12 +702,10 @@ def new_file(self): ) if reply == QMessageBox.Save: self.save_model() - for controller in [ - self.measurement_controller, - self.observable_controller, - self.parameter_controller, - self.condition_controller, - ]: + for controller in self.controllers: + if controller == self.sbml_controller: + controller.clear_model() + continue controller.clear_table() def check_model(self): @@ -942,8 +940,8 @@ def simulate(self): petab_problem = self.model.current_petab_problem # import petabsimualtor - from basico.petab import PetabSimulator import basico + from basico.petab import PetabSimulator # report current basico / COPASI version self.logger.log_message(f"Simulate with basico: {basico.__version__}, COPASI: {basico.COPASI.__version__}", color="green") diff --git a/src/petab_gui/controllers/sbml_controller.py b/src/petab_gui/controllers/sbml_controller.py index 26ea325..5ef8eff 100644 --- a/src/petab_gui/controllers/sbml_controller.py +++ b/src/petab_gui/controllers/sbml_controller.py @@ -126,3 +126,12 @@ def overwrite_sbml(self, file_path=None): self.logger.log_message( f"Failed to open SBML file: {str(e)}", color="red" ) + + def clear_model(self): + """Clear the model in case the user wants to start a new problem""" + self.model.antimony_text = "" + self.model.convert_antimony_to_sbml() + self.view.sbml_text_edit.setPlainText(self.model.sbml_text) + self.view.antimony_text_edit.setPlainText(self.model.antimony_text) + self.overwritten_model.emit() +