From 2d90d39cc3546700ce178357a45661fed84ce3b5 Mon Sep 17 00:00:00 2001 From: Przemo Firszt Date: Wed, 15 Apr 2015 12:03:43 +0100 Subject: [PATCH] FEM: Make sure cursor gets restored if write_calculix_input_file fails Reported-by: wmayer Signed-off-by: Przemo Firszt --- src/Mod/Fem/MechanicalAnalysis.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Mod/Fem/MechanicalAnalysis.py b/src/Mod/Fem/MechanicalAnalysis.py index db6a63feb..c1ecfd5dc 100644 --- a/src/Mod/Fem/MechanicalAnalysis.py +++ b/src/Mod/Fem/MechanicalAnalysis.py @@ -232,7 +232,7 @@ class _JobControlTaskPanel: #Connect Signals and Slots QtCore.QObject.connect(self.form.toolButton_chooseOutputDir, QtCore.SIGNAL("clicked()"), self.chooseOutputDir) - QtCore.QObject.connect(self.form.pushButton_write, QtCore.SIGNAL("clicked()"), self.writeCalculixInputFile) + QtCore.QObject.connect(self.form.pushButton_write, QtCore.SIGNAL("clicked()"), self.write_input_file_handler) QtCore.QObject.connect(self.form.pushButton_edit, QtCore.SIGNAL("clicked()"), self.editCalculixInputFile) QtCore.QObject.connect(self.form.pushButton_generate, QtCore.SIGNAL("clicked()"), self.runCalculix) @@ -339,7 +339,17 @@ class _JobControlTaskPanel: self.params.SetString("JobDir",str(dirname)) self.form.lineEdit_outputDir.setText(dirname) - def writeCalculixInputFile(self): + def write_input_file_handler(self): + QApplication.setOverrideCursor(Qt.WaitCursor) + try: + self.write_calculix_input_file() + except: + print "Unexpected error when writing CalculiX input file:", sys.exc_info()[0] + raise + finally: + QApplication.restoreOverrideCursor() + + def write_calculix_input_file(self): print 'writeCalculixInputFile' self.Start = time.time() @@ -390,8 +400,6 @@ class _JobControlTaskPanel: QtGui.QMessageBox.critical(None, "Missing prerequisite","No force-constraint nodes defined in the Analysis") return - QApplication.setOverrideCursor(Qt.WaitCursor) - self.Basename = self.TempDir + '/' + MeshObject.Name filename = self.Basename + '.inp' @@ -551,8 +559,6 @@ class _JobControlTaskPanel: inpfile.close() self.femConsoleMessage("Write completed.") - QApplication.restoreOverrideCursor() - def start_ext_editor(self, ext_editor_path, filename): if not hasattr(self, "ext_editor_process"): self.ext_editor_process = QtCore.QProcess()