X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_SelectionMgr.cpp;h=49bcdcbd375174e0c6ad221b217250cf38c26ad8;hb=4cb749258f33b7de231da5bb50140407c0599d30;hp=ba01295668be7a1b1edd2b212841a74da01255eb;hpb=af35266d7c7d3bdac54952f85b4d16ff6d1c9b0b;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_SelectionMgr.cpp b/src/XGUI/XGUI_SelectionMgr.cpp index ba0129566..49bcdcbd3 100644 --- a/src/XGUI/XGUI_SelectionMgr.cpp +++ b/src/XGUI/XGUI_SelectionMgr.cpp @@ -41,7 +41,6 @@ #include #include #include -#include #include @@ -107,6 +106,7 @@ void XGUI_SelectionMgr::setSelectedOwners(const SelectMgr_IndexedMapOfOwner& the //************************************************************** void XGUI_SelectionMgr::onObjectBrowserSelection() { + myLastSelectionPlace = ModuleBase_ISelection::Browser; QList aSelectedPrs = myWorkshop->selector()->selection()->getSelected(ModuleBase_ISelection::Browser); XGUI_Displayer* aDisplayer = myWorkshop->displayer(); @@ -132,49 +132,24 @@ void XGUI_SelectionMgr::onObjectBrowserSelection() } } aDisplayer->setSelected(aSelectedPrs); - myWorkshop->viewer()->setColorScaleShown(false); - if (aSelectedPrs.size() == 1) { - FieldStepPtr aStep = - std::dynamic_pointer_cast - (aSelectedPrs.first()->object()); - XGUI_Displayer* aDisplayer = myWorkshop->displayer(); - if (aStep.get() && aDisplayer->isVisible(aStep)) { - XGUI_ViewerProxy* aViewer = myWorkshop->viewer(); - AISObjectPtr aAisPtr = aDisplayer->getAISObject(aStep); - Handle(AIS_InteractiveObject) aIO = aAisPtr->impl(); - ModuleBase_IStepPrs* aPrs = dynamic_cast(aIO.get()); - if (aPrs) { - ModelAPI_AttributeTables::ValueType aType = aPrs->dataType(); - if ((aType == ModelAPI_AttributeTables::DOUBLE) || - (aType == ModelAPI_AttributeTables::INTEGER) || - (aType == ModelAPI_AttributeTables::BOOLEAN)) { - aViewer->setupColorScale(); - if (aType == ModelAPI_AttributeTables::BOOLEAN) { - aViewer->setColorScaleIntervals(2); - aViewer->setColorScaleRange(0, 1); - } - else { - double aMin, aMax; - aPrs->dataRange(aMin, aMax); - aViewer->setColorScaleRange(aMin, aMax); - } - aViewer->setColorScaleTitle("Step"); - aViewer->setColorScaleShown(true); - } - } - } - } + myWorkshop->updateColorScaleVisibility(); emit selectionChanged(); } //************************************************************** void XGUI_SelectionMgr::onViewerSelection() { + myLastSelectionPlace = ModuleBase_ISelection::Viewer; QList aValues; Handle(AIS_InteractiveContext) aContext = myWorkshop->viewer()->AISContext(); - if (!aContext.IsNull()) + if (!aContext.IsNull()) { aValues = selection()->getSelected(ModuleBase_ISelection::Viewer); - + // Update is necessary for OCCT 7.4.0: when it is clears selection it doesn't updates viewer +#if OCC_VERSION_HEX == 0x070400 + if (aValues.isEmpty()) + aContext->UpdateCurrentViewer(); +#endif + } QObjectPtrList anObjects; convertToObjectBrowserSelection(aValues, anObjects); myWorkshop->objectBrowser()->setObjectsSelected(anObjects);