Salome HOME
Now filter accepts and stores kind of object as qstring (instead char*) and takes...
authorasl <asl@opencascade.com>
Thu, 7 Jul 2005 08:53:20 +0000 (08:53 +0000)
committerasl <asl@opencascade.com>
Thu, 7 Jul 2005 08:53:20 +0000 (08:53 +0000)
src/SMESHFiltersSelection/SMESH_NumberFilter.cxx
src/SMESHFiltersSelection/SMESH_NumberFilter.hxx

index 3f0cd8834bfbc16666048532837aa1941f8c356b..08e1aca48c42a6159d9f09af1d61af957c177469 100644 (file)
 // name    : SMESH_NumberFilter::SMESH_NumberFilter
 // Purpose : Constructor
 //=======================================================================
-SMESH_NumberFilter::SMESH_NumberFilter (const char*            theKind,
+SMESH_NumberFilter::SMESH_NumberFilter (const QString&         theKind,
                                         const TopAbs_ShapeEnum theSubShapeType,
                                         const int              theNumber,
                                         const TopAbs_ShapeEnum theShapeType,
                                         GEOM::GEOM_Object_ptr  theMainObj,
                                         const bool             theIsClosedOnly)
 {
-  myKind = (char*)theKind;
+  myKind = theKind;
   mySubShapeType = theSubShapeType;
   myNumber = theNumber;
   myIsClosedOnly = theIsClosedOnly;
@@ -47,14 +47,14 @@ SMESH_NumberFilter::SMESH_NumberFilter (const char*            theKind,
 // name    : SMESH_NumberFilter::SMESH_NumberFilter
 // Purpose : Constructor
 //=======================================================================
-SMESH_NumberFilter::SMESH_NumberFilter (const char*                 theKind,
+SMESH_NumberFilter::SMESH_NumberFilter (const QString&              theKind,
                                         const TopAbs_ShapeEnum      theSubShapeType,
                                         const int                   theNumber,
                                         const TColStd_MapOfInteger& theShapeTypes,
                                         GEOM::GEOM_Object_ptr       theMainObj,
                                         const bool                  theIsClosedOnly )
 {
-  myKind = (char*)theKind;
+  myKind = theKind;
   mySubShapeType = theSubShapeType;
   myNumber = theNumber;
   myIsClosedOnly = theIsClosedOnly;
@@ -145,6 +145,11 @@ GEOM::GEOM_Object_ptr SMESH_NumberFilter::getGeom
   if (!aSO)
     return GEOM::GEOM_Object::_nil();
 
+  _PTR(SComponent) objComponent = aSO->GetFatherComponent();
+  if( !objComponent || objComponent->ComponentDataType()!=myKind )
+    return GEOM::GEOM_Object::_nil();
+
+
   CORBA::Object_var anObject = _CAST(SObject,aSO)->GetObject();
   anObj = GEOM::GEOM_Object::_narrow(anObject);
   if (!CORBA::is_nil(anObj))
index 6b341129374162fae8959a730f6e289440bff7f9..a4f911e6281f97f385f73142faa187cd688756f3 100644 (file)
@@ -6,6 +6,8 @@
 
 #include "SUIT_SelectionFilter.h"
 
+#include <qstring.h>
+
 #include <TopAbs_ShapeEnum.hxx>
 #include <TColStd_MapOfInteger.hxx>
 
@@ -29,14 +31,14 @@ class SUIT_DataOwner;
 class SMESH_NumberFilter : public SUIT_SelectionFilter
 {
  public:
-  SMESH_NumberFilter (const char*            theKind,
+  SMESH_NumberFilter (const QString&         theKind,
                       const TopAbs_ShapeEnum theSubShapeType,
                       const int              theNumber,
                       const TopAbs_ShapeEnum theShapeType = TopAbs_SHAPE,
                       GEOM::GEOM_Object_ptr  theMainObj = GEOM::GEOM_Object::_nil(),
                       const bool             theIsClosedOnly = false );
 
-  SMESH_NumberFilter (const char*                 theKind,
+  SMESH_NumberFilter (const QString&              theKind,
                       const TopAbs_ShapeEnum      theSubShapeType,
                       const int                   theNumber,
                       const TColStd_MapOfInteger& theShapeTypes,
@@ -58,7 +60,7 @@ class SMESH_NumberFilter : public SUIT_SelectionFilter
   GEOM::GEOM_Object_ptr getGeom (const SUIT_DataOwner*) const;
 
  private:
-  char*                 myKind;
+  QString               myKind;
   TopAbs_ShapeEnum      mySubShapeType;
   int                   myNumber;
   bool                  myIsClosedOnly;