0020847: EDF 1378 SMESH : Selection problem with symetry + translation

This commit is contained in:
dmv 2010-04-21 06:32:54 +00:00
parent 2898854b35
commit 248783c7c7
7 changed files with 24 additions and 16 deletions

View File

@ -472,7 +472,7 @@ bool SMESHGUI_ExtrusionAlongPathDlg::ClickOnApply()
//if (myMesh->_is_nil() || MeshCheck->isChecked() && myIDSource->_is_nil() ||
// !myMeshActor || myPathMesh->_is_nil() || myPathShape->_is_nil())
if ( myMesh->_is_nil() || MeshCheck->isChecked() && myIDSource->_is_nil() ||
!myMeshActor || myPath->_is_nil() )
/*!myMeshActor ||*/ myPath->_is_nil() )
return false;
if (!isValid())
@ -484,7 +484,10 @@ bool SMESHGUI_ExtrusionAlongPathDlg::ClickOnApply()
// If "Select whole mesh, submesh or group" check box is off ->
// use only elements of given type selected by user
SMDS_Mesh* aMesh = myMeshActor->GetObject()->GetMesh();
SMDS_Mesh* aMesh;
if ( myMeshActor )
aMesh = myMeshActor->GetObject()->GetMesh();
if (aMesh) {
QStringList aListElementsId = ElementsLineEdit->text().split(" ", QString::SkipEmptyParts);
anElementsId = new SMESH::long_array;
@ -664,7 +667,9 @@ bool SMESHGUI_ExtrusionAlongPathDlg::ClickOnApply()
}
//mySelectionMgr->clearSelected();
SMESH::Update( myMeshActor->getIO(), myMeshActor->GetVisibility() );
if ( myMeshActor )
SMESH::Update( myMeshActor->getIO(), myMeshActor->GetVisibility() );
if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
mySMESHGUI->updateObjBrowser(true); // new groups may appear
//SMESH::UpdateView();
@ -855,7 +860,7 @@ void SMESHGUI_ExtrusionAlongPathDlg::SelectionIntoArgument()
}
// find actor
myMeshActor = SMESH::FindActorByObject(myMesh);
if (!myMeshActor)
if (!myMeshActor && !MeshCheck->isChecked())
return;
if (MeshCheck->isChecked()) {
@ -988,7 +993,7 @@ void SMESHGUI_ExtrusionAlongPathDlg::SetEditCurrentArgument()
void SMESHGUI_ExtrusionAlongPathDlg::SetEditCurrentArgument (QToolButton* button)
{
disconnect(mySelectionMgr, 0, this, 0);
mySelectionMgr->clearSelected();
// mySelectionMgr->clearSelected();
mySelectionMgr->clearFilters();
SMESH::SetPickable();

View File

@ -714,7 +714,7 @@ void SMESHGUI_RevolutionDlg::SelectionIntoArgument()
SMESH_Actor* anActor = SMESH::FindActorByObject(aMeshVar);
if (!anActor)
anActor = SMESH::FindActorByEntry(IO->getEntry());
if (!anActor)
if (!anActor && !CheckBoxMesh->isChecked())
return;
int aNbUnits = 0;

View File

@ -605,7 +605,7 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
myActor = SMESH::FindActorByObject(myMesh);
if (!myActor)
myActor = SMESH::FindActorByEntry(IO->getEntry());
if (!myActor)
if (!myActor && !CheckBoxMesh->isChecked())
return;
int aNbUnits = 0;

View File

@ -675,7 +675,7 @@ void SMESHGUI_ScaleDlg::SelectionIntoArgument()
myActor = SMESH::FindActorByObject(myMesh);
if (!myActor)
myActor = SMESH::FindActorByEntry(IO->getEntry());
if (!myActor)
if (!myActor && !CheckBoxMesh->isChecked())
return;
int aNbUnits = 0;

View File

@ -386,11 +386,13 @@ bool SMESHGUI_SmoothingDlg::ClickOnApply()
}
if (aResult) {
Handle(SALOME_InteractiveObject) anIO = myActor->getIO();
if ( myActor ) {
Handle(SALOME_InteractiveObject) anIO = myActor->getIO();
SALOME_ListIO aList;
aList.Append(anIO);
mySelectionMgr->setSelectedObjects(aList, false);
}
SALOME_ListIO aList;
aList.Append(anIO);
mySelectionMgr->setSelectedObjects(aList, false);
SMESH::UpdateView();
Init();
@ -564,7 +566,7 @@ void SMESHGUI_SmoothingDlg::SelectionIntoArgument()
return;
myActor = SMESH::FindActorByObject(myMesh);
if (!myActor)
if (!myActor && !CheckBoxMesh->isChecked())
return;
int aNbUnits = 0;

View File

@ -695,7 +695,7 @@ void SMESHGUI_SymmetryDlg::SelectionIntoArgument()
myActor = SMESH::FindActorByObject(myMesh);
if (!myActor)
myActor = SMESH::FindActorByEntry(IO->getEntry());
if (!myActor)
if (!myActor && !CheckBoxMesh->isChecked())
return;
int aNbUnits = 0;

View File

@ -676,8 +676,9 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
myActor = SMESH::FindActorByObject(myMesh);
if (!myActor)
myActor = SMESH::FindActorByEntry(IO->getEntry());
if (!myActor)
return;
if (!myActor && !CheckBoxMesh->isChecked())
return;
int aNbUnits = 0;