}
}
}
+ emit valuesChanged();
// the updateObject method should be called to flush the updated sigal. The workshop listens it,
// calls validators for the feature and, as a result, updates the Apply button state.
updateObject(myFeature);
-
- emit valuesChanged();
}
//********************************************************************
AttributeSelectionPtr aAttr = theList->value(i);
myListControl->addItem(aAttr->namingName().c_str());
}
+ // We have to call repaint because sometimes the List control is not updated
+ myListControl->repaint();
}
//********************************************************************
//#define DEBUG_DISPLAY
//#define DEBUG_ACTIVATE
//#define DEBUG_FEATURE_REDISPLAY
-#define DEBUG_SELECTION_FILTERS
+//#define DEBUG_SELECTION_FILTERS
// Workaround for bug #25637
void displayedObjects(const Handle(AIS_InteractiveContext)& theAIS, AIS_ListOfInteractive& theList)
if (theFilter.Access() == aIt.Value().Access())
return;
}
- GetFilter()->Add(theFilter);
+ Handle(SelectMgr_CompositionFilter) aCompFilter = GetFilter();
+ const SelectMgr_ListOfFilter& aStoredFilters = aCompFilter->StoredFilters();
+ for (aIt.Initialize(aStoredFilters); aIt.More(); aIt.Next()) {
+ if (theFilter.Access() == aIt.Value().Access())
+ return;
+ }
+ aCompFilter->Add(theFilter);
#ifdef DEBUG_SELECTION_FILTERS
int aCount = GetFilter()->StoredFilters().Extent();
qDebug(QString("addSelectionFilter: filters.count() = %1").arg(aCount).toStdString().c_str());