From: vsv Date: Thu, 12 Nov 2015 10:48:17 +0000 (+0300) Subject: Issue #971: Update OB on duplicate part: send event on creation of a new document... X-Git-Tag: V_2.0.0_alfa2~19 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=8c9e4d2c24439731a871adbbac624d75e201e2d1;p=modules%2Fshaper.git Issue #971: Update OB on duplicate part: send event on creation of a new document first after event on contents --- diff --git a/src/Model/Model_Objects.cpp b/src/Model/Model_Objects.cpp index 0d1021820..87848db84 100644 --- a/src/Model/Model_Objects.cpp +++ b/src/Model/Model_Objects.cpp @@ -137,13 +137,15 @@ void Model_Objects::addFeature(FeaturePtr theFeature, const FeaturePtr theAfterT // keep the feature ID to restore document later correctly TDataStd_Comment::Set(aFeatureLab, theFeature->getKind().c_str()); myFeatures.Bind(aFeatureLab, theFeature); + // must be before the event sending: for OB the feature is already added + updateHistory(ModelAPI_Feature::group()); + // event: feature is added, mist be before "initData" to update OB correctly on Duplicate: + // first new part, then the content + static Events_ID anEvent = Events_Loop::eventByName(EVENT_OBJECT_CREATED); + ModelAPI_EventCreator::get()->sendUpdated(theFeature, anEvent); // must be after binding to the map because of "Box" macro feature that // creates other features in "initData" initData(theFeature, aFeatureLab, TAG_FEATURE_ARGUMENTS); - // event: feature is added - static Events_ID anEvent = Events_Loop::eventByName(EVENT_OBJECT_CREATED); - ModelAPI_EventCreator::get()->sendUpdated(theFeature, anEvent); - updateHistory(ModelAPI_Feature::group()); } else { // make feature has not-null data anyway theFeature->setData(Model_Data::invalidData()); theFeature->setDoc(myDoc);