From e0589e63e6bf98c46e2b6cf91181a580ea672632 Mon Sep 17 00:00:00 2001 From: dmv Date: Tue, 15 Dec 2009 08:57:13 +0000 Subject: [PATCH] 0020615: EDF 1206 SMESH: Smesh group edition and object browser highlight --- src/SMESHGUI/SMESHGUI_GroupDlg.cxx | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/SMESHGUI/SMESHGUI_GroupDlg.cxx b/src/SMESHGUI/SMESHGUI_GroupDlg.cxx index 32f66474c..9fc6d36fe 100644 --- a/src/SMESHGUI/SMESHGUI_GroupDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_GroupDlg.cxx @@ -2236,14 +2236,20 @@ bool SMESHGUI_GroupDlg::SetAppropriateActor() } else { // try mesh actor SMESH_Actor* anActor = SMESH::FindActorByObject(myMesh); - if (anActor && anActor->hasIO()) - { - isActor = true; - if (aViewWindow && !aViewWindow->isVisible(anActor->getIO())) - isActor = false; - else - myActorsList.append(anActor); - } + if (anActor && anActor->hasIO()) { + isActor = true; + if (aViewWindow && !aViewWindow->isVisible(anActor->getIO())) + isActor = false; + else + 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) { @@ -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); } }