X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_IPropertyPanel.cpp;h=c37673303ecbfd26953efe867ab139dfc33c0e08;hb=eef14b29d313b9dd16453d12f20aa02383ee139c;hp=a3644773e17efe249c1a61ff1f9e9d8898ae0f3b;hpb=eba31a1e57f60fe3b8822e6905f92f319003698f;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_IPropertyPanel.cpp b/src/ModuleBase/ModuleBase_IPropertyPanel.cpp index a3644773e..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) { @@ -16,16 +20,33 @@ ModuleBase_IPropertyPanel::ModuleBase_IPropertyPanel(QWidget* theParent) : QDock } ModuleBase_ModelWidget* ModuleBase_IPropertyPanel::findFirstAcceptingValueWidget() +{ + return ModuleBase_IPropertyPanel::findFirstAcceptingValueWidget(modelWidgets()); +} + +ModuleBase_ModelWidget* ModuleBase_IPropertyPanel::findFirstAcceptingValueWidget( + const QList& theWidgets) { ModuleBase_ModelWidget* aFirstWidget = 0; - QList aWidgets = modelWidgets(); + ModelAPI_ValidatorsFactory* aValidators = ModelAPI_Session::get()->validators(); + ModuleBase_ModelWidget* aWgt; QList::const_iterator aWIt; - for (aWIt = aWidgets.begin(); aWIt != aWidgets.end() && !aFirstWidget; ++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; }