X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_DeleteGroupDlg.cxx;h=830fe1dcb4b4d4127a187e21648f85875394a902;hp=6e2a106a244b79dd743e9cc90c6de371c518d177;hb=f0f67c0b47e58361bc50c7169734da604fbfca01;hpb=0635c9fc80f67d1e5dc0e94ec85f487286a92070 diff --git a/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx b/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx index 6e2a106a2..830fe1dcb 100644 --- a/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx @@ -1,24 +1,25 @@ -// Copyright (C) 2007-2008 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 +// 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, or (at your option) any later version. // -// 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 // + // File : SMESHGUI_DeleteGroupDlg.cxx // Author : Sergey LITONIN, Open CASCADE S.A.S. // SMESH includes @@ -36,13 +37,13 @@ #include #include #include +#include #include #include #include #include -#include #include #include @@ -73,8 +74,8 @@ //================================================================================= SMESHGUI_DeleteGroupDlg::SMESHGUI_DeleteGroupDlg (SMESHGUI* theModule): QDialog(SMESH::GetDesktop(theModule)), - mySelectionMgr(SMESH::GetSelectionMgr(theModule)), - mySMESHGUI(theModule) + mySMESHGUI(theModule), + mySelectionMgr(SMESH::GetSelectionMgr(theModule)) { setModal(false); setWindowTitle(tr("CAPTION")); @@ -89,7 +90,7 @@ SMESHGUI_DeleteGroupDlg::SMESHGUI_DeleteGroupDlg (SMESHGUI* theModule): aDlgLay->addWidget(aMainFrame); aDlgLay->addWidget(aBtnFrame); - myHelpFileName = "deleting_groups_page.html"; + myHelpFileName = "deleting_groups.html"; Init(); } @@ -145,7 +146,7 @@ QWidget* SMESHGUI_DeleteGroupDlg::createButtonFrame (QWidget* theParent) // connect signals and slots connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk())); - connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose())); + connect(myCloseBtn, SIGNAL(clicked()), SLOT(reject())); connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply())); connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp())); @@ -172,10 +173,10 @@ void SMESHGUI_DeleteGroupDlg::Init () // selection and SMESHGUI connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone())); connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate())); - connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose())); + connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(reject())); // 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); onSelectionDone(); @@ -189,7 +190,7 @@ bool SMESHGUI_DeleteGroupDlg::isValid() { if (myListBox->count() == 0) { SUIT_MessageBox::information(SMESHGUI::desktop(), tr("SMESH_INSUFFICIENT_DATA"), - tr("NO_SELECTED_GROUPS")); + tr("NO_SELECTED_GROUPS")); return false; } @@ -205,11 +206,13 @@ bool SMESHGUI_DeleteGroupDlg::onApply() if (!isValid()) return false; + SUIT_OverrideCursor wc; + myBlockSelection = true; QList::iterator anIter; for (anIter = myListGrp.begin(); anIter != myListGrp.end(); ++anIter) { - SMESH::SMESH_Mesh_ptr aMesh = (*anIter)->GetMesh(); + SMESH::SMESH_Mesh_var aMesh = (*anIter)->GetMesh(); if (!aMesh->_is_nil()) aMesh->RemoveGroupWithContents(*anIter); } @@ -217,7 +220,14 @@ bool SMESHGUI_DeleteGroupDlg::onApply() myListBox->clear(); myListGrp.clear(); mySelectionMgr->clearSelected(); + + /** Erase graphical objects **/ + SALOME_ListIteratorOfListIO anIterIO (myListGrpIO); + for ( ; anIterIO.More(); anIterIO.Next()) + SMESH::RemoveVisualObjectWithActors( anIterIO.Value()->getEntry(), /*fromAllViews=*/true ); + SMESH::UpdateView(); + SMESHGUI::Modified(); mySMESHGUI->updateObjBrowser(true); myBlockSelection = false; @@ -231,14 +241,14 @@ bool SMESHGUI_DeleteGroupDlg::onApply() void SMESHGUI_DeleteGroupDlg::onOk() { if (onApply()) - onClose(); + reject(); } //================================================================================= -// function : onClose() +// function : reject() // purpose : SLOT called when "Close" button pressed. Close dialog //================================================================================= -void SMESHGUI_DeleteGroupDlg::onClose() +void SMESHGUI_DeleteGroupDlg::reject() { if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) aViewWindow->SetSelectionMode(ActorSelection); @@ -246,7 +256,7 @@ void SMESHGUI_DeleteGroupDlg::onClose() disconnect(mySMESHGUI, 0, this, 0); mySMESHGUI->ResetState(); mySelectionMgr->clearFilters(); - reject(); + QDialog::reject(); } //================================================================================= @@ -266,10 +276,10 @@ void SMESHGUI_DeleteGroupDlg::onHelp() platform = "application"; #endif SUIT_MessageBox::warning(this, tr("WRN_WARNING"), - tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). - arg(app->resourceMgr()->stringValue("ExternalBrowser", - platform)). - arg(myHelpFileName)); + tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). + arg(app->resourceMgr()->stringValue("ExternalBrowser", + platform)). + arg(myHelpFileName)); } } @@ -283,6 +293,7 @@ void SMESHGUI_DeleteGroupDlg::onSelectionDone() return; myListGrp.clear(); + myListGrpIO.Clear(); QStringList aNames; SALOME_ListIO aListIO; @@ -294,6 +305,7 @@ void SMESHGUI_DeleteGroupDlg::onSelectionDone() if (!aGroup->_is_nil()) { aNames.append(aGroup->GetName()); myListGrp.append(aGroup); + myListGrpIO.Append( anIter.Value() ); } } @@ -303,7 +315,7 @@ void SMESHGUI_DeleteGroupDlg::onSelectionDone() //================================================================================= // function : onDeactivate() -// purpose : SLOT called when dialog must be deativated +// purpose : SLOT called when dialog must be deactivated //================================================================================= void SMESHGUI_DeleteGroupDlg::onDeactivate() { @@ -321,16 +333,7 @@ void SMESHGUI_DeleteGroupDlg::enterEvent (QEvent*) setEnabled(true); if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) aViewWindow->SetSelectionMode(ActorSelection); - mySelectionMgr->installFilter(new SMESH_TypeFilter (GROUP)); -} - -//================================================================================= -// function : closeEvent() -// purpose : -//================================================================================= -void SMESHGUI_DeleteGroupDlg::closeEvent (QCloseEvent*) -{ - onClose(); + mySelectionMgr->installFilter(new SMESH_TypeFilter (SMESH::GROUP)); } //=================================================================================