- std::set<FeaturePtr> aFeatures = anUpdateMsg->features();
- if (myOperationMgr->hasOperation())
- {
- FeaturePtr aCurrentFeature = myOperationMgr->currentOperation()->feature();
- std::set<FeaturePtr>::const_iterator aIt;
- for (aIt = aFeatures.begin(); aIt != aFeatures.end(); ++aIt) {
- FeaturePtr aNewFeature = (*aIt);
- if(aNewFeature == aCurrentFeature) {
- myPropertyPanel->updateContentWidget(aCurrentFeature);
- break;
- }
+ else if (theMessage->eventID() == Events_Loop::loop()->eventByName(EVENT_OBJECT_DELETED)) {
+ boost::shared_ptr<ModelAPI_ObjectDeletedMessage> aDelMsg =
+ boost::dynamic_pointer_cast<ModelAPI_ObjectDeletedMessage>(theMessage);
+ onObjectDeletedMsg(aDelMsg);
+ }
+
+ else if (theMessage->eventID() == Events_LongOp::eventID()) {
+ if (Events_LongOp::isPerformed())
+ QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
+ else
+ QApplication::restoreOverrideCursor();
+ }
+
+ else if (theMessage->eventID() == Events_Loop::loop()->eventByName(EVENT_OBJECT_TOSHOW)) {
+ boost::shared_ptr<ModelAPI_ObjectUpdatedMessage> anUpdateMsg =
+ boost::dynamic_pointer_cast<ModelAPI_ObjectUpdatedMessage>(theMessage);
+ const std::set<ObjectPtr>& aObjList = anUpdateMsg->objects();
+ QList<ObjectPtr> aList;
+ std::set<ObjectPtr>::const_iterator aIt;
+ for (aIt = aObjList.cbegin(); aIt != aObjList.cend(); ++aIt)
+ aList.append(*aIt);
+ showObjects(aList, true);
+ }
+
+ else if (theMessage->eventID() == Events_Loop::loop()->eventByName(EVENT_OBJECT_TOHIDE)) {
+ boost::shared_ptr<ModelAPI_ObjectUpdatedMessage> anUpdateMsg =
+ boost::dynamic_pointer_cast<ModelAPI_ObjectUpdatedMessage>(theMessage);
+ const std::set<ObjectPtr>& aObjList = anUpdateMsg->objects();
+ QList<ObjectPtr> aList;
+ std::set<ObjectPtr>::const_iterator aIt;
+ for (aIt = aObjList.cbegin(); aIt != aObjList.cend(); ++aIt)
+ aList.append(*aIt);
+ showObjects(aList, false);
+ }
+
+ //An operation passed by message. Start it, process and commit.
+ else if (theMessage->eventID() == Events_Loop::loop()->eventByName(EVENT_OPERATION_LAUNCHED)) {
+ boost::shared_ptr<Config_PointerMessage> aPartSetMsg =
+ boost::dynamic_pointer_cast<Config_PointerMessage>(theMessage);
+ //myPropertyPanel->cleanContent();
+ ModuleBase_Operation* anOperation = (ModuleBase_Operation*) aPartSetMsg->pointer();
+
+ if (myOperationMgr->startOperation(anOperation)) {
+ myPropertyPanel->updateContentWidget(anOperation->feature());
+ if (!anOperation->getDescription()->hasXmlRepresentation()) {
+ if (anOperation->commit())
+ updateCommandStatus();