X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_NodesDlg.cxx;h=e163699d4fc9921378360e394f3f1a8ad23c6dc0;hp=2f9c03895119b2ba67fc6a6391f090a0ee64b58f;hb=193c49c87753b6ccabb2b5e6dc935aa480d2d43e;hpb=ae29d465091933df101dfac6ae99d3becf4efde7 diff --git a/src/SMESHGUI/SMESHGUI_NodesDlg.cxx b/src/SMESHGUI/SMESHGUI_NodesDlg.cxx index 2f9c03895..e163699d4 100644 --- a/src/SMESHGUI/SMESHGUI_NodesDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_NodesDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // 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. +// 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 @@ -382,8 +382,9 @@ void SMESHGUI_NodesDlg::Init() connect( mySMESHGUI, SIGNAL( SignalDeactivateActiveDialog() ), SLOT( DeactivateActiveDialog() ) ); /* to close dialog if study frame change */ connect( mySMESHGUI, SIGNAL( SignalStudyFrameChanged() ), SLOT( reject() ) ); - connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(reject())); - + connect( mySMESHGUI, SIGNAL( SignalCloseAllDialogs() ), SLOT( reject() ) ); + connect( mySMESHGUI, SIGNAL( SignalActivatedViewManager() ), SLOT( onOpenView() ) ); + connect( mySMESHGUI, SIGNAL( SignalCloseView() ), SLOT( onCloseView() ) ); // set selection mode SMESH::SetPointRepresentation( true ); if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ) ) @@ -402,7 +403,6 @@ void SMESHGUI_NodesDlg::ValueChangedInSpinBox( double newValue ) double vx = SpinBox_X->GetValue(); double vy = SpinBox_Y->GetValue(); double vz = SpinBox_Z->GetValue(); - mySimulation->SetPosition( vx, vy, vz ); } } @@ -547,7 +547,6 @@ void SMESHGUI_NodesDlg::reject() disconnect( mySelectionMgr, 0, this, 0 ); if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ) ) aViewWindow->SetSelectionMode( ActorSelection ); - mySimulation->SetVisibility( false ); SMESH::SetPointRepresentation( false ); mySMESHGUI->ResetState(); @@ -555,6 +554,36 @@ void SMESHGUI_NodesDlg::reject() QDialog::reject(); } +//================================================================================= +// function : onOpenView() +// purpose : +//================================================================================= +void SMESHGUI_NodesDlg::onOpenView() +{ + if ( mySelector && mySimulation ) { + mySimulation->SetVisibility(false); + SMESH::SetPointRepresentation(false); + } + else { + SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ); + mySelector = aViewWindow->GetSelector(); + mySimulation = new SMESH::TNodeSimulation(aViewWindow); + ActivateThisDialog(); + } +} + +//================================================================================= +// function : onCloseView() +// purpose : +//================================================================================= +void SMESHGUI_NodesDlg::onCloseView() +{ + DeactivateActiveDialog(); + mySelector = 0; + delete mySimulation; + mySimulation = 0; +} + //================================================================================= // function : ClickOnHelp() // purpose : @@ -644,8 +673,14 @@ void SMESHGUI_NodesDlg::SelectionIntoArgument() //================================================================================= void SMESHGUI_NodesDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !GroupConstructors->isEnabled() ) { + SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ); + if ( aViewWindow && !mySelector && !mySimulation) { + mySelector = aViewWindow->GetSelector(); + mySimulation = new SMESH::TNodeSimulation(aViewWindow); + } ActivateThisDialog(); + } } //================================================================================= @@ -678,7 +713,6 @@ void SMESHGUI_NodesDlg::ActivateThisDialog() SMESH::SetPointRepresentation( true ); if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ) ) aViewWindow->SetSelectionMode( NodeSelection ); - SelectionIntoArgument(); }