From e0a628e580a7affa81c44ea1dacc584c29fc82dc Mon Sep 17 00:00:00 2001 From: Christophe Bourcier Date: Wed, 21 Sep 2016 17:31:37 +0200 Subject: [PATCH] Fix bugs with Cleaner and SurfOpt on Windows: - the generated .bat had a delete command instead of del - using .meshb does not work on Windows, we use .mesh instead - the result file was sometimes imported twice because the signal readyReadStandardOutput was sometimes emited twice --- src/Tools/MGCleanerPlug/MGCleanerMonViewText.py | 12 +++++++----- src/Tools/YamsPlug/monViewText.py | 15 +++++++++------ src/Tools/YamsPlug/monYamsPlugDialog.py | 4 ++-- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/Tools/MGCleanerPlug/MGCleanerMonViewText.py b/src/Tools/MGCleanerPlug/MGCleanerMonViewText.py index 86972fa31..01c53069d 100644 --- a/src/Tools/MGCleanerPlug/MGCleanerMonViewText.py +++ b/src/Tools/MGCleanerPlug/MGCleanerMonViewText.py @@ -57,6 +57,7 @@ class MGCleanerMonViewText(Ui_ViewExe, QDialog): self.monExe.readyReadStandardOutput.connect( self.readFromStdOut ) self.monExe.readyReadStandardError.connect( self.readFromStdErr ) + self.monExe.finished.connect( self.finished ) """ for test set environment env = QProcessEnvironment().systemEnvironment() @@ -69,7 +70,8 @@ class MGCleanerMonViewText(Ui_ViewExe, QDialog): cmds = '' ext = '' if sys.platform == "win32": - cmds += 'delete %s\n' % self.parent().fichierOut + if os.path.exists(self.parent().fichierOut): + cmds += 'del %s\n' % self.parent().fichierOut ext = '.bat' else: cmds += '#!/bin/bash\n' @@ -124,10 +126,10 @@ class MGCleanerMonViewText(Ui_ViewExe, QDialog): a=self.monExe.readAllStandardOutput() aa=unicode(a.data()) self.TB_Exe.append(aa) - if "END_OF_MGCleaner" in aa: - self.parent().enregistreResultat() - self.enregistreResultatsDone=True - #self.theClose() + + def finished(self): + self.parent().enregistreResultat() + self.enregistreResultatsDone=True def theClose(self): if not self.enregistreResultatsDone: diff --git a/src/Tools/YamsPlug/monViewText.py b/src/Tools/YamsPlug/monViewText.py index 45115e68d..c1e90255b 100644 --- a/src/Tools/YamsPlug/monViewText.py +++ b/src/Tools/YamsPlug/monViewText.py @@ -53,11 +53,14 @@ class MonViewText(Ui_ViewExe, QDialog): self.monExe.readyReadStandardOutput.connect( self.readFromStdOut ) self.monExe.readyReadStandardError.connect( self.readFromStdErr ) + self.monExe.finished.connect( self.finished ) cmds = '' ext = '' if sys.platform == "win32": - cmds += 'delete %s\n' % self.parent().fichierOut + if os.path.exists(self.parent().fichierOut): + cmds += 'del %s\n' % self.parent().fichierOut + ext = '.bat' else: cmds += '#!/bin/bash\n' cmds += 'pwd\n' @@ -109,11 +112,11 @@ class MonViewText(Ui_ViewExe, QDialog): def readFromStdOut(self) : a=self.monExe.readAllStandardOutput() aa=unicode(a.data()) - self.TB_Exe.append(aa) - if "END_OF_MGSurfOpt" in aa: - self.parent().enregistreResultat() - self.enregistreResultatsDone=True - #self.theClose() + self.TB_Exe.append(aa) + + def finished(self): + self.parent().enregistreResultat() + self.enregistreResultatsDone=True def theClose(self): if not self.enregistreResultatsDone: diff --git a/src/Tools/YamsPlug/monYamsPlugDialog.py b/src/Tools/YamsPlug/monYamsPlugDialog.py index 058fee9aa..acd67c872 100644 --- a/src/Tools/YamsPlug/monYamsPlugDialog.py +++ b/src/Tools/YamsPlug/monYamsPlugDialog.py @@ -479,7 +479,7 @@ class MonYamsPlugDialog(Ui_YamsPlugDialog,QWidget): self.fichierIn="" def prepareFichier(self): - self.fichierIn=tempfile.mktemp(suffix=".meshb",prefix="ForSurfOpt_") + self.fichierIn=tempfile.mktemp(suffix=".mesh",prefix="ForSurfOpt_") if os.path.exists(self.fichierIn): os.remove(self.fichierIn) self.__selectedMesh.ExportGMF(self.__selectedMesh, self.fichierIn, True) @@ -522,7 +522,7 @@ class MonYamsPlugDialog(Ui_YamsPlugDialog,QWidget): self.commande+= " -O G" # This option has not been updated to the new option style yet deb=os.path.splitext(self.fichierIn) - self.fichierOut=deb[0] + "_output.meshb" + self.fichierOut=deb[0] + "_output.mesh" tolerance=self.SP_toStr(self.SP_Tolerance) if not self.RB_Absolute.isChecked():