Salome HOME
Merge branch 'Dev_0.6' of newgeom:newgeom into Dev_0.6
authornds <natalia.donis@opencascade.com>
Tue, 2 Dec 2014 14:49:15 +0000 (17:49 +0300)
committernds <natalia.donis@opencascade.com>
Tue, 2 Dec 2014 14:49:15 +0000 (17:49 +0300)
1  2 
src/PartSet/PartSet_Module.cpp

index e5b587fe658a315d9a11bdbf708b145eadd90315,490ffdfd9913879e33c5cafeebc07eef161e6431..1e2a511ee1753184bca111808df0c60fb2b134c4
@@@ -94,10 -94,6 +94,10 @@@ PartSet_Module::PartSet_Module(ModuleBa
  
  PartSet_Module::~PartSet_Module()
  {
 +  if (!myDocumentShapeFilter.IsNull())
 +    myDocumentShapeFilter.Nullify();
 +  if (!myPlaneFilter.IsNull())
 +    myPlaneFilter.Nullify();
  }
  
  void PartSet_Module::registerValidators()
@@@ -179,9 -175,6 +179,9 @@@ void PartSet_Module::onOperationStarted
        myPlaneFilter->setPlane(aPln->impl<gp_Pln>());
      }
    }
 +  if (myDocumentShapeFilter.IsNull())
 +    myDocumentShapeFilter = new ModuleBase_ShapeDocumentFilter(myWorkshop);
 +  myWorkshop->viewer()->addSelectionFilter(myDocumentShapeFilter);
  }
  
  void PartSet_Module::onOperationStopped(ModuleBase_Operation* theOperation)
      myCurrentSketch = CompositeFeaturePtr();
      myWorkshop->viewer()->removeSelectionFilter(myPlaneFilter);
    }
 +  myWorkshop->viewer()->removeSelectionFilter(myDocumentShapeFilter);
  }
  
  void PartSet_Module::onPlaneSelected(const std::shared_ptr<GeomAPI_Pln>& thePln)
@@@ -318,7 -310,7 +318,7 @@@ void PartSet_Module::onMousePressed(Mod
      QList<ModuleBase_ViewerPrs> aObjects = aSelect->getHighlighted();
      myEditingFeatures.clear();
      myEditingAttr.clear();
-     if (aObjects.size() > 0) {
+     if (aObjects.size() == 1) {
        foreach(ModuleBase_ViewerPrs aPrs, aObjects) {
          FeaturePtr aFeature = ModelAPI_Feature::feature(aObjects.first().object());
          if (aFeature) {
@@@ -445,6 -437,7 +445,7 @@@ void PartSet_Module::onMouseMoved(Modul
        if (aSketchFeature) { 
          aSketchFeature->move(dX, dY);
          ModelAPI_EventCreator::get()->sendUpdated(aSketchFeature, anEvent);
+         Events_Loop::loop()->flush(Events_Loop::eventByName(EVENT_OBJECT_MOVED));
          Events_Loop::loop()->flush(Events_Loop::eventByName(EVENT_OBJECT_UPDATED));
        }
      }