]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
The message is produced on each errors state of object change for later GUI catching...
authormpv <mpv@opencascade.com>
Thu, 10 Sep 2015 07:37:49 +0000 (10:37 +0300)
committermpv <mpv@opencascade.com>
Thu, 10 Sep 2015 07:37:49 +0000 (10:37 +0300)
src/Model/Model_Data.cpp
src/ModelAPI/ModelAPI_Events.h

index 79a405366330c8883ad9717e31965c8f534e770b..755da15937bc625ebeea298c2b08c5ea8db7feb1 100644 (file)
@@ -302,7 +302,11 @@ static Handle(TDataStd_IntegerArray) stateArray(TDF_Label& theLab)
 void Model_Data::execState(const ModelAPI_ExecState theState)
 {
   if (theState != ModelAPI_StateNothing) {
-    stateArray(myLab)->SetValue(STATE_INDEX_STATE, (int)theState);
+    if (stateArray(myLab)->Value(STATE_INDEX_STATE) != (int)theState) {
+      stateArray(myLab)->SetValue(STATE_INDEX_STATE, (int)theState);
+      static const Events_ID anEvent = Events_Loop::eventByName(EVENT_OBJECT_ERROR_CHANGED);
+      ModelAPI_EventCreator::get()->sendUpdated(myObject, anEvent, false);
+    }
   }
 }
 
@@ -328,6 +332,8 @@ void Model_Data::setError(const std::string& theError, bool theSend)
     Events_Error::send(theError);
   }
   TDataStd_AsciiString::Set(myLab, theError.c_str());
+  static const Events_ID anEvent = Events_Loop::eventByName(EVENT_OBJECT_ERROR_CHANGED);
+  ModelAPI_EventCreator::get()->sendUpdated(myObject, anEvent, false);
 }
 
 void Model_Data::eraseErrorString()
index ef253f5bedc6e1a603f891550343505b5b5dde10..4ba952cf5eb0a0d04218b06729cf13a448140bb3 100644 (file)
@@ -34,6 +34,8 @@ static const char * EVENT_OBJECT_RENAMED = "ObjectRenamed";
 static const char * EVENT_OBJECT_MOVED = "ObjectsMoved";
 /// Event ID that visualization must be redisplayed (comes with ModelAPI_ObjectUpdatedMessage)
 static const char * EVENT_OBJECT_TO_REDISPLAY = "ObjectsToRedisplay";
+/// Event ID that error state or error message was updated for the object
+static const char * EVENT_OBJECT_ERROR_CHANGED = "ObjectsErrorChanged";
 /// Event ID that visualization must be redisplayed (comes with ModelAPI_ObjectUpdatedMessage)
 static const char * EVENT_OPERATION_LAUNCHED = "OperationLaunched";
 /// Event ID that plugin is loaded (comes with ModelAPI_ObjectUpdatedMessage)