X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_Listener.cpp;h=be392c0097207ca07c38d6ac1f2fa3f302bf005e;hb=49bc86ba27fe72fcd8cb8d003340db37497c8b00;hp=0f60b0c80bd0077e0216ba291ebd458a0da48cdb;hpb=31e7d42a5c5527a40094a3d1992258a989eb64f9;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_Listener.cpp b/src/PartSet/PartSet_Listener.cpp index 0f60b0c80..be392c009 100644 --- a/src/PartSet/PartSet_Listener.cpp +++ b/src/PartSet/PartSet_Listener.cpp @@ -25,7 +25,7 @@ using namespace std; PartSet_Listener::PartSet_Listener(PartSet_Module* theModule) -: myModule(theModule) + : myModule(theModule) { Events_Loop* aLoop = Events_Loop::loop(); //aLoop->registerListener(this, aLoop->eventByName(EVENT_OBJECT_TO_REDISPLAY)); @@ -38,37 +38,37 @@ PartSet_Listener::~PartSet_Listener() } //****************************************************** -void PartSet_Listener::processEvent(const Events_Message* theMessage) +void PartSet_Listener::processEvent(const boost::shared_ptr& theMessage) { ModuleBase_Operation* anOperation = myModule->workshop()->operationMgr()->currentOperation(); PartSet_OperationSketchBase* aSketchOp = dynamic_cast(anOperation); - if (!aSketchOp) + if (!aSketchOp) return; XGUI_Displayer* aDisplayer = myModule->workshop()->displayer(); QString aType = QString(theMessage->eventID().eventText()); if (aType == EVENT_OBJECT_CREATED) { - const ModelAPI_ObjectUpdatedMessage* aUpdMsg = - dynamic_cast(theMessage); - std::set aFeatures = aUpdMsg->objects(); - std::set::const_iterator anIt = aFeatures.begin(), aLast = aFeatures.end(); + boost::shared_ptr aUpdMsg = + boost::dynamic_pointer_cast(theMessage); + std::set aFeatures = aUpdMsg->objects(); + std::set::const_iterator anIt = aFeatures.begin(), aLast = aFeatures.end(); for (; anIt != aLast; anIt++) { - aDisplayer->deactivate(*anIt, false); + aDisplayer->deactivate(*anIt); FeaturePtr aFeature = boost::dynamic_pointer_cast(*anIt); if (aFeature) myModule->activateFeature(aFeature, false); } } else if (aType == EVENT_OBJECT_DELETED) { - const ModelAPI_ObjectDeletedMessage* aDelMsg = - dynamic_cast(theMessage); + boost::shared_ptr aDelMsg = + boost::dynamic_pointer_cast(theMessage); boost::shared_ptr aDoc = aDelMsg->document(); std::set aGroups = aDelMsg->groups(); std::set::const_iterator anIt = aGroups.begin(), aLast = aGroups.end(); for (; anIt != aLast; anIt++) { std::string aGroup = *anIt; - if (aGroup.compare(SketchPlugin_Sketch::ID()) == 0) { // Update only Sketch group + if (aGroup.compare(SketchPlugin_Sketch::ID()) == 0) { // Update only Sketch group myModule->workshop()->displayer()->eraseDeletedResults(); myModule->updateCurrentPreview(aGroup); }