From: nicolas Date: Tue, 22 Oct 2013 14:58:33 +0000 (+0000) Subject: Gestion des messages d'erreur en mode information X-Git-Tag: V7_3_0a1~22 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=e436055a64b079390666c86f8ce48a892acba309;p=modules%2Fhomard.git Gestion des messages d'erreur en mode information --- diff --git a/src/HOMARDGUI/HOMARDGUI.cxx b/src/HOMARDGUI/HOMARDGUI.cxx index c2951a1e..b4050976 100644 --- a/src/HOMARDGUI/HOMARDGUI.cxx +++ b/src/HOMARDGUI/HOMARDGUI.cxx @@ -491,7 +491,7 @@ bool HOMARDGUI::OnGUIEvent (int theCommandID) _PTR(SObject) obj = chercheMonObjet(); if ( (obj) and ( HOMARD_UTILS::isFileType(obj,QString("log")) or HOMARD_UTILS::isFileType(obj,QString("Summary")) or HOMARD_UTILS::isFileType(obj,QString("xml")) ) ) { - MonEditFile *aDlg = new MonEditFile( 0, true, HOMARD::HOMARD_Gen::_duplicate(homardGen), _ObjectName ) ; + MonEditFile *aDlg = new MonEditFile( 0, true, HOMARD::HOMARD_Gen::_duplicate(homardGen), _ObjectName, 0 ) ; if ( aDlg->_codret == 0 ) { aDlg->show(); } } break; diff --git a/src/HOMARDGUI/MonEditFile.cxx b/src/HOMARDGUI/MonEditFile.cxx index 4986104f..8a8a8aad 100644 --- a/src/HOMARDGUI/MonEditFile.cxx +++ b/src/HOMARDGUI/MonEditFile.cxx @@ -44,10 +44,11 @@ using namespace std; */ MonEditFile::MonEditFile( QWidget* parent, bool modal, HOMARD::HOMARD_Gen_var myHomardGen, - QString aFileName): + QString aFileName, int option): // QWidget(0), Ui_EditFile(), _aFileName (aFileName), + _option (option), _codret (0) { MESSAGE("Debut de MonEditFile " << aFileName.toStdString().c_str()); @@ -94,10 +95,14 @@ void MonEditFile::EditText() } else { - // GERALD -- QMESSAGE BOX - MESSAGE( "EditText " << _aFileName.toStdString().c_str() << " est impossible a ouvrir "); - QMessageBox::warning( 0, QObject::tr("HOM_WARNING"), - QObject::tr("HOM_SELECT_FILE_3") ); + // Option = 0 : emission d'un message d'erreur + if ( _option == 0 ) + { + MESSAGE( "EditText " << _aFileName.toStdString().c_str() << " est impossible a ouvrir "); + QMessageBox::warning( 0, QObject::tr("HOM_WARNING"), + QObject::tr("HOM_SELECT_FILE_3") ); + } + // Sinon : rien _codret = 1 ; } } diff --git a/src/HOMARDGUI/MonEditFile.h b/src/HOMARDGUI/MonEditFile.h index 5533a6b7..ebb2b5df 100644 --- a/src/HOMARDGUI/MonEditFile.h +++ b/src/HOMARDGUI/MonEditFile.h @@ -42,7 +42,7 @@ class MonEditFile : public QWidget, public Ui_EditFile public: MonEditFile( QWidget* parent, bool modal, HOMARD::HOMARD_Gen_var myHomardGen, - QString FileName ); + QString FileName, int option ); ~MonEditFile(); int _codret ; @@ -50,6 +50,7 @@ protected : HOMARD::HOMARD_Gen_var myHomardGen; QString _aFileName ; + int _option ; virtual void InitConnect(); virtual void EditText(); diff --git a/src/HOMARDGUI/MonIterInfo.cxx b/src/HOMARDGUI/MonIterInfo.cxx index 1d62d7fb..c3dbe3ba 100644 --- a/src/HOMARDGUI/MonIterInfo.cxx +++ b/src/HOMARDGUI/MonIterInfo.cxx @@ -113,7 +113,7 @@ bool MonIterInfo::PushOnApply() // Le bilan de l'analyse a afficher QString aFileName = aIter->GetFileInfo() ; - MonEditFile *aDlg = new MonEditFile( 0, true, HOMARD::HOMARD_Gen::_duplicate(myHomardGen), aFileName ) ; + MonEditFile *aDlg = new MonEditFile( 0, true, HOMARD::HOMARD_Gen::_duplicate(myHomardGen), aFileName, 0 ) ; if ( aDlg->_codret == 0 ) { aDlg->show(); } diff --git a/src/HOMARDGUI/MonMeshInfo.cxx b/src/HOMARDGUI/MonMeshInfo.cxx index 5916fb79..90225544 100644 --- a/src/HOMARDGUI/MonMeshInfo.cxx +++ b/src/HOMARDGUI/MonMeshInfo.cxx @@ -161,7 +161,7 @@ bool MonMeshInfo::PushOnApply() string iter0 = aCase->GetIter0Name(); HOMARD::HOMARD_Iteration_var aIter = myHomardGen->GetIteration(iter0.c_str()); aFileName = aIter->GetFileInfo() ; - MonEditFile *aDlg = new MonEditFile( 0, true, HOMARD::HOMARD_Gen::_duplicate(myHomardGen), aFileName ) ; + MonEditFile *aDlg = new MonEditFile( 0, true, HOMARD::HOMARD_Gen::_duplicate(myHomardGen), aFileName, 1 ) ; if ( aDlg->_codret == 0 ) { aDlg->show(); } HOMARD_UTILS::updateObjBrowser(); diff --git a/src/HOMARD_I/HOMARD_Gen_i.cxx b/src/HOMARD_I/HOMARD_Gen_i.cxx index 3fd2d1bf..55645cf0 100755 --- a/src/HOMARD_I/HOMARD_Gen_i.cxx +++ b/src/HOMARD_I/HOMARD_Gen_i.cxx @@ -2379,6 +2379,7 @@ CORBA::Long HOMARD_Gen_i::Compute(const char* NomIteration, CORBA::Long etatMena codretexec = myDriver->ExecuteHomard(Option1); // MESSAGE ( "Erreur en executant HOMARD : " << codretexec ); + // En mode adaptation, on ajuste l'etat de l'iteration if ( modeHOMARD == 1 ) { if (codretexec == 0) { SetEtatIter(NomIteration,2); } @@ -2415,24 +2416,44 @@ CORBA::Long HOMARD_Gen_i::Compute(const char* NomIteration, CORBA::Long etatMena if ( Option2 % 2 == 0 ) { PublishResultInSmesh(MeshFile, 1); } } } - // H.3 Message d'erreur en cas de probleme - else + // H.3 Message d'erreur + if (codretexec != 0) { - SALOME::ExceptionStruct es; - es.type = SALOME::BAD_PARAM; - std::string text = "Error during the adaptation.\n" ; - try + std::string text ; + // Message d'erreur en cas de probleme en adaptation + if ( modeHOMARD == 1 ) { - ifstream fichier(LogFile.c_str(), ios::in); - string ligne; - while(getline(fichier, ligne) and (ligne != "===== HOMARD ===== STOP =====")); - while (getline(fichier, ligne)) { text += ligne+ "\n";}; + text = "Error during the adaptation.\n" ; + bool stopvu = false ; + std::ifstream fichier( LogFile.c_str() ); + if ( fichier ) // ce test échoue si le fichier n'est pas ouvert + { + std::string ligne; // variable contenant chaque ligne lue + while ( std::getline( fichier, ligne ) ) + { +// INFOS(ligne); + if ( stopvu ) + { text += ligne+ "\n"; } + else + { + int position = ligne.find( "===== HOMARD ===== STOP =====" ) ; + if ( position > 0 ) { stopvu = true ; } + } + } + } } - catch (...) { - text += "no log file ...."; + else + { + text = "Voir le fichier Liste.log.\n" ; } + INFOS ( text ) ; + SALOME::ExceptionStruct es; + es.type = SALOME::BAD_PARAM; es.text = CORBA::string_dup(text.c_str()); throw SALOME::SALOME_Exception(es); +// + // En mode information, on force le succes pour pouvoir consulter le fichier log + if ( modeHOMARD != 1 ) { codretexec = 0 ; } } }