X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_ViewerProxy.cpp;h=44cee80cdc980b62a20667d057bfe53febca0944;hb=3a5be0c5d1edb60a71f9daab6dd834ffa45eb550;hp=ffd09a2a53b65ed3ef9cb031c380957fbfc890b6;hpb=a7f44a41bdf29e7bd978ff3b8c8bd514d1223be7;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_ViewerProxy.cpp b/src/XGUI/XGUI_ViewerProxy.cpp index ffd09a2a5..44cee80cd 100644 --- a/src/XGUI/XGUI_ViewerProxy.cpp +++ b/src/XGUI/XGUI_ViewerProxy.cpp @@ -1,12 +1,17 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D --> + #include "XGUI_ViewerProxy.h" #include "XGUI_Workshop.h" -#include "XGUI_MainWindow.h" -#include "XGUI_ViewPort.h" -#include "XGUI_ViewWindow.h" -#include "XGUI_Viewer.h" #include "XGUI_SalomeConnector.h" #include "XGUI_Displayer.h" +#include +#include +#include +#include + +#include + XGUI_ViewerProxy::XGUI_ViewerProxy(XGUI_Workshop* theParent) : ModuleBase_IViewer(theParent), myWorkshop(theParent) @@ -36,8 +41,8 @@ Handle(V3d_View) XGUI_ViewerProxy::activeView() const if (myWorkshop->isSalomeMode()) { return myWorkshop->salomeConnector()->viewer()->activeView(); } else { - XGUI_Viewer* aViewer = myWorkshop->mainWindow()->viewer(); - return (aViewer->activeViewWindow()) ? aViewer->activeViewWindow()->viewPort()->getView() : + AppElements_Viewer* aViewer = myWorkshop->mainWindow()->viewer(); + return (aViewer->activeViewWindow()) ? aViewer->activeViewWindow()->viewPortApp()->getView() : Handle(V3d_View)(); } } @@ -47,7 +52,7 @@ 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->FitAll(0.01, true); aView3d->SetZSize(0.); } } @@ -57,9 +62,9 @@ void XGUI_ViewerProxy::fitAll() if (myWorkshop->isSalomeMode()) { myWorkshop->salomeConnector()->viewer()->fitAll(); } else { - XGUI_Viewer* aViewer = myWorkshop->mainWindow()->viewer(); + AppElements_Viewer* aViewer = myWorkshop->mainWindow()->viewer(); if (aViewer->activeViewWindow()) - aViewer->activeViewWindow()->viewPort()->fitAll(); + aViewer->activeViewWindow()->viewPortApp()->fitAll(); } } @@ -76,7 +81,7 @@ void XGUI_ViewerProxy::connectToViewer() this, SIGNAL(deleteView(ModuleBase_IViewWindow*))); connect(aViewer, SIGNAL(viewCreated(ModuleBase_IViewWindow*)), - this, SIGNAL(viewCreated(ModuleBase_IViewWindow*))); + this, SLOT(onViewCreated(ModuleBase_IViewWindow*))); connect(aViewer, SIGNAL(activated(ModuleBase_IViewWindow*)), this, SIGNAL(activated(ModuleBase_IViewWindow*))); @@ -102,41 +107,40 @@ void XGUI_ViewerProxy::connectToViewer() connect(aViewer, SIGNAL(selectionChanged()), this, SIGNAL(selectionChanged())); connect(aViewer, SIGNAL(contextMenuRequested(QContextMenuEvent*)), this, SIGNAL(contextMenuRequested(QContextMenuEvent*))); - } else { - XGUI_Viewer* aViewer = myWorkshop->mainWindow()->viewer(); + AppElements_Viewer* aViewer = myWorkshop->mainWindow()->viewer(); connect(aViewer, SIGNAL(lastViewClosed()), this, SIGNAL(lastViewClosed())); - connect(aViewer, SIGNAL(tryCloseView(XGUI_ViewWindow*)), - this, SLOT(onTryCloseView(XGUI_ViewWindow*))); + connect(aViewer, SIGNAL(tryCloseView(AppElements_ViewWindow*)), + this, SLOT(onTryCloseView(AppElements_ViewWindow*))); - connect(aViewer, SIGNAL(deleteView(XGUI_ViewWindow*)), - this, SLOT(onDeleteView(XGUI_ViewWindow*))); + connect(aViewer, SIGNAL(deleteView(AppElements_ViewWindow*)), + this, SLOT(onDeleteView(AppElements_ViewWindow*))); - connect(aViewer, SIGNAL(viewCreated(XGUI_ViewWindow*)), - this, SLOT(onViewCreated(XGUI_ViewWindow*))); + connect(aViewer, SIGNAL(viewCreated(AppElements_ViewWindow*)), + this, SLOT(onViewCreated(AppElements_ViewWindow*))); - connect(aViewer, SIGNAL(activated(XGUI_ViewWindow*)), - this, SLOT(onActivated(XGUI_ViewWindow*))); + connect(aViewer, SIGNAL(activated(AppElements_ViewWindow*)), + this, SLOT(onActivated(AppElements_ViewWindow*))); - connect(aViewer, SIGNAL(mousePress(XGUI_ViewWindow*, QMouseEvent*)), this, - SLOT(onMousePress(XGUI_ViewWindow*, QMouseEvent*))); + connect(aViewer, SIGNAL(mousePress(AppElements_ViewWindow*, QMouseEvent*)), this, + SLOT(onMousePress(AppElements_ViewWindow*, QMouseEvent*))); - connect(aViewer, SIGNAL(mouseRelease(XGUI_ViewWindow*, QMouseEvent*)), this, - SLOT(onMouseRelease(XGUI_ViewWindow*, QMouseEvent*))); + connect(aViewer, SIGNAL(mouseRelease(AppElements_ViewWindow*, QMouseEvent*)), this, + SLOT(onMouseRelease(AppElements_ViewWindow*, QMouseEvent*))); - connect(aViewer, SIGNAL(mouseDoubleClick(XGUI_ViewWindow*, QMouseEvent*)), this, - SLOT(onMouseDoubleClick(XGUI_ViewWindow*, QMouseEvent*))); + connect(aViewer, SIGNAL(mouseDoubleClick(AppElements_ViewWindow*, QMouseEvent*)), this, + SLOT(onMouseDoubleClick(AppElements_ViewWindow*, QMouseEvent*))); - connect(aViewer, SIGNAL(mouseMove(XGUI_ViewWindow*, QMouseEvent*)), this, - SLOT(onMouseMove(XGUI_ViewWindow*, QMouseEvent*))); + connect(aViewer, SIGNAL(mouseMove(AppElements_ViewWindow*, QMouseEvent*)), this, + SLOT(onMouseMove(AppElements_ViewWindow*, QMouseEvent*))); - connect(aViewer, SIGNAL(keyPress(XGUI_ViewWindow*, QKeyEvent*)), this, - SLOT(onKeyPress(XGUI_ViewWindow*, QKeyEvent*))); + connect(aViewer, SIGNAL(keyPress(AppElements_ViewWindow*, QKeyEvent*)), this, + SLOT(onKeyPress(AppElements_ViewWindow*, QKeyEvent*))); - connect(aViewer, SIGNAL(keyRelease(XGUI_ViewWindow*, QKeyEvent*)), this, - SLOT(onKeyRelease(XGUI_ViewWindow*, QKeyEvent*))); + connect(aViewer, SIGNAL(keyRelease(AppElements_ViewWindow*, QKeyEvent*)), this, + SLOT(onKeyRelease(AppElements_ViewWindow*, QKeyEvent*))); connect(aViewer, SIGNAL(selectionChanged()), this, SIGNAL(selectionChanged())); connect(aViewer, SIGNAL(contextMenuRequested(QContextMenuEvent*)), this, @@ -144,53 +148,72 @@ void XGUI_ViewerProxy::connectToViewer() } } +bool XGUI_ViewerProxy::eventFilter(QObject *theObject, QEvent *theEvent) +{ + if (theEvent->type() == QEvent::Enter) { + emit enterViewPort(); + } + else if (theEvent->type() == QEvent::Leave) { + emit leaveViewPort(); + } + return ModuleBase_IViewer::eventFilter(theObject, theEvent); +} -void XGUI_ViewerProxy::onTryCloseView(XGUI_ViewWindow* theWnd) +void XGUI_ViewerProxy::onTryCloseView(AppElements_ViewWindow* theWnd) { emit tryCloseView(theWnd); } -void XGUI_ViewerProxy::onDeleteView(XGUI_ViewWindow* theWnd) +void XGUI_ViewerProxy::onDeleteView(AppElements_ViewWindow* theWnd) { emit deleteView(theWnd); } -void XGUI_ViewerProxy::onViewCreated(XGUI_ViewWindow* theWnd) +void XGUI_ViewerProxy::onViewCreated(ModuleBase_IViewWindow* theWnd) +{ + theWnd->viewPort()->installEventFilter(this); + + emit viewCreated(theWnd); +} + +void XGUI_ViewerProxy::onViewCreated(AppElements_ViewWindow* theWnd) { + theWnd->viewPort()->installEventFilter(this); + emit viewCreated(theWnd); } -void XGUI_ViewerProxy::onActivated(XGUI_ViewWindow* theWnd) +void XGUI_ViewerProxy::onActivated(AppElements_ViewWindow* theWnd) { emit activated(theWnd); } -void XGUI_ViewerProxy::onMousePress(XGUI_ViewWindow* theWnd, QMouseEvent* theEvent) +void XGUI_ViewerProxy::onMousePress(AppElements_ViewWindow* theWnd, QMouseEvent* theEvent) { emit mousePress(theWnd, theEvent); } -void XGUI_ViewerProxy::onMouseRelease(XGUI_ViewWindow* theWnd, QMouseEvent* theEvent) +void XGUI_ViewerProxy::onMouseRelease(AppElements_ViewWindow* theWnd, QMouseEvent* theEvent) { emit mouseRelease(theWnd, theEvent); } -void XGUI_ViewerProxy::onMouseDoubleClick(XGUI_ViewWindow* theWnd, QMouseEvent* theEvent) +void XGUI_ViewerProxy::onMouseDoubleClick(AppElements_ViewWindow* theWnd, QMouseEvent* theEvent) { emit mouseDoubleClick(theWnd, theEvent); } -void XGUI_ViewerProxy::onMouseMove(XGUI_ViewWindow* theWnd, QMouseEvent* theEvent) +void XGUI_ViewerProxy::onMouseMove(AppElements_ViewWindow* theWnd, QMouseEvent* theEvent) { emit mouseMove(theWnd, theEvent); } -void XGUI_ViewerProxy::onKeyPress(XGUI_ViewWindow* theWnd, QKeyEvent* theEvent) +void XGUI_ViewerProxy::onKeyPress(AppElements_ViewWindow* theWnd, QKeyEvent* theEvent) { emit keyPress(theWnd, theEvent); } -void XGUI_ViewerProxy::onKeyRelease(XGUI_ViewWindow* theWnd, QKeyEvent* theEvent) +void XGUI_ViewerProxy::onKeyRelease(AppElements_ViewWindow* theWnd, QKeyEvent* theEvent) { emit keyRelease(theWnd, theEvent); } @@ -254,3 +277,20 @@ void XGUI_ViewerProxy::clearSelectionFilters() { myWorkshop->displayer()->removeFilters(); } + +//*************************************** +void XGUI_ViewerProxy::update() +{ + myWorkshop->displayer()->updateViewer(); +} + +//*************************************** +bool XGUI_ViewerProxy::canDragByMouse() const +{ + if (myWorkshop->isSalomeMode()) { + ModuleBase_IViewer* aViewer = myWorkshop->salomeConnector()->viewer(); + return aViewer->canDragByMouse(); + } else { + return true; + } +}