X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_IPropertyPanel.cpp;h=c37673303ecbfd26953efe867ab139dfc33c0e08;hb=eef14b29d313b9dd16453d12f20aa02383ee139c;hp=0a87a74c838943d7ac01623d9f3a38c3e125d149;hpb=cbde248859fb0072f6012907391ea90cfc254574;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_IPropertyPanel.cpp b/src/ModuleBase/ModuleBase_IPropertyPanel.cpp index 0a87a74c8..c37673303 100644 --- a/src/ModuleBase/ModuleBase_IPropertyPanel.cpp +++ b/src/ModuleBase/ModuleBase_IPropertyPanel.cpp @@ -9,6 +9,10 @@ #include "ModuleBase_IPropertyPanel.h" #include "ModuleBase_ModelWidget.h" +#include "ModuleBase_ToolBox.h" + +#include +#include ModuleBase_IPropertyPanel::ModuleBase_IPropertyPanel(QWidget* theParent) : QDockWidget(theParent), myIsEditing(false) { @@ -25,12 +29,24 @@ ModuleBase_ModelWidget* ModuleBase_IPropertyPanel::findFirstAcceptingValueWidget { ModuleBase_ModelWidget* aFirstWidget = 0; + ModelAPI_ValidatorsFactory* aValidators = ModelAPI_Session::get()->validators(); + ModuleBase_ModelWidget* aWgt; QList::const_iterator aWIt; + bool isOffToolBox = false; for (aWIt = theWidgets.begin(); aWIt != theWidgets.end() && !aFirstWidget; ++aWIt) { aWgt = (*aWIt); - if (aWgt->canSetValue()) - aFirstWidget = aWgt; + if (!aValidators->isCase(aWgt->feature(), aWgt->attributeID())) + continue; // this attribute is not participated in the current case + + if (!aWgt->canSetValue()) + continue; + + /// workaround for the same attributes used in different stacked widgets(attribute types) + if (ModuleBase_ToolBox::isOffToolBoxParent(aWgt)) + continue; + + aFirstWidget = aWgt; } return aFirstWidget; }