X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_DeleteGroupDlg.cxx;h=093ab1075c61658676b99f1ef35d31a5641b413e;hb=b099bfe29f33249f81ce784f5cacb660c4add911;hp=ac5a1c686b0bfbba699b15325f67e154384246e5;hpb=bd4e115a78b52e3fbc016e5e30bb0e19b2a9e7d6;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx b/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx index ac5a1c686..093ab1075 100644 --- a/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2020 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 @@ -6,7 +6,7 @@ // 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. +// 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 @@ -37,13 +37,13 @@ #include #include #include +#include #include #include #include #include -#include #include #include @@ -74,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")); @@ -90,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(); } @@ -146,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())); @@ -173,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(); @@ -194,7 +194,7 @@ bool SMESHGUI_DeleteGroupDlg::isValid() return false; } - return !mySMESHGUI->isActiveStudyLocked(); + return !SMESHGUI::isStudyLocked(); } //================================================================================= @@ -206,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); } @@ -218,6 +220,12 @@ 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); @@ -233,22 +241,26 @@ 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 (SMESH::GetCurrentVtkView()) { + SMESH::RemoveFilters(); // PAL6938 -- clean all mesh entity filters + } if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) aViewWindow->SetSelectionMode(ActorSelection); disconnect(mySelectionMgr, 0, this, 0); - disconnect(mySMESHGUI, 0, this, 0); - mySMESHGUI->ResetState(); + //disconnect(mySMESHGUI, 0, this, 0); + //mySMESHGUI->ResetState(); mySelectionMgr->clearFilters(); - reject(); + mySMESHGUI->ResetState(); + QDialog::reject(); } //================================================================================= @@ -285,6 +297,7 @@ void SMESHGUI_DeleteGroupDlg::onSelectionDone() return; myListGrp.clear(); + myListGrpIO.Clear(); QStringList aNames; SALOME_ListIO aListIO; @@ -296,6 +309,7 @@ void SMESHGUI_DeleteGroupDlg::onSelectionDone() if (!aGroup->_is_nil()) { aNames.append(aGroup->GetName()); myListGrp.append(aGroup); + myListGrpIO.Append( anIter.Value() ); } } @@ -305,7 +319,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() { @@ -323,16 +337,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)); } //=================================================================================