From: vsv Date: Thu, 26 Jun 2014 13:23:56 +0000 (+0400) Subject: Merge branch 'master' of newgeom:newgeom X-Git-Tag: V_0.4.4~223 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=5b8faa76d601d5dace07f2184378cc85b9e52438;hp=-c;p=modules%2Fshaper.git Merge branch 'master' of newgeom:newgeom --- 5b8faa76d601d5dace07f2184378cc85b9e52438 diff --combined src/PartSet/PartSet_Module.cpp index d9009a68f,2e410b500..206bbaa5b --- a/src/PartSet/PartSet_Module.cpp +++ b/src/PartSet/PartSet_Module.cpp @@@ -138,14 -138,14 +138,14 @@@ void PartSet_Module::onFeatureTriggered void PartSet_Module::launchOperation(const QString& theCmdId) { ModuleBase_Operation* anOperation = createOperation(theCmdId.toStdString()); - //PartSet_OperationSketchBase* aPreviewOp = dynamic_cast(anOperation); - //if (aPreviewOp) { - // XGUI_Displayer* aDisplayer = myWorkshop->displayer(); - // // Initialise operation with preliminary selection - // std::list aSelected = aDisplayer->getSelected(); - // std::list aHighlighted = aDisplayer->getHighlighted(); - // aPreviewOp->initSelection(aSelected, aHighlighted); - //} + PartSet_OperationSketchBase* aPreviewOp = dynamic_cast(anOperation); + if (aPreviewOp) { + XGUI_Displayer* aDisplayer = myWorkshop->displayer(); + // Initialise operation with preliminary selection + std::list aSelected = aDisplayer->getSelected(); + std::list aHighlighted = aDisplayer->getHighlighted(); + aPreviewOp->initSelection(aSelected, aHighlighted); + } sendOperation(anOperation); } @@@ -317,16 -317,14 +317,14 @@@ void PartSet_Module::onFeatureConstruct FeaturePtr aSketch; PartSet_OperationSketchBase* aPrevOp = dynamic_cast(aCurOperation); if (aPrevOp) { - std::map > aList = aPrevOp->subPreview(); + std::list aList = aPrevOp->subFeatures(); XGUI_Displayer* aDisplayer = myWorkshop->displayer(); std::list aModes = aPrevOp->getSelectionModes(aPrevOp->feature()); - std::map >::const_iterator - anIt = aList.begin(), aLast = aList.end(); - for (; anIt != aLast; anIt++) { - FeaturePtr aFeature = (*anIt).first; - visualizePreview(aFeature, false, false); - } + std::list::const_iterator anIt = aList.begin(), + aLast = aList.end(); + for (; anIt != aLast; anIt++) + visualizePreview(*anIt, false, false); aDisplayer->updateViewer(); } } @@@ -477,23 -475,19 +475,19 @@@ void PartSet_Module::updateCurrentPrevi if (!aFeature || aFeature->getKind() != theCmdId) return; - std::map > aList = aPreviewOp->subPreview(); + std::list aList = aPreviewOp->subFeatures(); XGUI_Displayer* aDisplayer = myWorkshop->displayer(); std::list aModes = aPreviewOp->getSelectionModes(aPreviewOp->feature()); - std::map >::const_iterator - anIt = aList.begin(), aLast = aList.end(); + std::list::const_iterator anIt = aList.begin(), + aLast = aList.end(); for (; anIt != aLast; anIt++) { - FeaturePtr aFeature = (*anIt).first; boost::shared_ptr aSPFeature = - boost::dynamic_pointer_cast((*anIt).first); + boost::dynamic_pointer_cast(*anIt); if (!aSPFeature) continue; - - Handle(AIS_InteractiveObject) anAIS = aSPFeature->getAISShape(aDisplayer->getAISObject(aFeature)); - if (!anAIS.IsNull()) - aDisplayer->redisplay(aFeature, anAIS, false); - aDisplayer->activateInLocalContext(aFeature, aModes, false); + visualizePreview(*anIt, true, false); + aDisplayer->activateInLocalContext(*anIt, aModes, false); } aDisplayer->updateViewer(); }