X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_DuplicateNodesDlg.cxx;h=1ee5ab8c9af6dc321ffc7a2398c707d2932ed009;hb=48fb343b635fc51b50739cc09724da7d00ec8940;hp=f2acf4e670db9b08b6d1df588b22b5d56be7e68a;hpb=c4a24dfe976e658d763444984500996329fbb0c4;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_DuplicateNodesDlg.cxx b/src/SMESHGUI/SMESHGUI_DuplicateNodesDlg.cxx index f2acf4e67..1ee5ab8c9 100644 --- a/src/SMESHGUI/SMESHGUI_DuplicateNodesDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_DuplicateNodesDlg.cxx @@ -1,23 +1,23 @@ -// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 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 +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SMESH SMESHGUI : GUI for SMESH component @@ -155,7 +155,8 @@ SMESHGUI_DuplicateNodesDlg::SMESHGUI_DuplicateNodesDlg( SMESHGUI* theModule ) myLineEdit3 = new QLineEdit(myGroupArguments); myLineEdit3->setReadOnly(true); - myCheckBoxNewGroup = new QCheckBox(tr("CONSTRUCT_NEW_GROUP_NODES"), myGroupArguments); + myCheckBoxNewElemGroup = new QCheckBox(tr("CONSTRUCT_NEW_GROUP_ELEMENTS"), myGroupArguments); + myCheckBoxNewNodeGroup = new QCheckBox(tr("CONSTRUCT_NEW_GROUP_NODES"), myGroupArguments); aGroupArgumentsLayout->addWidget(myTextLabel1, 0, 0); aGroupArgumentsLayout->addWidget(mySelectButton1, 0, 1); @@ -166,8 +167,9 @@ SMESHGUI_DuplicateNodesDlg::SMESHGUI_DuplicateNodesDlg( SMESHGUI* theModule ) aGroupArgumentsLayout->addWidget(myTextLabel3, 2, 0); aGroupArgumentsLayout->addWidget(mySelectButton3, 2, 1); aGroupArgumentsLayout->addWidget(myLineEdit3, 2, 2); - aGroupArgumentsLayout->addWidget(myCheckBoxNewGroup, 3, 0); - aGroupArgumentsLayout->setRowStretch(4, 1); + aGroupArgumentsLayout->addWidget(myCheckBoxNewElemGroup, 3, 0); + aGroupArgumentsLayout->addWidget(myCheckBoxNewNodeGroup, 4, 0); + aGroupArgumentsLayout->setRowStretch(5, 1); // Buttons QGroupBox* aGroupButtons = new QGroupBox(this); @@ -235,7 +237,8 @@ SMESHGUI_DuplicateNodesDlg::~SMESHGUI_DuplicateNodesDlg() void SMESHGUI_DuplicateNodesDlg::Init() { mySMESHGUI->SetActiveDialogBox((QDialog*)this); - myCheckBoxNewGroup->setChecked(true); + myCheckBoxNewElemGroup->setChecked(true); + myCheckBoxNewNodeGroup->setChecked(true); // Set initial parameters myBusy = false; @@ -246,7 +249,7 @@ void SMESHGUI_DuplicateNodesDlg::Init() myGroups3.clear(); // Set selection mode - mySelectionMgr->installFilter(new SMESH_TypeFilter(GROUP)); + mySelectionMgr->installFilter(new SMESH_TypeFilter(SMESH::GROUP)); if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) aViewWindow->SetSelectionMode(ActorSelection); @@ -287,8 +290,8 @@ void SMESHGUI_DuplicateNodesDlg::onConstructorsClicked (int constructorId) myTextLabel1->setText(tr("GROUP_NODES_TO_DUPLICATE")); myTextLabel2->setText(tr("GROUP_NODES_TO_REPLACE")); - // Set checkbox title - myCheckBoxNewGroup->setText(tr("CONSTRUCT_NEW_GROUP_NODES")); + myCheckBoxNewElemGroup->hide(); + myCheckBoxNewNodeGroup->show(); // Hide the third field myTextLabel3->hide(); @@ -305,8 +308,8 @@ void SMESHGUI_DuplicateNodesDlg::onConstructorsClicked (int constructorId) myTextLabel2->setText(tr("GROUP_NODES_NOT_DUPLICATE")); myTextLabel3->setText(tr("GROUP_ELEMS_TO_REPLACE")); - // Set checkbox title - myCheckBoxNewGroup->setText(tr("CONSTRUCT_NEW_GROUP_ELEMENTS")); + myCheckBoxNewElemGroup->show(); + myCheckBoxNewNodeGroup->show(); // Show the third field myTextLabel3->show(); @@ -331,7 +334,8 @@ bool SMESHGUI_DuplicateNodesDlg::onApply() BusyLocker lock( myBusy ); - bool toCreateGroup = myCheckBoxNewGroup->isChecked(); + bool toCreateElemGroup = myCheckBoxNewElemGroup->isChecked(); + bool toCreateNodeGroup = myCheckBoxNewNodeGroup->isChecked(); int operationMode = myGroupConstructors->checkedId(); // Apply changes @@ -352,7 +356,7 @@ bool SMESHGUI_DuplicateNodesDlg::onApply() for ( int i = 0; i < myGroups2.count(); i++ ) g2[i] = myGroups2[i]; - if ( toCreateGroup ) { + if ( toCreateNodeGroup ) { SMESH::SMESH_GroupBase_var aNewGroup = aMeshEditor->DoubleNodeGroupsNew( g1.in(), g2.in() ); result = !CORBA::is_nil( aNewGroup ); @@ -375,10 +379,11 @@ bool SMESHGUI_DuplicateNodesDlg::onApply() for ( int i = 0; i < myGroups3.count(); i++ ) g3[i] = myGroups3[i]; - if ( toCreateGroup ) { - SMESH::SMESH_GroupBase_ptr aNewGroup = - aMeshEditor->DoubleNodeElemGroupsNew( g1.in(), g2.in(), g3.in() ); - result = !CORBA::is_nil( aNewGroup ); + if ( toCreateElemGroup || toCreateNodeGroup ) { + SMESH::ListOfGroups_var aNewGroups = + aMeshEditor->DoubleNodeElemGroups2New( g1.in(), g2.in(), g3.in(), + toCreateElemGroup, toCreateNodeGroup ); + result = ( aNewGroups[ !toCreateElemGroup ].in() ); } else { result = aMeshEditor->DoubleNodeElemGroups( g1.in(), g2.in(), g3.in() ); @@ -487,7 +492,8 @@ void SMESHGUI_DuplicateNodesDlg::onSelectionChanged() if ( myCurrentLineEdit == myLineEdit1 ) myGroups1 = aGroups; else if ( myCurrentLineEdit == myLineEdit2 ) myGroups2 = aGroups; else if ( myCurrentLineEdit == myLineEdit3 ) myGroups3 = aGroups; - myCurrentLineEdit->setText( aGroups.count() == 1 ? aGroups[0]->GetName() : + CORBA::String_var name = aGroups[0]->GetName(); + myCurrentLineEdit->setText( aGroups.count() == 1 ? QString(name).trimmed() : QObject::tr( "SMESH_OBJECTS_SELECTED" ).arg( aGroups.count() ) ); } else { @@ -565,7 +571,7 @@ void SMESHGUI_DuplicateNodesDlg::enterEvent (QEvent*) // Set selection mode if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) aViewWindow->SetSelectionMode(ActorSelection); - mySelectionMgr->installFilter(new SMESH_TypeFilter (GROUP)); + mySelectionMgr->installFilter(new SMESH_TypeFilter (SMESH::GROUP)); } }