X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_Module.cpp;h=1439438c314fe431a1496e02209fde5369c8fc8a;hb=857b1f72d9703c46c6c8c9bb239821d314344c86;hp=3540797e9868cc43171031a4410ef722b0bf6f3b;hpb=65a616a3bb6cbdf09c61fed7eb91d1f5d9667988;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_Module.cpp b/src/PartSet/PartSet_Module.cpp index 3540797e9..1439438c3 100755 --- a/src/PartSet/PartSet_Module.cpp +++ b/src/PartSet/PartSet_Module.cpp @@ -49,7 +49,7 @@ #include #include #include -#include +#include #include #include @@ -200,15 +200,12 @@ void PartSet_Module::registerValidators() aFactory->registerValidator("PartSet_TangentSelection", new PartSet_TangentSelection); aFactory->registerValidator("PartSet_FilletSelection", new PartSet_FilletSelection); aFactory->registerValidator("PartSet_AngleSelection", new PartSet_AngleSelection); - aFactory->registerValidator("PartSet_DifferentObjects", new PartSet_DifferentObjectsValidator); - aFactory->registerValidator("PartSet_DifferentShapes", new ModelAPI_ShapeValidator); - aFactory->registerValidator("PartSet_CoincidentAttr", new PartSet_CoincidentAttr); + aFactory->registerValidator("GeomValidators_DifferentShapes", new GeomValidators_DifferentShapes); aFactory->registerValidator("GeomValidators_ShapeType", new GeomValidators_ShapeType); aFactory->registerValidator("GeomValidators_Face", new GeomValidators_Face); - aFactory->registerValidator("GeomValidators_Finite", new GeomValidators_Finite); aFactory->registerValidator("GeomValidators_ConstructionComposite", @@ -223,9 +220,6 @@ void PartSet_Module::registerValidators() aFactory->registerValidator("PartSet_SketchEntityValidator", new PartSet_SketchEntityValidator); - aFactory->registerValidator("PartSet_SameTypeAttr", - new PartSet_SameTypeAttrValidator); - aFactory->registerValidator("GeomValidators_Different", new GeomValidators_Different); } @@ -269,8 +263,8 @@ void PartSet_Module::onOperationCommitted(ModuleBase_Operation* theOperation) myRestartingMode == RM_EmptyFeatureUsed)) { myLastOperationId = aFOperation->id(); myLastFeature = myRestartingMode == RM_LastFeatureUsed ? aFOperation->feature() : FeaturePtr(); - - launchOperation(myLastOperationId); + if (!sketchMgr()->sketchSolverError()) + launchOperation(myLastOperationId); } breakOperationSequence(); } @@ -873,6 +867,7 @@ void PartSet_Module::addObjectBrowserMenu(QMenu* theMenu) const QObjectPtrList aObjects = myWorkshop->selection()->selectedObjects(); int aSelected = aObjects.size(); SessionPtr aMgr = ModelAPI_Session::get(); + QAction* aActivatePartAction = myMenuMgr->action("ACTIVATE_PART_CMD"); if (aSelected == 1) { bool hasResult = false; bool hasFeature = false; @@ -893,10 +888,10 @@ void PartSet_Module::addObjectBrowserMenu(QMenu* theMenu) const } if (aPart.get()) // this may be null is Part feature is disabled aPartDoc = aPart->partDoc(); - if (aMgr->activeDocument() == aPartDoc) - theMenu->addAction(myMenuMgr->action("DEACTIVATE_PART_CMD")); - else - theMenu->addAction(myMenuMgr->action("ACTIVATE_PART_CMD")); + + theMenu->addAction(aActivatePartAction); + aActivatePartAction->setEnabled((aMgr->activeDocument() != aPartDoc)); + } else if (aObject->document() == aMgr->activeDocument()) { if (hasParameter || hasFeature) theMenu->addAction(myMenuMgr->action("EDIT_CMD")); @@ -904,9 +899,7 @@ void PartSet_Module::addObjectBrowserMenu(QMenu* theMenu) const ResultBodyPtr aResult = std::dynamic_pointer_cast(aObject); if( aResult.get() ) - { theMenu->addAction(myMenuMgr->action("SELECT_PARENT_CMD")); - } } else { // If feature is 0 the it means that selected root object (document) if (aMgr->activeDocument() != aMgr->moduleDocument()) theMenu->addAction(myMenuMgr->action("ACTIVATE_PARTSET_CMD")); @@ -918,10 +911,10 @@ void PartSet_Module::addObjectBrowserMenu(QMenu* theMenu) const if (aMgr->activeDocument() != aMgr->moduleDocument()) theMenu->addAction(myMenuMgr->action("ACTIVATE_PARTSET_CMD")); } - bool aCanDeactivate = (myWorkshop->currentOperation() == 0); - myMenuMgr->action("ACTIVATE_PARTSET_CMD")->setEnabled(aCanDeactivate); - myMenuMgr->action("DEACTIVATE_PART_CMD")->setEnabled(aCanDeactivate); - myMenuMgr->action("ACTIVATE_PART_CMD")->setEnabled(aCanDeactivate); + bool aNotDeactivate = (myWorkshop->currentOperation() == 0); + myMenuMgr->action("ACTIVATE_PARTSET_CMD")->setEnabled(aNotDeactivate); + if (!aNotDeactivate) + aActivatePartAction->setEnabled(false); } void PartSet_Module::processEvent(const std::shared_ptr& theMessage)