X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_ViewerProxy.cpp;h=19453efdb3a4719691ba02a5952c86c9a4cf14fe;hb=f8d51abf2ab6024a974d42c139f7650ccf0ef774;hp=ff95ecff63b1e5ade0f9a4b3d83a76d693f01688;hpb=7c008126286a78ecb31e217b97070f8dcfa56e7c;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_ViewerProxy.cpp b/src/XGUI/XGUI_ViewerProxy.cpp index ff95ecff6..19453efdb 100644 --- a/src/XGUI/XGUI_ViewerProxy.cpp +++ b/src/XGUI/XGUI_ViewerProxy.cpp @@ -41,6 +41,27 @@ Handle(V3d_View) XGUI_ViewerProxy::activeView() const } } +void XGUI_ViewerProxy::setViewProjection(double theX, double theY, double theZ) +{ + Handle(V3d_View) aView3d = activeView(); + if ( !aView3d.IsNull() ) { + aView3d->SetProj(theX, theY, theZ); + aView3d->FitAll( 0.01, true, true ); + aView3d->SetZSize(0.); + } +} + +void XGUI_ViewerProxy::fitAll() +{ + if (myWorkshop->isSalomeMode()) { + myWorkshop->salomeConnector()->viewer()->fitAll(); + } + else { + XGUI_Viewer* aViewer = myWorkshop->mainWindow()->viewer(); + aViewer->activeViewWindow()->viewPort()->fitAll(); + } +} + void XGUI_ViewerProxy::connectToViewer() { if (myWorkshop->isSalomeMode()) { @@ -57,18 +78,28 @@ void XGUI_ViewerProxy::connectToViewer() connect(aViewer, SIGNAL(activated()), this, SIGNAL(activated())); - connect(aViewer, SIGNAL(mousePress(QMouseEvent* theEvent)), - this, SIGNAL(mousePress(QMouseEvent* theEvent))); - connect(aViewer, SIGNAL(mouseRelease(QMouseEvent* theEvent)), - this, SIGNAL(mouseRelease(QMouseEvent* theEvent))); - connect(aViewer, SIGNAL(mouseDoubleClick(QMouseEvent* theEvent)), - this, SIGNAL(mouseDoubleClick(QMouseEvent* theEvent))); - connect(aViewer, SIGNAL(mouseMove(QMouseEvent* theEvent)), - this, SIGNAL(mouseMove(QMouseEvent* theEvent))); - connect(aViewer, SIGNAL(keyPress(QKeyEvent* theEvent)), - this, SIGNAL(keyPress(QKeyEvent* theEvent))); - connect(aViewer, SIGNAL(keyRelease(QKeyEvent* theEvent)), - this, SIGNAL(keyRelease(QKeyEvent* theEvent))); + connect(aViewer, SIGNAL(mousePress(QMouseEvent*)), + this, SIGNAL(mousePress(QMouseEvent*))); + + connect(aViewer, SIGNAL(mouseRelease(QMouseEvent*)), + this, SIGNAL(mouseRelease(QMouseEvent*))); + + connect(aViewer, SIGNAL(mouseDoubleClick(QMouseEvent*)), + this, SIGNAL(mouseDoubleClick(QMouseEvent*))); + + connect(aViewer, SIGNAL(mouseMove(QMouseEvent*)), + this, SIGNAL(mouseMove(QMouseEvent*))); + + connect(aViewer, SIGNAL(keyPress(QKeyEvent*)), + this, SIGNAL(keyPress(QKeyEvent*))); + + connect(aViewer, SIGNAL(keyRelease(QKeyEvent*)), + this, SIGNAL(keyRelease(QKeyEvent*))); + + connect(aViewer, SIGNAL(selectionChanged()), this, SIGNAL(selectionChanged())); + connect(aViewer, SIGNAL(contextMenuRequested(QContextMenuEvent*)), + this, SIGNAL(contextMenuRequested(QContextMenuEvent*))); + } else { XGUI_Viewer* aViewer = myWorkshop->mainWindow()->viewer(); @@ -95,6 +126,10 @@ void XGUI_ViewerProxy::connectToViewer() this, SLOT(onKeyPress(XGUI_ViewWindow*, QKeyEvent*))); connect(aViewer, SIGNAL(keyRelease(XGUI_ViewWindow*, QKeyEvent*)), this, SLOT(onKeyRelease(XGUI_ViewWindow*, QKeyEvent*))); + + connect(aViewer, SIGNAL(selectionChanged()), this, SIGNAL(selectionChanged())); + connect(aViewer, SIGNAL(contextMenuRequested(QContextMenuEvent*)), + this, SIGNAL(contextMenuRequested(QContextMenuEvent*))); } } @@ -127,3 +162,43 @@ void XGUI_ViewerProxy::onKeyRelease(XGUI_ViewWindow*, QKeyEvent* theEvent) { emit keyRelease(theEvent); } + +//*************************************** +void XGUI_ViewerProxy::enableSelection(bool isEnabled) +{ + if (myWorkshop->isSalomeMode()) { + myWorkshop->salomeConnector()->viewer()->enableSelection(isEnabled); + } else { + myWorkshop->mainWindow()->viewer()->setSelectionEnabled(isEnabled); + } +} + +//*************************************** +bool XGUI_ViewerProxy::isSelectionEnabled() const +{ + if (myWorkshop->isSalomeMode()) { + return myWorkshop->salomeConnector()->viewer()->isSelectionEnabled(); + } else { + return myWorkshop->mainWindow()->viewer()->isSelectionEnabled(); + } +} + +//*************************************** +void XGUI_ViewerProxy::enableMultiselection(bool isEnable) +{ + if (myWorkshop->isSalomeMode()) { + myWorkshop->salomeConnector()->viewer()->enableMultiselection(isEnable); + } else { + myWorkshop->mainWindow()->viewer()->setMultiSelectionEnabled(isEnable); + } +} + +//*************************************** +bool XGUI_ViewerProxy::isMultiSelectionEnabled() const +{ + if (myWorkshop->isSalomeMode()) { + return myWorkshop->salomeConnector()->viewer()->isMultiSelectionEnabled(); + } else { + return myWorkshop->mainWindow()->viewer()->isMultiSelectionEnabled(); + } +}