Salome HOME
The constraint is moved by the mouse click on it(an attempt to edit value by double...
[modules/shaper.git] / src / PartSet / PartSet_Module.cpp
index 5898c252db08c15615fadd2313cbaf7cc2f004c2..9714f41a54fd2fc31dcf91f8146006516d36a403 100644 (file)
@@ -113,6 +113,7 @@ void PartSet_Module::registerValidators()
   aFactory->registerValidator("PartSet_RadiusValidator", new PartSet_RadiusValidator);
   aFactory->registerValidator("PartSet_RigidValidator", new PartSet_RigidValidator);
   aFactory->registerValidator("PartSet_DifferentObjects", new PartSet_DifferentObjectsValidator);
+  aFactory->registerValidator("PartSet_SketchValidator", new PartSet_SketchValidator);
 }
 
 void PartSet_Module::registerFilters()
@@ -129,6 +130,11 @@ void PartSet_Module::operationCommitted(ModuleBase_Operation* theOperation)
 {
   if (theOperation->isEditOperation())
     return;
+  // the selection is cleared after commit the create operation
+  // in order to do not use the same selected objects in the restarted operation
+  // for common behaviour, the selection is cleared even if the operation is not restarted
+  myWorkshop->viewer()->AISContext()->ClearSelected();
+
   /// Restart sketcher operations automatically
   FeaturePtr aFeature = theOperation->feature();
   std::shared_ptr<SketchPlugin_Feature> aSPFeature = 
@@ -137,6 +143,7 @@ void PartSet_Module::operationCommitted(ModuleBase_Operation* theOperation)
                      myRestartingMode == RM_EmptyFeatureUsed)) {
     myLastOperationId = theOperation->id();
     myLastFeature = myRestartingMode == RM_LastFeatureUsed ? theOperation->feature() : FeaturePtr();
+    
     launchOperation(myLastOperationId);
   }
   breakOperationSequence();
@@ -254,17 +261,9 @@ void PartSet_Module::onSelectionChanged()
         }
       }
     }
-  } else if (mySketchMgr->sketchOperationIdList().contains(aOperation->id()) && 
-    aOperation->isEditOperation()) {
-    // if this is sketch operation in edit mode
-
-      ModuleBase_ISelection* aSelect = myWorkshop->selection();
-      //aSelect->selectedShapes();
-  }
+  } 
 }
 
-      // after movement the solver will call the update event: optimization
-
 void PartSet_Module::onKeyRelease(ModuleBase_IViewWindow* theWnd, QKeyEvent* theEvent)
 {
   XGUI_ModuleConnector* aConnector = dynamic_cast<XGUI_ModuleConnector*>(workshop());
@@ -311,7 +310,7 @@ void PartSet_Module::onNoMoreWidgets()
   }
 }
 
-void PartSet_Module::onVertexSelected(ObjectPtr theObject, const TopoDS_Shape& theShape)
+void PartSet_Module::onVertexSelected()
 {
   ModuleBase_Operation* aOperation = myWorkshop->currentOperation();
   if (aOperation->id().toStdString() == SketchPlugin_Line::ID()) {
@@ -343,8 +342,7 @@ QWidget* PartSet_Module::createWidgetByType(const std::string& theType, QWidget*
     aWgt->setWorkshop(aWorkshop);
     aWgt->setSketch(mySketchMgr->activeSketch());
 
-    connect(aWgt, SIGNAL(vertexSelected(ObjectPtr, const TopoDS_Shape&)), 
-      this, SLOT(onVertexSelected(ObjectPtr, const TopoDS_Shape&)));
+    connect(aWgt, SIGNAL(vertexSelected()), this, SLOT(onVertexSelected()));
 
     theModelWidgets.append(aWgt);
     return aWgt->getControl();