X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_IModule.cpp;h=c73bf3c1c5081a803b07d15181918d283418eaae;hb=0d9a107853208317a6352bb7f8c77eb54d5efbe1;hp=29e89f3efff4863dffa23eccb418c231133f5a7a;hpb=3243f96972000edf9a00bd654212dc1d7d4342b3;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_IModule.cpp b/src/ModuleBase/ModuleBase_IModule.cpp index 29e89f3ef..c73bf3c1c 100644 --- a/src/ModuleBase/ModuleBase_IModule.cpp +++ b/src/ModuleBase/ModuleBase_IModule.cpp @@ -8,9 +8,11 @@ #include "ModuleBase_ISelection.h" #include "ModuleBase_OperationDescription.h" #include "ModuleBase_OperationFeature.h" +#include #include +#include #include #include #include @@ -78,7 +80,7 @@ const char* toString(ModelAPI_ExecState theExecState) #undef TO_STRING } -QString ModuleBase_IModule::getFeatureError(const FeaturePtr& theFeature, const bool isCheckGUI) +QString ModuleBase_IModule::getFeatureError(const FeaturePtr& theFeature) { QString anError; if (!theFeature.get() || !theFeature->data()->isValid() || theFeature->isAction()) @@ -101,6 +103,35 @@ QString ModuleBase_IModule::getFeatureError(const FeaturePtr& theFeature, const return anError; } +QString ModuleBase_IModule::getWidgetError(ModuleBase_ModelWidget* theWidget) +{ + QString anError; + + if (!theWidget || !theWidget->feature().get()) + return anError; + + std::string anAttributeID = theWidget->attributeID(); + AttributePtr anAttribute = theWidget->feature()->attribute(anAttributeID); + if (!anAttribute.get()) + return anError; + + std::string aValidatorID; + std::string anErrorMsg; + + static ModelAPI_ValidatorsFactory* aValidators = ModelAPI_Session::get()->validators(); + if (!aValidators->validate(anAttribute, aValidatorID, anErrorMsg)) { + if (anErrorMsg.empty()) + anErrorMsg = "unknown error."; + anErrorMsg = anAttributeID + " - " + aValidatorID + ": " + anErrorMsg; + } + + anError = QString::fromStdString(anErrorMsg); + if (anError.isEmpty()) + anError = theWidget->getValueStateError(); + + return anError; +} + void ModuleBase_IModule::grantedOperationIds(ModuleBase_Operation* theOperation, QStringList& theIds) const {