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

View File

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

View File

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

View File

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

View File

@ -386,11 +386,13 @@ bool SMESHGUI_SmoothingDlg::ClickOnApply()
} }
if (aResult) { 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(); SMESH::UpdateView();
Init(); Init();
@ -564,7 +566,7 @@ void SMESHGUI_SmoothingDlg::SelectionIntoArgument()
return; return;
myActor = SMESH::FindActorByObject(myMesh); myActor = SMESH::FindActorByObject(myMesh);
if (!myActor) if (!myActor && !CheckBoxMesh->isChecked())
return; return;
int aNbUnits = 0; int aNbUnits = 0;

View File

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

View File

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