From: eap Date: Wed, 1 Oct 2008 12:04:32 +0000 (+0000) Subject: 0019970: create groups automatically X-Git-Tag: RELIQUAT_4x_25102008~20 X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=commitdiff_plain;h=043cbb6e60dddae0e90e7a98bd9fe754666c5abb 0019970: create groups automatically remove "Name" lineEdit --- diff --git a/doc/salome/gui/SMESH/images/create_groups_from_geometry.png b/doc/salome/gui/SMESH/images/create_groups_from_geometry.png index 54878f9f9..55aa5213a 100644 Binary files a/doc/salome/gui/SMESH/images/create_groups_from_geometry.png and b/doc/salome/gui/SMESH/images/create_groups_from_geometry.png differ diff --git a/doc/salome/gui/SMESH/input/creating_groups.doc b/doc/salome/gui/SMESH/input/creating_groups.doc index 2cfc648e8..b153970c6 100644 --- a/doc/salome/gui/SMESH/input/creating_groups.doc +++ b/doc/salome/gui/SMESH/input/creating_groups.doc @@ -78,7 +78,7 @@ a new group of mesh elements will be created. To create multiple groups on geometry of both nodes and elements of any type at once, in the \b Mesh menu select Create Groups from Geometry.
-Unique group names are generated by appending a number to \b Name. +Group names are same as those of geometrical objects. Type of group of mesh elements is defined automatically by Geometrical object nature. diff --git a/src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.cxx b/src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.cxx index c0409901b..2edd3c003 100644 --- a/src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.cxx @@ -64,8 +64,8 @@ SMESHGUI_GroupOnShapeDlg::SMESHGUI_GroupOnShapeDlg() aGrp->setInsideMargin( 0 ); // Name - new QLabel( tr( "SMESH_NAME" ), aGrp ); new QLabel( "", aGrp ); - myGrpNameLine = new QLineEdit( aGrp, "myGrpNameLine" ); + //new QLabel( tr( "SMESH_NAME" ), aGrp ); new QLabel( "", aGrp ); + //myGrpNameLine = new QLineEdit( aGrp, "myGrpNameLine" ); // Mesh new QLabel( tr( "SMESH_OBJECT_MESH" ), aGrp ); @@ -133,7 +133,7 @@ SMESHGUI_GroupOnShapeDlg::SMESHGUI_GroupOnShapeDlg() void SMESHGUI_GroupOnShapeDlg::updateButtons() { bool enable = - !myGrpNameLine->text().isEmpty() && myElemGeomList->count() + myNodeGeomList->count(); + /*!myGrpNameLine->text().isEmpty() &&*/ myElemGeomList->count() + myNodeGeomList->count(); button(Apply)->setEnabled( enable ); button(OK)->setEnabled( enable ); @@ -147,7 +147,7 @@ void SMESHGUI_GroupOnShapeDlg::updateButtons() void SMESHGUI_GroupOnShapeDlg::init() { - myGrpNameLine->setText(""); + //myGrpNameLine->setText(""); myMeshBtn->setOn( true ); myMeshLine->setText(""); @@ -270,7 +270,7 @@ void SMESHGUI_GroupOnShapeOp::startOperation() connect(myDlg->myMeshBtn, SIGNAL(clicked()), this, SLOT(onButtonClick())); connect(myDlg->myElemGeomBtn, SIGNAL(clicked()), this, SLOT(onButtonClick())); connect(myDlg->myNodeGeomBtn, SIGNAL(clicked()), this, SLOT(onButtonClick())); - connect(myDlg->myGrpNameLine, SIGNAL(textChanged(const QString&)),myDlg,SLOT(updateButtons())); + //connect(myDlg->myGrpNameLine, SIGNAL(textChanged(const QString&)),myDlg,SLOT(updateButtons())); } SMESHGUI_SelectionOp::startOperation(); @@ -301,12 +301,15 @@ bool SMESHGUI_GroupOnShapeOp::onApply() if ( mesh->_is_nil() ) return false; // names of all existing groups - SMESH::ListOfGroups_var groups = mesh->GetGroups(); - QStringList groupNames; - for ( int i = 0; i < groups->length(); ++i ) { - CORBA::String_var name = groups[i]->GetName(); - groupNames.append( name.in() ); - } +// QStringList groupNames; +// QString givenName = myDlg->myGrpNameLine->text(); +// if ( !givenName.isEmpty() ) { +// SMESH::ListOfGroups_var groups = mesh->GetGroups(); +// for ( int i = 0; i < groups->length(); ++i ) { +// CORBA::String_var name = groups[i]->GetName(); +// groupNames.append( name.in() ); +// } +// } // create groups SMESH::SMESH_GroupOnGeom_var group; @@ -315,7 +318,7 @@ bool SMESHGUI_GroupOnShapeOp::onApply() QStringList::iterator geomID = isNode ? myNodeGeoIDs.begin() : myElemGeoIDs.begin(); QStringList::iterator geomEnd = isNode ? myNodeGeoIDs.end() : myElemGeoIDs.end(); - for ( ; geomID != geomEnd; ++geomID ) + for (int i = 0 ; geomID != geomEnd; ++geomID, ++i ) { // selected geom _PTR(SObject) geomSO = aStudy->FindObjectID( *geomID ); @@ -327,13 +330,20 @@ bool SMESHGUI_GroupOnShapeOp::onApply() if ( elemType == SMESH::ALL ) continue; - // make a unique name - int nb = 1; - QString name = myDlg->myGrpNameLine->text() + "_" + QString::number(nb); - while ( groupNames.contains( name )) - name = myDlg->myGrpNameLine->text() + "_" + QString::number(++nb); - groupNames.append( name ); - + // group name + QString name; + //if ( givenName.isEmpty() ) { // use shape name + name = isNode ? myDlg->myNodeGeomList->text(i) : myDlg->myElemGeomList->text(i); +// } +// else { // make a unique name +// name = givenName; +// int nb = 0; +// if ( myNodeGeoIDs.size() + myElemGeoIDs.size() > 1 ) +// name += "_" + QString::number(++nb); +// while ( groupNames.contains( name )) +// name = givenName + "_" + QString::number(++nb); +// groupNames.append( name ); +// } //printf( "apply() %s %s\n", (*geomID).latin1(), name.latin1() ); group = mesh->CreateGroupFromGEOM( elemType, name, geom ); } diff --git a/src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.h b/src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.h index 53e8589c0..f500fb030 100644 --- a/src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.h +++ b/src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.h @@ -123,7 +123,7 @@ public slots: private: - QLineEdit* myGrpNameLine; + //QLineEdit* myGrpNameLine; QPushButton* myMeshBtn; QLineEdit* myMeshLine;