X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_NodesDlg.cxx;h=d82ec9c1d8aaaae1d3627a0783f13faa9543ba81;hb=1fb9c7dd26ddb8ea74d19807641f81a8e8f4e1df;hp=84abe524296e47675ed4481ba66ccd74a33dcbda;hpb=3a401076892f2f372c58a07199e36486a6c5c9af;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_NodesDlg.cxx b/src/SMESHGUI/SMESHGUI_NodesDlg.cxx index 84abe5242..d82ec9c1d 100644 --- a/src/SMESHGUI/SMESHGUI_NodesDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_NodesDlg.cxx @@ -1,23 +1,23 @@ -// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 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 +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// 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. +// 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. // -// 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. +// 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 +// 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 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SMESH SMESHGUI : GUI for SMESH component @@ -100,8 +100,8 @@ namespace SMESH try { _PTR(SObject) aSobj = SMESH::FindSObject( theMesh ); SMESH::SMESH_MeshEditor_var aMeshEditor = theMesh->GetMeshEditor(); - aNodeId = aMeshEditor->AddNode( x, y, z ); theMesh->SetParameters( theParameters.join(":").toLatin1().constData() ); + aNodeId = aMeshEditor->AddNode( x, y, z ); _PTR(Study) aStudy = GetActiveStudyDocument(); CORBA::Long anId = aStudy->StudyId(); if (TVisualObjPtr aVisualObj = SMESH::GetVisualObj( anId, aSobj->GetID().c_str() ) ) { @@ -278,12 +278,14 @@ SMESHGUI_NodesDlg::SMESHGUI_NodesDlg( SMESHGUI* theModule ): SpinBox_Z = new SMESHGUI_SpinBox( GroupCoordinates ); GroupCoordinatesLayout->addWidget( TextLabel_X ); - GroupCoordinatesLayout->addWidget( SpinBox_X ); + GroupCoordinatesLayout->addWidget( SpinBox_X ); GroupCoordinatesLayout->addWidget( TextLabel_Y); GroupCoordinatesLayout->addWidget( SpinBox_Y ); GroupCoordinatesLayout->addWidget( TextLabel_Z ); GroupCoordinatesLayout->addWidget( SpinBox_Z ); - + GroupCoordinatesLayout->setStretch(1, 1); + GroupCoordinatesLayout->setStretch(3, 1); + GroupCoordinatesLayout->setStretch(5, 1); /***************************************************************/ GroupGroups = new QGroupBox( tr( "SMESH_ADD_TO_GROUP" ), this ); @@ -295,6 +297,7 @@ SMESHGUI_NodesDlg::SMESHGUI_NodesDlg( SMESHGUI* theModule ): TextLabel_GroupName = new QLabel( tr( "SMESH_GROUP" ), GroupGroups ); ComboBox_GroupName = new QComboBox( GroupGroups ); ComboBox_GroupName->setEditable( true ); + ComboBox_GroupName->setInsertPolicy( QComboBox::NoInsert ); GroupGroupsLayout->addWidget( TextLabel_GroupName ); GroupGroupsLayout->addWidget( ComboBox_GroupName, 1 ); @@ -449,18 +452,18 @@ 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; + idx = i; } - if ( idx > 0 ) { + 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" ), - tr( "MESH_STANDALONE_GRP_CHOSEN" ).arg( aGroupName ), - tr( "SMESH_BUT_YES" ), tr( "SMESH_BUT_NO" ), 0, 1 ); - if ( res == 1 ) return false; + int res = SUIT_MessageBox::question( this, tr( "SMESH_WRN_WARNING" ), + tr( "MESH_STANDALONE_GRP_CHOSEN" ).arg( aGroupName ), + tr( "SMESH_BUT_YES" ), tr( "SMESH_BUT_NO" ), 0, 1 ); + if ( res == 1 ) return false; } aGroup = myGroups[idx-1]; } @@ -478,21 +481,21 @@ bool SMESHGUI_NodesDlg::ClickOnApply() // create new group aGroupUsed = SMESH::AddGroup( myMesh, SMESH::NODE, aGroupName ); if ( !aGroupUsed->_is_nil() ) { - myGroups.append(SMESH::SMESH_GroupBase::_duplicate(aGroupUsed)); - ComboBox_GroupName->addItem( aGroupName ); + myGroups.append(SMESH::SMESH_GroupBase::_duplicate(aGroupUsed)); + ComboBox_GroupName->addItem( aGroupName ); } } else { SMESH::SMESH_GroupOnGeom_var aGeomGroup = SMESH::SMESH_GroupOnGeom::_narrow( aGroup ); if ( !aGeomGroup->_is_nil() ) { - aGroupUsed = myMesh->ConvertToStandalone( aGeomGroup ); - if ( !aGroupUsed->_is_nil() && idx > 0 ) { - myGroups[idx-1] = SMESH::SMESH_GroupBase::_duplicate(aGroupUsed); - SMESHGUI::GetSMESHGUI()->getApp()->updateObjectBrowser(); - } + aGroupUsed = myMesh->ConvertToStandalone( aGeomGroup ); + if ( !aGroupUsed->_is_nil() && idx > 0 ) { + myGroups[idx-1] = SMESH::SMESH_GroupBase::_duplicate(aGroupUsed); + SMESHGUI::GetSMESHGUI()->getApp()->updateObjectBrowser(); + } } else - aGroupUsed = SMESH::SMESH_Group::_narrow( aGroup ); + aGroupUsed = SMESH::SMESH_Group::_narrow( aGroup ); } if ( !aGroupUsed->_is_nil() ) { @@ -529,6 +532,8 @@ bool SMESHGUI_NodesDlg::ClickOnApply() } SMESHGUI::Modified(); + SMESH::UpdateView(); + mySimulation->SetVisibility(false); return true; } @@ -623,10 +628,10 @@ void SMESHGUI_NodesDlg::SelectionIntoArgument() for( int i = 0, n = aListOfGroups.length(); i < n; i++ ) { SMESH::SMESH_GroupBase_var aGroup = aListOfGroups[i]; if ( !aGroup->_is_nil() && aGroup->GetType() == SMESH::NODE ) { - QString aGroupName( aGroup->GetName() ); - if ( !aGroupName.isEmpty() ) { - myGroups.append(SMESH::SMESH_GroupBase::_duplicate(aGroup)); - ComboBox_GroupName->addItem( aGroupName ); + QString aGroupName( aGroup->GetName() ); + if ( !aGroupName.isEmpty() ) { + myGroups.append(SMESH::SMESH_GroupBase::_duplicate(aGroup)); + ComboBox_GroupName->addItem( aGroupName ); } } }