X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_Add0DElemsOnAllNodesDlg.cxx;h=cf747775fe0669b5a6b7e4bcd618551534f049e8;hp=96fca0d9f0f4e658cf0e94ae1e8d60964a707c9e;hb=HEAD;hpb=674c0d8b9d98776136d216ec8f1bad56acac5bf5 diff --git a/src/SMESHGUI/SMESHGUI_Add0DElemsOnAllNodesDlg.cxx b/src/SMESHGUI/SMESHGUI_Add0DElemsOnAllNodesDlg.cxx index 96fca0d9f..143b187b6 100644 --- a/src/SMESHGUI/SMESHGUI_Add0DElemsOnAllNodesDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_Add0DElemsOnAllNodesDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -40,6 +40,7 @@ #include #include #include +#include // Qt includes #include @@ -104,6 +105,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 +135,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 @@ -219,7 +223,7 @@ SMESHGUI_Add0DElemsOnAllNodesOp::SMESHGUI_Add0DElemsOnAllNodesOp() myDlg( new SMESHGUI_Add0DElemsOnAllNodesDlg ), myFilterDlg( 0 ) { - myHelpFileName = "adding_nodes_and_elements_page.html#adding_0delems_on_all_nodes_anchor"; + myHelpFileName = "adding_nodes_and_elements.html#adding-0delems-on-all-nodes-anchor"; connect( myDlg, SIGNAL( selTypeChanged(int) ), SLOT( onSelTypeChange(int))); connect( myDlg->myFilterBtn, SIGNAL( clicked()), SLOT( onSetFilter() )); @@ -270,16 +274,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: @@ -306,8 +311,7 @@ void SMESHGUI_Add0DElemsOnAllNodesOp::selectionDone() _PTR(SObject) group0DRoot; if ( meshSO && meshSO->FindSubObject( SMESH::Tag_0DElementsGroups, group0DRoot )) { - _PTR(Study) aStudy = SMESH::GetActiveStudyDocument(); - _PTR(ChildIterator) group0DIter = aStudy->NewChildIterator( group0DRoot ); + _PTR(ChildIterator) group0DIter = SMESH::getStudy()->NewChildIterator( group0DRoot ); for ( ; group0DIter->More(); group0DIter->Next() ) { _PTR(SObject) groupSO = group0DIter->Value(); @@ -423,7 +427,7 @@ bool SMESHGUI_Add0DElemsOnAllNodesOp::onApply() SUIT_MessageBox::warning( myDlg, tr( "SMESH_WRN_WARNING" ), tr( "SMESH_BAD_SELECTION" ) ); return false; } - SMESH::long_array_var idArray = new SMESH::long_array; + SMESH::smIdType_array_var idArray = new SMESH::smIdType_array; idArray->length( idList.count() ); QStringList::iterator idIt = idList.begin(); for ( int i = 0; idIt != idList.end(); ++idIt, ++i ) @@ -435,13 +439,14 @@ bool SMESHGUI_Add0DElemsOnAllNodesOp::onApply() // Create 0D elements - int prevNb0D = mesh->Nb0DElements(); + smIdType prevNb0D = mesh->Nb0DElements(); QString groupName = myDlg->myGroupListCmBox->currentText(); SMESH::SMESH_IDSource_var newObj = - editor->Create0DElementsOnAllNodes( meshObject, groupName.toLatin1().data() ); + editor->Create0DElementsOnAllNodes( meshObject, groupName.toUtf8().data(), + myDlg->myDuplicateElemsChkBox->isChecked() ); - int newNb0D = mesh->Nb0DElements() - prevNb0D; + smIdType newNb0D = mesh->Nb0DElements() - prevNb0D; SUIT_MessageBox::information( myDlg, tr( "SMESH_INFORMATION" ), tr( "NB_NEW_0D" ).arg( newNb0D ), SUIT_MessageBox::Ok, SUIT_MessageBox::Ok); @@ -497,6 +502,9 @@ void SMESHGUI_Add0DElemsOnAllNodesOp::onSelTypeChange(int selType) disconnect( myDlg, SIGNAL( objectChanged( int, const QStringList& )), this, SLOT ( onTextChanged( int, const QStringList& ))); + connect( myDlg->myGroupListCmBox, SIGNAL( editTextChanged(const QString & )), + this, SLOT( updateButtons() )); + selectionDone(); }