X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_NodesDlg.cxx;h=0e6bd0d98cd07e8f12ba03aab918441c806c44a1;hb=cc935c7f604d28b6f9bb8f2e074fca925a608f36;hp=3f369e79009ffb1b976f3f77e71ff8c940b4d113;hpb=bd4e115a78b52e3fbc016e5e30bb0e19b2a9e7d6;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_NodesDlg.cxx b/src/SMESHGUI/SMESHGUI_NodesDlg.cxx index 3f369e790..0e6bd0d98 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-2016 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 @@ -173,7 +173,7 @@ namespace SMESH // Create and display actor myMapper = vtkDataSetMapper::New(); - myMapper->SetInput( aGrid ); + myMapper->SetInputData( aGrid ); aGrid->Delete(); myPreviewActor = SALOME_Actor::New(); @@ -185,11 +185,11 @@ namespace SMESH vtkProperty* aProp = vtkProperty::New(); aProp->SetRepresentationToPoints(); - vtkFloatingPointType anRGB[3]; + double anRGB[3]; GetColor( "SMESH", "node_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 255, 0 ) ); aProp->SetColor( anRGB[0], anRGB[1], anRGB[2] ); - vtkFloatingPointType aPointSize = GetFloat( "SMESH:node_size", 3 ); + double aPointSize = GetFloat( "SMESH:node_size", 3 ); aProp->SetPointSize( aPointSize ); myPreviewActor->SetProperty( aProp ); @@ -230,8 +230,8 @@ namespace SMESH //================================================================================= SMESHGUI_NodesDlg::SMESHGUI_NodesDlg( SMESHGUI* theModule ): QDialog( SMESH::GetDesktop( theModule ) ), - mySelector( SMESH::GetViewWindow( theModule )->GetSelector() ), mySelectionMgr( SMESH::GetSelectionMgr( theModule ) ), + mySelector( SMESH::GetViewWindow( theModule )->GetSelector() ), mySMESHGUI( theModule ) { setModal( false ); @@ -370,7 +370,7 @@ void SMESHGUI_NodesDlg::Init() /* signals and slots connections */ connect( buttonOk, SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); - connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) ); + connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) ); connect( buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); connect( buttonHelp, SIGNAL( clicked() ), this, SLOT( ClickOnHelp() ) ); @@ -381,9 +381,10 @@ void SMESHGUI_NodesDlg::Init() connect( mySelectionMgr, SIGNAL( currentSelectionChanged() ), SLOT( SelectionIntoArgument() ) ); connect( mySMESHGUI, SIGNAL( SignalDeactivateActiveDialog() ), SLOT( DeactivateActiveDialog() ) ); /* to close dialog if study frame change */ - connect( mySMESHGUI, SIGNAL( SignalStudyFrameChanged() ), SLOT( ClickOnCancel() ) ); - connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(ClickOnCancel())); - + connect( mySMESHGUI, SIGNAL( SignalStudyFrameChanged() ), 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 ); } } @@ -414,7 +414,7 @@ void SMESHGUI_NodesDlg::ValueChangedInSpinBox( double newValue ) void SMESHGUI_NodesDlg::ClickOnOk() { if ( ClickOnApply() ) - ClickOnCancel(); + reject(); } //================================================================================= @@ -452,12 +452,12 @@ bool SMESHGUI_NodesDlg::ClickOnApply() int idx = 0; if( addToGroup ) { aGroupName = ComboBox_GroupName->currentText(); - for ( int i = 1; i < ComboBox_GroupName->count(); i++ ) { + for ( int i = 1; i <= ComboBox_GroupName->count(); i++ ) { QString aName = ComboBox_GroupName->itemText( i ); if ( aGroupName == aName && ( i == ComboBox_GroupName->currentIndex() || idx == 0 ) ) idx = i; } - if ( idx > 0 && idx < myGroups.count() ) { + if ( idx > 0 && idx <= myGroups.count() ) { SMESH::SMESH_GroupOnGeom_var aGeomGroup = SMESH::SMESH_GroupOnGeom::_narrow( myGroups[idx-1] ); if ( !aGeomGroup->_is_nil() ) { int res = SUIT_MessageBox::question( this, tr( "SMESH_WRN_WARNING" ), @@ -539,20 +539,49 @@ bool SMESHGUI_NodesDlg::ClickOnApply() } //================================================================================= -// function : ClickOnCancel() +// function : reject() // purpose : //================================================================================= -void SMESHGUI_NodesDlg::ClickOnCancel() +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(); - 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; } //================================================================================= @@ -638,33 +667,20 @@ void SMESHGUI_NodesDlg::SelectionIntoArgument() } } -//================================================================================= -// function : closeEvent() -// purpose : -//================================================================================= -void SMESHGUI_NodesDlg::closeEvent( QCloseEvent* ) -{ - this->ClickOnCancel(); /* same than click on cancel button */ -} - -//================================================================================= -// function : hideEvent() -// purpose : caused by ESC key -//================================================================================= -void SMESHGUI_NodesDlg::hideEvent( QHideEvent* ) -{ - if ( !isMinimized() ) - ClickOnCancel(); -} - //================================================================================= // function : enterEvent() // purpose : to reactivate this dialog box when mouse enter onto the window //================================================================================= 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(); + } } //================================================================================= @@ -697,7 +713,6 @@ void SMESHGUI_NodesDlg::ActivateThisDialog() SMESH::SetPointRepresentation( true ); if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ) ) aViewWindow->SetSelectionMode( NodeSelection ); - SelectionIntoArgument(); }