X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_Module.cpp;h=9714f41a54fd2fc31dcf91f8146006516d36a403;hb=d6b11c0c3f199211e054533ba92bdadf5c7a65f4;hp=5898c252db08c15615fadd2313cbaf7cc2f004c2;hpb=4e3694cf9d56e97e314b393290044f64ff115236;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_Module.cpp b/src/PartSet/PartSet_Module.cpp index 5898c252d..9714f41a5 100644 --- a/src/PartSet/PartSet_Module.cpp +++ b/src/PartSet/PartSet_Module.cpp @@ -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 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(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();