1 // SMESH SMESHGUI : GUI for SMESH component
3 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
24 // File : SMESHGUI_MergeNodesDlg.cxx
25 // Author : Michael ZORIN
29 #include "SMESHGUI_MergeNodesDlg.h"
32 #include "SMESHGUI_Utils.h"
33 #include "SMESHGUI_VTKUtils.h"
34 #include "SMESHGUI_IdValidator.h"
35 #include "SMESHGUI_SpinBox.h"
37 #include "SMESH_Actor.h"
38 #include "SMDS_Mesh.hxx"
42 #include "QAD_Application.h"
43 #include "QAD_Desktop.h"
44 #include "QAD_MessageBox.h"
45 #include "utilities.h"
48 #include <qapplication.h>
49 #include <qbuttongroup.h>
50 #include <qgroupbox.h>
52 #include <qlineedit.h>
54 #include <qlistview.h>
55 #include <qpushbutton.h>
56 #include <qradiobutton.h>
57 #include <qcheckbox.h>
64 //=================================================================================
65 // class : SMESHGUI_MergeNodesDlg()
67 //=================================================================================
68 SMESHGUI_MergeNodesDlg::SMESHGUI_MergeNodesDlg( QWidget* parent, const char* name, SALOME_Selection* Sel,
69 bool modal, WFlags fl )
70 : QDialog( parent, name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu |
71 Qt::WDestructiveClose)
73 QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap( "SMESH",tr("ICON_SMESH_MERGE_NODES")));
74 QPixmap image1(QAD_Desktop::getResourceManager()->loadPixmap( "SMESH",tr("ICON_SELECT")));
77 setName( "SMESHGUI_MergeNodesDlg" );
79 setCaption( tr( "SMESH_MERGE_NODES" ) );
80 setSizeGripEnabled( TRUE );
81 SMESHGUI_MergeNodesDlgLayout = new QGridLayout( this );
82 SMESHGUI_MergeNodesDlgLayout->setSpacing( 6 );
83 SMESHGUI_MergeNodesDlgLayout->setMargin( 11 );
85 /***************************************************************/
86 GroupConstructors = new QButtonGroup( this, "GroupConstructors" );
87 GroupConstructors->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)0, 0, 0, GroupConstructors->sizePolicy().hasHeightForWidth() ) );
88 GroupConstructors->setTitle( tr( "SMESH_MERGE_NODES" ) );
89 GroupConstructors->setExclusive( TRUE );
90 GroupConstructors->setColumnLayout(0, Qt::Vertical );
91 GroupConstructors->layout()->setSpacing( 0 );
92 GroupConstructors->layout()->setMargin( 0 );
93 GroupConstructorsLayout = new QGridLayout( GroupConstructors->layout() );
94 GroupConstructorsLayout->setAlignment( Qt::AlignTop );
95 GroupConstructorsLayout->setSpacing( 6 );
96 GroupConstructorsLayout->setMargin( 11 );
97 QHBoxLayout* RBLayout = new QHBoxLayout( 0, 0, 6, "Layout2");
98 RadioButton1= new QRadioButton( GroupConstructors, "RadioButton1" );
99 RadioButton1->setText( tr( "" ) );
100 RadioButton1->setPixmap( image0 );
101 RBLayout->addWidget( RadioButton1);
102 GroupConstructorsLayout->addLayout( RBLayout, 0, 0 );
103 SMESHGUI_MergeNodesDlgLayout->addWidget( GroupConstructors, 0, 0 );
105 /***************************************************************/
106 GroupButtons = new QGroupBox( this, "GroupButtons" );
107 GroupButtons->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, GroupButtons->sizePolicy().hasHeightForWidth() ) );
108 GroupButtons->setGeometry( QRect( 10, 10, 281, 48 ) );
109 GroupButtons->setTitle( tr( "" ) );
110 GroupButtons->setColumnLayout(0, Qt::Vertical );
111 GroupButtons->layout()->setSpacing( 0 );
112 GroupButtons->layout()->setMargin( 0 );
113 GroupButtonsLayout = new QGridLayout( GroupButtons->layout() );
114 GroupButtonsLayout->setAlignment( Qt::AlignTop );
115 GroupButtonsLayout->setSpacing( 6 );
116 GroupButtonsLayout->setMargin( 11 );
117 buttonCancel = new QPushButton( GroupButtons, "buttonCancel" );
118 buttonCancel->setText( tr( "SMESH_BUT_CLOSE" ) );
119 buttonCancel->setAutoDefault( TRUE );
120 GroupButtonsLayout->addWidget( buttonCancel, 0, 3 );
121 buttonApply = new QPushButton( GroupButtons, "buttonApply" );
122 buttonApply->setText( tr( "SMESH_BUT_APPLY" ) );
123 buttonApply->setAutoDefault( TRUE );
124 GroupButtonsLayout->addWidget( buttonApply, 0, 1 );
125 QSpacerItem* spacer_9 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
126 GroupButtonsLayout->addItem( spacer_9, 0, 2 );
127 buttonOk = new QPushButton( GroupButtons, "buttonOk" );
128 buttonOk->setText( tr( "SMESH_BUT_OK" ) );
129 buttonOk->setAutoDefault( TRUE );
130 buttonOk->setDefault( TRUE );
131 GroupButtonsLayout->addWidget( buttonOk, 0, 0 );
132 SMESHGUI_MergeNodesDlgLayout->addWidget( GroupButtons, 4, 0 );
134 /***************************************************************/
136 // Controls for mesh defining
137 GroupMesh = new QGroupBox( this, "GroupMesh" );
138 GroupMesh->setTitle( tr( "SMESH_MESH" ) );
139 GroupMesh->setColumnLayout(0, Qt::Vertical );
140 GroupMesh->layout()->setSpacing( 0 );
141 GroupMesh->layout()->setMargin( 0 );
142 GroupMeshLayout = new QGridLayout( GroupMesh->layout() );
143 GroupMeshLayout->setAlignment( Qt::AlignTop );
144 GroupMeshLayout->setSpacing( 6 );
145 GroupMeshLayout->setMargin( 11 );
147 TextLabelName = new QLabel( GroupMesh, "TextLabelName" );
148 TextLabelName->setText( tr( "SMESH_NAME" ) );
149 GroupMeshLayout->addWidget( TextLabelName, 0, 0 );
151 SelectMeshButton = new QPushButton( GroupMesh, "SelectMeshButton" );
152 SelectMeshButton->setPixmap( image1 );
153 GroupMeshLayout->addWidget( SelectMeshButton, 0, 1 );
155 LineEditMesh = new QLineEdit(GroupMesh, "LineEditMesh");
156 LineEditMesh->setReadOnly(true);
157 GroupMeshLayout->addWidget( LineEditMesh, 0, 2 );
159 SMESHGUI_MergeNodesDlgLayout->addWidget( GroupMesh, 1, 0 );
161 // Controls for coincident nodes detecting
162 GroupCoincident = new QGroupBox( this, "GroupCoincident" );
163 GroupCoincident->setTitle( tr( "COINCIDENT_NODES" ) );
164 GroupCoincident->setColumnLayout(0, Qt::Vertical );
165 GroupCoincident->layout()->setSpacing( 0 );
166 GroupCoincident->layout()->setMargin( 0 );
167 QGridLayout* GroupCoincidentLayout = new QGridLayout( GroupCoincident->layout() );
168 GroupCoincidentLayout->setAlignment( Qt::AlignTop );
169 GroupCoincidentLayout->setSpacing( 6 );
170 GroupCoincidentLayout->setMargin( 11 );
172 TextLabelTolerance = new QLabel( GroupCoincident, "TextLabelTolerance" );
173 TextLabelTolerance->setText( tr( "SMESH_TOLERANCE" ) );
174 GroupCoincidentLayout->addWidget( TextLabelTolerance, 0, 0 );
176 SpinBoxTolerance = new SMESHGUI_SpinBox( GroupCoincident, "SpinBoxTolerance" );
177 GroupCoincidentLayout->addWidget( SpinBoxTolerance, 0, 1 );
179 QPushButton* DetectButton = new QPushButton( GroupCoincident, "DetectButton" );
180 DetectButton->setText( tr("DETECT") );
181 GroupCoincidentLayout->addWidget( DetectButton, 0, 2 );
183 ListCoincident = new QListView( GroupCoincident );
184 ListCoincident->setSorting( -1 );
185 ListCoincident->addColumn( "Nodes" );
186 ListCoincident->header()->hide();
188 GroupCoincidentLayout->addMultiCellWidget( ListCoincident, 1, 1, 0, 1 );
190 SelectAllCB = new QCheckBox(GroupCoincident, "SelectAllCB");
191 SelectAllCB->setText(tr("SELECT_ALL"));
192 GroupCoincidentLayout->addWidget( SelectAllCB, 2, 0 );
194 SMESHGUI_MergeNodesDlgLayout->addWidget( GroupCoincident, 2, 0 );
196 // Controls for editing group of nodes
197 GroupEdit = new QGroupBox( this, "GroupEdit" );
198 GroupEdit->setTitle( tr( "EDIT_GROUP_OF_NODES" ) );
199 GroupEdit->setColumnLayout(0, Qt::Vertical );
200 GroupEdit->layout()->setSpacing( 0 );
201 GroupEdit->layout()->setMargin( 0 );
202 QGridLayout* GroupEditLayout = new QGridLayout( GroupEdit->layout() );
203 GroupEditLayout->setAlignment( Qt::AlignTop );
204 GroupEditLayout->setSpacing( 6 );
205 GroupEditLayout->setMargin( 11 );
207 ListEdit = new QListBox( GroupEdit, "ListEdit" );
208 ListEdit->setColumnMode(QListBox::FitToHeight);
209 ListEdit->setSelectionMode( QListBox::Extended );
210 GroupEditLayout->addMultiCellWidget( ListEdit, 0, 2, 0, 0 );
212 QPushButton* AddButton = new QPushButton( GroupEdit, "AddButton" );
213 AddButton->setText( tr("SMESH_BUT_ADD") );
214 GroupEditLayout->addWidget( AddButton, 0, 1 );
216 QPushButton* RemoveButton = new QPushButton( GroupEdit, "RemoveButton" );
217 RemoveButton->setText( tr("SMESH_BUT_REMOVE") );
218 GroupEditLayout->addWidget( RemoveButton, 1, 1 );
220 QSpacerItem* spacer = new QSpacerItem( 20, 200, QSizePolicy::Minimum, QSizePolicy::Expanding );
221 GroupEditLayout->addItem( spacer, 2, 1 );
223 SMESHGUI_MergeNodesDlgLayout->addWidget( GroupEdit, 3, 0 );
225 /* Initialisations */
226 SpinBoxTolerance->RangeStepAndValidator( 0.0, COORD_MAX, 0.1, 3 );
227 SpinBoxTolerance->SetValue(1e-05);
229 RadioButton1->setChecked( TRUE );
231 myEditCurrentArgument = (QWidget*)LineEditMesh;
235 mySMESHGUI = SMESHGUI::GetSMESHGUI() ;
236 mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
238 myMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
240 /* signals and slots connections */
241 connect( buttonOk, SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
242 connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) );
243 connect( buttonApply, SIGNAL( clicked() ), this, SLOT(ClickOnApply() ) );
245 connect( SelectMeshButton, SIGNAL (clicked() ), this, SLOT( SetEditCurrentArgument() ) );
246 connect( DetectButton, SIGNAL ( clicked() ), this, SLOT( onDetect() ) );
247 connect( ListCoincident, SIGNAL ( selectionChanged() ), this, SLOT( onSelectNodesGroup() ) );
248 connect( ListCoincident, SIGNAL ( pressed( QListViewItem* ) ), this, SLOT( updateControls() ) );
249 connect( ListCoincident, SIGNAL ( currentChanged( QListViewItem* ) ), this, SLOT( updateControls() ) );
250 connect( SelectAllCB, SIGNAL( toggled(bool) ), this, SLOT(onSelectAll(bool) ) );
251 connect( ListEdit, SIGNAL ( selectionChanged() ), this, SLOT( onSelectNodesFromGroup() ) );
252 connect( AddButton, SIGNAL ( clicked() ), this, SLOT( onAdd() ) );
253 connect( RemoveButton, SIGNAL ( clicked() ), this, SLOT( onRemove() ) );
255 connect( mySMESHGUI, SIGNAL ( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) );
256 connect( mySelection, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
257 /* to close dialog if study change */
258 connect( mySMESHGUI, SIGNAL ( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) );
260 /* Move widget on the botton right corner of main widget */
262 mySMESHGUI->DefineDlgPosition( this, x, y ) ;
264 this->show() ; /* displays Dialog */
267 buttonOk->setEnabled(false);
268 buttonApply->setEnabled(false);
270 // Init Mesh field from selection
271 SelectionIntoArgument();
274 //=================================================================================
275 // function : ~SMESHGUI_MergeNodesDlg()
276 // purpose : Destroys the object and frees any allocated resources
277 //=================================================================================
278 SMESHGUI_MergeNodesDlg::~SMESHGUI_MergeNodesDlg()
280 // no need to delete child widgets, Qt does it all for us
284 //=================================================================================
285 // function : ClickOnApply()
287 //=================================================================================
288 bool SMESHGUI_MergeNodesDlg::ClickOnApply()
290 if (mySMESHGUI->ActiveStudyLocked() || myMesh->_is_nil())
295 SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
297 QApplication::setOverrideCursor(Qt::waitCursor);
298 SMESH::array_of_long_array_var aGroupsOfNodes = new SMESH::array_of_long_array;
299 aGroupsOfNodes->length(ListCoincident->childCount());
300 QListViewItem* item = ListCoincident->firstChild();
305 QStringList aListIds = QStringList("");
306 if (((QCheckListItem*) item)->isOn())
307 aListIds = QStringList::split( " ", item->text(0), false);
309 SMESH::long_array_var anIds = new SMESH::long_array;
310 anIds->length(aListIds.count());
312 for ( int i = 0; i < aListIds.count(); i++ )
313 anIds[i] = aListIds[i].toInt();
315 aGroupsOfNodes[anArrayNum++] = anIds.inout();
317 item = item->itemBelow();
320 aMeshEditor->MergeNodes (aGroupsOfNodes.inout());
321 QApplication::restoreOverrideCursor();
327 mySelection->ClearIObjects();
334 //=================================================================================
335 // function : ClickOnOk()
337 //=================================================================================
338 void SMESHGUI_MergeNodesDlg::ClickOnOk()
345 //=================================================================================
346 // function : ClickOnCancel()
348 //=================================================================================
349 void SMESHGUI_MergeNodesDlg::ClickOnCancel()
351 mySelection->ClearFilters();
352 mySelection->ClearIObjects();
353 SMESH::SetPointRepresentation(false);
354 QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
355 disconnect( mySelection, 0, this, 0 );
356 mySMESHGUI->ResetState() ;
361 //=================================================================================
362 // function : onEditNodesGroup()
364 //=================================================================================
365 void SMESHGUI_MergeNodesDlg::onEditNodesGroup()
367 if ( ListCoincident->childCount() < 1 )
370 QString aNewIds = "";
372 QListBoxItem* anItem;
373 for (anItem = ListEdit->firstItem(); anItem != 0; anItem = anItem->next())
374 aNewIds+=QString(" %1").arg(anItem->text());
376 ListCoincident->currentItem()->setText(0, aNewIds);
380 //=================================================================================
381 // function : updateControls()
383 //=================================================================================
384 void SMESHGUI_MergeNodesDlg::updateControls()
386 if ( ListCoincident->childCount() < 1 )
388 SMESH::SetPointRepresentation(false);
389 QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
393 bool hasChecked = false, hasUnchecked = false;
395 QListViewItem* item = ListCoincident->firstChild();
397 while (item && (!hasChecked || !hasUnchecked))
399 if (((QCheckListItem*) item)->isOn())
404 item = item->itemBelow();
408 SelectAllCB->setChecked(false);
410 bool enable = !(myMesh->_is_nil()) && hasChecked;
412 buttonOk->setEnabled(enable);
413 buttonApply->setEnabled(enable);
417 //=================================================================================
418 // function : onDetect()
420 //=================================================================================
421 void SMESHGUI_MergeNodesDlg::onDetect()
423 if(myMesh->_is_nil())
428 SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
430 QApplication::setOverrideCursor(Qt::waitCursor);
431 ListCoincident->clear();
434 SMESH::array_of_long_array_var aNodeGroups;
435 aMeshEditor->FindCoincidentNodes(SpinBoxTolerance->GetValue(), aNodeGroups);
437 for ( int i = 0; i < aNodeGroups->length(); i++ )
439 SMESH::long_array& aGroup = aNodeGroups[i];
442 for ( int j = 0; j < aGroup.length(); j++ )
443 aNodeIds+=QString(" %1").arg(aGroup[j]);
445 new QCheckListItem ( ListCoincident, aNodeIds, QCheckListItem::CheckBox );
447 QApplication::restoreOverrideCursor();
457 //=================================================================================
458 // function : onSelectNodesGroup()
460 //=================================================================================
461 void SMESHGUI_MergeNodesDlg::onSelectNodesGroup()
466 myEditCurrentArgument = (QWidget*)ListCoincident;
468 QListViewItem* aSelectedItem = ListCoincident->selectedItem();
472 QStringList aListId = QStringList::split( " ", aSelectedItem->text(0), false);
475 ListEdit->insertStringList(aListId);
477 mySelection->ClearIObjects();
478 mySelection->AddIObject( myActor->getIO() );
480 SMESH::SetPointRepresentation(true);
481 QAD_Application::getDesktop()->SetSelectionMode( NodeSelection, true );
483 ListEdit->selectAll(true);
487 //=================================================================================
488 // function : onSelectAll()
490 //=================================================================================
491 void SMESHGUI_MergeNodesDlg::onSelectAll(bool isToggled)
496 QListViewItem* item = ListCoincident->firstChild();
500 if (!((QCheckListItem*) item)->isOn())
501 ((QCheckListItem*) item)->setOn(true);
502 item = item->itemBelow();
507 buttonOk->setEnabled(true);
508 buttonApply->setEnabled(true);
514 //=================================================================================
515 // function : onSelectNodesFromGroup()
517 //=================================================================================
518 void SMESHGUI_MergeNodesDlg::onSelectNodesFromGroup()
523 mySelection->ClearIObjects();
525 TColStd_MapOfInteger aIndexes;
526 QListBoxItem* anItem;
527 for (anItem = ListEdit->firstItem(); anItem != 0; anItem = anItem->next()) {
528 if (anItem->isSelected()) {
529 int anId = anItem->text().toInt();
533 mySelection->AddOrRemoveIndex(myActor->getIO(), aIndexes, false, false);
534 mySelection->AddIObject(myActor->getIO());
538 //=================================================================================
539 // function : onAdd()
541 //=================================================================================
542 void SMESHGUI_MergeNodesDlg::onAdd()
547 QString aListStr = "";
550 aNbNnodes = SMESH::GetNameOfSelectedNodes(mySelection, myActor->getIO(), aListStr);
554 QStringList aNodes = QStringList::split(" ", aListStr);
555 QListBoxItem* anItem = 0;
557 for (QStringList::iterator it = aNodes.begin(); it != aNodes.end(); ++it) {
558 anItem = ListEdit->findItem(*it, Qt::ExactMatch);
560 anItem = new QListBoxText(*it);
561 ListEdit->insertItem(anItem);
563 ListEdit->setSelected(anItem, true);
570 //=================================================================================
571 // function : onRemove()
573 //=================================================================================
574 void SMESHGUI_MergeNodesDlg::onRemove()
576 if (myEditCurrentArgument != (QWidget*)ListCoincident)
579 for (int i = ListEdit->count(); i > 0; i--)
581 if (ListEdit->isSelected(i-1))
582 ListEdit->removeItem(i-1);
588 //=================================================================================
589 // function : SetEditCurrentArgument()
591 //=================================================================================
592 void SMESHGUI_MergeNodesDlg::SetEditCurrentArgument()
594 QPushButton* send = (QPushButton*)sender();
596 disconnect( mySelection, 0, this, 0 );
597 mySelection->ClearIObjects();
598 mySelection->ClearFilters();
600 if(send == SelectMeshButton)
602 myEditCurrentArgument = (QWidget*)LineEditMesh;
603 SMESH::SetPointRepresentation(false);
604 QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
605 mySelection->AddFilter(myMeshOrSubMeshFilter) ;
608 myEditCurrentArgument->setFocus();
609 connect( mySelection, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
610 SelectionIntoArgument() ;
614 //=================================================================================
615 // function : SelectionIntoArgument()
616 // purpose : Called when selection as changed or other case
617 //=================================================================================
618 void SMESHGUI_MergeNodesDlg::SelectionIntoArgument()
620 if (myEditCurrentArgument == (QWidget*)LineEditMesh)
622 QString aString = "";
623 LineEditMesh->setText( aString );
625 ListCoincident->clear();
628 int nbSel = SMESH::GetNameOfSelectedIObjects(mySelection, aString);
632 Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
633 myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO) ;
634 myActor = SMESH::FindActorByEntry( mySelection->firstIObject()->getEntry() );
635 if(myMesh->_is_nil() || !myActor)
638 LineEditMesh->setText( aString );
643 //=================================================================================
644 // function : DeactivateActiveDialog()
646 //=================================================================================
647 void SMESHGUI_MergeNodesDlg::DeactivateActiveDialog()
649 if ( GroupConstructors->isEnabled() ) {
650 GroupConstructors->setEnabled(false) ;
651 GroupMesh->setEnabled(false);
652 GroupCoincident->setEnabled(false);
653 GroupEdit->setEnabled(false);
654 GroupButtons->setEnabled(false) ;
655 mySMESHGUI->ResetState() ;
656 mySMESHGUI->SetActiveDialogBox(0) ;
661 //=================================================================================
662 // function : ActivateThisDialog()
664 //=================================================================================
665 void SMESHGUI_MergeNodesDlg::ActivateThisDialog()
667 /* Emit a signal to deactivate the active dialog */
668 mySMESHGUI->EmitSignalDeactivateDialog() ;
669 GroupConstructors->setEnabled(true) ;
670 GroupMesh->setEnabled(true);
671 GroupCoincident->setEnabled(true);
672 GroupEdit->setEnabled(true);
673 GroupButtons->setEnabled(true) ;
675 mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
677 SelectionIntoArgument();
681 //=================================================================================
682 // function : enterEvent()
684 //=================================================================================
685 void SMESHGUI_MergeNodesDlg::enterEvent(QEvent* e)
687 if ( GroupConstructors->isEnabled() )
689 ActivateThisDialog() ;
693 //=================================================================================
694 // function : closeEvent()
696 //=================================================================================
697 void SMESHGUI_MergeNodesDlg::closeEvent( QCloseEvent* e )
699 /* same than click on cancel button */
704 //=======================================================================
705 //function : hideEvent
706 //purpose : caused by ESC key
707 //=======================================================================
709 void SMESHGUI_MergeNodesDlg::hideEvent ( QHideEvent * e )
711 if ( !isMinimized() )