+bool XGUI_WorkshopListener::customizeCurrentObject(const std::set<ObjectPtr>& theObjects,
+ bool theForceRedisplay)
+{
+ XGUI_OperationMgr* anOperationMgr = workshop()->operationMgr();
+ FeaturePtr aCurrentFeature;
+ if (anOperationMgr->hasOperation()) {
+ ModuleBase_OperationFeature* aFOperation = dynamic_cast<ModuleBase_OperationFeature*>
+ (anOperationMgr->currentOperation());
+ if (aFOperation) {
+ aCurrentFeature = aFOperation->feature();
+ }
+ }
+
+ bool aCustomized = false;
+ if (aCurrentFeature.get()) {
+ // the customize presentation should be redisplayed if force redislayed is true or
+ // if a list of message objects contains the operation feature for case when
+ // the feature is hidden, but arguments of the feature are modified
+ // e.g. extrusion is hidden(h=0) but sketch is chosen
+ if (theForceRedisplay || theObjects.find(aCurrentFeature) != theObjects.end()) {
+ aCustomized = myWorkshop->module()->customizeObject(aCurrentFeature,
+ ModuleBase_IModule::CustomizeArguments, false);
+ aCustomized = myWorkshop->module()->customizeObject(aCurrentFeature,
+ ModuleBase_IModule::CustomizeResults, false);
+ aCustomized = myWorkshop->module()->customizeObject(aCurrentFeature,
+ ModuleBase_IModule::CustomizeHighlightedObjects, false);
+ }
+ }
+ return aCustomized;