Salome HOME
Integrated to V7_main: 0022366: EDF SMESH: Create Mesh dialog box improvement: create...
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_MeshOp.cxx
index 73d5aab8efa4a7a937226111bb5fb37829d82ca6..96a6c2647b9f0ae740ea30d81a8794598fcc01f2 100644 (file)
@@ -733,7 +733,14 @@ bool SMESHGUI_MeshOp::isValid( QString& theMess ) const
     if ( aGeomEntry == "" )
     {
       theMess = tr( "GEOMETRY_OBJECT_IS_NOT_DEFINED" );
     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() )
     }
     _PTR(SObject) pGeom = studyDS()->FindObjectID( aGeomEntry.toLatin1().data() );
     if ( !pGeom || GEOM::GEOM_Object::_narrow( _CAST( SObject,pGeom )->GetObject() )->_is_nil() )
@@ -1601,6 +1608,23 @@ bool SMESHGUI_MeshOp::createMesh( QString& theMess, QStringList& theEntryList )
 
   QStringList aList;
   myDlg->selectedObject( SMESHGUI_MeshDlg::Geom, aList );
 
   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++)
   {
   QStringList::Iterator it = aList.begin();
   for ( ; it!=aList.end(); it++)
   {