- if ( !aFilename.isEmpty()
- && (aMesh->NbPolygons()>0 || aMesh->NbPolyhedrons()>0)
- && aFormat==SMESH::MED_V2_1) {
- int aRet = SUIT_MessageBox::warning(SMESHGUI::desktop(),
- QObject::tr("SMESH_WRN_WARNING"),
- QObject::tr("SMESH_EXPORT_MED_V2_1").arg(anIObject->getName()),
- SUIT_MessageBox::Yes | SUIT_MessageBox::No, SUIT_MessageBox::Yes);
- if (aRet != SUIT_MessageBox::Yes) {
- is_ok = false;
+ if ( !aFilename.isEmpty() ) {
+ for( aMeshIter = aMeshList.begin(); aMeshIter != aMeshList.end(); aMeshIter++ ) {
+ SMESH::SMESH_Mesh_var aMeshItem = (*aMeshIter).first;
+ if( (aMeshItem->NbPolygons()>0 || aMeshItem->NbPolyhedrons()>0)
+ && aFormat==SMESH::MED_V2_1) {
+ int aRet = SUIT_MessageBox::warning(SMESHGUI::desktop(),
+ QObject::tr("SMESH_WRN_WARNING"),
+ QObject::tr("SMESH_EXPORT_MED_V2_1").arg((*aMeshIter).second),
+ QObject::tr("SMESH_BUT_YES"),
+ QObject::tr("SMESH_BUT_NO"), 0, 1);
+ if (aRet != 0) {
+ is_ok = false;
+ break;
+ }
+ }
+ }
+ if( !toOverwrite ) {
+ SMESH::MED_VERSION aVersion = SMESH::MED_V2_1;
+ bool isVersionOk = SMESHGUI::GetSMESHGen()->GetMEDVersion( aFilename.toLatin1().constData(), aVersion );
+ if( !isVersionOk || aVersion != aFormat ) {
+ int aRet = SUIT_MessageBox::warning(SMESHGUI::desktop(),
+ QObject::tr("SMESH_WRN_WARNING"),
+ QObject::tr("SMESH_EXPORT_MED_VERSION_COLLISION").arg(aFilename),
+ QObject::tr("SMESH_BUT_YES"),
+ QObject::tr("SMESH_BUT_NO"), 0, 1);
+ if (aRet == 0)
+ toOverwrite = true;
+ else
+ is_ok = false;
+ }
+
+ QStringList aMeshNamesCollisionList;
+ SMESH::string_array_var aMeshNames = SMESHGUI::GetSMESHGen()->GetMeshNames( aFilename.toLatin1().constData() );
+ for( int i = 0, n = aMeshNames->length(); i < n; i++ ) {
+ QString anExistingMeshName( aMeshNames[ i ] );
+ for( aMeshIter = aMeshList.begin(); aMeshIter != aMeshList.end(); aMeshIter++ ) {
+ QString anExportMeshName = (*aMeshIter).second;
+ if( anExportMeshName == anExistingMeshName ) {
+ aMeshNamesCollisionList.append( anExportMeshName );
+ break;
+ }
+ }
+ }
+
+ if( !aMeshNamesCollisionList.isEmpty() ) {
+ QString aMeshNamesCollisionString = aMeshNamesCollisionList.join( ", " );
+ int aRet = SUIT_MessageBox::warning(SMESHGUI::desktop(),
+ QObject::tr("SMESH_WRN_WARNING"),
+ QObject::tr("SMESH_EXPORT_MED_MESH_NAMES_COLLISION").arg(aMeshNamesCollisionString),
+ QObject::tr("SMESH_BUT_YES"),
+ QObject::tr("SMESH_BUT_NO"),
+ QObject::tr("SMESH_BUT_CANCEL"), 0, 2);
+ if (aRet == 0)
+ toOverwrite = true;
+ else if (aRet == 2)
+ is_ok = false;
+ }