- if (myEditCurrentArgument == GroupPoints->LineEdit1) myOkBase = false;
- else if (myEditCurrentArgument == GroupPoints->LineEdit2) myOkAxis = false;
-
- LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
- SALOME_ListIO aSelList;
- aSelMgr->selectedObjects(aSelList);
-
- if (aSelList.Extent() < 1)
- return;
-
- GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject( aSelList.First() );
- QString aName = GEOMBase::GetName(aSelectedObject);
-
- if ( aSelectedObject->_is_nil() )
- return;
-
- TopoDS_Shape S;
- if (!GEOMBase::GetShape(aSelectedObject, S) || S.IsNull())
- return;
-
- if (myEditCurrentArgument == GroupPoints->LineEdit1) {
- myOkBase = false;
- if (aSelList.Extent() > 1)
- aName = QString( "%1_objects").arg( aSelList.Extent() );
-
- if ( aSelList.Extent() > 0 ) {
- GEOMBase::ConvertListOfIOInListOfGO(aSelList, myBaseObjects, true);
- // check base shapes
- for (int i=0; i < myBaseObjects.length(); i++) {
- GEOMBase::GetShape(myBaseObjects[i], S);
- if (!isAcceptableBase(S))
- return;
- }
+
+ if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
+ myBaseObjects.clear();
+ QList<GEOM::GeomObjPtr> objects = getSelected( TopAbs_SHAPE, -1 );
+ for ( int i = 0; i < objects.count(); i++ ) {
+ GEOM::shape_type stype = objects[i]->GetMaxShapeType();
+ if ( stype < GEOM::SHELL || stype > GEOM::VERTEX )
+ continue;
+ myBaseObjects << objects[i];
+ }
+ if ( !myBaseObjects.isEmpty() ) {
+ QString aName = myBaseObjects.count() > 1 ? QString( "%1_objects").arg( myBaseObjects.count() ) : GEOMBase::GetName( myBaseObjects[0].get() );