X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_FilterFactory.cpp;h=f89d6e71b8d931287684c92440f03c13ebb07138;hb=0cea3be102af7247b2fe2c8035a1bb38b7bf82ae;hp=c1fb82fc2d04c846e7dace999e65f1cd46214ecd;hpb=9ade3feafa3ee13af4f9eaf8ffa2b96f7973709b;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_FilterFactory.cpp b/src/ModuleBase/ModuleBase_FilterFactory.cpp index c1fb82fc2..f89d6e71b 100644 --- a/src/ModuleBase/ModuleBase_FilterFactory.cpp +++ b/src/ModuleBase/ModuleBase_FilterFactory.cpp @@ -16,7 +16,7 @@ void ModuleBase_FilterFactory::registerFilter(const std::string& theID, - Handle(ModuleBase_Filter) theFilter) + ModuleBase_Filter* theFilter) { if (myIDs.find(theID) != myIDs.end()) { Events_Error::send(std::string("Filter ") + theID + " is already registered"); @@ -48,7 +48,7 @@ void ModuleBase_FilterFactory::assignFilter(const std::string& theID, void ModuleBase_FilterFactory::filters(const std::string& theFeatureID, const std::string& theAttrID, SelectMgr_ListOfFilter& theFilters/*, - std::list& theFilters/*, + std::list& theFilters/*, std::list >& theArguments*/) const { SelectMgr_ListOfFilter aFilters; @@ -60,16 +60,17 @@ void ModuleBase_FilterFactory::filters(const std::string& theFeatureID, if (anAttr != aFeature->second.end()) { AttrFilters::const_iterator aValIter = anAttr->second.cbegin(); for (; aValIter != anAttr->second.cend(); aValIter++) { - std::map::const_iterator aFound = myIDs.find( + std::map::const_iterator aFound = myIDs.find( aValIter->first); if (aFound == myIDs.end()) { Events_Error::send(std::string("Filter ") + aValIter->first + " was not registered"); } else { - Handle(ModuleBase_Filter) aFilter = aFound->second; - if (aFilter.IsNull()) - continue; + ModuleBase_Filter* aFilter = aFound->second; + aFilter->setArguments(aValIter->second); + //if (aFilter.IsNull()) + // continue; - theFilters.Append(aFilter);//aFound->second); + theFilters.Append(aFilter->getFilter());//aFound->second); //theArguments.push_back(aValIter->second); } } @@ -83,9 +84,9 @@ ModuleBase_FilterFactory::ModuleBase_FilterFactory() //registerFilter(kDefaultId, new Model_FeatureFilter); } -const Handle(ModuleBase_Filter) ModuleBase_FilterFactory::filter(const std::string& theID) const +const ModuleBase_Filter* ModuleBase_FilterFactory::filter(const std::string& theID) const { - std::map::const_iterator aIt = myIDs.find(theID); + std::map::const_iterator aIt = myIDs.find(theID); if (aIt != myIDs.end()) { return aIt->second; }