Salome HOME
Porting SMESH module to Qt 4
[modules/smesh.git] / src / SMESHFiltersSelection / SMESH_NumberFilter.cxx
index 61162a581681c69ff04e618e2371d289cfe132d0..6513be532f87cfe3ec165fc5e85630901f5628ed 100644 (file)
@@ -35,8 +35,9 @@
 #include "SALOMEDSClient_SObject.hxx"
 #include "SALOMEDS_SObject.hxx"
 
-#include <TopTools_MapOfShape.hxx>
 #include <TopExp_Explorer.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+#include <TopExp.hxx>
 
 /*!
  *  Class       : SMESH_NumberFilter
@@ -135,12 +136,13 @@ bool SMESH_NumberFilter::isOk (const SUIT_DataOwner* theDataOwner) const
   if (mySubShapeType == TopAbs_SHAPE);
     return true;
 
-  TopExp_Explorer anExp2 (aShape, mySubShapeType);
-  TopTools_MapOfShape aMap;
-  for (; anExp2.More(); anExp2.Next())
-    aMap.Add(anExp2.Current());
+  TopTools_IndexedMapOfShape aMap;
+  TopExp::MapShapes(aShape, mySubShapeType, aMap);
 
-  return myNumber == aMap.Extent();
+  if ( myNumber )
+    return myNumber == aMap.Extent(); // given number
+
+  return aMap.Extent(); // at least one?
 }
 
 //=======================================================================
@@ -163,7 +165,7 @@ GEOM::GEOM_Object_ptr SMESH_NumberFilter::getGeom
   _PTR(Study) study = appStudy->studyDS();
   QString entry = owner->entry();
 
-  _PTR(SObject) aSO( study->FindObjectID( entry.latin1() ) ), aRefSO;
+  _PTR(SObject) aSO( study->FindObjectID( entry.toLatin1().data() ) ), aRefSO;
   if( extractReference && aSO && aSO->ReferencedObject( aRefSO ) )
     aSO = aRefSO;