_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;
*/
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());
}
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 ;
}
}
public:
MonEditFile( QWidget* parent, bool modal,
HOMARD::HOMARD_Gen_var myHomardGen,
- QString FileName );
+ QString FileName, int option );
~MonEditFile();
int _codret ;
HOMARD::HOMARD_Gen_var myHomardGen;
QString _aFileName ;
+ int _option ;
virtual void InitConnect();
virtual void EditText();
// 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(); }
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();
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); }
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 ; }
}
}