Mantis issue 0021421: [CEA] regression with explode/Create groups with Vertex type.

This commit is contained in:
jfa 2011-11-14 12:57:44 +00:00
parent c9cbee8d01
commit 44d013ca29
2 changed files with 63 additions and 17 deletions

View File

@ -573,11 +573,25 @@ void EntityGUI_SubShapeDlg::showOnlySelected()
GEOM_Displayer* aDisplayer = getDisplayer();
if (send == GroupPoints->PushButton3) {
aDisplayer->Erase(aSelList, false, true);
aDisplayer->Erase(aSelList, /*forced=*/false, /*updateViewer=*/true);
}
else {
aDisplayer->EraseAll();
// Mantis issue 0021421: do not hide main shape, if explode on VERTEX
SALOME_View* view = GEOM_Displayer::GetActiveView();
if (view) {
CORBA::String_var aMainEntry = myObject->GetStudyEntry();
Handle(SALOME_InteractiveObject) io =
new SALOME_InteractiveObject (aMainEntry.in(), "GEOM", "TEMP_IO");
if (view->isVisible(io)) myIsHiddenMain = true;
}
aDisplayer->EraseAll(/*forced = false, updateViewer = true*/);
aDisplayer->Display(aSelList, true);
// Mantis issue 0021421: do not hide main shape, if explode on VERTEX
if ((TopAbs_ShapeEnum)shapeType() == TopAbs_VERTEX && myIsHiddenMain) {
aDisplayer->Display(myObject);
}
}
}
@ -658,15 +672,24 @@ void EntityGUI_SubShapeDlg::activateSelection()
if (!myObject->_is_nil() && !isAllSubShapes())
{
GEOM_Displayer* aDisplayer = getDisplayer();
// Mantis issue 0021421: do not hide main shape, if explode on VERTEX
if ((TopAbs_ShapeEnum)shapeType() == TopAbs_VERTEX) {
if (myIsHiddenMain)
aDisplayer->Display(myObject);
}
else {
SALOME_View* view = GEOM_Displayer::GetActiveView();
if (view) {
CORBA::String_var aMainEntry = myObject->GetStudyEntry();
Handle(SALOME_InteractiveObject) io = new SALOME_InteractiveObject (aMainEntry.in(), "GEOM", "TEMP_IO");
Handle(SALOME_InteractiveObject) io =
new SALOME_InteractiveObject (aMainEntry.in(), "GEOM", "TEMP_IO");
if (view->isVisible(io)) {
aDisplayer->Erase(myObject, false, false);
myIsHiddenMain = true;
}
}
}
int prevDisplayMode = aDisplayer->SetDisplayMode(0);

View File

@ -620,9 +620,23 @@ void GroupGUI_GroupDlg::showOnlySelected()
aDisplayer->Erase(aSelList, /*forced=*/false, /*updateViewer=*/true);
}
else {
// Mantis issue 0021421: do not hide main shape, if explode on VERTEX
SALOME_View* view = GEOM_Displayer::GetActiveView();
if (view) {
CORBA::String_var aMainEntry = myMainObj->GetStudyEntry();
Handle(SALOME_InteractiveObject) io =
new SALOME_InteractiveObject (aMainEntry.in(), "GEOM", "TEMP_IO");
if (view->isVisible(io)) myIsHiddenMain = true;
}
aDisplayer->EraseAll(/*forced = false, updateViewer = true*/);
aDisplayer->Display(aSelList, true);
// Mantis issue 0021421: do not hide main shape, if explode on VERTEX
if (getShapeType() == TopAbs_VERTEX && myIsHiddenMain) {
aDisplayer->Display(myMainObj);
}
// for the case when selected ids were not displayed in the viewer: Mantis issue 0021367
highlightSubShapes();
}
@ -807,15 +821,24 @@ void GroupGUI_GroupDlg::activateSelection()
myIsShapeType) // check if shape type is already choosen by user
{
GEOM_Displayer* aDisplayer = getDisplayer();
// Mantis issue 0021421: do not hide main shape, if explode on VERTEX
if (getShapeType() == TopAbs_VERTEX) {
if (myIsHiddenMain)
aDisplayer->Display(myMainObj);
}
else {
SALOME_View* view = GEOM_Displayer::GetActiveView();
if (view) {
CORBA::String_var aMainEntry = myMainObj->GetStudyEntry();
Handle(SALOME_InteractiveObject) io = new SALOME_InteractiveObject (aMainEntry.in(), "GEOM", "TEMP_IO");
Handle(SALOME_InteractiveObject) io =
new SALOME_InteractiveObject (aMainEntry.in(), "GEOM", "TEMP_IO");
if (view->isVisible(io)) {
aDisplayer->Erase(myMainObj, false, false);
myIsHiddenMain = true;
}
}
}
int prevDisplayMode = aDisplayer->SetDisplayMode(0);