Salome HOME
Merge remote branch 'origin/V7_dev'
[modules/smesh.git] / src / Tools / blocFissure / ihm / fissureGenerale_plugin.py
index c8c495abe7b554a216000e7f5beb83fa516c1501..fe0627fd18559d53c00afabc0993644e11bd5116 100644 (file)
@@ -1,11 +1,11 @@
 # -*- coding: utf-8 -*-
 
-# Copyright (C) 2006-2015  EDF R&D
+# Copyright (C) 2006-2016  EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -41,6 +41,7 @@ def fissureGeneraleDlg(context):
   from PyQt4.QtGui import QMessageBox
   from PyQt4.QtGui import QPalette
   from PyQt4.QtGui import QColor
+  from PyQt4.QtCore import QString
   from fissureGenerale_ui import Ui_Dialog
   
   class fissureGeneraleDialog(QtGui.QDialog):
@@ -96,7 +97,8 @@ def fissureGeneraleDlg(context):
         nbSegCercle       = 32,
         areteFaceFissure  = 10,
         reptrav           = '.',
-        nomres            = 'casStandard_fissure.med')
+        nomres            = 'casStandard_fissure.med',
+        verbosite         = 0)
 
       
     def initDialog(self, dico):
@@ -113,6 +115,7 @@ def fissureGeneraleDlg(context):
       self.ui.dsb_areteFaceFissure.setValue(dico['areteFaceFissure'])
       self.ui.le_reptrav.setText(os.path.abspath(dico['reptrav']))
       self.ui.le_nomres.setText(os.path.split(dico['nomres'])[1])
+      self.ui.cb_log.setCurrentIndex(dico['verbosite'])
       incomplet = self.testval(dico)
       pass
   
@@ -198,17 +201,17 @@ def fissureGeneraleDlg(context):
       #self.initDefaut()
       self.initDialog(self.defaut)
       
-    def setLogVerbosity(self):
+    def setLogVerbosity(self, logfile):
       from blocFissure.gmu import initLog # le mode de log s'initialise une seule fois
       print "setLogVerbosity"
       index = self.ui.cb_log.currentIndex()
       print index
       if index == 0:
-        initLog.setRelease()
+        initLog.setRelease(logfile)
       elif index == 1:
-        initLog.setVerbose()
+        initLog.setVerbose(logfile)
       elif index == 2:
-        initLog.setDebug()
+        initLog.setDebug(logfile)
       
       
     def sauver(self):
@@ -307,6 +310,7 @@ def fissureGeneraleDlg(context):
                   areteFaceFissure = self.ui.dsb_areteFaceFissure.value(),
                   reptrav          = str(self.ui.le_reptrav.text()),
                   nomres           = str(self.ui.le_nomres.text()),
+                  verbosite        = self.ui.cb_log.currentIndex()
                   )
       print dico
       return dico
@@ -321,10 +325,32 @@ def fissureGeneraleDlg(context):
       if not(NOK):
         self.writeDefault(dico)
         self.ui.lb_calcul.show()
-        self.setLogVerbosity()
+        logfile=os.path.join(dico['reptrav'], dico['nomres']+".log")
+        self.setLogVerbosity(logfile)
         from blocFissure.gmu import geomsmesh               # après intialisation log dans setLogVerbosity
         from blocFissure.gmu.casStandard import casStandard # après intialisation log dans setLogVerbosity
-        execInstance = casStandard(dico)
+        from blocFissure.gmu.fissError import fissError
+        try:
+          execInstance = casStandard(dico)
+        except fissError as erreur:
+          print '-'*60
+          print type(erreur)
+          print '-'*60
+          print erreur.msg
+          print '-'*60
+          for ligne in erreur.pile:
+            print repr(ligne)        
+          print '-'*60
+          texte = erreur.msg
+#           texte += +"<br>" +'-'*60 +"<br>"
+#           for ligne in erreur.pile:
+#             texte += repr(ligne) +"<br>"
+          mbox = QMessageBox(self)
+          mbox.setWindowTitle("erreur blocFissure")
+          mbox.setText(QString.fromUtf8(texte))
+          mbox.exec_()          
+#        except Exception as erreur:
+#          print "exception non répertoriée"
       self.NOK = NOK
       self.accept()