X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FOCCViewer%2FOCCViewer_ViewFrame.cxx;h=9115688f1b8f0af3cf8ea006ca863eddfc83600e;hb=f52f29e2784cc9ab3e4d7910354edaa4fa75a6db;hp=6e7667829bfacc6d56b6298e62d693cf1e13c6f1;hpb=6b44d761bb8435bd7ca6ad1891065fc223f27963;p=modules%2Fgui.git diff --git a/src/OCCViewer/OCCViewer_ViewFrame.cxx b/src/OCCViewer/OCCViewer_ViewFrame.cxx index 6e7667829..9115688f1 100644 --- a/src/OCCViewer/OCCViewer_ViewFrame.cxx +++ b/src/OCCViewer/OCCViewer_ViewFrame.cxx @@ -85,6 +85,24 @@ void OCCViewer_ViewFrame::setViewManager( SUIT_ViewManager* theMgr ) } } +//************************************************************************************** +void OCCViewer_ViewFrame::returnTo3dView() +{ + OCCViewer_ViewWindow* view = 0; + for (int i = BOTTOM_RIGHT; i <= TOP_RIGHT; i++ ) { + view = myViews.at(i); + view->setVisible( view->get2dMode() == No2dMode ); + view->setMaximized( true, false ); + if (view->get2dMode() == No2dMode) myMaximizedView = view; + } + myLayout->setColumnStretch(0, 0); + myLayout->setColumnStretch(1, 0); + myLayout->addWidget( myMaximizedView, 0, 0 ); + mySplitMode = -1; + myViewsMode.clear(); + myLayout->invalidate(); +} + //************************************************************************************** void OCCViewer_ViewFrame::onMaximizedView( OCCViewer_ViewWindow* theView, bool isMaximized) { @@ -227,6 +245,7 @@ void OCCViewer_ViewFrame::splitSubViews() } OCCViewer_ViewWindow* view = 0; + bool isVisible3dView = false; for ( int i = 0; i< myViews.count(); i++ ) { view = myViews.at(i); bool isShowed = false; @@ -239,6 +258,7 @@ void OCCViewer_ViewFrame::splitSubViews() if( isShowed ) { view->show(); view->setMaximized( false, false ); + if ( view->get2dMode() == No2dMode ) isVisible3dView = true; ///////////////QApplication::processEvents(); // VSR: hangs up ? if ( view != myMaximizedView ) view->onViewFitAll(); @@ -246,6 +266,13 @@ void OCCViewer_ViewFrame::splitSubViews() else view->setVisible( false ); } + if ( !isVisible3dView ) { + for ( int i = 0; i< myViews.count(); i++ ){ + view = myViews.at(i); + if( view->isVisible() ) + view->setReturnedTo3dView( false ); + } + } } //************************************************************************************** @@ -300,6 +327,8 @@ void OCCViewer_ViewFrame::setZoomingStyle( const int i ) //************************************************************************************** void OCCViewer_ViewFrame::connectViewSignals(OCCViewer_ViewWindow* theView) { + connect( theView, SIGNAL( returnedTo3d( ) ), this, SLOT( returnTo3dView( ) ) ); + connect( theView, SIGNAL( maximized( OCCViewer_ViewWindow*, bool ) ), this, SLOT( onMaximizedView( OCCViewer_ViewWindow*, bool ) ) ); @@ -513,3 +542,17 @@ void OCCViewer_ViewFrame::updateWindowTitle(OCCViewer_ViewWindow* theView) if ( !title.isEmpty() ) theView->setWindowTitle( windowTitle() + " - " + title ); } + +void OCCViewer_ViewFrame::enableSelection( bool isEnabled ) +{ + foreach (OCCViewer_ViewWindow* aView, myViews) { + aView->enableSelection(isEnabled); + } +} + +void OCCViewer_ViewFrame::enablePreselection( bool isEnabled ) +{ + foreach (OCCViewer_ViewWindow* aView, myViews) { + aView->enablePreselection(isEnabled); + } +}