From: jfa Date: Wed, 18 Nov 2009 10:31:24 +0000 (+0000) Subject: Mantis issue 0020435: EDF 909 GEOM : Show Only Selected. X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=0e09658fa34d42cc56da07f77b4d5e0799572330;p=modules%2Fgeom.git Mantis issue 0020435: EDF 909 GEOM : Show Only Selected. --- diff --git a/src/GEOMFiltersSelection/GEOM_SelectionFilter.cxx b/src/GEOMFiltersSelection/GEOM_SelectionFilter.cxx index a8360dc51..929bed410 100644 --- a/src/GEOMFiltersSelection/GEOM_SelectionFilter.cxx +++ b/src/GEOMFiltersSelection/GEOM_SelectionFilter.cxx @@ -18,7 +18,7 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// + #include "GEOM_SelectionFilter.h" #include "GEOM_Client.hxx" @@ -65,6 +65,19 @@ bool GEOM_SelectionFilter::isOk( const SUIT_DataOwner* sOwner ) const if ( getShape( obj, shape ) ) return contains( shape.ShapeType() ) && isShapeOk( shape ); } + + // IMP 0020435: fine local selection + { + const LightApp_DataOwner* owner = dynamic_cast(sOwner); + if (owner) { + QString entry = owner->entry(); + int index = entry.lastIndexOf("_"); + if (index > 0) { + return true; + } + } + } + return false; } @@ -72,7 +85,8 @@ bool GEOM_SelectionFilter::isOk( const SUIT_DataOwner* sOwner ) const // function : getObject // purpose : //======================================================================= -GEOM::GEOM_Object_ptr GEOM_SelectionFilter::getObject( const SUIT_DataOwner* sOwner, const bool extractReference ) const +GEOM::GEOM_Object_ptr GEOM_SelectionFilter::getObject (const SUIT_DataOwner* sOwner, + const bool extractReference) const { GEOM::GEOM_Object_var anObj; @@ -119,18 +133,18 @@ bool GEOM_SelectionFilter::getShape (const GEOM::GEOM_Object_ptr& theObject, SALOME_LifeCycleCORBA* ls = new SALOME_LifeCycleCORBA( app->namingService() ); static GEOM::GEOM_Gen_var geomGen; if(CORBA::is_nil( geomGen )) { - Engines::Component_var comp = ls->FindOrLoad_Component( "FactoryServer", "GEOM" ); - geomGen = GEOM::GEOM_Gen::_narrow( comp ); + Engines::Component_var comp = ls->FindOrLoad_Component( "FactoryServer", "GEOM" ); + geomGen = GEOM::GEOM_Gen::_narrow( comp ); } if ( !CORBA::is_nil( geomGen ) ) { - TopoDS_Shape aTopoDSShape = GEOM_Client().GetShape( geomGen, theObject ); + TopoDS_Shape aTopoDSShape = GEOM_Client().GetShape( geomGen, theObject ); - if ( !aTopoDSShape.IsNull() ) - { - theShape = aTopoDSShape; - return true; - } + if ( !aTopoDSShape.IsNull() ) + { + theShape = aTopoDSShape; + return true; + } } } }