SIGSEGV after changing the Mesh in "Greate Group", then select elements. (Filter Volume, Geometry type is used)

This commit is contained in:
dmv 2009-11-16 15:03:12 +00:00
parent 7186694f11
commit 3ac780626e
2 changed files with 15 additions and 3 deletions

View File

@ -2632,7 +2632,13 @@ void SMESHGUI_FilterDlg::SetSourceWg (QWidget* theWg,
//=======================================================================
void SMESHGUI_FilterDlg::SetMesh (SMESH::SMESH_Mesh_var theMesh)
{
myMesh = theMesh;
if ( !theMesh->_is_nil() ) {
myMesh = theMesh;
if ( !myFilter[ myTable->GetType() ]->_is_nil() && !myFilter[ myTable->GetType() ]->GetPredicate()->_is_nil() ) {
SMESH::Predicate_ptr aPred = myFilter[ myTable->GetType() ]->GetPredicate();
aPred->SetMesh(myMesh);
}
}
const bool isEnable = !(myMesh->_is_nil());
myButtons[BTN_OK]->setEnabled(isEnable);
myButtons[BTN_Apply]->setEnabled(isEnable);

View File

@ -1062,6 +1062,10 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
myIsBusy = false;
return;
}
if ( myFilterDlg && !myMesh->_is_nil()){
myFilterDlg->SetMesh( myMesh );
}
myGroup = SMESH::SMESH_Group::_nil();
// NPAL19389: create a group with a selection in another group
@ -1087,7 +1091,6 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
return;
}
myIsBusy = false;
myCurrentLineEdit = 0;
myGroup = SMESH::SMESH_Group::_nil();
myGroupOnGeom = SMESH::SMESH_GroupOnGeom::_nil();
@ -1417,11 +1420,14 @@ void SMESHGUI_GroupDlg::setCurrentSelection()
QPushButton* send = (QPushButton*)sender();
myCurrentLineEdit = 0;
if (send == myMeshGroupBtn) {
myCurrentLineEdit = myMeshGroupLine;
disconnect(myMeshGroupBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
mySelectionMgr->clearSelected();
if (myCreate)
setSelectionMode(6);
else
setSelectionMode(5);
connect(myMeshGroupBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
myCurrentLineEdit = myMeshGroupLine;
onObjectSelectionChanged();
}
else if (send == mySubMeshBtn) {