]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Remove some methods of GEOMBase_Helper (IObjectCount(), firstIObject(), lastIObject...
authorjfa <jfa@opencascade.com>
Mon, 15 Sep 2008 08:14:51 +0000 (08:14 +0000)
committerjfa <jfa@opencascade.com>
Mon, 15 Sep 2008 08:14:51 +0000 (08:14 +0000)
68 files changed:
src/BasicGUI/BasicGUI_ArcDlg.cxx
src/BasicGUI/BasicGUI_CurveDlg.cxx
src/BasicGUI/BasicGUI_EllipseDlg.cxx
src/BasicGUI/BasicGUI_LineDlg.cxx
src/BasicGUI/BasicGUI_MarkerDlg.cxx
src/BasicGUI/BasicGUI_PlaneDlg.cxx
src/BasicGUI/BasicGUI_PointDlg.cxx
src/BasicGUI/BasicGUI_VectorDlg.cxx
src/BasicGUI/BasicGUI_WorkingPlaneDlg.cxx
src/BlocksGUI/BlocksGUI_ExplodeDlg.cxx
src/BlocksGUI/BlocksGUI_PropagateDlg.cxx
src/BlocksGUI/BlocksGUI_QuadFaceDlg.cxx
src/BlocksGUI/BlocksGUI_TrsfDlg.cxx
src/BooleanGUI/BooleanGUI_Dialog.cxx
src/BuildGUI/BuildGUI_CompoundDlg.cxx
src/BuildGUI/BuildGUI_EdgeDlg.cxx
src/BuildGUI/BuildGUI_FaceDlg.cxx
src/BuildGUI/BuildGUI_ShellDlg.cxx
src/BuildGUI/BuildGUI_SolidDlg.cxx
src/BuildGUI/BuildGUI_WireDlg.cxx
src/EntityGUI/EntityGUI_SketcherDlg.cxx
src/EntityGUI/EntityGUI_SubShapeDlg.cxx
src/GEOMBase/GEOMBase_Helper.cxx
src/GEOMBase/GEOMBase_Helper.h
src/GEOMBase/GEOMBase_Skeleton.cxx
src/GenerationGUI/GenerationGUI_FillingDlg.cxx
src/GenerationGUI/GenerationGUI_PipeDlg.cxx
src/GenerationGUI/GenerationGUI_PrismDlg.cxx
src/GenerationGUI/GenerationGUI_RevolDlg.cxx
src/GroupGUI/GroupGUI_GroupDlg.cxx
src/MeasureGUI/MeasureGUI_AngleDlg.cxx
src/MeasureGUI/MeasureGUI_CenterMassDlg.cxx
src/MeasureGUI/MeasureGUI_CheckCompoundOfBlocksDlg.cxx
src/MeasureGUI/MeasureGUI_DistanceDlg.cxx
src/MeasureGUI/MeasureGUI_NormaleDlg.cxx
src/MeasureGUI/MeasureGUI_PointDlg.cxx
src/MeasureGUI/MeasureGUI_Skeleton.cxx
src/OperationGUI/OperationGUI_ArchimedeDlg.cxx
src/OperationGUI/OperationGUI_ChamferDlg.cxx
src/OperationGUI/OperationGUI_FilletDlg.cxx
src/OperationGUI/OperationGUI_GetShapesOnShapeDlg.cxx
src/OperationGUI/OperationGUI_PartitionDlg.cxx
src/PrimitiveGUI/PrimitiveGUI_BoxDlg.cxx
src/PrimitiveGUI/PrimitiveGUI_ConeDlg.cxx
src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.cxx
src/PrimitiveGUI/PrimitiveGUI_FaceDlg.cxx
src/PrimitiveGUI/PrimitiveGUI_SphereDlg.cxx
src/PrimitiveGUI/PrimitiveGUI_TorusDlg.cxx
src/RepairGUI/RepairGUI_ChangeOrientationDlg.cxx
src/RepairGUI/RepairGUI_CloseContourDlg.cxx
src/RepairGUI/RepairGUI_DivideEdgeDlg.cxx
src/RepairGUI/RepairGUI_FreeBoundDlg.cxx
src/RepairGUI/RepairGUI_FreeFacesDlg.cxx
src/RepairGUI/RepairGUI_GlueDlg.cxx
src/RepairGUI/RepairGUI_RemoveExtraEdgesDlg.cxx
src/RepairGUI/RepairGUI_RemoveHolesDlg.cxx
src/RepairGUI/RepairGUI_RemoveIntWiresDlg.cxx
src/RepairGUI/RepairGUI_SewingDlg.cxx
src/RepairGUI/RepairGUI_ShapeProcessDlg.cxx
src/RepairGUI/RepairGUI_SuppressFacesDlg.cxx
src/TransformationGUI/TransformationGUI_MirrorDlg.cxx
src/TransformationGUI/TransformationGUI_MultiRotationDlg.cxx
src/TransformationGUI/TransformationGUI_MultiTranslationDlg.cxx
src/TransformationGUI/TransformationGUI_OffsetDlg.cxx
src/TransformationGUI/TransformationGUI_PositionDlg.cxx
src/TransformationGUI/TransformationGUI_RotationDlg.cxx
src/TransformationGUI/TransformationGUI_ScaleDlg.cxx
src/TransformationGUI/TransformationGUI_TranslationDlg.cxx

index 8ca36253b80e5e8402d976eb782f368cb00503e2..f0f7056e951e8960bc641c3d5c1450c97c2390de 100644 (file)
@@ -215,8 +215,13 @@ void BasicGUI_ArcDlg::SelectionIntoArgument()
     return;
   
   myEditCurrentArgument->setText( "" );
-  if ( IObjectCount() != 1 ) {
-    switch ( getConstructorId() ) {
+
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1) {
+    switch (getConstructorId()) {
     case 0:
       if      ( myEditCurrentArgument == Group3Pnts->LineEdit1 )   myPoint1 = GEOM::GEOM_Object::_nil();
       else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 )   myPoint2 = GEOM::GEOM_Object::_nil();
@@ -233,7 +238,7 @@ void BasicGUI_ArcDlg::SelectionIntoArgument()
   }   
   // nbSel == 1
   Standard_Boolean aRes = Standard_False;
-  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
+  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes);
   if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
     QString aName = GEOMBase::GetName(aSelectedObject);
 
@@ -241,9 +246,8 @@ void BasicGUI_ArcDlg::SelectionIntoArgument()
     TopoDS_Shape aShape;
     if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull())
     {
-      LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
       TColStd_IndexedMapOfInteger aMap;
-      aSelMgr->GetIndexes(firstIObject(), aMap);
+      aSelMgr->GetIndexes(aSelList.First(), aMap);
       if (aMap.Extent() == 1) // Local Selection
       {
         int anIndex = aMap(1);
index aa19218758c97dc23b878da426b3b5aba184cb38..d380c5669e09109f56e8d62c4685bc59f60ec35c 100644 (file)
@@ -261,34 +261,33 @@ void BasicGUI_CurveDlg::SelectionIntoArgument()
 
   Standard_Boolean aRes = Standard_False;
 
-  int IOC = IObjectCount();
-  // bool is_append = myPoints->length() < IOC; // if true - add point, else remove
-  // myPoints->length( IOC ); // this length may be greater than number of objects,
-                           // that will actually be put into myPoints
-
-  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
-  SalomeApp_Application* app =
-    dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
-  SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
+  SalomeApp_Application* app = myGeomGUI->getApp();
+  SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>(app->activeStudy());
   _PTR(Study) aDStudy = appStudy->studyDS();
-  GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() );
+  GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId());
 
   int anIndex;
   TopoDS_Shape aShape;
   TColStd_IndexedMapOfInteger aMapIndexes;
   GEOM::GEOM_Object_var anObject;
   std::list<GEOM::GEOM_Object_var> aList;
+  LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
   SALOME_ListIO selected;
-  aSelMgr->selectedObjects( selected, QString::null, false );
+  aSelMgr->selectedObjects(selected, QString::null, false);
+
+  int IOC = selected.Extent();
+  // bool is_append = myPoints->length() < IOC; // if true - add point, else remove
+  // myPoints->length( IOC ); // this length may be greater than number of objects,
+                           // that will actually be put into myPoints
   
-  for ( SALOME_ListIteratorOfListIO anIt( selected ); anIt.More(); anIt.Next() ) {
-    GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( anIt.Value(), aRes );
-    if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
-      if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) {
-       aSelMgr->GetIndexes( anIt.Value(), aMapIndexes );
+  for (SALOME_ListIteratorOfListIO anIt (selected); anIt.More(); anIt.Next()) {
+    GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(anIt.Value(), aRes);
+    if (!CORBA::is_nil(aSelectedObject) && aRes) {
+      if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) {
+       aSelMgr->GetIndexes(anIt.Value(), aMapIndexes);
        
-       if ( aMapIndexes.Extent() > 0 ) {
-         for ( int ii = 1; ii <= aMapIndexes.Extent(); ii++ ) {
+       if (aMapIndexes.Extent() > 0) {
+         for (int ii = 1; ii <= aMapIndexes.Extent(); ii++) {
            anIndex = aMapIndexes(ii);
            QString aName = GEOMBase::GetName( aSelectedObject );
            aName = aName + ":vertex_" + QString::number( anIndex );
index 36af5ff2147a9c10052199686dd45c324bab0113..0abb2836cf7de6a8742e6e0fcc6a0918cc8dc8bd 100644 (file)
@@ -211,17 +211,21 @@ void BasicGUI_EllipseDlg::SelectionIntoArgument()
 {
   myEditCurrentArgument->setText( "" );
 
-  if ( IObjectCount() != 1 ) {
-    if      ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myPoint = GEOM::GEOM_Object::_nil();
-    else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) myDir   = GEOM::GEOM_Object::_nil();
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1) {
+    if      (myEditCurrentArgument == GroupPoints->LineEdit1) myPoint = GEOM::GEOM_Object::_nil();
+    else if (myEditCurrentArgument == GroupPoints->LineEdit2) myDir   = GEOM::GEOM_Object::_nil();
     return;
   }
 
   Standard_Boolean aRes = Standard_False;
-  Handle(SALOME_InteractiveObject) anIO = firstIObject();
-  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
-  if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
-    QString aName = GEOMBase::GetName( aSelectedObject );
+  Handle(SALOME_InteractiveObject) anIO = aSelList.First();
+  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(anIO, aRes);
+  if (!CORBA::is_nil(aSelectedObject) && aRes) {
+    QString aName = GEOMBase::GetName(aSelectedObject);
     
     // Get Selected object if selected subshape
     TopoDS_Shape aShape;
@@ -231,29 +235,28 @@ void BasicGUI_EllipseDlg::SelectionIntoArgument()
       aNeedType = TopAbs_EDGE;
     
     if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) {
-      LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
       TColStd_IndexedMapOfInteger aMap;
-      aSelMgr->GetIndexes( anIO, aMap );
-      if ( aMap.Extent() == 1 ) {
+      aSelMgr->GetIndexes(anIO, aMap);
+      if (aMap.Extent() == 1) {
         int anIndex = aMap(1);
-        if ( aNeedType == TopAbs_EDGE )
-          aName += QString( ":edge_%1" ).arg( anIndex );
+        if (aNeedType == TopAbs_EDGE)
+          aName += QString(":edge_%1").arg(anIndex);
         else
-          aName += QString( ":vertex_%1" ).arg( anIndex );
+          aName += QString(":vertex_%1").arg(anIndex);
 
        //Find SubShape Object in Father
-       GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather( aSelectedObject, aName );
+       GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName);
 
-       if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study
-        GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() );
-        aSelectedObject = aShapesOp->GetSubShape( aSelectedObject, anIndex );
+       if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study
+          GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId());
+          aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex);
        } 
        else {
          aSelectedObject = aFindedObject; // get Object from study
        }
       }
       else { // Global Selection
-        if ( aShape.ShapeType() != aNeedType ) {
+        if (aShape.ShapeType() != aNeedType) {
           aSelectedObject = GEOM::GEOM_Object::_nil();
           aName = "";
         }
index 489f8ee25a7bdc0a3bb8f1c139370f3e30f94313..b007fd1650fc4cc98d731a6de91147bee5260532 100644 (file)
@@ -239,17 +239,21 @@ void BasicGUI_LineDlg::SelectionIntoArgument()
 {
   myEditCurrentArgument->setText( "" );
 
-  if ( IObjectCount() != 1 ) {
-    if ( myEditCurrentArgument == GroupPoints->LineEdit1 )      myPoint1 = GEOM::GEOM_Object::_nil();
-    else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) myPoint2 = GEOM::GEOM_Object::_nil();
-    else if ( myEditCurrentArgument == GroupFaces->LineEdit1 )  myFace1  = GEOM::GEOM_Object::_nil();
-    else if ( myEditCurrentArgument == GroupFaces->LineEdit2 )  myFace2  = GEOM::GEOM_Object::_nil();
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1) {
+    if      (myEditCurrentArgument == GroupPoints->LineEdit1) myPoint1 = GEOM::GEOM_Object::_nil();
+    else if (myEditCurrentArgument == GroupPoints->LineEdit2) myPoint2 = GEOM::GEOM_Object::_nil();
+    else if (myEditCurrentArgument == GroupFaces->LineEdit1)  myFace1  = GEOM::GEOM_Object::_nil();
+    else if (myEditCurrentArgument == GroupFaces->LineEdit2)  myFace2  = GEOM::GEOM_Object::_nil();
     displayPreview();
     return;
   }
 
   Standard_Boolean aRes = Standard_False;
-  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
+  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes);
   if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
     QString aName = GEOMBase::GetName( aSelectedObject );
     TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX;
@@ -259,9 +263,8 @@ void BasicGUI_LineDlg::SelectionIntoArgument()
     
     TopoDS_Shape aShape;
     if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) {
-      LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
       TColStd_IndexedMapOfInteger aMap;
-      aSelMgr->GetIndexes( firstIObject(), aMap );
+      aSelMgr->GetIndexes(aSelList.First(), aMap);
       if ( aMap.Extent() == 1 ) { // Local Selection
        int anIndex = aMap( 1 );
         if ( aNeedType == TopAbs_FACE )
index 098e39dc0d585450883a41a2720a4a7dbdbfc2b6..e7cdef29a7ba73eb425cdb2e96e2c329e42c1c74 100644 (file)
@@ -339,13 +339,15 @@ bool BasicGUI_MarkerDlg::onApply()
 //=================================================================================
 void BasicGUI_MarkerDlg::onSelectionDone0()
 {
-  if ( IObjectCount() == 1 ) {
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() == 1) {
     Standard_Boolean aRes = Standard_False;
-    Handle(SALOME_InteractiveObject) anIO = firstIObject();
-    GEOM::GEOM_Object_var aSelectedObj = GEOMBase::ConvertIOinGEOMObject( anIO, aRes );
+    Handle(SALOME_InteractiveObject) anIO = aSelList.First();
+    GEOM::GEOM_Object_var aSelectedObj = GEOMBase::ConvertIOinGEOMObject(anIO, aRes);
     
-    LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
-
     if ( aRes && !aSelectedObj->_is_nil() ) {
       TopoDS_Shape aShape;
       if ( GEOMBase::GetShape( aSelectedObj, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) {
@@ -413,9 +415,13 @@ void BasicGUI_MarkerDlg::onSelectionDone()
 
   myEditCurrentArgument->setText( "" );
 
-  if ( IObjectCount() == 1 ) {
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() == 1) {
     Standard_Boolean aRes = Standard_False;
-    Handle(SALOME_InteractiveObject) anIO = firstIObject();
+    Handle(SALOME_InteractiveObject) anIO = aSelList.First();
     GEOM::GEOM_Object_var aSelectedObj = GEOMBase::ConvertIOinGEOMObject( anIO, aRes );
 
     if ( !CORBA::is_nil( aSelectedObj ) && aRes ) {
@@ -465,7 +471,6 @@ void BasicGUI_MarkerDlg::onSelectionDone()
             aNeedType = TopAbs_VERTEX;
          
           TColStd_IndexedMapOfInteger aMap;
-          LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
           aSelMgr->GetIndexes( anIO, aMap );
 
           if ( !aMap.IsEmpty() ) {
index 1a621e0930d774df53f0ad9426fb083e345776cf..43657b0d85d906ed49219ec1409475f2efc7bd03 100644 (file)
@@ -320,7 +320,11 @@ void BasicGUI_PlaneDlg::SelectionIntoArgument()
 {
   myEditCurrentArgument->setText("");
 
-  if ( IObjectCount() != 1 ) {
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1) {
     if      ( myEditCurrentArgument == GroupPntDir->LineEdit1 ) myPoint  = GEOM::GEOM_Object::_nil();
     else if ( myEditCurrentArgument == GroupPntDir->LineEdit2 ) myDir    = GEOM::GEOM_Object::_nil();
     else if ( myEditCurrentArgument == Group3Pnts->LineEdit1 )  myPoint1 = GEOM::GEOM_Object::_nil();
@@ -332,7 +336,7 @@ void BasicGUI_PlaneDlg::SelectionIntoArgument()
 
   // nbSel == 1
   Standard_Boolean aRes = Standard_False;
-  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
+  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes);
   if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
     QString aName = GEOMBase::GetName( aSelectedObject );
     TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX;
@@ -341,9 +345,8 @@ void BasicGUI_PlaneDlg::SelectionIntoArgument()
 
     TopoDS_Shape aShape;
     if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) {
-      LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
       TColStd_IndexedMapOfInteger aMap;
-      aSelMgr->GetIndexes( firstIObject(), aMap );
+      aSelMgr->GetIndexes(aSelList.First(), aMap);
       if ( aMap.Extent() == 1 ) { // Local Selection
         int anIndex = aMap( 1 );
         if ( aNeedType == TopAbs_EDGE )
index e0e620ac9250ac91de796c48fd1c149106586617..ba8cdd6d2481902cc36b4d89117f49d88177644c 100644 (file)
@@ -429,9 +429,13 @@ void BasicGUI_PointDlg::SelectionIntoArgument()
     myRefPoint = myEdge = myFace = GEOM::GEOM_Object::_nil();
   }
 
-  if ( IObjectCount() == 1 ) {
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() == 1) {
     Standard_Boolean aRes = Standard_False;
-    Handle(SALOME_InteractiveObject) anIO = firstIObject();
+    Handle(SALOME_InteractiveObject) anIO = aSelList.First();
     GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes );
     if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
       QString aName = GEOMBase::GetName(aSelectedObject);
@@ -444,9 +448,8 @@ void BasicGUI_PointDlg::SelectionIntoArgument()
         else if ( id == 4 )
           aNeedType = TopAbs_FACE;
 
-        LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
         TColStd_IndexedMapOfInteger aMap;
-        aSelMgr->GetIndexes(firstIObject(), aMap);
+        aSelMgr->GetIndexes(anIO, aMap);
         if ( aMap.Extent() == 1 ) { // Local Selection
           int anIndex = aMap( 1 );
           if ( aNeedType == TopAbs_EDGE )
@@ -455,11 +458,12 @@ void BasicGUI_PointDlg::SelectionIntoArgument()
             aName += QString( ":vertex_%1" ).arg( anIndex );
 
          //Find SubShape Object in Father
-         GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather( aSelectedObject, aName );
+         GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName);
          
          if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study
-           GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() );
-           aSelectedObject = aShapesOp->GetSubShape( aSelectedObject, anIndex );
+           GEOM::GEOM_IShapesOperations_var aShapesOp =
+              getGeomEngine()->GetIShapesOperations(getStudyId());
+           aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex);
          }
          else {
            aSelectedObject = aFindedObject; // get Object from study
index e00aacd41278989ca85922762354be4c6c953f69..b073f9761a0796544ea884fa51be5904404113f1 100644 (file)
@@ -271,42 +271,45 @@ void BasicGUI_VectorDlg::SelectionIntoArgument()
 {
   myEditCurrentArgument->setText( "" );
 
-  if ( IObjectCount() != 1 ) {
-    if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1) {
+    if (myEditCurrentArgument == GroupPoints->LineEdit1)
       myPoint1 = GEOM::GEOM_Object::_nil();
-    else if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
+    else if (myEditCurrentArgument == GroupPoints->LineEdit2)
       myPoint2 = GEOM::GEOM_Object::_nil();
     return;
   }
 
   // nbSel == 1
   Standard_Boolean aRes = Standard_False;
-  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
-  if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
+  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes);
+  if (!CORBA::is_nil(aSelectedObject) && aRes) {
     QString aName = GEOMBase::GetName(aSelectedObject);
 
     TopoDS_Shape aShape;
-    if ( GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) {
-      LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+    if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) {
       TColStd_IndexedMapOfInteger aMap;
-      aSelMgr->GetIndexes( firstIObject(), aMap );
-      if ( aMap.Extent() == 1 ) { // Local Selection
-        int anIndex = aMap( 1 );
-        aName += QString( ":vertex_%1" ).arg( anIndex );
+      aSelMgr->GetIndexes(aSelList.First(), aMap);
+      if (aMap.Extent() == 1) { // Local Selection
+        int anIndex = aMap(1);
+        aName += QString(":vertex_%1").arg(anIndex);
 
        //Find SubShape Object in Father
-       GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather( aSelectedObject, aName );
+       GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName);
        
-       if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study
-         GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() );
-         aSelectedObject = aShapesOp->GetSubShape( aSelectedObject, anIndex );
+       if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study
+         GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId());
+         aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex);
        }
        else {
          aSelectedObject = aFindedObject; // get Object from study
        }
       }
       else { // Global Selection
-        if ( aShape.ShapeType() != TopAbs_VERTEX ) {
+        if (aShape.ShapeType() != TopAbs_VERTEX) {
           aSelectedObject = GEOM::GEOM_Object::_nil();
           aName = "";
         }
@@ -317,17 +320,17 @@ void BasicGUI_VectorDlg::SelectionIntoArgument()
 
     if (!aSelectedObject->_is_nil()) { // clear selection if something selected
       globalSelection();
-      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
+      localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX);
     }
 
-    if      ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
+    if      (myEditCurrentArgument == GroupPoints->LineEdit1) {
       myPoint1 = aSelectedObject;
-      if ( !myPoint1->_is_nil() && myPoint2->_is_nil() )
+      if (!myPoint1->_is_nil() && myPoint2->_is_nil())
        GroupPoints->PushButton2->click();
     }
-    else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) {
+    else if (myEditCurrentArgument == GroupPoints->LineEdit2) {
       myPoint2 = aSelectedObject;
-      if ( !myPoint2->_is_nil() && myPoint1->_is_nil() )
+      if (!myPoint2->_is_nil() && myPoint1->_is_nil())
        GroupPoints->PushButton1->click();
     }
   }
@@ -335,7 +338,6 @@ void BasicGUI_VectorDlg::SelectionIntoArgument()
   displayPreview();
 }
 
-
 //=================================================================================
 // function : SetEditCurrentArgument()
 // purpose  :
index dd2edc4704b9cc5c828c492e6669441a34a76856..9c2f8e1d49da57ccee67d586523dc54ab67dd27c 100644 (file)
@@ -293,8 +293,12 @@ void BasicGUI_WorkingPlaneDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   QString aName;
 
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
   const int id = getConstructorId();
-  if ( IObjectCount() != 1 ) {
+  if (aSelList.Extent() != 1) {
     if ( id == 0 )
       myFace = GEOM::GEOM_Object::_nil();
     else if ( id == 1 ) {
@@ -308,7 +312,7 @@ void BasicGUI_WorkingPlaneDlg::SelectionIntoArgument()
 
   // nbSel == 1
   Standard_Boolean aRes = Standard_False;
-  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
+  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes);
 
   if ( !aRes || CORBA::is_nil( aSelectedObject ) )
     return;
@@ -322,9 +326,8 @@ void BasicGUI_WorkingPlaneDlg::SelectionIntoArgument()
     if ( aRes && !aSelectedObject->_is_nil() ) {
       TopoDS_Shape aShape;
       if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) {
-        LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
         TColStd_IndexedMapOfInteger aMap;
-        aSelMgr->GetIndexes( firstIObject(), aMap );
+        aSelMgr->GetIndexes(aSelList.First(), aMap);
         if ( aMap.Extent() == 1 ) {
           int anIndex = aMap( 1 );
           aName = aName + ":edge_" + QString::number( anIndex );
index 3b434925ff0df3227d2c12f6089b4d7de03be468..1b03969cff226d9a4d1e3a07d89313e882f83622 100644 (file)
@@ -200,20 +200,23 @@ bool BlocksGUI_ExplodeDlg::ClickOnApply()
 //=================================================================================
 void BlocksGUI_ExplodeDlg::SelectionIntoArgument()
 {
-  if ( !isAllSubShapes() )
+  if (!isAllSubShapes())
     return;
 
   myObject = GEOM::GEOM_Object::_nil();
-  myGrp1->LineEdit1->setText( "" );
+  myGrp1->LineEdit1->setText("");
+
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
 
-  if ( IObjectCount() == 1 ) {
+  if (aSelList.Extent() == 1) {
     Standard_Boolean aResult = Standard_False;
-    GEOM::GEOM_Object_var anObj =
-      GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
+    GEOM::GEOM_Object_var anObj = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult);
 
-    if ( aResult && !anObj->_is_nil() && GEOMBase::IsShape( anObj ) ) {
+    if (aResult && !anObj->_is_nil() && GEOMBase::IsShape(anObj)) {
       myObject = anObj;
-      myGrp1->LineEdit1->setText( GEOMBase::GetName( anObj ) );
+      myGrp1->LineEdit1->setText(GEOMBase::GetName(anObj));
     }
   }
 
@@ -362,15 +365,21 @@ GEOM::GEOM_IOperations_ptr BlocksGUI_ExplodeDlg::createOperation()
 // function : isValid()
 // purpose  : Verify validity of input data
 //=================================================================================
-bool BlocksGUI_ExplodeDlg::isValid( QString& )
+bool BlocksGUI_ExplodeDlg::isValid (QString&)
 {
   bool ok = false;
   switch ( getConstructorId() ) {
   case 0:
-    if ( IsPreview() )
+    if ( IsPreview() ) {
       ok = !myObject->_is_nil();
-    else
-      ok = !myObject->_is_nil() && ( isAllSubShapes() || IObjectCount() );
+    }
+    else {
+      LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+      SALOME_ListIO aSelList;
+      aSelMgr->selectedObjects(aSelList);
+
+      ok = !myObject->_is_nil() && (isAllSubShapes() || aSelList.Extent());
+    }
     break;
   default:
     break;
@@ -416,26 +425,30 @@ bool BlocksGUI_ExplodeDlg::execute( ObjectList& objects )
   if ( !isAllSubShapes() ) {
     QMap<QString, char> selected;
 
+    LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+    SALOME_ListIO aSelList;
+    aSelMgr->selectedObjects(aSelList);
+
     // Get names of selected objects
-    SALOME_ListIteratorOfListIO it ( selectedIO() );
+    SALOME_ListIteratorOfListIO it (aSelList);
     for ( ; it.More(); it.Next() ) {
       selected.insert( it.Value()->getName(), 0 );
     }
 
     // Iterate through result and select objects with names from selection
-    ObjectList toRemoveFromEnggine;
+    ObjectList toRemoveFromEngine;
     ObjectList::iterator anIter;
     for ( anIter = myTmpObjs.begin(); anIter != myTmpObjs.end(); ++anIter ) {
       CORBA::String_var objStr = myGeomGUI->getApp()->orb()->object_to_string( *anIter );
       if ( selected.contains( QString( objStr.in() ) ) )
         objects.push_back( *anIter );
       else
-        toRemoveFromEnggine.push_back( *anIter );
+        toRemoveFromEngine.push_back( *anIter );
     }
 
     // Remove from engine useless objects
-    ObjectList::iterator anIter2 = toRemoveFromEnggine.begin();
-    for ( ; anIter2 != toRemoveFromEnggine.end(); ++anIter2 )
+    ObjectList::iterator anIter2 = toRemoveFromEngine.begin();
+    for ( ; anIter2 != toRemoveFromEngine.end(); ++anIter2 )
       getGeomEngine()->RemoveObject( *anIter2 );
 
     myTmpObjs.clear();
index e812f4a064ef3f0febf5b8c2b693d5c631998fe4..25aed5c9e335b093c08ba1f69bf9d6e841229b8b 100644 (file)
@@ -149,8 +149,12 @@ void BlocksGUI_PropagateDlg::SelectionIntoArgument()
   myGrp->LineEdit1->setText( "" );
   myObject = GEOM::GEOM_Object::_nil();
 
-  if ( IObjectCount() == 1 ) {
-    Handle(SALOME_InteractiveObject) anIO = firstIObject();
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() == 1) {
+    Handle(SALOME_InteractiveObject) anIO = aSelList.First();
     Standard_Boolean aRes;
     myObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes );
     if ( aRes )
index 0215f99ea69f9d1753df9ecf2c4a25251a5b1f0f..d6005a3504c95baf2eaebca5761f3a74bba5d144 100644 (file)
@@ -222,10 +222,14 @@ void BlocksGUI_QuadFaceDlg::SelectionIntoArgument()
     }
   }
 
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
   GEOM::GEOM_Object_var anObj;
-  Standard_Boolean aResult = Standard_False;
-  if ( IObjectCount() == 1 ) {
-    anObj = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
+  if (aSelList.Extent() == 1) {
+    Standard_Boolean aResult = Standard_False;
+    anObj = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult);
     if ( aResult ) {
       if (anObj->_is_nil()) {
         aResult = Standard_False;
index 7a167661d726866b747c666f4de98ae048571d21..e639d1132792370296bfe9b57d93c5973cee9973 100644 (file)
@@ -234,12 +234,16 @@ void BlocksGUI_TrsfDlg::SelectionIntoArgument()
     }
   }
 
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
   // If selection of main object is activated
   if ( aCurrFocus == MainObj1 || aCurrFocus == MainObj2 ) {
-    if ( IObjectCount() == 1 ) {
+    if (aSelList.Extent() == 1) {
       Standard_Boolean aResult = Standard_False;
       GEOM::GEOM_Object_var anObj =
-        GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
+        GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult);
 
       if ( aResult && !anObj->_is_nil() && GEOMBase::IsShape( anObj ) ) {
         myShape = anObj;
@@ -256,14 +260,14 @@ void BlocksGUI_TrsfDlg::SelectionIntoArgument()
   else if ( aCurrFocus == Face1  || aCurrFocus == Face2  ||
            aCurrFocus == Face1U || aCurrFocus == Face2U ||
            aCurrFocus == Face1V || aCurrFocus == Face2V ) {
-    if ( IObjectCount() == 1 ) {
+    if (aSelList.Extent() == 1) {
       Standard_Boolean aResult = Standard_False;
       GEOM::GEOM_Object_var anObj =
-        GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
+        GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult);
 
       if ( aResult && !anObj->_is_nil() && GEOMBase::IsShape( anObj ) ) {
         TColStd_IndexedMapOfInteger anIndexes;
-       ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr()->GetIndexes( firstIObject(), anIndexes );
+       myGeomGUI->getApp()->selectionMgr()->GetIndexes(aSelList.First(), anIndexes);
 
         if ( anIndexes.Extent() == 1 ) {
           int anIndex = anIndexes( 1 );
index cb5ca5b101edd49d792db48658ec364d12dec9ef..6832dfa8906c759ef760764a1bb5c912b4a5eeec 100644 (file)
@@ -183,7 +183,6 @@ bool BooleanGUI_Dialog::ClickOnApply()
   return true;
 }
 
-
 //=================================================================================
 // function : SelectionIntoArgument()
 // purpose  : Called when selection has changed
@@ -192,23 +191,26 @@ void BooleanGUI_Dialog::SelectionIntoArgument()
 {
   myEditCurrentArgument->setText( "" );
 
-  if ( IObjectCount() != 1 ) {
-    if      ( myEditCurrentArgument == myGroup->LineEdit1 )   myObject1 = GEOM::GEOM_Object::_nil();
-    else if ( myEditCurrentArgument == myGroup->LineEdit2 )   myObject2 = GEOM::GEOM_Object::_nil();
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1) {
+    if      (myEditCurrentArgument == myGroup->LineEdit1) myObject1 = GEOM::GEOM_Object::_nil();
+    else if (myEditCurrentArgument == myGroup->LineEdit2) myObject2 = GEOM::GEOM_Object::_nil();
     return;
   }
 
   // nbSel == 1
   Standard_Boolean aRes = Standard_False;
-  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
-  if ( !CORBA::is_nil( aSelectedObject ) && aRes && GEOMBase::IsShape( aSelectedObject ) ) {
-    myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
-    if      ( myEditCurrentArgument == myGroup->LineEdit1 )   myObject1 = aSelectedObject;
-    else if ( myEditCurrentArgument == myGroup->LineEdit2 )   myObject2 = aSelectedObject;
+  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes);
+  if (!CORBA::is_nil(aSelectedObject) && aRes && GEOMBase::IsShape(aSelectedObject)) {
+    myEditCurrentArgument->setText(GEOMBase::GetName(aSelectedObject));
+    if      (myEditCurrentArgument == myGroup->LineEdit1) myObject1 = aSelectedObject;
+    else if (myEditCurrentArgument == myGroup->LineEdit2) myObject2 = aSelectedObject;
   }
 }
 
-
 //=================================================================================
 // function : SetEditCurrentArgument()
 // purpose  :
@@ -268,22 +270,22 @@ void BooleanGUI_Dialog::enterEvent( QEvent* )
 //=================================================================================
 GEOM::GEOM_IOperations_ptr BooleanGUI_Dialog::createOperation()
 {
-  return getGeomEngine()->GetIBooleanOperations( getStudyId() );
+  return getGeomEngine()->GetIBooleanOperations(getStudyId());
 }
 
 //=================================================================================
 // function : isValid
 // purpose  :
 //=================================================================================
-bool BooleanGUI_Dialog::isValid( QString& msg )
+bool BooleanGUI_Dialog::isValid (QString& msg)
 {
-  Handle(SALOME_InteractiveObject) IO = firstIObject();
-  Standard_Boolean testResult;
-  GEOM::GEOM_Object_var anObject = GEOMBase::ConvertIOinGEOMObject( IO, testResult );
-  if ( !testResult || anObject->_is_nil() )
-    return false;
+  //Handle(SALOME_InteractiveObject) IO = firstIObject();
+  //Standard_Boolean testResult;
+  //GEOM::GEOM_Object_var anObject = GEOMBase::ConvertIOinGEOMObject(IO, testResult);
+  //if (!testResult || anObject->_is_nil())
+  //  return false;
 
-  return !CORBA::is_nil( myObject1 ) && !CORBA::is_nil( myObject2 );
+  return !CORBA::is_nil(myObject1) && !CORBA::is_nil(myObject2);
 }
 
 //=================================================================================
index eecd87a8b0efb28b73871af24e4992ca81d003a1..4898feb00c2687c5dae61872c6e284adf39f362e 100644 (file)
@@ -149,14 +149,18 @@ void BuildGUI_CompoundDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   QString aString = ""; /* name of selection */
 
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
   myOkShapes = false;
-  int nbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aString, true );
+  int nbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aString, true);
   if ( nbSel == 0 ) 
     return;
   if ( nbSel != 1 )
     aString = QString( "%1_objects").arg( nbSel );
   
-  GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), myShapes, true );
+  GEOMBase::ConvertListOfIOInListOfGO(aSelList, myShapes, true);
   myEditCurrentArgument->setText( aString );
   myOkShapes = true;
 }
index 79847029f958ddfc9640ec4ac30d6a370497973c..45888266108a856b2a8bfb96e265638b89143eb7 100644 (file)
@@ -148,7 +148,6 @@ bool BuildGUI_EdgeDlg::ClickOnApply()
   return true;
 }
 
-
 //=================================================================================
 // function : SelectionIntoArgument()
 // purpose  : Called when selection as changed or other case
@@ -156,38 +155,40 @@ bool BuildGUI_EdgeDlg::ClickOnApply()
 void BuildGUI_EdgeDlg::SelectionIntoArgument()
 {
   erasePreview();
-  myEditCurrentArgument->setText( "" );
-  
-  if ( IObjectCount() != 1 ) {
-    if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
+  myEditCurrentArgument->setText("");
+
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1) {
+    if (myEditCurrentArgument == GroupPoints->LineEdit1)
       myOkPoint1 = false;
-    else if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
+    else if (myEditCurrentArgument == GroupPoints->LineEdit2)
       myOkPoint2 = false;
     return;
   }
-  
+
   // nbSel == 1
   Standard_Boolean testResult = Standard_False;
-  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
-  
-  if ( !testResult )
+  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
+  if (!testResult)
     return;
 
-  if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
+  if (myEditCurrentArgument == GroupPoints->LineEdit1) {
     myPoint1 = aSelectedObject;
     myOkPoint1 = true;
   }
-  else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) {
+  else if (myEditCurrentArgument == GroupPoints->LineEdit2) {
     myPoint2 = aSelectedObject;
     myOkPoint2 = true;
   }
-  
-  myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
-  
+
+  myEditCurrentArgument->setText(GEOMBase::GetName(aSelectedObject));
+
   displayPreview();
 }
 
-
 //=================================================================================
 // function : LineEditReturnPressed()
 // purpose  :
index 92205b8c12df781630c6f6290b43bd014a218e13..a90e21c99aeb17ae604084503190cda21d8afff8 100644 (file)
@@ -152,14 +152,18 @@ void BuildGUI_FaceDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   QString aName;
   
-  int aNbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aName );
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  int aNbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aName);
   
   if ( aNbSel < 1) {
     myWires.length(0);
     return;
   }
   
-  GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), myWires );
+  GEOMBase::ConvertListOfIOInListOfGO(aSelList, myWires);
   if ( !myWires.length() )
     return;
   if ( aNbSel != 1 )
index 229dce6c836fdf53c97be08d5f80f015af50255e..3ebc8056b83eb9625fcb195a5e883b3973a286c5 100644 (file)
@@ -159,14 +159,18 @@ void BuildGUI_ShellDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   QString aString;
 
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
   myOkFacesAndShells = false;
-  int nbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aString, true );
+  int nbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aString, true);
   if ( nbSel == 0 )
     return;
   if ( nbSel != 1 )
     aString = QString( "%1_objects ").arg( nbSel );
 
-  GEOMBase::ConvertListOfIOInListOfGO( selectedIO(),  myFacesAndShells, true );
+  GEOMBase::ConvertListOfIOInListOfGO(aSelList, myFacesAndShells, true);
   if ( !myFacesAndShells.length() )
     return;
 
index aca4110b1468d38e514dc5a565e360698c67f4bc..54151e6b1ce650dfa5ad507d5a9a233e17448be9 100644 (file)
@@ -163,14 +163,18 @@ void BuildGUI_SolidDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   QString aString = "";
   
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
   myOkShells = false;
-  int nbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aString );
+  int nbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aString);
   if ( nbSel == 0 )
     return;
   if ( nbSel != 1 )
     aString = tr( "%1_objects" ).arg( nbSel );
   
-  GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), myShells );
+  GEOMBase::ConvertListOfIOInListOfGO(aSelList, myShells);
   if ( !myShells.length() )
     return;
   
index 82f23b0b26ffd3f8d027feba513db7ac9ffb6e18..256d40346456f9ba44389c1382bfa9ce7f782109 100644 (file)
@@ -152,15 +152,19 @@ void BuildGUI_WireDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   QString aString = ""; /* name of selection */
 
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
   myOkEdgesAndWires = false;
-  int nbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aString );
+  int nbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aString);
 
   if ( nbSel == 0 )
     return;
   if ( nbSel != 1 )
     aString = tr( "%1_objects" ).arg( nbSel );
 
-  GEOMBase::ConvertListOfIOInListOfGO( selectedIO(),  myEdgesAndWires );
+  GEOMBase::ConvertListOfIOInListOfGO(aSelList,  myEdgesAndWires);
   if ( !myEdgesAndWires.length() )
     return;
 
index 218597fe2c59b89abf32525bdc1234b200de9429..591bc79ac119b981ed0ed28bdacd07f9b480156c 100644 (file)
@@ -858,18 +858,22 @@ void EntityGUI_SketcherDlg::SelectionIntoArgument()
   myX = myLastX1;
   myY = myLastY1;
 
-  int nbSel = IObjectCount();
-  if ( nbSel == 1 && myEditCurrentArgument == Group1Sel->LineEdit1 ) {
+  LightApp_SelectionMgr* aSelMgr = myGeometryGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  int nbSel = aSelList.Extent();
+  if (nbSel == 1 && myEditCurrentArgument == Group1Sel->LineEdit1) {
     Standard_Boolean aRes = Standard_False;
-    GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
-    if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
+    GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes);
+    if (!CORBA::is_nil(aSelectedObject) && aRes) {
       TopoDS_Shape aShape;
-      if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_VERTEX ) ) {
+      if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_VERTEX)) {
        gp_Trsf aTrans;
        gp_Ax3 aWPlane = myGeometryGUI->GetWorkingPlane();
 
-       aTrans.SetTransformation( aWPlane );
-       BRepBuilderAPI_Transform aTransformation( aShape, aTrans, Standard_False );
+       aTrans.SetTransformation(aWPlane);
+       BRepBuilderAPI_Transform aTransformation (aShape, aTrans, Standard_False);
        aShape = aTransformation.Shape();
 
        gp_Pnt aPnt;
@@ -914,7 +918,12 @@ void EntityGUI_SketcherDlg::LineEditReturnPressed()
     /* so SelectionIntoArgument() is automatically called.           */
     const QString objectUserName = myEditCurrentArgument->text();
     QWidget* thisWidget = (QWidget*)this;
-    if ( GEOMBase::SelectionByNameInDialogs( thisWidget, objectUserName, selectedIO() ) )
+
+    LightApp_SelectionMgr* aSelMgr = myGeometryGUI->getApp()->selectionMgr();
+    SALOME_ListIO aSelList;
+    aSelMgr->selectedObjects(aSelList);
+
+    if (GEOMBase::SelectionByNameInDialogs(thisWidget, objectUserName, aSelList))
       myEditCurrentArgument->setText( objectUserName );
   }
 }
index 7d1a465b5864eefd9e93706603d85b9344959ea8..aba73a6f8dd2a550c4353901ff11c86def152595 100644 (file)
@@ -198,66 +198,68 @@ bool EntityGUI_SubShapeDlg::ClickOnApply()
 //=================================================================================
 void EntityGUI_SubShapeDlg::SelectionIntoArgument()
 {
-  if ( !isAllSubShapes() )
+  if (!isAllSubShapes())
     return;
 
   ResetStateOfDialog();
 
   QString aString = ""; /* name of selection */
 
-  int nbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aString, true );
-  if ( nbSel != 1 )
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  int nbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aString, true);
+  if (nbSel != 1)
     return;
 
   TopoDS_Shape S;
-  Handle(SALOME_InteractiveObject) IO = firstIObject();
+  Handle(SALOME_InteractiveObject) IO = aSelList.First();
   if ( !IO->hasEntry() ) {
     SUIT_Session::session()->activeApplication()->putInfo( tr( "GEOM_PRP_SHAPE_IN_STUDY" ) );
     updateButtonState();
     return;
   }
 
-  if ( !GEOMBase::GetTopoFromSelection( selectedIO(), S ) ||
-       S.IsNull() ||
-       S.ShapeType() == TopAbs_VERTEX ) {
+  if (!GEOMBase::GetTopoFromSelection(aSelList, S) ||
+      S.IsNull() ||
+      S.ShapeType() == TopAbs_VERTEX) {
     myObject = GEOM::GEOM_Object::_nil();
     updateButtonState();
     return;
   }
 
-
   Standard_Boolean testResult;
-  myObject = GEOMBase::ConvertIOinGEOMObject( IO, testResult );
-  if ( !testResult || myObject->_is_nil() ) {
+  myObject = GEOMBase::ConvertIOinGEOMObject(IO, testResult);
+  if (!testResult || myObject->_is_nil()) {
     updateButtonState();
     return;
   }
 
   myShape = S;
-  GroupPoints->LineEdit1->setText( aString );
-
+  GroupPoints->LineEdit1->setText(aString);
 
   int SelectedShapeType = GroupPoints->ComboBox1->currentIndex();
   int count = GroupPoints->ComboBox1->count();
 
-  if ( myWithShape )
+  if (myWithShape)
     count = count - 1;
 
   int i = 0;
   // Solving PAL5590
-  if ( myShape.ShapeType() == TopAbs_COMPOUND ) {
+  if (myShape.ShapeType() == TopAbs_COMPOUND) {
     unsigned int nb = NumberOfSubShapes(myShape, TopAbs_COMPOUND);
     if ( nb > 0 )
       i++;
   }
-  while ( i <= myShape.ShapeType() ) {
-    GroupPoints->ComboBox1->removeItem( 0 );
+  while (i <= myShape.ShapeType()) {
+    GroupPoints->ComboBox1->removeItem(0);
     i++;
   }
 
-  if ( myShape.ShapeType() == TopAbs_COMPOUND ) {
-    if ( myWithShape == false ) {
-      GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Shape" );
+  if (myShape.ShapeType() == TopAbs_COMPOUND) {
+    if (myWithShape == false) {
+      GroupPoints->ComboBox1->insertItem(GroupPoints->ComboBox1->count(), "Shape");
       myWithShape = true;
     }
   }
@@ -518,28 +520,35 @@ GEOM::GEOM_IOperations_ptr EntityGUI_SubShapeDlg::createOperation()
 // function : isValid
 // purpose  :
 //=================================================================================
-bool EntityGUI_SubShapeDlg::isValid( QString& msg )
+bool EntityGUI_SubShapeDlg::isValid (QString& msg)
 {
   bool isOk = false;
-  Standard_Boolean testResult;  
-  GEOM::GEOM_Object_var anObj = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
-  if ( !testResult || myObject->_is_nil() )  {
+
+  if (myObject->_is_nil()) {
     updateButtonState();
     return isOk;
   }
-  if ( !myObject->_is_nil() ) {
-    if ( isAllSubShapes() )
-      isOk = true;
-    else if ( IObjectCount() == 1 ) {
-     if ( testResult && !anObj->_is_nil() ) {
-       TColStd_IndexedMapOfInteger aMapIndex;
-       myGeomGUI->getApp()->selectionMgr()->GetIndexes( firstIObject(), aMapIndex );
-       isOk = aMapIndex.Extent() > 0;
-       if ( !isOk )
-         msg += tr( "NO_SUBSHAPES_SELECTED" );
+
+  if (isAllSubShapes())
+    isOk = true;
+  else {
+    LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+    SALOME_ListIO aSelList;
+    aSelMgr->selectedObjects(aSelList);
+
+    if (aSelList.Extent() == 1) {
+      Standard_Boolean testResult;  
+      GEOM::GEOM_Object_var anObj = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
+      if (testResult && !anObj->_is_nil()) {
+        TColStd_IndexedMapOfInteger aMapIndex;
+        aSelMgr->GetIndexes(aSelList.First(), aMapIndex);
+        isOk = aMapIndex.Extent() > 0;
+        if (!isOk)
+          msg += tr("NO_SUBSHAPES_SELECTED");
       }
     }
   }
+
   return isOk;
 }
 
@@ -547,38 +556,42 @@ bool EntityGUI_SubShapeDlg::isValid( QString& msg )
 // function : execute
 // purpose  :
 //=================================================================================
-bool EntityGUI_SubShapeDlg::execute( ObjectList& objects )
+bool EntityGUI_SubShapeDlg::execute (ObjectList& objects)
 {
-  GEOM::ListOfGO_var aList = GEOM::GEOM_IShapesOperations::_narrow(
-    getOperation() )->MakeExplode( myObject, shapeType(), true );
-    
-  if ( !aList->length() )
+  GEOM::ListOfGO_var aList = GEOM::GEOM_IShapesOperations::_narrow(getOperation())->
+    MakeExplode(myObject, shapeType(), true);
+
+  if (!aList->length())
     return false;
-  
+
   // Throw away sub-shapes not selected by user if not in preview mode 
   // and manual selection is active
-  if ( !isAllSubShapes() ) {
-    if ( IObjectCount() == 1 ) {
+  if (!isAllSubShapes()) {
+    LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+    SALOME_ListIO aSelList;
+    aSelMgr->selectedObjects(aSelList);
+
+    if (aSelList.Extent() == 1) {
       Standard_Boolean aResult = Standard_False;
       GEOM::GEOM_Object_var anObj =
-       GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
+       GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult);
 
-      if ( aResult && !anObj->_is_nil() ) {
+      if (aResult && !anObj->_is_nil()) {
        TColStd_IndexedMapOfInteger aMapIndex;
-       myGeomGUI->getApp()->selectionMgr()->GetIndexes( firstIObject(), aMapIndex );
+       aSelMgr->GetIndexes(aSelList.First(), aMapIndex);
 
        GEOM::GEOM_ILocalOperations_var aLocOp = 
-         getGeomEngine()->GetILocalOperations( getStudyId() );
+         getGeomEngine()->GetILocalOperations(getStudyId());
 
-       for ( int i = 0, n = aList->length(); i < n; i++ )
-         if ( aMapIndex.Contains( aLocOp->GetSubShapeIndex( myObject, aList[i] ) ) )
-           objects.push_back( GEOM::GEOM_Object::_duplicate( aList[i] ) );
+       for (int i = 0, n = aList->length(); i < n; i++)
+         if (aMapIndex.Contains(aLocOp->GetSubShapeIndex(myObject, aList[i])))
+           objects.push_back(GEOM::GEOM_Object::_duplicate(aList[i]));
       }
     }
   }
   else
-    for ( int i = 0, n = aList->length(); i < n; i++ )
-      objects.push_back( GEOM::GEOM_Object::_duplicate( aList[i] ) );
+    for (int i = 0, n = aList->length(); i < n; i++)
+      objects.push_back(GEOM::GEOM_Object::_duplicate(aList[i]));
   
   return objects.size();
 }
index 3f056bc058385d0c5c6e8553839a1f1ad7f4be46..38ef9af04decf17d117c42b73ae8f59a5556865c 100755 (executable)
@@ -972,56 +972,10 @@ QString GEOMBase_Helper::getPrefix( GEOM::GEOM_Object_ptr theObj ) const
   }
 }
 
-//================================================================
-// Function : selectedIO
-// Purpose  : Return the list of selected SALOME_InteractiveObject's
-//================================================================
-const SALOME_ListIO& GEOMBase_Helper::selectedIO()
-{
-  mySelected.Clear();
-
-  SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
-  if ( app ) {
-    LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
-    if ( aSelMgr )
-      aSelMgr->selectedObjects( mySelected );
-  }
-
-  return mySelected;
-}
-
-//================================================================
-// Function : IObjectCount
-// Purpose  : Return the number of selected objects
-//================================================================
-int GEOMBase_Helper::IObjectCount()
-{
-  return selectedIO().Extent();
-}
-
-//================================================================
-// Function : firstIObject
-// Purpose  :  Return the first selected object in the selected object list
-//================================================================
-Handle(SALOME_InteractiveObject) GEOMBase_Helper::firstIObject()
-{
-  const SALOME_ListIO& aList = selectedIO();
-  return aList.Extent() > 0 ? aList.First() : Handle(SALOME_InteractiveObject)();
-}
-
-//================================================================
-// Function : lastIObject
-// Purpose  : Return the last selected object in the selected object list
-//================================================================
-Handle(SALOME_InteractiveObject) GEOMBase_Helper::lastIObject()
-{
-  const SALOME_ListIO& aList = selectedIO();
-  return aList.Extent() > 0 ? aList.Last() : Handle(SALOME_InteractiveObject)();
-}
-
 //================================================================
 // Function : getDesktop
-// Purpose  : Returns myDesktop field.  Initialized in constructor, usually as dynamic_cast<SUIT_Desktop*>(parentWidget())
+// Purpose  : Returns myDesktop field. Initialized in constructor,
+//            usually as dynamic_cast<SUIT_Desktop*>(parentWidget())
 //================================================================
 SUIT_Desktop* GEOMBase_Helper::getDesktop() const
 {
@@ -1063,7 +1017,8 @@ bool GEOMBase_Helper::selectObjects( ObjectList& objects )
 // Purpose  : It should return an object if its founded in study or
 //            return Null object if the object is not founded
 //================================================================
-GEOM::GEOM_Object_ptr GEOMBase_Helper::findObjectInFather( GEOM::GEOM_Object_ptr theFather, const QString& theName)
+GEOM::GEOM_Object_ptr GEOMBase_Helper::findObjectInFather (GEOM::GEOM_Object_ptr theFather,
+                                                           const QString& theName)
 {
   SalomeApp_Application* app =
     dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
index 59cb8abc500b6501ec89b99bcd2303b3780f0fe8..bb9eedb247cd2dc197ad8ebe5be2bc27b9e6064f 100755 (executable)
@@ -131,21 +131,6 @@ protected:
 
   inline void setPrefix( const QString& prefix ) { myPrefix = prefix; }
   QString getPrefix( GEOM::GEOM_Object_ptr = GEOM::GEOM_Object::_nil() ) const;
-
-  const SALOME_ListIO& selectedIO();
-  // Function returns a list of SALOME_InteractiveObject's from
-  // selection manager in GUI
-
-  int   IObjectCount() ;
-  // Function returns the number of selected objects
-  
-  Handle(SALOME_InteractiveObject) firstIObject() ;
-  // Function returns the first selected object in the list
-  // of selected objects
-
-  Handle(SALOME_InteractiveObject) lastIObject() ;
-  // Function returns the last selected object in the list
-  // of selected objects
   
   bool selectObjects( ObjectList& objects );
   // Selects list of objects 
index 329688330420aad329f90eefa5cb7e522962b3e5..6bcb993935a6d1466c4cd700b6ab6fef87c0f5b2 100644 (file)
@@ -162,7 +162,7 @@ void GEOMBase_Skeleton::ClickOnCancel()
 //=================================================================================
 void GEOMBase_Skeleton::LineEditReturnPressed()
 {
-  if ( !myEditCurrentArgument )
+  if (!myEditCurrentArgument)
     return;
 
   /* User name of object input management                          */
@@ -170,9 +170,13 @@ void GEOMBase_Skeleton::LineEditReturnPressed()
   /* so SelectionIntoArgument() is automatically called.           */
   const QString objectUserName = myEditCurrentArgument->text();
   QWidget* thisWidget = (QWidget*)this;
-  
-  if ( GEOMBase::SelectionByNameInDialogs( thisWidget, objectUserName, selectedIO() ) )
-     myEditCurrentArgument->setText( objectUserName );
+
+  SALOME_ListIO aList;
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  if (aSelMgr)
+    aSelMgr->selectedObjects(aList);
+  if (GEOMBase::SelectionByNameInDialogs(thisWidget, objectUserName, aList))
+    myEditCurrentArgument->setText(objectUserName);
 }
 
 //=================================================================================
index 021c7d795e1ad27e056911e0ae1ad0d260bf75fb..ae4f0251ac9335b1128d33fffe1353dbb646299b 100644 (file)
@@ -197,41 +197,43 @@ bool GenerationGUI_FillingDlg::ClickOnApply()
 void GenerationGUI_FillingDlg::SelectionIntoArgument()
 {
   erasePreview();
-  myEditCurrentArgument->setText( "" );
+  myEditCurrentArgument->setText("");
 
-  if ( IObjectCount() != 1 ) {
-    if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1) {
+    if (myEditCurrentArgument == GroupPoints->LineEdit1)
       myOkCompound = false;
     return;
   }
 
   // nbSel == 1
   Standard_Boolean testResult = Standard_False;
-  GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+  GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
 
-  if ( !testResult )
+  if (!testResult)
     return;
 
-  if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
+  if (myEditCurrentArgument == GroupPoints->LineEdit1) {
     TopoDS_Shape S;
     myOkCompound = false;
 
-    if ( GEOMBase::GetShape(aSelectedObject, S) &&
-        S.ShapeType() == TopAbs_COMPOUND ) {
-       // myCompound should be a compound of edges
-       for ( TopoDS_Iterator it( S ); it.More(); it.Next() )
-         if ( it.Value().ShapeType() != TopAbs_EDGE )
-           return;
-       myCompound = aSelectedObject;
-       myOkCompound = true;
-      }
+    if (GEOMBase::GetShape(aSelectedObject, S) && S.ShapeType() == TopAbs_COMPOUND) {
+      // myCompound should be a compound of edges
+      for (TopoDS_Iterator it (S); it.More(); it.Next())
+        if (it.Value().ShapeType() != TopAbs_EDGE)
+          return;
+      myCompound = aSelectedObject;
+      myOkCompound = true;
+    }
   }
 
-  myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
+  myEditCurrentArgument->setText(GEOMBase::GetName(aSelectedObject));
   displayPreview();
 }
 
-
 //=================================================================================
 // function : SetEditCurrentArgument()
 // purpose  :
index 3db3c88518ff5895ad3690a66b9bc6a6dbfaa93d..1d4f579675536a03c3229b860aa5a637d7abaf62 100644 (file)
@@ -163,72 +163,72 @@ void GenerationGUI_PipeDlg::SelectionIntoArgument()
 {
   erasePreview();
   myEditCurrentArgument->setText( "" );
-  
-  if ( IObjectCount() != 1 ) {
-    if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
-      myOkBase = false;
-    else if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
-      myOkPath = false;
+
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1) {
+    if      (myEditCurrentArgument == GroupPoints->LineEdit1) myOkBase = false;
+    else if (myEditCurrentArgument == GroupPoints->LineEdit2) myOkPath = false;
     return;
   }
-  
+
   // nbSel == 1
   Standard_Boolean testResult = Standard_False;
-  GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
-    
-  if ( !testResult )
+  GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
+
+  if (!testResult)
     return;
-  
+
   TopoDS_Shape S;
-  
-  if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
+
+  if (myEditCurrentArgument == GroupPoints->LineEdit1) {
     myOkBase = false;
     
-    if ( !GEOMBase::GetShape( aSelectedObject, S ) ||
-        S.ShapeType() == TopAbs_COMPSOLID || 
-        S.ShapeType() == TopAbs_COMPOUND || 
-        S.ShapeType() == TopAbs_SOLID || 
-        S.ShapeType() == TopAbs_SHAPE ) 
+    if (!GEOMBase::GetShape(aSelectedObject, S) ||
+        S.ShapeType() == TopAbs_COMPSOLID ||
+        S.ShapeType() == TopAbs_COMPOUND ||
+        S.ShapeType() == TopAbs_SOLID ||
+        S.ShapeType() == TopAbs_SHAPE)
       return;
-    
+
     myBase = aSelectedObject;
-    myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
+    myEditCurrentArgument->setText(GEOMBase::GetName(aSelectedObject));
     myOkBase = true;
   }
-  else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) {
+  else if (myEditCurrentArgument == GroupPoints->LineEdit2) {
     myOkPath = false;
-    
-    if ( !GEOMBase::GetShape( aSelectedObject, S ) 
+
+    if (!GEOMBase::GetShape(aSelectedObject, S)
       return;
 
-    QString aName = GEOMBase::GetName( aSelectedObject );
-    
-    if ( testResult && !aSelectedObject->_is_nil() && aSelectedObject != myBase ) {
-      LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+    QString aName = GEOMBase::GetName(aSelectedObject);
+
+    if (testResult && !aSelectedObject->_is_nil() && aSelectedObject != myBase) {
       TColStd_IndexedMapOfInteger aMap;
-      
-      aSelMgr->GetIndexes( firstIObject(), aMap );
-      if ( aMap.Extent() == 1 ) {
-       int anIndex = aMap( 1 );
-       aName.append( ":edge_" + QString::number( anIndex ) );
-       
+      aSelMgr->GetIndexes(aSelList.First(), aMap);
+      if (aMap.Extent() == 1) {
+       int anIndex = aMap(1);
+       aName.append(":edge_" + QString::number(anIndex));
+
        //Find SubShape Object in Father
-       GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather( aSelectedObject, aName );
-       
-       if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study
+       GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName);
+
+       if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study
          GEOM::GEOM_IShapesOperations_var aShapesOp =
-           getGeomEngine()->GetIShapesOperations( getStudyId() );
-         myPath = aShapesOp->GetSubShape( aSelectedObject, anIndex );
+           getGeomEngine()->GetIShapesOperations(getStudyId());
+         myPath = aShapesOp->GetSubShape(aSelectedObject, anIndex);
          myOkPath = true;
        }
-       else {  // get Object from study
+       else { // get Object from study
          myPath = aFindedObject;
          myOkPath = true;
        }
       }
       else {
        myOkPath = true;
-       if ( S.ShapeType() != TopAbs_EDGE ) {
+       if (S.ShapeType() != TopAbs_EDGE) {
          aSelectedObject = GEOM::GEOM_Object::_nil();
          aName = "";
          myOkPath = false;
@@ -236,13 +236,12 @@ void GenerationGUI_PipeDlg::SelectionIntoArgument()
        myPath = aSelectedObject;
       }
     }
-    myEditCurrentArgument->setText( aName );
+    myEditCurrentArgument->setText(aName);
   }
-  
+
   displayPreview();
 }
 
-
 //=================================================================================
 // function : SetEditCurrentArgument()
 // purpose  :
index e64a13e6cfb5e564d1e48a9ab15a42e2cdab5bb9..8645d7b634ee36802871ab9e2d1f113095b410e4 100644 (file)
@@ -321,12 +321,16 @@ void GenerationGUI_PrismDlg::SelectionIntoArgument()
   erasePreview();
   myEditCurrentArgument->setText( "" );
 
-  if ( getConstructorId() == 0 ) {
-
-    if ( IObjectCount() != 1 ) {
-      if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (getConstructorId() == 0)
+  {
+    if (aSelList.Extent() != 1) {
+      if (myEditCurrentArgument == GroupPoints->LineEdit1)
         myOkBase = false;
-      else if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
+      else if (myEditCurrentArgument == GroupPoints->LineEdit2)
         myOkVec = false;
       return;
     }
@@ -334,20 +338,18 @@ void GenerationGUI_PrismDlg::SelectionIntoArgument()
     // nbSel == 1
     Standard_Boolean testResult = Standard_False;
     GEOM::GEOM_Object_var aSelectedObject =
-      GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
-
-    if ( !testResult )
+      GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
+    if (!testResult)
       return;
 
     bool myOk = true;
     TopoDS_Shape aShape;
     QString aName = GEOMBase::GetName( aSelectedObject );    
     if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) {
-      LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
       TColStd_IndexedMapOfInteger aMap;
-      aSelMgr->GetIndexes( firstIObject(), aMap );
-      if ( aMap.Extent() == 1 ) {
-       int anIndex = aMap( 1 );
+      aSelMgr->GetIndexes(aSelList.First(), aMap);
+      if (aMap.Extent() == 1) {
+       int anIndex = aMap(1);
        aName.append( ":edge_" + QString::number( anIndex ) );
        
        //Find SubShape Object in Father
@@ -381,15 +383,15 @@ void GenerationGUI_PrismDlg::SelectionIntoArgument()
     }
     myEditCurrentArgument->setText( aName );
   }
-  else if ( getConstructorId() == 1 ) { // getConstructorId()==1 - extrusion using 2 points
-    if ( IObjectCount() != 1 ) {
-      if ( myEditCurrentArgument == GroupPoints2->LineEdit1 )
+  else if (getConstructorId() == 1) { // getConstructorId()==1 - extrusion using 2 points
+    if (aSelList.Extent() != 1) {
+      if (myEditCurrentArgument == GroupPoints2->LineEdit1)
         myOkBase = false;
-      else if ( myEditCurrentArgument == GroupPoints2->LineEdit2 ) {
+      else if (myEditCurrentArgument == GroupPoints2->LineEdit2) {
        myPoint1 = GEOM::GEOM_Object::_nil();
         myOkPnt1 = false;
       }
-      else if ( myEditCurrentArgument == GroupPoints2->LineEdit3 ) {
+      else if (myEditCurrentArgument == GroupPoints2->LineEdit3) {
        myPoint2 = GEOM::GEOM_Object::_nil();
         myOkPnt2 = false;
       }
@@ -399,18 +401,17 @@ void GenerationGUI_PrismDlg::SelectionIntoArgument()
     // nbSel == 1
     Standard_Boolean testResult = Standard_False;
     GEOM::GEOM_Object_var aSelectedObject =
-      GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
-    
-    if ( !testResult || CORBA::is_nil( aSelectedObject ) )
+      GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
+
+    if (!testResult || CORBA::is_nil(aSelectedObject))
       return;
-    
-    QString aName = GEOMBase::GetName( aSelectedObject );
+
+    QString aName = GEOMBase::GetName(aSelectedObject);
     TopoDS_Shape aShape;
     bool myOk = true;
-    if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) {
-      LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+    if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) {
       TColStd_IndexedMapOfInteger aMap;
-      aSelMgr->GetIndexes( firstIObject(), aMap );
+      aSelMgr->GetIndexes(aSelList.First(), aMap );
       if (aMap.Extent() == 1) {
        int anIndex = aMap(1);
        aName.append( ":vertex_" + QString::number( anIndex ) );
@@ -451,23 +452,22 @@ void GenerationGUI_PrismDlg::SelectionIntoArgument()
       myPoint2 = aSelectedObject;
     }
   }
-  else if ( getConstructorId() == 2 ) { // extrusion using dx dy dz
+  else if (getConstructorId() == 2) { // extrusion using dx dy dz
     Standard_Boolean testResult = Standard_False;
     GEOM::GEOM_Object_var aSelectedObject =
-      GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
-    
-    if ( !testResult || CORBA::is_nil( aSelectedObject ) )
+      GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
+
+    if (!testResult || CORBA::is_nil(aSelectedObject))
       return;
-    
-    QString aName = GEOMBase::GetName( aSelectedObject );
+
+    QString aName = GEOMBase::GetName(aSelectedObject);
     myBase = aSelectedObject;
-    myEditCurrentArgument->setText( aName );
+    myEditCurrentArgument->setText(aName);
   }
+
   displayPreview();
 }
 
-
 //=================================================================================
 // function : SetEditCurrentArgument()
 // purpose  :
index 3e6f7fa8e94e8ac55fd12c1b25051799eab47c82..8f9a6008e97668248e8d2fd5f64c0c6c145bcdcf 100644 (file)
@@ -218,7 +218,11 @@ void GenerationGUI_RevolDlg::SelectionIntoArgument()
   erasePreview();
   myEditCurrentArgument->setText( "" );
   
-  if ( IObjectCount() != 1 ) {
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1) {
     if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
       myOkBase = false;        
     else if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
@@ -228,7 +232,7 @@ void GenerationGUI_RevolDlg::SelectionIntoArgument()
   
   // nbSel == 1
   Standard_Boolean testResult = Standard_False;
-  GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+  GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
   QString aName = GEOMBase::GetName( aSelectedObject );
   
   if ( !testResult )
@@ -249,9 +253,8 @@ void GenerationGUI_RevolDlg::SelectionIntoArgument()
       TopoDS_Shape aShape;
       
       if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) {
-       LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
        TColStd_IndexedMapOfInteger aMap;
-       aSelMgr->GetIndexes( firstIObject(), aMap );
+       aSelMgr->GetIndexes(aSelList.First(), aMap);
        if ( aMap.Extent() == 1 ) {
          
          int anIndex = aMap( 1 );
@@ -289,7 +292,6 @@ void GenerationGUI_RevolDlg::SelectionIntoArgument()
   displayPreview();
 }
 
-
 //=================================================================================
 // function : SetEditCurrentArgument()
 // purpose  :
index 1b3f5b782fb41f2eb389fb7028301e0fccaf4138..fd555bdd02a8e2c2ebe0a0bd3731a03db5a2cc38 100644 (file)
@@ -161,6 +161,8 @@ void GroupGUI_GroupDlg::Init()
 {
   // san -- TODO: clear selected sub-shapes...
   //mySelSubBtn->setChecked( true );
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+
   if ( myMode == CreateGroup ) {
     initName( tr( "GROUP_PREFIX" ) );
 
@@ -171,34 +173,38 @@ void GroupGUI_GroupDlg::Init()
     connect( mySelBtn,          SIGNAL( clicked() ),      this, SLOT( SetEditCurrentArgument() ) );
     connect( mySelBtn2,         SIGNAL( clicked() ),      this, SLOT( SetEditCurrentArgument() ) );
   }
-  else if ( myMode == EditGroup && IObjectCount() ) {
-    Standard_Boolean aResult = Standard_False;
-    GEOM::GEOM_Object_var anObj =
-      GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
+  else if (myMode == EditGroup) {
+    SALOME_ListIO aSelList;
+    aSelMgr->selectedObjects(aSelList);
+
+    if (aSelList.Extent()) {
+      Standard_Boolean aResult = Standard_False;
+      GEOM::GEOM_Object_var anObj =
+        GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult);
 
-    if ( aResult && !CORBA::is_nil( anObj ) && anObj->GetType() == GEOM_GROUP ) {
-      myGroup = anObj;
+      if ( aResult && !CORBA::is_nil( anObj ) && anObj->GetType() == GEOM_GROUP ) {
+        myGroup = anObj;
 
-      mainFrame()->ResultName->setText( GEOMBase::GetName( myGroup ) );
+        mainFrame()->ResultName->setText( GEOMBase::GetName( myGroup ) );
 
-      GEOM::GEOM_IGroupOperations_var anOp = GEOM::GEOM_IGroupOperations::_narrow( getOperation() );
-      myMainObj = anOp->GetMainShape( myGroup );
-      if ( !CORBA::is_nil( myMainObj ) )
-        myMainName->setText( GEOMBase::GetName( myMainObj ) );
+        GEOM::GEOM_IGroupOperations_var anOp = GEOM::GEOM_IGroupOperations::_narrow( getOperation() );
+        myMainObj = anOp->GetMainShape( myGroup );
+        if ( !CORBA::is_nil( myMainObj ) )
+          myMainName->setText( GEOMBase::GetName( myMainObj ) );
 
-      setShapeType( (TopAbs_ShapeEnum)anOp->GetType( myGroup ) );
+        setShapeType( (TopAbs_ShapeEnum)anOp->GetType( myGroup ) );
 
-      GEOM::ListOfLong_var aCurrList = anOp->GetObjects( myGroup );
-      for ( int i = 0, n = aCurrList->length(); i < n; i++ )
-        myIdList->addItem( new QListWidgetItem( QString( "%1" ).arg( aCurrList[i] ) ) );
+        GEOM::ListOfLong_var aCurrList = anOp->GetObjects( myGroup );
+        for ( int i = 0, n = aCurrList->length(); i < n; i++ )
+          myIdList->addItem( new QListWidgetItem( QString( "%1" ).arg( aCurrList[i] ) ) );
 
-      myEditCurrentArgument = 0;
+        myEditCurrentArgument = 0;
+      }
+      connect( mySelBtn2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
     }
-    connect( mySelBtn2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
   }
 
-  connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ),
-          this, SLOT( SelectionIntoArgument() ) );
+  connect( aSelMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()) );
 
   connect( buttonOk(),    SIGNAL( clicked() ), this, SLOT( ClickOnOk()    ) );
   connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
@@ -209,7 +215,7 @@ void GroupGUI_GroupDlg::Init()
   connect( myRemBtn,            SIGNAL( clicked() ),            this, SLOT( remove() ) );
   connect( myIdList,            SIGNAL( selectionChanged() ),   this, SLOT( selectionChanged() ) );
 
-  setInPlaceObj( GEOM::GEOM_Object::_nil() );
+  setInPlaceObj(GEOM::GEOM_Object::_nil());
 
   myBusy = true; // just activate but do not select in the list
   activateSelection();
@@ -354,18 +360,22 @@ void GroupGUI_GroupDlg::onGetInPlace()
   myIdList->clearSelection();
   myIdList->blockSignals( isBlocked );
 
-  if (IObjectCount() != 1 )
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1)
     return;
 
   Standard_Boolean aResult = Standard_False;
   GEOM::GEOM_Object_var anObj =
-    GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
-  if ( aResult && !anObj->_is_nil() && GEOMBase::IsShape( anObj ) ) {
-    if ( !anObj->_is_equivalent(myMainObj) && !anObj->_is_equivalent( myGroup )) {
+    GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult);
+  if (aResult && !anObj->_is_nil() && GEOMBase::IsShape(anObj)) {
+    if (!anObj->_is_equivalent(myMainObj) && !anObj->_is_equivalent(myGroup)) {
       SUIT_OverrideCursor wc;
-      myEditCurrentArgument->setText( GEOMBase::GetName( anObj ) );
+      myEditCurrentArgument->setText(GEOMBase::GetName(anObj));
       GEOM::GEOM_IShapesOperations_var aShapesOp =
-        getGeomEngine()->GetIShapesOperations( getStudyId() );
+        getGeomEngine()->GetIShapesOperations(getStudyId());
       if ( subSelectionWay() == GET_IN_PLACE ) {
         GEOM::GEOM_Object_var aGetInPlaceObj = aShapesOp->GetInPlace(myMainObj, anObj);
         setInPlaceObj( aGetInPlaceObj );
@@ -430,19 +440,23 @@ void GroupGUI_GroupDlg::setInPlaceObj( GEOM::GEOM_Object_var theObj )
 void GroupGUI_GroupDlg::SelectionIntoArgument()
 {
 //   if (myPlaceCheckBox->isChecked() && myEditCurrentArgument == myShape2Name )
-  if (subSelectionWay() != ALL_SUBSHAPES && myEditCurrentArgument == myShape2Name ) {
+  if (subSelectionWay() != ALL_SUBSHAPES && myEditCurrentArgument == myShape2Name) {
     onGetInPlace();
     return;
   }
 
-  if ( myEditCurrentArgument == myMainName) {  // Selection of a main shape is active
-    myEditCurrentArgument->setText( "" );
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (myEditCurrentArgument == myMainName) {  // Selection of a main shape is active
+    myEditCurrentArgument->setText("");
     myIdList->clear();
-    
-    if ( IObjectCount() == 1 ) {
+
+    if (aSelList.Extent() == 1) {
       Standard_Boolean aResult = Standard_False;
       GEOM::GEOM_Object_var anObj =
-       GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
+       GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult);
 
       if ( aResult && !anObj->_is_nil() && GEOMBase::IsShape( anObj ) ) {
        myMainObj = anObj;
@@ -468,17 +482,10 @@ void GroupGUI_GroupDlg::SelectionIntoArgument()
 
     TColStd_IndexedMapOfInteger aMapIndex;
 
-    SALOME_ListIO aSelIOs;
-    SalomeApp_Application* app = myGeomGUI->getApp();
-    if ( app ) {
-      LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
-      if ( aSelMgr ) {
-        LightApp_SelectionMgr::MapEntryOfMapOfInteger aMap;
-        aSelMgr->selectedSubOwners( aMap );
-        if ( aMap.Size() == 1 )
-          aMapIndex = LightApp_SelectionMgr::MapEntryOfMapOfInteger::Iterator( aMap ).Value();
-      }
-    }
+    LightApp_SelectionMgr::MapEntryOfMapOfInteger aMap;
+    aSelMgr->selectedSubOwners( aMap );
+    if ( aMap.Size() == 1 )
+      aMapIndex = LightApp_SelectionMgr::MapEntryOfMapOfInteger::Iterator( aMap ).Value();
     bool subselected = aMapIndex.Extent();
 
     // convert inPlace indices to main indices
@@ -502,7 +509,7 @@ void GroupGUI_GroupDlg::SelectionIntoArgument()
       globalSelection( GEOM_ALLSHAPES );
 
       GEOM::ListOfGO anObjects;
-      GEOMBase::ConvertListOfIOInListOfGO(selectedIO(), anObjects);
+      GEOMBase::ConvertListOfIOInListOfGO(aSelList, anObjects);
 
       GEOM::GEOM_ILocalOperations_var aLocOp = getGeomEngine()->GetILocalOperations( getStudyId() );
       GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() );
index 24c3baaeb0029251531fb4c3ff434f5861b5a070..1ec8fd5c8f22bdf53cbb063da5775748c31d3213 100644 (file)
@@ -29,6 +29,8 @@
 #include <GEOMBase.h>
 #include <DlgRef.h>
 
+#include <GeometryGUI.h>
+
 #include <SUIT_Desktop.h>
 #include <SUIT_Session.h>
 #include <SUIT_ResourceMgr.h>
@@ -38,7 +40,8 @@
 #include <SUIT_ViewManager.h>
 #include <SOCC_Prs.h>
 #include <SOCC_ViewModel.h>
-//#include "SalomeApp_Application.h"
+#include <SalomeApp_Application.h>
+#include <LightApp_SelectionMgr.h>
 
 // OCCT Includes
 #include <AIS_AngleDimension.hxx>
@@ -146,9 +149,13 @@ void MeasureGUI_AngleDlg::Init()
 //=================================================================================
 void MeasureGUI_AngleDlg::SelectionIntoArgument()
 {
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
   Standard_Boolean testResult = Standard_False;
   GEOM::GEOM_Object_var aSelectedObject =
-    GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+    GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
 
   if ( !testResult )
     aSelectedObject = GEOM::GEOM_Object::_nil();
@@ -239,13 +246,17 @@ void MeasureGUI_AngleDlg::LineEditReturnPressed()
 {
   QLineEdit* send = (QLineEdit*)sender();
 
-  if ( send == mySelEdit )
+  if (send == mySelEdit)
     myEditCurrentArgument = mySelEdit;
   else
     myEditCurrentArgument = mySelEdit2;
 
-  if ( GEOMBase::SelectionByNameInDialogs( this, mySelEdit->text(), selectedIO() ) )
-    mySelEdit->setText( mySelEdit->text() );
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (GEOMBase::SelectionByNameInDialogs(this, mySelEdit->text(), aSelList))
+    mySelEdit->setText(mySelEdit->text());
 }
 
 //=================================================================================
index 62f484852e0569bf085f39ededed036d38733552..25d71d93573dd31abe924f5a34397560add83dd5 100644 (file)
@@ -29,6 +29,8 @@
 #include <DlgRef.h>
 #include <GEOMBase.h>
 
+#include <GeometryGUI.h>
+
 #include <SUIT_Session.h>
 #include <SUIT_ResourceMgr.h>
 #include <SalomeApp_Application.h>
@@ -158,16 +160,20 @@ void MeasureGUI_CenterMassDlg::SelectionIntoArgument()
   erasePreview();
   myObj = GEOM::GEOM_Object::_nil();
 
-  if ( IObjectCount() != 1 ) {
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1) {
     processObject();
     return;
   }
 
   Standard_Boolean testResult = Standard_False;
   GEOM::GEOM_Object_var aSelectedObject =
-    GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+    GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
 
-  if ( !testResult || aSelectedObject->_is_nil() ) {
+  if (!testResult || aSelectedObject->_is_nil()) {
     processObject();
     return;
   }
@@ -177,7 +183,6 @@ void MeasureGUI_CenterMassDlg::SelectionIntoArgument()
   displayPreview();
 }
 
-
 //=================================================================================
 // function : SetEditCurrentArgument()
 // purpose  :
index 58cd190c286a2bfcff4ea1b0a87ccfce61ee41eb..309d35851fe0c2a6857b08b7427efad6accd5724 100644 (file)
@@ -165,7 +165,11 @@ void MeasureGUI_CheckCompoundOfBlocksDlg::SelectionIntoArgument()
   erasePreview();
   myObj = GEOM::GEOM_Object::_nil();
 
-  if ( IObjectCount() != 1 ) {
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1) {
     myGrp->LineEdit1->setText( "" );
     processObject();
     return;
@@ -173,7 +177,7 @@ void MeasureGUI_CheckCompoundOfBlocksDlg::SelectionIntoArgument()
 
   Standard_Boolean testResult = Standard_False;
   GEOM::GEOM_Object_var aSelectedObject =
-    GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+    GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
 
   if ( !testResult || aSelectedObject->_is_nil() ) {
     myGrp->LineEdit1->setText( "" );
index 2e9fea39a66c97b741e4fd6124bfc9f17deb014b..075c2759673e55a1317afdd6fee6bb6cd0e2b1ba 100644 (file)
@@ -29,6 +29,8 @@
 #include <GEOMBase.h>
 #include <DlgRef.h>
 
+#include <GeometryGUI.h>
+
 #include <SUIT_Session.h>
 #include <SUIT_Desktop.h>
 #include <SUIT_ResourceMgr.h>
@@ -37,6 +39,8 @@
 #include <SOCC_Prs.h>
 #include <SOCC_ViewModel.h>
 #include <SalomeApp_Tools.h>
+#include <SalomeApp_Application.h>
+#include <LightApp_SelectionMgr.h>
 
 #include <Geom_Plane.hxx>
 #include <AIS_LengthDimension.hxx>
@@ -132,9 +136,13 @@ void MeasureGUI_DistanceDlg::Init()
 //=================================================================================
 void MeasureGUI_DistanceDlg::SelectionIntoArgument()
 {
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
   Standard_Boolean testResult = Standard_False;
   GEOM::GEOM_Object_var aSelectedObject =
-    GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+    GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
 
   if ( !testResult )
     aSelectedObject = GEOM::GEOM_Object::_nil();
@@ -241,8 +249,12 @@ void MeasureGUI_DistanceDlg::LineEditReturnPressed()
   else
     myEditCurrentArgument = mySelEdit2;
 
-  if ( GEOMBase::SelectionByNameInDialogs( this, mySelEdit->text(), selectedIO() ) )
-    mySelEdit->setText( mySelEdit->text() );
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (GEOMBase::SelectionByNameInDialogs(this, mySelEdit->text(), aSelList))
+    mySelEdit->setText(mySelEdit->text());
 }
 
 
index 9c064e60bb5605b712fe75827272e3cb340a417c..071661fcefc51262c95901511483b7e70052daaf 100644 (file)
@@ -168,13 +168,17 @@ void MeasureGUI_NormaleDlg::SelectionIntoArgument()
     myPoint = GEOM::GEOM_Object::_nil();
   }
   
-  if ( IObjectCount() != 1 )
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1)
     return;
 
   // nbSel == 1
   Standard_Boolean testResult = Standard_False;
   GEOM::GEOM_Object_var aSelectedObject =
-    GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+    GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
 
   if ( !testResult )
     return;
@@ -185,9 +189,8 @@ void MeasureGUI_NormaleDlg::SelectionIntoArgument()
     TopoDS_Shape aShape;
     if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() )
     {
-      LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
       TColStd_IndexedMapOfInteger aMap;
-      aSelMgr->GetIndexes( firstIObject(), aMap );
+      aSelMgr->GetIndexes(aSelList.First(), aMap);
       if ( aMap.Extent() == 1 ) // Local Selection
       {
         GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() );
@@ -209,9 +212,8 @@ void MeasureGUI_NormaleDlg::SelectionIntoArgument()
     TopoDS_Shape aShape;
     if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() )
     {
-      LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
       TColStd_IndexedMapOfInteger aMap;
-      aSelMgr->GetIndexes( firstIObject(), aMap );
+      aSelMgr->GetIndexes(aSelList.First(), aMap);
       if ( aMap.Extent() == 1 ) // Local Selection
       {
         GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() );
index f9e822710395869ff694db877aa847d3669caf2b..843a9922c3fdac274bf664d7e3a7eeb2c2547438 100644 (file)
@@ -29,6 +29,8 @@
 #include <GEOMBase.h>
 #include <DlgRef.h>
 
+#include <GeometryGUI.h>
+
 #include <SUIT_Session.h>
 #include <SUIT_ResourceMgr.h>
 #include <SalomeApp_Application.h>
@@ -125,9 +127,13 @@ void MeasureGUI_PointDlg::SelectionIntoArgument()
     myGrp->LineEdit3->setText( "" );
     myGrp->LineEdit4->setText( "" );
 
+    LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+    SALOME_ListIO aSelList;
+    aSelMgr->selectedObjects(aSelList);
+
     Standard_Boolean testResult = Standard_False;
     GEOM::GEOM_Object_var aSelectedObject =
-      GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+      GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
 
     if ( !testResult || aSelectedObject->_is_nil() )
       return;
@@ -135,8 +141,7 @@ void MeasureGUI_PointDlg::SelectionIntoArgument()
     myObj = aSelectedObject;
 
     TColStd_IndexedMapOfInteger anIndexes;
-    ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->
-      selectionMgr()->GetIndexes( firstIObject(), anIndexes );
+    aSelMgr->GetIndexes(aSelList.First(), anIndexes);
 
     TopoDS_Shape aShape;
     if ( anIndexes.Extent() > 1 || !GEOMBase::GetShape( myObj, aShape ) || aShape.IsNull() )
index 3109b373840568724a2aebf0096e9abd4f1228f3..2dd79a196a21acb03db8ed59463bc0a074fa22cc 100644 (file)
@@ -179,8 +179,12 @@ void MeasureGUI_Skeleton::LineEditReturnPressed()
     const QString objectUserName = mySelEdit->text();
     QWidget* thisWidget = ( QWidget* )this;
     
-    if ( GEOMBase::SelectionByNameInDialogs( thisWidget, objectUserName, selectedIO() ) )
-      mySelEdit->setText( objectUserName );
+    LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+    SALOME_ListIO aSelList;
+    aSelMgr->selectedObjects(aSelList);
+
+    if (GEOMBase::SelectionByNameInDialogs(thisWidget, objectUserName, aSelList))
+      mySelEdit->setText(objectUserName);
   }
 }
 
@@ -241,20 +245,24 @@ void MeasureGUI_Skeleton::SetEditCurrentArgument()
 void MeasureGUI_Skeleton::SelectionIntoArgument()
 {
   myObj = GEOM::GEOM_Object::_nil();
-  
+
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
   Standard_Boolean testResult = Standard_False;
   GEOM::GEOM_Object_var aSelectedObject =
-    GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
-  
-  if ( !testResult || aSelectedObject->_is_nil() ) {
-    mySelEdit->setText( "" );
+    GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
+
+  if (!testResult || aSelectedObject->_is_nil()) {
+    mySelEdit->setText("");
     processObject();
     erasePreview();
     return;
   }
 
   myObj = aSelectedObject;
-  mySelEdit->setText( GEOMBase::GetName( myObj ) );
+  mySelEdit->setText(GEOMBase::GetName(myObj));
   processObject();
   redisplayPreview();
 }
index 87dd1655ba0f7e7ad50b5470252f89881fdf2bab..853cee04bbcb509db7116808fcb5376e69bc639e 100644 (file)
@@ -168,31 +168,33 @@ bool OperationGUI_ArchimedeDlg::ClickOnApply()
   return true;
 }
 
-
 //=================================================================================
 // function : SelectionIntoArgument()
 // purpose  : Called when selection as changed or other case
 //=================================================================================
 void OperationGUI_ArchimedeDlg::SelectionIntoArgument()
 {
-  myEditCurrentArgument->setText( "" );
+  myEditCurrentArgument->setText("");
   myShape = GEOM::GEOM_Object::_nil();
-  
-  if ( IObjectCount() != 1 )
+
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1)
     return;
 
   Standard_Boolean testResult = Standard_False;
-  myShape = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+  myShape = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
 
-  if ( !testResult || myShape->_is_nil() || !GEOMBase::IsShape( myShape ) ) {
+  if (!testResult || myShape->_is_nil() || !GEOMBase::IsShape(myShape)) {
     myShape = GEOM::GEOM_Object::_nil();
     return;
   }
 
-  myEditCurrentArgument->setText( GEOMBase::GetName( myShape ) );
+  myEditCurrentArgument->setText(GEOMBase::GetName(myShape));
 }
 
-
 //=================================================================================
 // function : LineEditReturnPressed()
 // purpose  :
index 002280d408d9997cc165a0e3ca6d5f26bfa538c2..606e0a39ea382b1778a540442e208d1828083af3 100644 (file)
@@ -348,7 +348,6 @@ bool OperationGUI_ChamferDlg::ClickOnApply()
   return true;
 }
 
-
 //=================================================================================
 // function : SelectionIntoArgument()
 // purpose  : Called when selection has changed
@@ -356,7 +355,7 @@ bool OperationGUI_ChamferDlg::ClickOnApply()
 void OperationGUI_ChamferDlg::SelectionIntoArgument()
 {
   erasePreview();
-  myEditCurrentArgument->setText( "" );
+  myEditCurrentArgument->setText("");
 
   // Get index of current selection focus
   int aCurrFocus = -1;
@@ -368,12 +367,17 @@ void OperationGUI_ChamferDlg::SelectionIntoArgument()
     }
   }
 
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
   // If selection of main object is activated
-  if ( aCurrFocus == MainObj1 || aCurrFocus == MainObj2 || aCurrFocus == MainObj3 || aCurrFocus == MainObj4) {
-    if ( IObjectCount() == 1 ) {
+  if (aCurrFocus == MainObj1 || aCurrFocus == MainObj2 || aCurrFocus == MainObj3 || aCurrFocus == MainObj4)
+  {
+    if (aSelList.Extent() == 1) {
       Standard_Boolean aResult = Standard_False;
       GEOM::GEOM_Object_var anObj =
-        GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
+        GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult);
 
       if ( aResult && !anObj->_is_nil() ) {
         myShape = anObj;
@@ -388,18 +392,19 @@ void OperationGUI_ChamferDlg::SelectionIntoArgument()
     enableWidgets();
   }
   // If face selection of second tab is activated
-  else if ( aCurrFocus == Face1 || aCurrFocus == Face2 ) {
-    if ( IObjectCount() == 1 ) {
+  else if (aCurrFocus == Face1 || aCurrFocus == Face2)
+  {
+    if (aSelList.Extent() == 1) {
       Standard_Boolean aResult = Standard_False;
       GEOM::GEOM_Object_var anObj =
-        GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
+        GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult);
 
       if ( aResult && !anObj->_is_nil() ) {
          TColStd_IndexedMapOfInteger anIndexes;
-        ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr()->GetIndexes( firstIObject(), anIndexes );
+        aSelMgr->GetIndexes(aSelList.First(), anIndexes);
 
-         if ( anIndexes.Extent() == 1 ) {
-            int anIndex = anIndexes( 1 );
+         if (anIndexes.Extent() == 1) {
+            int anIndex = anIndexes(1);
             QString aFaceName = QString( GEOMBase::GetName( anObj ) ) + ":%1";
             myEditCurrentArgument->setText( aFaceName.arg( anIndex ) );
             myFace[ aCurrFocus ] = anIndex;
@@ -412,20 +417,20 @@ void OperationGUI_ChamferDlg::SelectionIntoArgument()
     myFace[ aCurrFocus ] = -1;
   }
   // If face selection of third or fourth tab is activated
-  else if ( aCurrFocus == Faces  || aCurrFocus == Edges ) {
-    if ( IObjectCount() == 1 ) {
+  else if (aCurrFocus == Faces || aCurrFocus == Edges) {
+    if (aSelList.Extent() == 1) {
       Standard_Boolean aResult = Standard_False;
       GEOM::GEOM_Object_var anObj =
-        GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
-      
+        GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult);
+
       if ( aResult && !anObj->_is_nil() ) {
        TColStd_IndexedMapOfInteger anIndexes;
-       ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr()->GetIndexes( firstIObject(), anIndexes );
+       aSelMgr->GetIndexes(aSelList.First(), anIndexes);
        
-       if ( anIndexes.Extent() > 0 ) {
+       if (anIndexes.Extent() > 0) {
          QString aName;
-         if ( anIndexes.Extent() == 1 ) {
-           int anIndex = anIndexes( 1 );
+         if (anIndexes.Extent() == 1) {
+           int anIndex = anIndexes(1);
            
            aName = QString( GEOMBase::GetName( anObj ) ) + QString( ":%1" ).arg( anIndex );
          }
index cdf2dd39611858233511510379575c83cca2e8f9..bc2e65b579bddbe2ea15e09258388c4140e2d328 100644 (file)
@@ -299,18 +299,23 @@ void OperationGUI_FilletDlg::SelectionIntoArgument()
   erasePreview();
   myEditCurrentArgument->setText( "" );
 
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
   // If selection of main object is activated
-  if ( myEditCurrentArgument == Group1->LineEdit1 ||
-       myEditCurrentArgument == Group2->LineEdit1 ||
-       myEditCurrentArgument == Group3->LineEdit1 ) {
-    if ( IObjectCount() == 1 ) {
+  if (myEditCurrentArgument == Group1->LineEdit1 ||
+      myEditCurrentArgument == Group2->LineEdit1 ||
+      myEditCurrentArgument == Group3->LineEdit1)
+  {
+    if (aSelList.Extent() == 1) {
       Standard_Boolean aResult = Standard_False;
       GEOM::GEOM_Object_var anObj =
-        GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
-      
-      if ( aResult && !anObj->_is_nil() ) {
+        GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult);
+
+      if (aResult && !anObj->_is_nil()) {
         myShape = anObj;
-        myEditCurrentArgument->setText( GEOMBase::GetName( anObj ) );
+        myEditCurrentArgument->setText(GEOMBase::GetName(anObj));
         displayPreview();
         enableWidgets();
         return;
@@ -321,21 +326,22 @@ void OperationGUI_FilletDlg::SelectionIntoArgument()
     enableWidgets();
   }
   // If face or edge selection is activated
-  else if ( myEditCurrentArgument == Group2->LineEdit2 ||
-            myEditCurrentArgument == Group3->LineEdit2 ) {
-    if ( IObjectCount() == 1 ) {
+  else if (myEditCurrentArgument == Group2->LineEdit2 ||
+           myEditCurrentArgument == Group3->LineEdit2)
+  {
+    if (aSelList.Extent() == 1) {
       Standard_Boolean aResult = Standard_False;
       GEOM::GEOM_Object_var anObj =
-        GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
+        GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult);
 
-      if ( aResult && !anObj->_is_nil() ) {
+      if (aResult && !anObj->_is_nil()) {
         TColStd_IndexedMapOfInteger anIndexes;
-        myGeomGUI->getApp()->selectionMgr()->GetIndexes( firstIObject(), anIndexes );
+        aSelMgr->GetIndexes(aSelList.First(), anIndexes);
 
-        if ( anIndexes.Extent() > 0 ) {
+        if (anIndexes.Extent() > 0) {
           QString aName;
-          if ( anIndexes.Extent() == 1 ) {
-            int anIndex = anIndexes( 1 );
+          if (anIndexes.Extent() == 1) {
+            int anIndex = anIndexes(1);
 
             aName = QString( GEOMBase::GetName( anObj ) ) + QString( ":%1" ).arg( anIndex );
           }
@@ -358,7 +364,6 @@ void OperationGUI_FilletDlg::SelectionIntoArgument()
   }
 }
 
-
 //=================================================================================
 // function : LineEditReturnPressed()
 // purpose  :
index b2686cc10eaa5e909214fee4ed75d0b2e3353389..8f08fca239647abfb430848cb04390ade49fb373 100644 (file)
@@ -175,16 +175,20 @@ void OperationGUI_GetShapesOnShapeDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   QString aString = "";
 
-  int nbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aString, true );
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
 
-  if ( nbSel > 0 ) {
+  int nbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aString, true);
+
+  if (nbSel > 0) {
     Standard_Boolean aRes = Standard_False;
-    GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
-    if ( !CORBA::is_nil( aSelectedObject ) && aRes && GEOMBase::IsShape( aSelectedObject ) ) {
+    GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes);
+    if (!CORBA::is_nil(aSelectedObject) && aRes && GEOMBase::IsShape(aSelectedObject)) {
     {
-      myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
-      if      ( myEditCurrentArgument == GroupPoints->LineEdit1 )   myObject1 = aSelectedObject;
-      else if ( myEditCurrentArgument == GroupPoints->LineEdit2 )   myObject2 = aSelectedObject;
+      myEditCurrentArgument->setText(GEOMBase::GetName(aSelectedObject));
+      if      (myEditCurrentArgument == GroupPoints->LineEdit1) myObject1 = aSelectedObject;
+      else if (myEditCurrentArgument == GroupPoints->LineEdit2) myObject2 = aSelectedObject;
       }
     }
   }
@@ -258,11 +262,11 @@ GEOM::GEOM_IOperations_ptr OperationGUI_GetShapesOnShapeDlg::createOperation()
 //=================================================================================
 bool OperationGUI_GetShapesOnShapeDlg::isValid( QString& msg )
 {
-  Handle(SALOME_InteractiveObject) IO = firstIObject();
-  Standard_Boolean testResult;
-  GEOM::GEOM_Object_var anObject = GEOMBase::ConvertIOinGEOMObject( IO, testResult );
-  if ( !testResult || anObject->_is_nil() )
-    return false;
+  //Handle(SALOME_InteractiveObject) IO = firstIObject();
+  //Standard_Boolean testResult;
+  //GEOM::GEOM_Object_var anObject = GEOMBase::ConvertIOinGEOMObject( IO, testResult );
+  //if ( !testResult || anObject->_is_nil() )
+  //  return false;
 
   return !CORBA::is_nil( myObject1 ) && !CORBA::is_nil( myObject2 );
 }
index 662cba75c0dd4d9b1110a33b1a08aec9ad701442..9c787d2cef546053ee9f21e21665a5b2a9b1fd78 100644 (file)
@@ -235,7 +235,11 @@ void OperationGUI_PartitionDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   QString aString = "";
   
-  int nbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aString, true );
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  int nbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aString, true);
     
   if ( nbSel < 1 ) {
     if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
@@ -248,7 +252,7 @@ void OperationGUI_PartitionDlg::SelectionIntoArgument()
   
   // One and only one plane can be selected
   
-  if ( getConstructorId() == 1 && 
+  if ( getConstructorId() == 1 &&
        myEditCurrentArgument == GroupPoints->LineEdit2 && 
        nbSel != 1 ) {
     myListTools.length( 0 );
@@ -256,13 +260,13 @@ void OperationGUI_PartitionDlg::SelectionIntoArgument()
   }
   
   if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
-    GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), myListShapes, true );
+    GEOMBase::ConvertListOfIOInListOfGO(aSelList, myListShapes, true);
     myListMaterials.length( 0 );
     if ( !myListShapes.length() )
       return;
   }
   else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) {
-    GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), myListTools, true );
+    GEOMBase::ConvertListOfIOInListOfGO(aSelList, myListTools, true);
     if ( !myListTools.length() )
       return;
   }
index b6a8dc33ff9f6f942b27c05e955af6fa1941787b..05441ed8613010252c6ec03b53de48c7fb6dd050 100644 (file)
@@ -249,7 +249,11 @@ void PrimitiveGUI_BoxDlg::SelectionIntoArgument()
   
   myEditCurrentArgument->setText( "" );
   
-  if ( IObjectCount() != 1 ) {
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if ( aSelList.Extent() != 1 ) {
     if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
       myPoint1 = GEOM::GEOM_Object::_nil();
     else if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
@@ -259,7 +263,7 @@ void PrimitiveGUI_BoxDlg::SelectionIntoArgument()
 
   // nbSel == 1
   Standard_Boolean testResult = Standard_False;
-  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( aSelList.First(), testResult );
   
   if ( !testResult || CORBA::is_nil( aSelectedObject ) )
     return;
@@ -267,9 +271,8 @@ void PrimitiveGUI_BoxDlg::SelectionIntoArgument()
   TopoDS_Shape aShape;
   QString aName = GEOMBase::GetName( aSelectedObject );
   if (GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) {
-    LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
     TColStd_IndexedMapOfInteger aMap;
-    aSelMgr->GetIndexes( firstIObject(), aMap );
+    aSelMgr->GetIndexes( aSelList.First(), aMap );
     if ( aMap.Extent() == 1) { // Local Selection
       int anIndex = aMap( 1 );
       aName.append( ":vertex_" + QString::number( anIndex ) );   
index 07bf6b3eee3cd81fa1b9a521fcfae529d2d89e8f..1fe9e0fe3c705076c1a26c48f037c15d5fe8dea4 100644 (file)
@@ -254,27 +254,30 @@ bool PrimitiveGUI_ConeDlg::ClickOnApply()
   return true;
 }
 
-
 //=================================================================================
 // function : SelectionIntoArgument()
 // purpose  : Called when selection as changed or other case
 //=================================================================================
 void PrimitiveGUI_ConeDlg::SelectionIntoArgument()
 {
-  if ( getConstructorId() != 0 )
+  if (getConstructorId() != 0)
     return;
 
-  if ( IObjectCount() != 1 ) {
-    if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1) {
+    if (myEditCurrentArgument == GroupPoints->LineEdit1)
       myPoint = GEOM::GEOM_Object::_nil();
-    else if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
+    else if (myEditCurrentArgument == GroupPoints->LineEdit2)
       myDir = GEOM::GEOM_Object::_nil();
     return;
   }
 
   /* nbSel == 1 */
   Standard_Boolean testResult = Standard_False;
-  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
   
   if ( !testResult || CORBA::is_nil( aSelectedObject ) )
     return;
@@ -287,9 +290,8 @@ void PrimitiveGUI_ConeDlg::SelectionIntoArgument()
     if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
       aNeedType = TopAbs_EDGE;
 
-    LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
     TColStd_IndexedMapOfInteger aMap;
-    aSelMgr->GetIndexes( firstIObject(), aMap );
+    aSelMgr->GetIndexes(aSelList.First(), aMap);
     if ( aMap.Extent() == 1 ) {
       int anIndex = aMap(1);
       if ( aNeedType == TopAbs_EDGE )
@@ -327,7 +329,6 @@ void PrimitiveGUI_ConeDlg::SelectionIntoArgument()
   displayPreview();
 }
 
-
 //=================================================================================
 // function : SetEditCurrentArgument()
 // purpose  :
index 8715966158664962ef2cb8f6f0b5f8332d4adf7c..aa01161fc377c01bf04732534fd3b0ef01a1396b 100644 (file)
@@ -259,21 +259,24 @@ void PrimitiveGUI_CylinderDlg::SelectionIntoArgument()
 
   myEditCurrentArgument->setText( "" );
   
-  if ( IObjectCount() != 1 ) {
-    if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1) {
+    if (myEditCurrentArgument == GroupPoints->LineEdit1)
       myPoint = GEOM::GEOM_Object::_nil();
-    else if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
+    else if (myEditCurrentArgument == GroupPoints->LineEdit2)
       myDir = GEOM::GEOM_Object::_nil();
     return;
   }
   
   /* nbSel == 1 */
   Standard_Boolean testResult = Standard_False;
-  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
     
-  if ( !testResult || CORBA::is_nil( aSelectedObject ) )
+  if (!testResult || CORBA::is_nil(aSelectedObject))
     return;
-  
 
   QString aName = GEOMBase::GetName(aSelectedObject);
   TopoDS_Shape aShape;
@@ -282,9 +285,8 @@ void PrimitiveGUI_CylinderDlg::SelectionIntoArgument()
     if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
       aNeedType = TopAbs_EDGE;
 
-    LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
     TColStd_IndexedMapOfInteger aMap;
-    aSelMgr->GetIndexes( firstIObject(), aMap );
+    aSelMgr->GetIndexes(aSelList.First(), aMap);
     if ( aMap.Extent() == 1 ) { // Local Selection
       int anIndex = aMap( 1 );
       if ( aNeedType == TopAbs_EDGE )
index 168a00a41bfa8bc6b6f686a44898b3530b67c2ee..452b1d804e850c63dacd48565aee7646ee91f95a 100755 (executable)
@@ -318,7 +318,11 @@ void PrimitiveGUI_FaceDlg::SelectionIntoArgument()
 
   myEditCurrentArgument->setText( "" );
 
-  if ( IObjectCount() != 1 ) {
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if ( aSelList.Extent() != 1 ) {
     if ( myEditCurrentArgument == GroupPlane->LineEdit1 )  myEdge = GEOM::GEOM_Object::_nil();
     return;
   }
@@ -326,7 +330,7 @@ void PrimitiveGUI_FaceDlg::SelectionIntoArgument()
   // nbSel == 1 
   Standard_Boolean aRes = Standard_False;
   TopAbs_ShapeEnum aNeedType = TopAbs_EDGE;
-  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
+  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( aSelList.First(), aRes );
   if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
     QString aName = GEOMBase::GetName( aSelectedObject );
     
@@ -335,9 +339,8 @@ void PrimitiveGUI_FaceDlg::SelectionIntoArgument()
       if (GroupType->RadioButton2->isChecked())
        aNeedType = TopAbs_FACE;
 
-      LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
       TColStd_IndexedMapOfInteger aMap;
-      aSelMgr->GetIndexes( firstIObject(), aMap );
+      aSelMgr->GetIndexes( aSelList.First(), aMap );
       if ( aMap.Extent() == 1 ) { // Local Selection
        int anIndex = aMap( 1 );
        if ( aNeedType == TopAbs_EDGE )
index 13bd12071dabbe92b4caff134a5465162d038557..8922e36e8e545f2484514d2a8fc68da06103c37e 100644 (file)
@@ -231,27 +231,30 @@ void PrimitiveGUI_SphereDlg::SelectionIntoArgument()
 {
   if ( getConstructorId() != 0 )
     return;
-  
+
   myEditCurrentArgument->setText( "" );
-  
-  if ( IObjectCount() != 1 ) {
+
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (aSelList.Extent() != 1) {
     myPoint = GEOM::GEOM_Object::_nil();
     return;
   }
-  
+
   /* nbSel == 1 ! */
   Standard_Boolean testResult = Standard_False;
-  GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
-  
+  GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
+
   if ( !testResult || CORBA::is_nil( aSelectedObject ) )
     return;
-    
   QString aName = GEOMBase::GetName( aSelectedObject );
   TopoDS_Shape aShape;
   if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull() ) {
-    LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
     TColStd_IndexedMapOfInteger aMap;
-    aSelMgr->GetIndexes( firstIObject(), aMap );
+    aSelMgr->GetIndexes(aSelList.First(), aMap);
     if ( aMap.Extent() == 1 ) { // Local Selection
       int anIndex = aMap( 1 );
       aName.append( ":vertex_" + QString::number( anIndex ) );
@@ -278,11 +281,10 @@ void PrimitiveGUI_SphereDlg::SelectionIntoArgument()
 
   myEditCurrentArgument->setText( aName );
   myPoint = aSelectedObject;
-  
+
   displayPreview();
 }
 
-
 //=================================================================================
 // function : LineEditReturnPressed()
 // purpose  :
index f4dc772a9e0b467ee5c008be09f007431895add6..acea052ab99edd361d13d5f405ec2f735ebacb78 100644 (file)
@@ -255,7 +255,11 @@ void PrimitiveGUI_TorusDlg::SelectionIntoArgument()
   
   myEditCurrentArgument->setText( "" );
   
-  if ( IObjectCount() != 1 ) {
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if ( aSelList.Extent() != 1 ) {
     if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
       myPoint = GEOM::GEOM_Object::_nil();
     else if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
@@ -265,7 +269,7 @@ void PrimitiveGUI_TorusDlg::SelectionIntoArgument()
   
   /* nbSel == 1 */
   Standard_Boolean testResult = Standard_False;
-  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( aSelList.First(), testResult );
   
   if ( !testResult || CORBA::is_nil( aSelectedObject ) )
     return;
@@ -278,9 +282,8 @@ void PrimitiveGUI_TorusDlg::SelectionIntoArgument()
     if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
       aNeedType = TopAbs_EDGE;
 
-    LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
     TColStd_IndexedMapOfInteger aMap;
-    aSelMgr->GetIndexes( firstIObject(), aMap );
+    aSelMgr->GetIndexes( aSelList.First(), aMap );
     if ( aMap.Extent() == 1 ) { // Local Selection
       int anIndex = aMap( 1 );
       if ( aNeedType == TopAbs_EDGE )
index 2f2f4e2a2b910e63f9da8ad84ef3837cd8c7487e..26ea5739ce8b136e7b64437752d453434c63a2d1 100644 (file)
@@ -157,8 +157,12 @@ void RepairGUI_ChangeOrientationDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   QString aName;
   
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
   if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
-    if ( IObjectCount() != 1 ) {
+    if ( aSelList.Extent() != 1 ) {
       if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
         myOkObject = false;
       return;
@@ -168,7 +172,7 @@ void RepairGUI_ChangeOrientationDlg::SelectionIntoArgument()
   // nbSel == 1
   Standard_Boolean testResult = Standard_False;
   GEOM::GEOM_Object_ptr aSelectedObject =
-    GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+    GEOMBase::ConvertIOinGEOMObject( aSelList.First(), testResult );
   
   if ( !testResult )
     return;
index d24f6f31b47d0c671998a091e4abdff385e9545b..1ce7c8f9a5e888ff3fb6a445042c4b3072e42832 100644 (file)
@@ -189,8 +189,12 @@ void RepairGUI_CloseContourDlg::SelectionIntoArgument()
   else if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
     myWiresInd->length( 0 );
 
-  if ( IObjectCount() == 1 ) {
-    Handle(SALOME_InteractiveObject) anIO = firstIObject();
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if ( aSelList.Extent() == 1 ) {
+    Handle(SALOME_InteractiveObject) anIO = aSelList.First();
 
     if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) { // face selection
       Standard_Boolean aRes;
@@ -206,7 +210,7 @@ void RepairGUI_CloseContourDlg::SelectionIntoArgument()
     }
     else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) {
       TColStd_IndexedMapOfInteger aMap;
-      myGeomGUI->getApp()->selectionMgr()->GetIndexes( anIO, aMap );
+      aSelMgr->GetIndexes( anIO, aMap );
       const int n = aMap.Extent();
       myWiresInd->length( n );
       for ( int i = 1; i <= n; i++ )
index 9ba9969bc231bee0a6d7a140586e3a3de621f651..7cea1fd993597e5fb4f4f6a0d2fb9c7dc7ebae01 100644 (file)
@@ -221,8 +221,12 @@ void RepairGUI_DivideEdgeDlg::SelectionIntoArgument()
 
   myObject = GEOM::GEOM_Object::_nil();
 
-  if ( IObjectCount() == 1 ) {
-    Handle(SALOME_InteractiveObject) anIO = firstIObject();
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if ( aSelList.Extent() == 1 ) {
+    Handle(SALOME_InteractiveObject) anIO = aSelList.First();
     Standard_Boolean aRes;
     GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes );
     if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
@@ -235,9 +239,7 @@ void RepairGUI_DivideEdgeDlg::SelectionIntoArgument()
           GEOM::short_array anIndexes;
 
           TColStd_IndexedMapOfInteger aMap;
-          SalomeApp_Application* anApp =
-            (SalomeApp_Application*)(SUIT_Session::session()->activeApplication());
-          anApp->selectionMgr()->GetIndexes( anIO, aMap );
+          aSelMgr->GetIndexes( anIO, aMap );
 
           if ( aMap.Extent() == 1 ) { // local selection
             int anIndex = aMap( 1 );
index 6f26180e5dd509c2935313d505b4da33e68748d2..e4d51166718c81e94493eb8051c201d5dfc87bf7 100644 (file)
@@ -196,12 +196,16 @@ void RepairGUI_FreeBoundDlg::onActivate()
 //=================================================================================
 void RepairGUI_FreeBoundDlg::onSelectionDone()
 {
-  if ( IObjectCount() != 1 )
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if ( aSelList.Extent() != 1 )
     return;
 
   Standard_Boolean isOk = Standard_False;
   GEOM::GEOM_Object_var anObj =
-    GEOMBase::ConvertIOinGEOMObject( firstIObject(), isOk );
+    GEOMBase::ConvertIOinGEOMObject( aSelList.First(), isOk );
 
   if ( !isOk || anObj->_is_nil() || !GEOMBase::IsShape( anObj ) )
     return;
index 89afe958095c6e805187482b2711a94f9aa1ce02..fa692516a1332992aba4458b388c2731e82b5bc8 100644 (file)
@@ -228,14 +228,19 @@ void RepairGUI_FreeFacesDlg::Init()
 void RepairGUI_FreeFacesDlg::onSelectionDone()
 {
   erasePreview();
-  if ( IObjectCount() != 1 ) {
+
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if ( aSelList.Extent() != 1 ) {
     myEdit->setText( "" );
     return;
   }
 
   Standard_Boolean isOk = Standard_False;
   GEOM::GEOM_Object_var anObj =
-    GEOMBase::ConvertIOinGEOMObject( firstIObject(), isOk );
+    GEOMBase::ConvertIOinGEOMObject( aSelList.First(), isOk );
 
   if ( !isOk || anObj->_is_nil() || !GEOMBase::IsShape( anObj ) ) {
     myEdit->setText( "" );
index 12c2a202118d59c9271bb6cf5f997ba6e8a2d1cb..c3ddfef0eb2a930007f9d9601fa2891d2d78b302 100644 (file)
@@ -290,8 +290,12 @@ void RepairGUI_GlueDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   myObject = GEOM::GEOM_Object::_nil();
 
-  if ( IObjectCount() == 1 ) {
-    Handle(SALOME_InteractiveObject) anIO = firstIObject();
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if ( aSelList.Extent() == 1 ) {
+    Handle(SALOME_InteractiveObject) anIO = aSelList.First();
     Standard_Boolean aRes;
     myObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes );
     if ( aRes )
@@ -423,9 +427,13 @@ bool RepairGUI_GlueDlg::execute( ObjectList& objects )
       QMap<QString, char> selected;
 
       // Get names of selected objects
-      SALOME_ListIteratorOfListIO it ( selectedIO() );
-      for ( ; it.More(); it.Next() ) 
-        selected.insert( it.Value()->getName(), 0 );
+      LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+      SALOME_ListIO aSelList;
+      aSelMgr->selectedObjects(aSelList);
+
+      SALOME_ListIteratorOfListIO it (aSelList);
+      for (; it.More(); it.Next()) 
+        selected.insert(it.Value()->getName(), 0);
 
       // Iterate through result and select objects with names from selection
       // ObjectList toRemoveFromEnggine;
@@ -693,8 +701,12 @@ void RepairGUI_GlueDlg::updateButtonState()
   }
   else
   {
+    LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+    SALOME_ListIO aSelList;
+    aSelMgr->selectedObjects(aSelList);
+
     bool wasSelected = false;
-    SALOME_ListIteratorOfListIO it ( selectedIO() );
+    SALOME_ListIteratorOfListIO it (aSelList);
     if (it.More() > 0)
       wasSelected = true;
     bool wasDetected = myTmpObjs.size() ? true : false;
index 2ec52ea0ac3bb1fe8bc377e21aa75f35c9a27e81..fa70849328670f55fe34d253a4556fe028f794e3 100644 (file)
@@ -161,8 +161,12 @@ void RepairGUI_RemoveExtraEdgesDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   QString aName;
   
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
   if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
-    if ( IObjectCount() != 1 ) {
+    if ( aSelList.Extent() != 1 ) {
       if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
         myOkObject = false;
       return;
@@ -172,7 +176,7 @@ void RepairGUI_RemoveExtraEdgesDlg::SelectionIntoArgument()
   // nbSel == 1
   Standard_Boolean testResult = Standard_False;
   GEOM::GEOM_Object_ptr aSelectedObject =
-    GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+    GEOMBase::ConvertIOinGEOMObject( aSelList.First(), testResult );
 
   if ( !testResult )
     return;
index d8b0347a7601827f62c6638b52142d99fdbac384..798b52595a6b7f30fa1cfa076c80b516a20d0da3 100644 (file)
@@ -184,8 +184,12 @@ void RepairGUI_RemoveHolesDlg::SelectionIntoArgument()
   if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myObject = GEOM::GEOM_Object::_nil();
   else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) myWiresInd->length( 0 );
 
-  if ( IObjectCount() == 1 ) {
-    Handle(SALOME_InteractiveObject) anIO = firstIObject();
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if ( aSelList.Extent() == 1 ) {
+    Handle(SALOME_InteractiveObject) anIO = aSelList.First();
 
     if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {   // face selection
       Standard_Boolean aRes;
@@ -198,7 +202,7 @@ void RepairGUI_RemoveHolesDlg::SelectionIntoArgument()
     else if ( myEditCurrentArgument == GroupPoints->LineEdit2 && 
              !GroupPoints->CheckButton1->isChecked() ) {
       TColStd_IndexedMapOfInteger aMap;
-      ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr()->GetIndexes( anIO, aMap );
+      aSelMgr->GetIndexes( anIO, aMap );
       const int n = aMap.Extent();
       myWiresInd->length( n );
       for ( int i = 1; i <= n; i++ )
index 3f866d513d529d7ff45db896c94469718b2836d2..ba164138290323570c8a26b7c2b27195d0663383 100644 (file)
@@ -172,8 +172,12 @@ void RepairGUI_RemoveIntWiresDlg::SelectionIntoArgument()
   if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myObject = GEOM::GEOM_Object::_nil();
   else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) myWiresInd->length( 0 );
 
-  if ( IObjectCount() == 1 ) {
-    Handle(SALOME_InteractiveObject) anIO = firstIObject();
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if ( aSelList.Extent() == 1 ) {
+    Handle(SALOME_InteractiveObject) anIO = aSelList.First();
     
     if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {   // face selection
       Standard_Boolean aRes;
@@ -186,7 +190,7 @@ void RepairGUI_RemoveIntWiresDlg::SelectionIntoArgument()
     else if ( myEditCurrentArgument == GroupPoints->LineEdit2 && 
              !GroupPoints->CheckButton1->isChecked() ) {
       TColStd_IndexedMapOfInteger aMap;
-      ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr()->GetIndexes( anIO, aMap );
+      aSelMgr->GetIndexes( anIO, aMap );
       const int n = aMap.Extent();
       myWiresInd->length( n );
       for ( int i = 1; i <= n; i++ )
index 4055f3df614ee740a13c746e171cdfb9481aa1af..a6d8f1cbadf86600f4066d52e678cb87abb416e1 100644 (file)
@@ -177,8 +177,12 @@ void RepairGUI_SewingDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   myObject = GEOM::GEOM_Object::_nil();
 
-  if ( IObjectCount() == 1 ) {
-    Handle(SALOME_InteractiveObject) anIO = firstIObject();
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if ( aSelList.Extent() == 1 ) {
+    Handle(SALOME_InteractiveObject) anIO = aSelList.First();
     Standard_Boolean aRes;
     myObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes );
     if ( aRes )
index fed28dc93455fcf9678ac61509188648ef7de1be..1abf61dc17933905400be268abb1c6caa8aa21cb 100755 (executable)
@@ -358,10 +358,14 @@ void RepairGUI_ShapeProcessDlg::selectionChanged()
 {
   reset();
        
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
   Standard_Boolean aRes = Standard_False;
   int i = 0;
-  myObjects->length( IObjectCount() );
-  for ( SALOME_ListIteratorOfListIO anIt( selectedIO() ); anIt.More(); anIt.Next() ) {
+  myObjects->length(aSelList.Extent());
+  for (SALOME_ListIteratorOfListIO anIt (aSelList); anIt.More(); anIt.Next()) {
     GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( anIt.Value(), aRes );
     if ( !CORBA::is_nil( aSelectedObject ) && aRes )
        myObjects[i++] = aSelectedObject;
index f3a239ddc8c2ca5559bc1a162dc128d80c09f74f..22a4a80edc10f57e16d547f0aa8067a170f7dddf 100644 (file)
@@ -164,9 +164,15 @@ void RepairGUI_SuppressFacesDlg::SelectionIntoArgument()
   Standard_Boolean aRes = Standard_False;
   int i = 0;
   int numFaces = 0;
-  myObjects->length( IObjectCount() );
+
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  myObjects->length( aSelList.Extent() );
   myFaces.clear();
-  for ( SALOME_ListIteratorOfListIO anIt( selectedIO() ); anIt.More(); anIt.Next() ) {
+
+  for (SALOME_ListIteratorOfListIO anIt (aSelList); anIt.More(); anIt.Next()) {
     Handle(SALOME_InteractiveObject) anIO = anIt.Value();
     GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes );
     if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
@@ -176,7 +182,7 @@ void RepairGUI_SuppressFacesDlg::SelectionIntoArgument()
          GEOM::short_array anIndexes;
 
          TColStd_IndexedMapOfInteger aMap;
-         myGeomGUI->getApp()->selectionMgr()->GetIndexes( anIO, aMap );
+         aSelMgr->GetIndexes( anIO, aMap );
          
          if ( !aMap.IsEmpty() ) {
            Convert( aMap, anIndexes );
index a9079259f98162ff518b83f9b799851bf5133749..efd910eb41e8cb051072e87f9b64ce975dd6d315 100644 (file)
@@ -208,32 +208,36 @@ void TransformationGUI_MirrorDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   QString aName;
 
-  if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
-    int aNbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aName );
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (myEditCurrentArgument == GroupPoints->LineEdit1) {
+    int aNbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aName);
     if ( aNbSel < 1 ) {
-      myObjects.length( 0 );
+      myObjects.length(0);
       return;
     }
-    GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), myObjects );
-    if ( !myObjects.length() )
+    GEOMBase::ConvertListOfIOInListOfGO(aSelList, myObjects);
+    if (!myObjects.length())
       return;
-    if ( aNbSel != 1 )
-      aName = tr( "%1_objects" ).arg( aNbSel );
+    if (aNbSel != 1)
+      aName = tr("%1_objects").arg(aNbSel);
   }
-  else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) {
-    if ( IObjectCount() != 1 ) {
+  else if (myEditCurrentArgument == GroupPoints->LineEdit2) {
+    if (aSelList.Extent() != 1) {
       myArgument = GEOM::GEOM_Object::_nil();
       return;
     }
     Standard_Boolean testResult = Standard_False;
-    GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+    GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
     myArgument = aSelectedObject;
-    if ( !testResult || CORBA::is_nil( myArgument ) )
+    if (!testResult || CORBA::is_nil(myArgument))
       return;
 
-    aName = GEOMBase::GetName( aSelectedObject );
+    aName = GEOMBase::GetName(aSelectedObject);
     
-    if ( testResult && !aSelectedObject->_is_nil() ) {
+    if (testResult && !aSelectedObject->_is_nil()) {
       TopoDS_Shape aShape;
       if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) {
        TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX;
@@ -242,9 +246,8 @@ void TransformationGUI_MirrorDlg::SelectionIntoArgument()
        else if ( getConstructorId() == 2 )
          aNeedType = TopAbs_FACE;
        
-       LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
        TColStd_IndexedMapOfInteger aMap;
-       aSelMgr->GetIndexes( firstIObject(), aMap );
+       aSelMgr->GetIndexes(aSelList.First(), aMap);
        if ( aMap.Extent() == 1 ) {
          int anIndex = aMap( 1 );
          if ( aNeedType == TopAbs_VERTEX )
index 5006f5632ac0d43a81cdc532b8d69045ba0428c5..55128a3a8105d79ed75623ffb24ea292c1d84510 100644 (file)
@@ -279,7 +279,11 @@ void TransformationGUI_MultiRotationDlg::SelectionIntoArgument()
 {
   myEditCurrentArgument->setText( "" );
 
-  if ( IObjectCount() != 1 ) {
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if ( aSelList.Extent() != 1 ) {
     if ( myEditCurrentArgument == GroupPoints->LineEdit1 ||
         myEditCurrentArgument == GroupDimensions->LineEdit1 )
       myBase = GEOM::GEOM_Object::_nil();
@@ -292,7 +296,7 @@ void TransformationGUI_MultiRotationDlg::SelectionIntoArgument()
   // nbSel == 1
   Standard_Boolean testResult = Standard_False;;
   GEOM::GEOM_Object_var aSelectedObject =
-    GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+    GEOMBase::ConvertIOinGEOMObject( aSelList.First(), testResult );
 
   if ( !testResult || CORBA::is_nil( aSelectedObject) || !GEOMBase::IsShape( aSelectedObject ) )
     return;
@@ -308,9 +312,8 @@ void TransformationGUI_MultiRotationDlg::SelectionIntoArgument()
       TopoDS_Shape aShape;
          
       if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) {
-       LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
        TColStd_IndexedMapOfInteger aMap;
-       aSelMgr->GetIndexes( firstIObject(), aMap );
+       aSelMgr->GetIndexes( aSelList.First(), aMap );
        if ( aMap.Extent() == 1 ) {
          int anIndex = aMap( 1 );
          aName += QString( ":edge_%1" ).arg( anIndex );
index 716acd4d97bbfa4879194de366c2e3c1a5fee4b7..fe5858128c57b3b26be11d603c3dbad5dc5db458 100644 (file)
@@ -293,7 +293,11 @@ void TransformationGUI_MultiTranslationDlg::SelectionIntoArgument()
 {
   myEditCurrentArgument->setText( "" );
   
-  if ( IObjectCount() != 1 ) {
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if ( aSelList.Extent() != 1 ) {
     if ( myEditCurrentArgument == GroupPoints->LineEdit1 || 
         myEditCurrentArgument == GroupDimensions->LineEdit1 )
       myBase = GEOM::GEOM_Object::_nil();
@@ -307,7 +311,7 @@ void TransformationGUI_MultiTranslationDlg::SelectionIntoArgument()
 
   // nbSel == 1
   Standard_Boolean testResult = Standard_False;;
-  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( aSelList.First(), testResult );
 
   if ( !testResult || CORBA::is_nil( aSelectedObject ) || !GEOMBase::IsShape( aSelectedObject ) )
     return;
@@ -324,9 +328,8 @@ void TransformationGUI_MultiTranslationDlg::SelectionIntoArgument()
       TopoDS_Shape aShape;
       
       if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) {
-       LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
        TColStd_IndexedMapOfInteger aMap;
-       aSelMgr->GetIndexes( firstIObject(), aMap );
+       aSelMgr->GetIndexes( aSelList.First(), aMap );
        if ( aMap.Extent() == 1 ) {
          int anIndex = aMap( 1 );
          aName += QString( ":edge_%1" ).arg( anIndex );
index 15f342d5ac625100920e3723f20bd5cb09c68a76..7ab9318fafcfe915c6a83509670ba54efdb6cb50 100644 (file)
@@ -165,19 +165,23 @@ void TransformationGUI_OffsetDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   QString aName;
 
-  int aNbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aName );
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  int aNbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aName);
   if ( aNbSel < 1 ) {
     myObjects.length( 0 );
     return;
   }
 
   // nbSel > 0
-  GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), myObjects );
-  if ( !myObjects.length() )
+  GEOMBase::ConvertListOfIOInListOfGO (aSelList, myObjects);
+  if (!myObjects.length())
     return;
-  
-  myEditCurrentArgument->setText( aName );
-  
+
+  myEditCurrentArgument->setText(aName);
+
   displayPreview();
 }
 
index 69e759bdb5933d84535c155ea56b26e10962182c..7c6d4b321339d35fba168c0b29641f7e27cfab99 100644 (file)
@@ -220,28 +220,32 @@ void TransformationGUI_PositionDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   QString aName;
 
-  if ( myEditCurrentArgument == Group1->LineEdit1 ) {
-    int aNbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aName );
-    if ( aNbSel < 1 ) {
-      myObjects.length( 0 );
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (myEditCurrentArgument == Group1->LineEdit1) {
+    int aNbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aName);
+    if (aNbSel < 1) {
+      myObjects.length(0);
       displayPreview();
       return;
     }
-    GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), myObjects );
+    GEOMBase::ConvertListOfIOInListOfGO(aSelList, myObjects);
     if ( !myObjects.length() ) {
       displayPreview();
       return;
     }
   }
-  else if ( myEditCurrentArgument == Group1->LineEdit2 ) {
+  else if (myEditCurrentArgument == Group1->LineEdit2) {
     myStartLCS = GEOM::GEOM_Object::_nil();
-    if ( IObjectCount() != 1 ) {
+    if (aSelList.Extent() != 1) {
       displayPreview();
       return;
     }
 
     Standard_Boolean testResult = Standard_False;
-    myStartLCS = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+    myStartLCS = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
     if ( !testResult || CORBA::is_nil( myStartLCS ) ) {
       displayPreview();
       return;
@@ -250,13 +254,13 @@ void TransformationGUI_PositionDlg::SelectionIntoArgument()
   }
   else if ( myEditCurrentArgument == Group1->LineEdit3 ) {
     myEndLCS = GEOM::GEOM_Object::_nil();
-    if ( IObjectCount() != 1 ) {
+    if ( aSelList.Extent() != 1 ) {
       displayPreview();
       return;
     }
     
     Standard_Boolean testResult = Standard_False;
-    myEndLCS = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+    myEndLCS = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
     if ( !testResult || CORBA::is_nil( myEndLCS ) ) {
       displayPreview();
       return;
@@ -268,7 +272,6 @@ void TransformationGUI_PositionDlg::SelectionIntoArgument()
   displayPreview(); 
 }
 
-
 //=================================================================================
 // function : LineEditReturnPressed()
 // purpose  :
index 4d21574cff9363e08ac57c0ca3e230c5b7f24315..b9a21f50357eb183eb7d623d9320664927140a18 100644 (file)
@@ -233,18 +233,22 @@ void TransformationGUI_RotationDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   QString aName;
   
-  if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
-    int aNbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aName );
-    if ( aNbSel < 1) {
-      myObjects.length( 0 );
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (myEditCurrentArgument == GroupPoints->LineEdit1) {
+    int aNbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aName);
+    if (aNbSel < 1) {
+      myObjects.length(0);
       return;
     }
-    GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), myObjects );
-    if ( !myObjects.length() )
+    GEOMBase::ConvertListOfIOInListOfGO(aSelList, myObjects);
+    if (!myObjects.length())
       return;
   }
   else {
-    if ( IObjectCount() != 1 ) {
+    if (aSelList.Extent() != 1) {
       if ( myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 0 )
        myAxis = GEOM::GEOM_Object::_nil();
       else if ( myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 1 )
@@ -257,7 +261,7 @@ void TransformationGUI_RotationDlg::SelectionIntoArgument()
     }
 
     Standard_Boolean testResult = Standard_False;
-    GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+    GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
     if ( !testResult || CORBA::is_nil( aSelectedObject ) )
       return;
     
@@ -268,9 +272,8 @@ void TransformationGUI_RotationDlg::SelectionIntoArgument()
       if ( myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 0 )
        aNeedType = TopAbs_EDGE;
       
-      LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
       TColStd_IndexedMapOfInteger aMap;
-      aSelMgr->GetIndexes( firstIObject(), aMap );
+      aSelMgr->GetIndexes(aSelList.First(), aMap);
       if ( aMap.Extent() == 1 ) {
        int anIndex = aMap( 1 );
        if ( aNeedType == TopAbs_EDGE )
index 03619339c793fddb0b9bcf74a9d319755d437901..3202cf0a6be02df47fd5e777e2a75870a9bc1b8d 100644 (file)
@@ -258,36 +258,39 @@ void TransformationGUI_ScaleDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   QString aName;
 
-  if ( myEditCurrentArgument == LineEdit1 )
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (myEditCurrentArgument == LineEdit1)
   {
-    int aNbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aName );
-    if ( aNbSel < 1 )
+    int aNbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aName);
+    if (aNbSel < 1)
     {
-      myObjects.length( 0 );
+      myObjects.length(0);
       return;
     }
-    GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), myObjects );
-    if ( !myObjects.length() )
+    GEOMBase::ConvertListOfIOInListOfGO(aSelList, myObjects);
+    if (!myObjects.length())
       return;
   }
-  else if ( myEditCurrentArgument == LineEdit2 )
+  else if (myEditCurrentArgument == LineEdit2)
   {
     GEOM::GEOM_Object_var aSelectedObject = GEOM::GEOM_Object::_nil();
-    if ( IObjectCount() == 1 )
+    if (aSelList.Extent() == 1)
     {
       Standard_Boolean testResult = Standard_False;
-      aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
-      if ( testResult )
+      aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
+      if (testResult)
       {
-        aName = GEOMBase::GetName( aSelectedObject );
+        aName = GEOMBase::GetName(aSelectedObject);
 
         TopoDS_Shape aShape;
-        if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() )
+        if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull())
         {
-          LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
           TColStd_IndexedMapOfInteger aMap;
-          aSelMgr->GetIndexes( firstIObject(), aMap );
-          if ( aMap.Extent() == 1 )
+          aSelMgr->GetIndexes(aSelList.First(), aMap);
+          if (aMap.Extent() == 1)
           {
             int anIndex = aMap( 1 );
             aName += QString( ":vertex_%1" ).arg( anIndex );
@@ -318,7 +321,7 @@ void TransformationGUI_ScaleDlg::SelectionIntoArgument()
     myPoint = aSelectedObject;
   }
 
-  myEditCurrentArgument->setText( aName );
+  myEditCurrentArgument->setText(aName);
   displayPreview();
 }
 
index 2ba0131c513b6866d8b588e7b7884c5a166db230..164419060fc7daa5942df2c078376b26c83e0fb3 100644 (file)
@@ -274,32 +274,36 @@ void TransformationGUI_TranslationDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
   QString aName;
   
-  if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
-    int aNbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aName );
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO aSelList;
+  aSelMgr->selectedObjects(aSelList);
+
+  if (myEditCurrentArgument == GroupPoints->LineEdit1) {
+    int aNbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aName);
     
-    if ( aNbSel < 1 ) {
-      myObjects.length( 0 );
+    if (aNbSel < 1) {
+      myObjects.length(0);
          return;
     }
-    GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), myObjects );
-    if ( !myObjects.length() )
+    GEOMBase::ConvertListOfIOInListOfGO(aSelList, myObjects);
+    if (!myObjects.length())
       return;
   }
   else {
-    if ( IObjectCount() != 1 ) {
-      if ( myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 1 )
+    if (aSelList.Extent() != 1 ) {
+      if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 1)
        myPoint1 = GEOM::GEOM_Object::_nil();
-      else if ( myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 2 )
+      else if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 2)
        myVector = GEOM::GEOM_Object::_nil();
-      else if ( myEditCurrentArgument == GroupPoints->LineEdit3 )
+      else if (myEditCurrentArgument == GroupPoints->LineEdit3)
        myPoint2 = GEOM::GEOM_Object::_nil();
       return;
     }
+
+    Standard_Boolean testResult = Standard_False;
+    GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult);
     
-    Standard_Boolean testResult = Standard_False;;
-    GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
-    
-    if ( !testResult || CORBA::is_nil( aSelectedObject ) )
+    if (!testResult || CORBA::is_nil(aSelectedObject))
       return;
     
     TopoDS_Shape aShape;
@@ -310,9 +314,8 @@ void TransformationGUI_TranslationDlg::SelectionIntoArgument()
       if ( myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 2 )
         aNeedType = TopAbs_EDGE;
 
-      LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
       TColStd_IndexedMapOfInteger aMap;
-      aSelMgr->GetIndexes( firstIObject(), aMap );
+      aSelMgr->GetIndexes(aSelList.First(), aMap);
       if ( aMap.Extent() == 1 )
       {
         int anIndex = aMap( 1 );
@@ -354,7 +357,6 @@ void TransformationGUI_TranslationDlg::SelectionIntoArgument()
   displayPreview();
 }
 
-
 //=================================================================================
 // function : LineEditReturnPressed()
 // purpose  :
@@ -451,22 +453,26 @@ GEOM::GEOM_IOperations_ptr TransformationGUI_TranslationDlg::createOperation()
 bool TransformationGUI_TranslationDlg::isValid( QString& /*msg*/ )
 {
   int aConstructorId = getConstructorId();
-  
-  switch ( aConstructorId ) {
+
+  switch (aConstructorId) {
   case 0: 
     {
-      Handle(SALOME_InteractiveObject) IO = firstIObject();
-      Standard_Boolean testResult;
-      GEOM::GEOM_Object_var anObject = GEOMBase::ConvertIOinGEOMObject( IO, testResult );
-      if ( !testResult || anObject->_is_nil() )
-       return false;
-      
-      return !( myObjects.length() == 0 );
+      //LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+      //SALOME_ListIO aSelList;
+      //aSelMgr->selectedObjects(aSelList);
+      //
+      //Handle(SALOME_InteractiveObject) IO = aSelList.First();
+      //Standard_Boolean testResult;
+      //GEOM::GEOM_Object_var anObject = GEOMBase::ConvertIOinGEOMObject(IO, testResult);
+      //if (!testResult || anObject->_is_nil())
+      //  return false;
+
+      return !(myObjects.length() == 0);
     }
   case 1: 
-    return !( myObjects.length() == 0 || myPoint1->_is_nil() || myPoint2->_is_nil() );
+    return !(myObjects.length() == 0 || myPoint1->_is_nil() || myPoint2->_is_nil());
   case 2: 
-    return !( myObjects.length() == 0 || myVector->_is_nil() );
+    return !( myObjects.length() == 0 || myVector->_is_nil());
   default: 
     break;
   }
@@ -494,7 +500,8 @@ bool TransformationGUI_TranslationDlg::execute( ObjectList& objects )
       if ( toCreateCopy ) {
        for ( int i = 0; i < myObjects.length(); i++ ) {
          myCurrObject = myObjects[i];
-         anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->TranslateDXDYDZCopy( myObjects[i], dx, dy, dz );
+         anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->
+            TranslateDXDYDZCopy( myObjects[i], dx, dy, dz );
          if ( !anObj->_is_nil() )
            objects.push_back( anObj._retn() );
        }
@@ -502,7 +509,8 @@ bool TransformationGUI_TranslationDlg::execute( ObjectList& objects )
       else {
        for ( int i = 0; i < myObjects.length(); i++ ) {
          myCurrObject = myObjects[i];
-         anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->TranslateDXDYDZ( myObjects[i], dx, dy, dz );
+         anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->
+            TranslateDXDYDZ( myObjects[i], dx, dy, dz );
          if ( !anObj->_is_nil() )
            objects.push_back( anObj._retn() );
        }
@@ -515,7 +523,8 @@ bool TransformationGUI_TranslationDlg::execute( ObjectList& objects )
       if ( toCreateCopy ) {
        for ( int i = 0; i < myObjects.length(); i++ ) {
          myCurrObject = myObjects[i];
-         anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->TranslateTwoPointsCopy( myObjects[i], myPoint1, myPoint2 );
+         anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->
+            TranslateTwoPointsCopy( myObjects[i], myPoint1, myPoint2 );
          if ( !anObj->_is_nil() )
            objects.push_back( anObj._retn() );
        }
@@ -523,7 +532,8 @@ bool TransformationGUI_TranslationDlg::execute( ObjectList& objects )
       else {
        for ( int i = 0; i < myObjects.length(); i++ ) {
          myCurrObject = myObjects[i];
-         anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->TranslateTwoPoints( myObjects[i], myPoint1, myPoint2 );   
+         anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->
+            TranslateTwoPoints( myObjects[i], myPoint1, myPoint2 );    
          if ( !anObj->_is_nil() )
            objects.push_back( anObj._retn() );
        }