X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModel%2FModel_Session.cpp;h=567dba4d4afcb617c8ae88f13f6dbbe2a600bf0a;hb=176403004ff97696f3c0b5f8bdf48692177fb34a;hp=fe35df17d218e244740d6a3b28e6e43407b282e4;hpb=69ed966e5a75e545b5e9ae71499fd08790819484;p=modules%2Fshaper.git diff --git a/src/Model/Model_Session.cpp b/src/Model/Model_Session.cpp index fe35df17d..567dba4d4 100644 --- a/src/Model/Model_Session.cpp +++ b/src/Model/Model_Session.cpp @@ -175,10 +175,12 @@ FeaturePtr Model_Session::createFeature(string theFeatureID, Model_Document* the } return aCreated; } else { - Events_InfoMessage("Model_Session","Can not load plugin '%1'").arg(myCurrentPluginName).send(); + Events_InfoMessage("Model_Session", + "Can not load plugin '%1'").arg(myCurrentPluginName).send(); } } else { - Events_InfoMessage("Model_Session","Feature '%1' not found in any plugin").arg(theFeatureID).send(); + Events_InfoMessage("Model_Session", + "Feature '%1' not found in any plugin").arg(theFeatureID).send(); } return FeaturePtr(); // return nothing @@ -189,7 +191,8 @@ std::shared_ptr Model_Session::moduleDocument() Handle(Model_Application) anApp = Model_Application::getApplication(); bool aFirstCall = !anApp->hasRoot(); if (aFirstCall) { - // to be sure that plugins are loaded, even before the first "createFeature" call (in unit tests) + // to be sure that plugins are loaded, + // even before the first "createFeature" call (in unit tests) LoadPluginsInfo(); // creation of the root document is always outside of the transaction, so, avoid checking it setCheckTransactions(false); @@ -358,6 +361,7 @@ void Model_Session::processEvent(const std::shared_ptr& theMessa const std::shared_ptr aMsg = std::dynamic_pointer_cast(theMessage); if (aMsg) { + // process the plugin info, load plugin if (myPlugins.find(aMsg->id()) == myPlugins.end()) { myPlugins[aMsg->id()] = std::pair( @@ -367,15 +371,16 @@ void Model_Session::processEvent(const std::shared_ptr& theMessa const std::shared_ptr aMsgAttr = std::dynamic_pointer_cast(theMessage); if (aMsgAttr) { + if (!aMsgAttr->isObligatory()) { validators()->registerNotObligatory(aMsgAttr->featureId(), aMsgAttr->attributeId()); } if(aMsgAttr->isConcealment()) { validators()->registerConcealment(aMsgAttr->featureId(), aMsgAttr->attributeId()); } - if (!aMsgAttr->caseId().empty()) { - validators()->registerCase(aMsgAttr->featureId(), aMsgAttr->attributeId(), - aMsgAttr->switchId(), aMsgAttr->caseId()); + const std::list >& aCases = aMsgAttr->getCases(); + if (!aCases.empty()) { + validators()->registerCase(aMsgAttr->featureId(), aMsgAttr->attributeId(), aCases); } } } @@ -394,7 +399,8 @@ void Model_Session::processEvent(const std::shared_ptr& theMessa } } else { // create/update/delete if (myCheckTransactions && !isOperation()) - Events_InfoMessage("Model_Session", "Modification of data structure outside of the transaction").send(); + Events_InfoMessage("Model_Session", + "Modification of data structure outside of the transaction").send(); // if part is deleted, make the root as the current document (on undo of Parts creations) static const Events_ID kDeletedEvent = Events_Loop::eventByName(EVENT_OBJECT_DELETED); if (theMessage->eventID() == kDeletedEvent) {