X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_ErrorMgr.cpp;h=b93c58c09110af825f5282aee538be6906db74c1;hb=1a972d24c2f891d8ae3e3b8cfe324339d28602bc;hp=84b2c90a595d8d8cfa7df8a6813b39d2405c9d05;hpb=48bab462a416cea7ae8d6659209b8a667280cf16;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_ErrorMgr.cpp b/src/XGUI/XGUI_ErrorMgr.cpp index 84b2c90a5..b93c58c09 100644 --- a/src/XGUI/XGUI_ErrorMgr.cpp +++ b/src/XGUI/XGUI_ErrorMgr.cpp @@ -41,17 +41,12 @@ XGUI_ErrorMgr::XGUI_ErrorMgr(QObject* theParent, ModuleBase_IWorkshop* theWorksh : ModuleBase_IErrorMgr(theParent), myErrorDialog(0), myErrorLabel(0), - myWorkshop(theWorkshop) + myWorkshop(theWorkshop), + myAcceptAllToolTip(""), + myAcceptAllStatusTip(""), + myAcceptToolTip(""), + myAcceptStatusTip("") { - ModuleBase_ModelWidget* anActiveWidget = activeWidget(); - XGUI_ActionsMgr* anActionsMgr = workshop()->actionsMgr(); - QAction* anAcceptAllAction = anActionsMgr->operationStateAction(XGUI_ActionsMgr::AcceptAll); - myAcceptAllToolTip = anAcceptAllAction->toolTip(); - myAcceptAllStatusTip = anAcceptAllAction->statusTip(); - - QAction* anOkAction = anActionsMgr->operationStateAction(XGUI_ActionsMgr::Accept); - myAcceptToolTip = anOkAction->toolTip(); - myAcceptStatusTip = anOkAction->toolTip(); } XGUI_ErrorMgr::~XGUI_ErrorMgr() @@ -96,11 +91,20 @@ void XGUI_ErrorMgr::updateActions(const FeaturePtr& theFeature) void XGUI_ErrorMgr::updateAcceptAllAction(const FeaturePtr& theFeature) { - QString anError = myWorkshop->module()->getFeatureError(theFeature); - if (anError.isEmpty()) { - ModuleBase_ModelWidget* anActiveWidget = activeWidget(); - if (anActiveWidget) - anError = anActiveWidget->getError(); + if (myAcceptAllToolTip.isEmpty() && myAcceptToolTip.isEmpty()) + storeInitialActionValues(); + + QString anError = ""; + /// to allow the module have the button always enabled + bool isActionStateEnabled = + myWorkshop->module()->isActionEnableStateFixed(XGUI_ActionsMgr::AcceptAll); + if (!isActionStateEnabled) { + anError = myWorkshop->module()->getFeatureError(theFeature); + if (anError.isEmpty()) { + ModuleBase_ModelWidget* anActiveWidget = activeWidget(); + if (anActiveWidget) + anError = anActiveWidget->getError(); + } } XGUI_ActionsMgr* anActionsMgr = workshop()->actionsMgr(); if (workshop()->isFeatureOfNested(theFeature)) { @@ -125,13 +129,28 @@ bool XGUI_ErrorMgr::isApplyEnabled() const return isEnabled; } +void XGUI_ErrorMgr::storeInitialActionValues() +{ + ModuleBase_ModelWidget* anActiveWidget = activeWidget(); + XGUI_ActionsMgr* anActionsMgr = workshop()->actionsMgr(); + QAction* anAcceptAllAction = anActionsMgr->operationStateAction(XGUI_ActionsMgr::AcceptAll); + myAcceptAllToolTip = anAcceptAllAction->toolTip(); + myAcceptAllStatusTip = anAcceptAllAction->statusTip(); + + QAction* anOkAction = anActionsMgr->operationStateAction(XGUI_ActionsMgr::Accept); + myAcceptToolTip = anOkAction->toolTip(); + myAcceptStatusTip = anOkAction->toolTip(); +} + void XGUI_ErrorMgr::updateAcceptActionState(const QString& theError) { XGUI_ActionsMgr* anActionsMgr = workshop()->actionsMgr(); QAction* anAcceptAction = anActionsMgr->operationStateAction(XGUI_ActionsMgr::Accept); - bool anEnabled = theError.isEmpty(); + if (myAcceptAllToolTip.isEmpty() && myAcceptToolTip.isEmpty()) + storeInitialActionValues(); + bool anEnabled = theError.isEmpty(); anAcceptAction->setEnabled(anEnabled); anAcceptAction->setToolTip(anEnabled ? myAcceptToolTip : theError); anAcceptAction->setStatusTip(anEnabled ? myAcceptStatusTip : theError);