-// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Purpose : Constructor
//=======================================================================
SMESH_LogicalFilter::SMESH_LogicalFilter (const QList<SUIT_SelectionFilter*>& theFilters,
- const int theLogOp)
+ const int theLogOp,
+ bool takeOwnership)
+ : myOwnership( takeOwnership )
{
setFilters(theFilters);
setOperation(theLogOp);
//=======================================================================
SMESH_LogicalFilter::~SMESH_LogicalFilter()
{
+ deleteFilters();
}
//=======================================================================
//=======================================================================
void SMESH_LogicalFilter::setFilters (const QList<SUIT_SelectionFilter*>& theFilters)
{
+ deleteFilters();
myFilters = theFilters;
}
{
return myOperation;
}
+//================================================================================
+/*!
+ * \brief Deletes filters if has an ownership
+ */
+//================================================================================
+
+void SMESH_LogicalFilter::deleteFilters()
+{
+ if ( myOwnership )
+ {
+ SUIT_SelectionFilter* filter;
+ foreach( filter, myFilters )
+ delete filter;
+ }
+}