Salome HOME
23368: [CEA 1865] Possibility to define faces to mesh as a single one: transpatch...
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_Add0DElemsOnAllNodesDlg.cxx
index 8578dbf34df7ba4d870a17963d2d73c5b16e3354..30a8fc92d6f29faa74f8de50050ceb17dc7454d5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2015  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
@@ -104,6 +104,8 @@ SMESHGUI_Add0DElemsOnAllNodesDlg::SMESHGUI_Add0DElemsOnAllNodesDlg()
 
   myFilterBtn = new QPushButton( tr( "SMESH_BUT_FILTER" ), mainFrame() );
 
+  myDuplicateElemsChkBox = new QCheckBox( tr( "SMESH_DUPLICATE_0D" ), mainFrame() );
+
   // List of groups
 
   myGroupBox = new QGroupBox( tr( "SMESH_ADD_TO_GROUP" ), mainFrame() );
@@ -132,8 +134,9 @@ SMESHGUI_Add0DElemsOnAllNodesDlg::SMESHGUI_Add0DElemsOnAllNodesDlg()
   aLay->addWidget( objectWg( 0, Btn    ), 1, 1 );
   aLay->addWidget( objectWg( 0, Control), 1, 2, 1, 2 );
   aLay->addWidget( myFilterBtn,           1, 4 );
+  aLay->addWidget( myDuplicateElemsChkBox,2, 0 );
   //
-  aLay->addWidget( myGroupBox,            2, 0, 1, 5 );
+  aLay->addWidget( myGroupBox,            3, 0, 1, 5 );
 
   // Signals
 
@@ -270,16 +273,17 @@ void SMESHGUI_Add0DElemsOnAllNodesOp::selectionDone()
   if (!myDlg->myGroupBox->isEnabled())         return; // inactive
 
   myIO.Nullify();
-  myDlg->setObjectText( 0, "");
   updateButtons();
 
   SALOME_ListIO aList;
   selectionMgr()->selectedObjects( aList );
-  if ( aList.Extent() == 1 )
+  if ( aList.Extent() == 1 ) {
     myIO = aList.First();
-  else
+  }
+  else {
+    myDlg->setObjectText( 0, ""); // it clears the selection
     return;
-
+  }
   QString ids;
   switch ( myDlg->getSelectionType() ) {
   case SEL_OBJECT:
@@ -439,7 +443,8 @@ bool SMESHGUI_Add0DElemsOnAllNodesOp::onApply()
 
     QString groupName = myDlg->myGroupListCmBox->currentText();
     SMESH::SMESH_IDSource_var newObj =
-      editor->Create0DElementsOnAllNodes( meshObject, groupName.toLatin1().data() );
+      editor->Create0DElementsOnAllNodes( meshObject, groupName.toLatin1().data(),
+                                          myDlg->myDuplicateElemsChkBox->isChecked() );
 
     int newNb0D = mesh->Nb0DElements() - prevNb0D;
     SUIT_MessageBox::information( myDlg, tr( "SMESH_INFORMATION" ),