X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_PropertyPanel.cpp;h=0099869f50e86fd6cc92f88e407822eabf49d33e;hb=814a346c0ef4b2625779c5ef96be5ff87980acbb;hp=d0217ac1a0ec73e3f4cc3a2b6f5b3416ea077b79;hpb=47744089c9902a007dc3d8474497b1ea4fe5c9c0;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_PropertyPanel.cpp b/src/XGUI/XGUI_PropertyPanel.cpp index d0217ac1a..0099869f5 100644 --- a/src/XGUI/XGUI_PropertyPanel.cpp +++ b/src/XGUI/XGUI_PropertyPanel.cpp @@ -220,16 +220,24 @@ void XGUI_PropertyPanel::createContentPanel(FeaturePtr theFeature) if (theFeature->isAction() || !theFeature->data()) return; + ModuleBase_Operation* anOperation = myOperationMgr->currentOperation(); if (myWidgets.empty()) { - ModuleBase_Operation* anOperation = myOperationMgr->currentOperation(); QString aXmlRepr = anOperation->getDescription()->xmlRepresentation(); ModuleBase_WidgetFactory aFactory(aXmlRepr.toStdString(), myOperationMgr->workshop()); - aFactory.createPanel(contentWidget(), theFeature); - /// Apply button should be update if the feature was modified by the panel + ModuleBase_PageBase* aPage = contentWidget(); + aFactory.createPanel(aPage, theFeature); + // update model widgets if exist + setModelWidgets(aPage->modelWidgets()); + // Apply button should be update if the feature was modified by the panel myOperationMgr->onValidateOperation(); } - updateApplyPlusButton(theFeature); + ModuleBase_OperationFeature* aFeatureOp = + dynamic_cast(anOperation); + if (aFeatureOp && (!aFeatureOp->isEditOperation())) + updateApplyPlusButton(theFeature); + else + findButton(PROP_PANEL_OK_PLUS)->setVisible(false); } void XGUI_PropertyPanel::updateApplyPlusButton(FeaturePtr theFeature) @@ -473,7 +481,7 @@ bool XGUI_PropertyPanel::focusNextPrevChild(bool theIsNext) ModuleBase_ModelWidget* aNewFocusMWidget = ModuleBase_ModelWidget::findModelWidget(this, aNewFocusWidget); if (aNewFocusMWidget) { - if (aFocusMWidget) { + if (aFocusMWidget && (aFocusMWidget != aNewFocusMWidget)) { aFocusMWidget->setHighlighted(false); } aNewFocusMWidget->emitFocusInWidget();