X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_MeshOp.cxx;h=c9020d81a154bdcd47b607de824ed1e30d84d87b;hp=42207481c258926c3acfb252f3aa914321ed9d73;hb=608b1a194b11996d851d2e889958b83cea173d12;hpb=91084ee58a53b97e38d910bc80cc3a813b177cb7 diff --git a/src/SMESHGUI/SMESHGUI_MeshOp.cxx b/src/SMESHGUI/SMESHGUI_MeshOp.cxx index 42207481c..c9020d81a 100644 --- a/src/SMESHGUI/SMESHGUI_MeshOp.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshOp.cxx @@ -141,6 +141,13 @@ bool SMESHGUI_MeshOp::onApply() SUIT_MessageBox::warning( myDlg, tr( "SMESH_WRN_WARNING" ), aMess ); return false; } +/* else if ( aMess == tr( "GEOMETRY_OBJECT_IS_NOT_DEFINED" ) || aMess == tr( "GEOMETRY_OBJECT_IS_NULL" ) ) + { + dlg()->show(); + if ( SUIT_MessageBox::warning( myDlg, tr( "SMESH_WRN_WARNING" ), aMess, + SUIT_MessageBox::Yes, SUIT_MessageBox::No ) == SUIT_MessageBox::No ) + return false; + }*/ bool aResult = false; aMess = ""; @@ -733,7 +740,14 @@ bool SMESHGUI_MeshOp::isValid( QString& theMess ) const if ( aGeomEntry == "" ) { theMess = tr( "GEOMETRY_OBJECT_IS_NOT_DEFINED" ); - return false; + dlg()->show(); + if ( SUIT_MessageBox::warning( myDlg, tr( "SMESH_WRN_WARNING" ), theMess, + SUIT_MessageBox::Yes, SUIT_MessageBox::No ) == SUIT_MessageBox::No ) + { + theMess = ""; + return false; + } + return true; } _PTR(SObject) pGeom = studyDS()->FindObjectID( aGeomEntry.toLatin1().data() ); if ( !pGeom || GEOM::GEOM_Object::_narrow( _CAST( SObject,pGeom )->GetObject() )->_is_nil() ) @@ -1601,6 +1615,23 @@ bool SMESHGUI_MeshOp::createMesh( QString& theMess, QStringList& theEntryList ) QStringList aList; myDlg->selectedObject( SMESHGUI_MeshDlg::Geom, aList ); + if ( aList.isEmpty() ) + { + SMESH::SMESH_Gen_var aSMESHGen = SMESHGUI::GetSMESHGen(); + if ( aSMESHGen->_is_nil() ) + return false; + + SMESH::SMESH_Mesh_var aMeshVar= aSMESHGen->CreateEmptyMesh(); + if ( aMeshVar->_is_nil() ) + return false; + + _PTR(SObject) aMeshSO = SMESH::FindSObject( aMeshVar.in() ); + if ( aMeshSO ) { + SMESH::SetName( aMeshSO, myDlg->objectText( SMESHGUI_MeshDlg::Obj ) ); + theEntryList.append( aMeshSO->GetID().c_str() ); + } + return true; + } QStringList::Iterator it = aList.begin(); for ( ; it!=aList.end(); it++) { @@ -1723,8 +1754,9 @@ bool SMESHGUI_MeshOp::createSubMesh( QString& theMess, QStringList& theEntryList GEOM::GEOM_Object_wrap aGroupVar = op->CreateGroup(mainGeom, aGroupType); op->UnionList(aGroupVar, aSeq); - if (op->IsDone()) { - aGeomVar = aGroupVar.in(); + if (op->IsDone()) + { + aGeomVar = GEOM::GEOM_Object::_duplicate( aGroupVar.in() ); // publish the GEOM group in study QString aNewGeomGroupName ("Auto_group_for_");