X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_ViewerProxy.cpp;h=82154a769367c2167bca85c0aa9ede133f73834a;hb=bb4ab20a1f03f936d4d8511eb9e9733ee965bb72;hp=175ed87790b880f08b2aa83415bac3c2c7e2c19d;hpb=95375993f1f35e4716475c0b0c8e265c082c875d;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_ViewerProxy.cpp b/src/XGUI/XGUI_ViewerProxy.cpp index 175ed8779..82154a769 100644 --- a/src/XGUI/XGUI_ViewerProxy.cpp +++ b/src/XGUI/XGUI_ViewerProxy.cpp @@ -122,7 +122,7 @@ void XGUI_ViewerProxy::setViewProjection(double theX, double theY, double theZ, aView3d->SetProj(theX, theY, theZ); aView3d->SetTwist( theTwist ); aView3d->FitAll(0.01, false); - aView3d->SetZSize(0.); + //aView3d->SetZSize(0.); if (aView3d->Depth() < 0.1) aView3d->DepthFitAll(); } @@ -299,18 +299,34 @@ void XGUI_ViewerProxy::onMouseMove(AppElements_ViewWindow* theWnd, QMouseEvent* if (myIs2dMode) { bool aHighlight2d = ModuleBase_Preferences::resourceMgr()->booleanValue("Viewer", "highlighting-2d", true); - if (aHighlight2d || myShowHighlight) - updateHighlight(); - else - eraseHighlight(); + if (aHighlight2d) { + if (myShowHighlight) + eraseHighlight(); + else + updateHighlight(); + } + else { + if (myShowHighlight) + updateHighlight(); + else + eraseHighlight(); + } } else { bool aHighlight3d = ModuleBase_Preferences::resourceMgr()->booleanValue("Viewer", "highlighting-3d", false); - if (aHighlight3d || myShowHighlight) - updateHighlight(); - else - eraseHighlight(); + if (aHighlight3d) { + if (myShowHighlight) + eraseHighlight(); + else + updateHighlight(); + } + else { + if (myShowHighlight) + updateHighlight(); + else + eraseHighlight(); + } } emit mouseMove(theWnd, theEvent); } @@ -470,16 +486,18 @@ void XGUI_ViewerProxy::displayHighlight(FeaturePtr theFeature, const TopoDS_Shap } } -void XGUI_ViewerProxy::eraseHighlight() +bool XGUI_ViewerProxy::eraseHighlight() { Handle(AIS_InteractiveContext) aContext = AISContext(); Handle(AIS_InteractiveObject) anAISIO; AIS_ListIteratorOfListOfInteractive aLIt; + bool isErased = myHighlights.Extent() > 0; for (aLIt.Initialize(myHighlights); aLIt.More(); aLIt.Next()) { anAISIO = aLIt.Value(); aContext->Remove(anAISIO, false); } myHighlights.Clear(); + return isErased; } void XGUI_ViewerProxy::updateHighlight() @@ -509,14 +527,15 @@ void XGUI_ViewerProxy::updateHighlight() else { myResult = ResultPtr(); } - aContext->UpdateCurrentViewer(); + update(); } isDisplayed = aRes.get(); } } if (!isDisplayed) { - eraseHighlight(); - aContext->UpdateCurrentViewer(); + if (eraseHighlight()) { + update(); + } myResult = ResultPtr(); } } @@ -528,18 +547,34 @@ void XGUI_ViewerProxy::onMouseMove(ModuleBase_IViewWindow* theWnd, QMouseEvent* if (myIs2dMode) { bool aHighlight2d = ModuleBase_Preferences::resourceMgr()->booleanValue("Viewer", "highlighting-2d", true); - if (aHighlight2d || myShowHighlight) - updateHighlight(); - else - eraseHighlight(); + if (aHighlight2d) { + if (myShowHighlight) + eraseHighlight(); + else + updateHighlight(); + } + else { + if (myShowHighlight) + updateHighlight(); + else + eraseHighlight(); + } } else { bool aHighlight3d = ModuleBase_Preferences::resourceMgr()->booleanValue("Viewer", "highlighting-3d", false); - if (aHighlight3d || myShowHighlight) - updateHighlight(); - else - eraseHighlight(); + if (aHighlight3d) { + if (myShowHighlight) + eraseHighlight(); + else + updateHighlight(); + } + else { + if (myShowHighlight) + updateHighlight(); + else + eraseHighlight(); + } } emit mouseMove(theWnd, theEvent); } @@ -665,7 +700,7 @@ void XGUI_ViewerProxy::setupColorScale() double aH = aResMgr->doubleValue("Viewer", "scalar_bar_height", 0.5); setColorScaleSize(aW, aH); - QColor aColor = aResMgr->integerValue("Viewer", "scalar_bar_text_color", Qt::black); + QColor aColor = aResMgr->colorValue("Viewer", "scalar_bar_text_color", Qt::black); setColorScaleTextColor(aColor); int aT = aResMgr->integerValue("Viewer", "scalar_bar_text_height", 14); @@ -691,4 +726,27 @@ void XGUI_ViewerProxy::setupColorScale() // aView3d->DepthFitAll(); // } //#endif -//} \ No newline at end of file +//} + + +#ifdef HAVE_SALOME +void XGUI_ViewerProxy::setFitter(OCCViewer_Fitter* theFitter) +{ + myWorkshop->salomeConnector()->viewer()->setFitter(theFitter); +} + +OCCViewer_Fitter* XGUI_ViewerProxy::fitter() const +{ + return myWorkshop->salomeConnector()->viewer()->fitter(); +} +#else +void XGUI_ViewerProxy::setFitter(AppElements_Fitter* theFitter) +{ + myWorkshop->mainWindow()->viewer()->setFitter(theFitter); +} + +AppElements_Fitter* XGUI_ViewerProxy::fitter() const +{ + return myWorkshop->mainWindow()->viewer()->fitter(); +} +#endif