X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_WidgetSelector.cpp;h=e8c6093438fc650319046cad21c6f5ddeeb31844;hb=eef14b29d313b9dd16453d12f20aa02383ee139c;hp=0f0b2c15a8eda3efe5a491fa3fa50df0ec93a98b;hpb=a7421299e56287e8e55310d7e3d8623e72933f00;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_WidgetSelector.cpp b/src/ModuleBase/ModuleBase_WidgetSelector.cpp index 0f0b2c15a..e8c609343 100755 --- a/src/ModuleBase/ModuleBase_WidgetSelector.cpp +++ b/src/ModuleBase/ModuleBase_WidgetSelector.cpp @@ -9,6 +9,10 @@ #include #include #include +#include +#include +#include +#include #include @@ -40,8 +44,6 @@ void ModuleBase_WidgetSelector::getGeomSelection(const ModuleBase_ViewerPrs& the //******************************************************************** void ModuleBase_WidgetSelector::onSelectionChanged() { - clearAttribute(); - QList aSelected = getFilteredSelected(); bool isDone = setSelection(aSelected, true/*false*/); @@ -54,6 +56,9 @@ void ModuleBase_WidgetSelector::onSelectionChanged() // calls validators for the feature and, as a result, updates the Apply button state. updateObject(myFeature); + // we need to forget about previous validation result as the current selection can influence on it + clearValidatedCash(); + if (isDone) updateFocus(); } @@ -110,7 +115,7 @@ bool ModuleBase_WidgetSelector::acceptSubShape(const GeomShapePtr& theShape, } //******************************************************************** -void ModuleBase_WidgetSelector::activateSelectionAndFilters(bool toActivate) +bool ModuleBase_WidgetSelector::activateSelectionAndFilters(bool toActivate) { updateSelectionName(); @@ -119,7 +124,7 @@ void ModuleBase_WidgetSelector::activateSelectionAndFilters(bool toActivate) } else { myWorkshop->deactivateSubShapesSelection(); } - activateFilters(toActivate); + return activateFilters(toActivate); } //******************************************************************** @@ -171,13 +176,26 @@ void ModuleBase_WidgetSelector::deactivate() } //******************************************************************** -std::string ModuleBase_WidgetSelector::generateName(const AttributePtr& theAttribute) +std::string ModuleBase_WidgetSelector::generateName(const AttributePtr& theAttribute, + ModuleBase_IWorkshop* theWorkshop) { std::string aName; if (theAttribute.get() != NULL) { - std::stringstream aStreamName; - aStreamName << theAttribute->owner()->data()->name() << "/"<< theAttribute->id(); - aName = aStreamName.str(); + ModuleBase_Operation* anOperation = theWorkshop->currentOperation(); + + FeaturePtr aFeature = ModelAPI_Feature::feature(theAttribute->owner()); + if (aFeature.get()) { + std::string aXmlCfg, aDescription; + theWorkshop->module()->getXMLRepresentation(aFeature->getKind(), aXmlCfg, aDescription); + + ModuleBase_WidgetFactory aFactory(aXmlCfg, theWorkshop); + std::string anAttributeTitle; + aFactory.getAttributeTitle(aFeature->getKind(), theAttribute->id(), anAttributeTitle); + + std::stringstream aStreamName; + aStreamName << theAttribute->owner()->data()->name() << "/"<< anAttributeTitle.c_str(); + aName = aStreamName.str(); + } } return aName; }