Salome HOME
0019970: create groups automatically
authoreap <eap@opencascade.com>
Wed, 1 Oct 2008 12:04:32 +0000 (12:04 +0000)
committereap <eap@opencascade.com>
Wed, 1 Oct 2008 12:04:32 +0000 (12:04 +0000)
    remove "Name" lineEdit

doc/salome/gui/SMESH/images/create_groups_from_geometry.png
doc/salome/gui/SMESH/input/creating_groups.doc
src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.cxx
src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.h

index 54878f9f93cb28faace5d2b398a10c7666a9e863..55aa5213ac7400704e73dd378da193407fc5a297 100644 (file)
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
index 2cfc648e8562b5e169c05331f6bab87e5a4b3863..b153970c65efb10867e46acdcee912dd4deb7bc7 100644 (file)
@@ -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 <b>Create Groups from
 Geometry</b>.<br>
 To create multiple groups on geometry of both nodes and elements of
 any type at once, in the \b Mesh menu select <b>Create Groups from
 Geometry</b>.<br>
-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 
 <b>Geometrical object</b> nature.
 
 Type of group of mesh elements is defined automatically by 
 <b>Geometrical object</b> nature.
 
index c0409901b1ae7d737731ddb1110e3769abfa8657..2edd3c003e7b2d1daa1e6ddce56cafdc9c638d9f 100644 (file)
@@ -64,8 +64,8 @@ SMESHGUI_GroupOnShapeDlg::SMESHGUI_GroupOnShapeDlg()
   aGrp->setInsideMargin( 0 );
 
   // Name
   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 );
 
   // Mesh
   new QLabel( tr( "SMESH_OBJECT_MESH" ), aGrp );
@@ -133,7 +133,7 @@ SMESHGUI_GroupOnShapeDlg::SMESHGUI_GroupOnShapeDlg()
 void SMESHGUI_GroupOnShapeDlg::updateButtons()
 {
   bool enable =
 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 );
 
   button(Apply)->setEnabled( enable );
   button(OK)->setEnabled( enable );
@@ -147,7 +147,7 @@ void SMESHGUI_GroupOnShapeDlg::updateButtons()
 
 void SMESHGUI_GroupOnShapeDlg::init()
 {
 
 void SMESHGUI_GroupOnShapeDlg::init()
 {
-  myGrpNameLine->setText("");
+  //myGrpNameLine->setText("");
 
   myMeshBtn->setOn( true );
   myMeshLine->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->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();
 
   }
   SMESHGUI_SelectionOp::startOperation();
 
@@ -301,12 +301,15 @@ bool SMESHGUI_GroupOnShapeOp::onApply()
   if ( mesh->_is_nil() ) return false;
 
   // names of all existing groups
   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;
 
   // 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();
 
     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 );
     {
       // selected geom
       _PTR(SObject) geomSO = aStudy->FindObjectID( *geomID );
@@ -327,13 +330,20 @@ bool SMESHGUI_GroupOnShapeOp::onApply()
       if ( elemType == SMESH::ALL )
         continue;
 
       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 );
     }
       //printf( "apply() %s %s\n", (*geomID).latin1(), name.latin1() );
       group = mesh->CreateGroupFromGEOM( elemType, name, geom );
     }
index 53e8589c06ddebcb5d4643f8502b1c8e934ed904..f500fb0307b6caf2215facc659aff017fa27a3f7 100644 (file)
@@ -123,7 +123,7 @@ public slots:
 
 private:
 
 
 private:
 
-  QLineEdit*                    myGrpNameLine;
+  //QLineEdit*                    myGrpNameLine;
 
   QPushButton*                  myMeshBtn;
   QLineEdit*                    myMeshLine;
 
   QPushButton*                  myMeshBtn;
   QLineEdit*                    myMeshLine;