X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_ViewerProxy.cpp;h=788a0d906ec07a474aaa51c330f69b53264117e3;hb=57199135053dfe0636ff8ff29eb6c75a6df6f08d;hp=053a87abe71513c1335cfbbcef4ca9de7ea1284f;hpb=24f9658d6e124a268c6a3abcf24f07aa2dc6d268;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_ViewerProxy.cpp b/src/XGUI/XGUI_ViewerProxy.cpp index 053a87abe..788a0d906 100644 --- a/src/XGUI/XGUI_ViewerProxy.cpp +++ b/src/XGUI/XGUI_ViewerProxy.cpp @@ -1,4 +1,22 @@ -// Copyright (C) 2014-20xx CEA/DEN, EDF R&D --> +// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or +// email : webmaster.salome@opencascade.com +// #include "XGUI_ViewerProxy.h" #include "XGUI_Workshop.h" @@ -11,7 +29,7 @@ #include #include #endif - + #include #include @@ -22,12 +40,34 @@ XGUI_ViewerProxy::XGUI_ViewerProxy(XGUI_Workshop* theParent) { } +void XGUI_ViewerProxy::connectViewProxy() +{ +#ifdef HAVE_SALOME + connect(myWorkshop->salomeConnector()->viewer(), SIGNAL(trihedronVisibilityChanged(bool)), + SIGNAL(trihedronVisibilityChanged(bool))); +#else + connect(myWorkshop->mainWindow()->viewer(), SIGNAL(trihedronVisibilityChanged(bool)), + SIGNAL(trihedronVisibilityChanged(bool))); +#endif +} + Handle(AIS_InteractiveContext) XGUI_ViewerProxy::AISContext() const +{ + Handle(AIS_InteractiveContext) aContext; +#ifdef HAVE_SALOME + aContext = myWorkshop->salomeConnector()->viewer()->AISContext(); +#else + aContext = myWorkshop->mainWindow()->viewer()->AISContext(); +#endif + return aContext; +} + +Handle(AIS_Trihedron) XGUI_ViewerProxy::trihedron() const { #ifdef HAVE_SALOME - return myWorkshop->salomeConnector()->viewer()->AISContext(); + return myWorkshop->salomeConnector()->viewer()->trihedron(); #else - return myWorkshop->mainWindow()->viewer()->AISContext(); + return myWorkshop->mainWindow()->viewer()->trihedron(); #endif } @@ -46,12 +86,23 @@ Handle(V3d_View) XGUI_ViewerProxy::activeView() const return myWorkshop->salomeConnector()->viewer()->activeView(); #else AppElements_Viewer* aViewer = myWorkshop->mainWindow()->viewer(); - return (aViewer->activeViewWindow()) ? + return (aViewer->activeViewWindow()) ? aViewer->activeViewWindow()->viewPortApp()->getView() : Handle(V3d_View)(); #endif } +QWidget* XGUI_ViewerProxy::activeViewPort() const +{ +#ifdef HAVE_SALOME + return myWorkshop->salomeConnector()->viewer()->activeViewPort(); +#else + AppElements_Viewer* aViewer = myWorkshop->mainWindow()->viewer(); + return (aViewer->activeViewWindow()) ? + aViewer->activeViewWindow()->viewPortApp(): 0; +#endif +} + void XGUI_ViewerProxy::setViewProjection(double theX, double theY, double theZ, double theTwist) { Handle(V3d_View) aView3d = activeView(); @@ -76,44 +127,52 @@ void XGUI_ViewerProxy::fitAll() #endif } +void XGUI_ViewerProxy::eraseAll() +{ +#ifdef HAVE_SALOME + myWorkshop->salomeConnector()->viewer()->eraseAll(); +#else +#endif +} + void XGUI_ViewerProxy::connectToViewer() { #ifdef HAVE_SALOME ModuleBase_IViewer* aViewer = myWorkshop->salomeConnector()->viewer(); connect(aViewer, SIGNAL(lastViewClosed()), this, SIGNAL(lastViewClosed())); - connect(aViewer, SIGNAL(tryCloseView(ModuleBase_IViewWindow*)), + connect(aViewer, SIGNAL(tryCloseView(ModuleBase_IViewWindow*)), this, SIGNAL(tryCloseView(ModuleBase_IViewWindow*))); - connect(aViewer, SIGNAL(deleteView(ModuleBase_IViewWindow*)), + connect(aViewer, SIGNAL(deleteView(ModuleBase_IViewWindow*)), this, SIGNAL(deleteView(ModuleBase_IViewWindow*))); - connect(aViewer, SIGNAL(viewCreated(ModuleBase_IViewWindow*)), + connect(aViewer, SIGNAL(viewCreated(ModuleBase_IViewWindow*)), this, SLOT(onViewCreated(ModuleBase_IViewWindow*))); - connect(aViewer, SIGNAL(activated(ModuleBase_IViewWindow*)), + connect(aViewer, SIGNAL(activated(ModuleBase_IViewWindow*)), this, SIGNAL(activated(ModuleBase_IViewWindow*))); - connect(aViewer, SIGNAL(mousePress(ModuleBase_IViewWindow*, QMouseEvent*)), + connect(aViewer, SIGNAL(mousePress(ModuleBase_IViewWindow*, QMouseEvent*)), this, SIGNAL(mousePress(ModuleBase_IViewWindow*, QMouseEvent*))); - connect(aViewer, SIGNAL(mouseRelease(ModuleBase_IViewWindow*, QMouseEvent*)), + connect(aViewer, SIGNAL(mouseRelease(ModuleBase_IViewWindow*, QMouseEvent*)), this, SIGNAL(mouseRelease(ModuleBase_IViewWindow*, QMouseEvent*))); connect(aViewer, SIGNAL(mouseDoubleClick(ModuleBase_IViewWindow*, QMouseEvent*)), this, SIGNAL(mouseDoubleClick(ModuleBase_IViewWindow*, QMouseEvent*))); - connect(aViewer, SIGNAL(mouseMove(ModuleBase_IViewWindow*, QMouseEvent*)), + connect(aViewer, SIGNAL(mouseMove(ModuleBase_IViewWindow*, QMouseEvent*)), this, SIGNAL(mouseMove(ModuleBase_IViewWindow*, QMouseEvent*))); - connect(aViewer, SIGNAL(keyPress(ModuleBase_IViewWindow*, QKeyEvent*)), + connect(aViewer, SIGNAL(keyPress(ModuleBase_IViewWindow*, QKeyEvent*)), this, SIGNAL(keyPress(ModuleBase_IViewWindow*, QKeyEvent*))); - connect(aViewer, SIGNAL(keyRelease(ModuleBase_IViewWindow*, QKeyEvent*)), + connect(aViewer, SIGNAL(keyRelease(ModuleBase_IViewWindow*, QKeyEvent*)), this, SIGNAL(keyRelease(ModuleBase_IViewWindow*, QKeyEvent*))); connect(aViewer, SIGNAL(selectionChanged()), this, SIGNAL(selectionChanged())); - + connect(aViewer, SIGNAL(viewTransformed(int)), this, SIGNAL(viewTransformed(int))); connect(aViewer, SIGNAL(contextMenuRequested(QContextMenuEvent*)), this, @@ -123,16 +182,16 @@ void XGUI_ViewerProxy::connectToViewer() connect(aViewer, SIGNAL(lastViewClosed()), this, SIGNAL(lastViewClosed())); - connect(aViewer, SIGNAL(tryCloseView(AppElements_ViewWindow*)), + connect(aViewer, SIGNAL(tryCloseView(AppElements_ViewWindow*)), this, SLOT(onTryCloseView(AppElements_ViewWindow*))); - connect(aViewer, SIGNAL(deleteView(AppElements_ViewWindow*)), + connect(aViewer, SIGNAL(deleteView(AppElements_ViewWindow*)), this, SLOT(onDeleteView(AppElements_ViewWindow*))); - connect(aViewer, SIGNAL(viewCreated(AppElements_ViewWindow*)), + connect(aViewer, SIGNAL(viewCreated(AppElements_ViewWindow*)), this, SLOT(onViewCreated(AppElements_ViewWindow*))); - connect(aViewer, SIGNAL(activated(AppElements_ViewWindow*)), + connect(aViewer, SIGNAL(activated(AppElements_ViewWindow*)), this, SLOT(onActivated(AppElements_ViewWindow*))); connect(aViewer, SIGNAL(mousePress(AppElements_ViewWindow*, QMouseEvent*)), this, @@ -340,18 +399,18 @@ bool XGUI_ViewerProxy::canDragByMouse() const //*************************************** -void XGUI_ViewerProxy::Zfitall() -{ -#ifdef HAVE_SALOME - myWorkshop->salomeConnector()->viewer()->Zfitall(); -#else - AppElements_Viewer* aViewer = myWorkshop->mainWindow()->viewer(); - AppElements_ViewWindow* aView = aViewer->activeViewWindow(); - if (aView) { - Handle(V3d_View) aView3d = aView->v3dView(); - aView3d->ZFitAll(); - if (aView3d->Depth() < 0.1) - aView3d->DepthFitAll(); - } -#endif -} \ No newline at end of file +//void XGUI_ViewerProxy::Zfitall() +//{ +//#ifdef HAVE_SALOME +// myWorkshop->salomeConnector()->viewer()->Zfitall(); +//#else +// AppElements_Viewer* aViewer = myWorkshop->mainWindow()->viewer(); +// AppElements_ViewWindow* aView = aViewer->activeViewWindow(); +// if (aView) { +// Handle(V3d_View) aView3d = aView->v3dView(); +// aView3d->ZFitAll(); +// if (aView3d->Depth() < 0.1) +// aView3d->DepthFitAll(); +// } +//#endif +//} \ No newline at end of file