From 8c9e4d2c24439731a871adbbac624d75e201e2d1 Mon Sep 17 00:00:00 2001 From: vsv Date: Thu, 12 Nov 2015 13:48:17 +0300 Subject: [PATCH] Issue #971: Update OB on duplicate part: send event on creation of a new document first after event on contents --- src/Model/Model_Objects.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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); -- 2.39.2