Salome HOME
full checking of geom selection
authorasl <asl@opencascade.com>
Thu, 7 Jul 2005 11:33:32 +0000 (11:33 +0000)
committerasl <asl@opencascade.com>
Thu, 7 Jul 2005 11:33:32 +0000 (11:33 +0000)
src/SMESHGUI/SMESHGUI_InitMeshDlg.cxx
src/SMESHGUI/SMESHGUI_InitMeshDlg.h
src/SMESHGUI/SMESHGUI_InitMeshOp.cxx
src/SMESHGUI/SMESHGUI_InitMeshOp.h

index 95545e4a26314b29db3878a6beae7d29f5514c37..c70984a645c1c0c6383e2c46e135de7112bd322b 100644 (file)
@@ -57,7 +57,7 @@ SMESHGUI_InitMeshDlg::SMESHGUI_InitMeshDlg( SMESHGUI* theModule )
     GroupC1->layout()->setSpacing(6);
     GroupC1->layout()->setMargin(11);
    
-    myMeshNameLabel = new QLabel(tr("SMESH_NAME"), GroupC1, "TextLabel_NameMesh");
+    new QLabel(tr("SMESH_NAME"), GroupC1, "TextLabel_NameMesh");
     GroupC1->addSpace(1);
     myMeshName = new QLineEdit(GroupC1, "LineEdit_NameMesh");
     
@@ -72,8 +72,6 @@ SMESHGUI_InitMeshDlg::SMESHGUI_InitMeshDlg( SMESHGUI* theModule )
     setObjectType( Algo, _smesh + ALGORITHM, -1 );
     
     main->addWidget( GroupC1 );
-    
-    updateControlState();
 }
 
 //=================================================================================
index bf8cde064a56fac9b714ada985b8176a9ecd46ec..32ceba56ef604e23cb7d746e34830bf73f62f170 100644 (file)
@@ -52,7 +52,6 @@ public:
     QString meshName() const;
 
 private:
-  QLabel*     myMeshNameLabel;
   QLineEdit*  myMeshName;
   
 };
index 7a062119b337fe3d573dc2a560472855d5b00d57..064d8174dc3245dc4400ab73b90a80de6dbef35b 100644 (file)
 
 #include <SalomeApp_SelectionMgr.h>
 #include <SalomeApp_Tools.h>
+#include <SalomeApp_UpdateFlags.h>
 
 #include <TColStd_MapOfInteger.hxx>
 
+#include <GEOMBase.h>
+
 //=================================================================================
 // function : Constructor
 // purpose  :
@@ -107,7 +110,6 @@ void SMESHGUI_InitMeshOp::startOperation()
     myHypothesisFilter = new SMESH_TypeFilter (HYPOTHESIS);
     
   init();
-  myDlg->clearSelection();
   myDlg->show();
 }
 
@@ -230,10 +232,9 @@ bool SMESHGUI_InitMeshOp::onApply()
       }
     }
   }
-  // commit transaction
 
-  //update( UF_Model | UF_ObjBrowser );
-  module()->updateObjBrowser( true, 0 );
+  update( UF_Model | UF_ObjBrowser );
+
   init();
   return true;
 }
@@ -264,7 +265,11 @@ QString SMESHGUI_InitMeshOp::defaultMeshName() const
 void SMESHGUI_InitMeshOp::init()
 {
   if( myDlg )
+  {
     myDlg->setMeshName( defaultMeshName() );
+    myDlg->clearSelection();
+    myDlg->updateControlState();
+  }    
 }
 
 //=================================================================================
@@ -295,3 +300,24 @@ SMESH::SMESH_Mesh_var SMESHGUI_InitMeshOp::initMesh ( GEOM::GEOM_Object_ptr theS
   
   return aMesh._retn();
 }
+
+//=================================================================================
+// function : defaultMeshName()
+// purpose  :
+//=================================================================================
+void SMESHGUI_InitMeshOp::onSelectionChanged( int id )
+{
+  if( !myDlg->hasSelection( id ) )
+    return;
+    
+  if( id==SMESHGUI_InitMeshDlg::GeomObj )
+  {
+    QStringList selGeom;
+    myDlg->selectedObject( SMESHGUI_InitMeshDlg::GeomObj, selGeom );
+
+    _PTR(SObject) aGeomSO = studyDS()->FindObjectID( selGeom.first() );
+    GEOM::GEOM_Object_var myGeomShape = GEOM::GEOM_Object::_narrow( _CAST(SObject,aGeomSO)->GetObject() );
+    if( myGeomShape->_is_nil() || !GEOMBase::IsShape( myGeomShape ) )
+      myDlg->clearSelection( id );
+  }
+}
index ee4141ceaa4805df5a0ebe9d4a69154d4660da0c..27ce68d1a6cf51030380a6d69d721050c68266da 100644 (file)
@@ -65,6 +65,7 @@ protected slots:
 
 private slots:
   void onActivateObject( int );
+  void onSelectionChanged( int );
 
 private:
   SMESHGUI_InitMeshDlg  *myDlg;