0020615: EDF 1206 SMESH: Smesh group edition and object browser highlight

This commit is contained in:
dmv 2009-12-15 08:57:13 +00:00
parent 5052f7f43b
commit e0589e63e6

View File

@ -2236,8 +2236,7 @@ bool SMESHGUI_GroupDlg::SetAppropriateActor()
} else {
// try mesh actor
SMESH_Actor* anActor = SMESH::FindActorByObject(myMesh);
if (anActor && anActor->hasIO())
{
if (anActor && anActor->hasIO()) {
isActor = true;
if (aViewWindow && !aViewWindow->isVisible(anActor->getIO()))
isActor = false;
@ -2245,6 +2244,13 @@ bool SMESHGUI_GroupDlg::SetAppropriateActor()
myActorsList.append(anActor);
}
// try group actor
if (!isActor && !myGroup->_is_nil()) {
SMESH_Actor* anActor = SMESH::FindActorByObject(myGroup);
if (anActor && anActor->hasIO())
myActorsList.append(anActor);
}
// try any visible actor of group or submesh of current mesh
if (aViewWindow) {
// mesh entry
@ -2264,7 +2270,7 @@ bool SMESHGUI_GroupDlg::SetAppropriateActor()
if (anActor && anActor->hasIO()) {
Handle(SALOME_InteractiveObject) anIO = anActor->getIO();
if (aViewWindow->isVisible(anIO)) {
if (anIO->hasEntry() && strncmp(anIO->getEntry(), meshEntry, len) == 0)
if (anIO->hasEntry() && strncmp(anIO->getEntry(), meshEntry, len) == 0 && !myActorsList.contains(anActor) )
myActorsList.append(anActor);
}
}