]> SALOME platform Git repositories - modules/shaper.git/blobdiff - src/ModuleBase/ModuleBase_ModelWidget.cpp
Salome HOME
Validators return InfoMessage instead of string as an error
[modules/shaper.git] / src / ModuleBase / ModuleBase_ModelWidget.cpp
index ba49483764657583320424eb92c0e78903bb9ba9..69cd60c463ba29b321ad6d99cf508fe7c15fb82a 100644 (file)
@@ -9,6 +9,8 @@
 #include "ModuleBase_Tools.h"
 #include "ModuleBase_WidgetValidator.h"
 
+#include <Events_InfoMessage.h>
+
 #include <ModelAPI_Data.h>
 #include <ModelAPI_Attribute.h>
 #include <ModelAPI_Events.h>
@@ -121,16 +123,21 @@ QString ModuleBase_ModelWidget::getError(const bool theValueStateChecked) const
     return anError;
 
   std::string aValidatorID;
-  std::string anErrorMsg;
+  Events_InfoMessage 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;
+    anErrorMsg = anAttributeID + " - " + aValidatorID + ": " + anErrorMsg.messageString();
+  }
+
+  if (!anErrorMsg.empty()) {
+    std::string aStr = Config_Translator::translate(anErrorMsg);
+    std::string aCodec = Config_Translator::codec(anErrorMsg.context());
+    anError = QTextCodec::codecForName(aCodec.c_str())->toUnicode(aStr.c_str());
   }
 
-  anError = QString::fromStdString(anErrorMsg);
   if (anError.isEmpty() && theValueStateChecked)
     anError = getValueStateError();