X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_GroupDlg.cxx;h=3bdf5d288135e914df52f2c9bfa3cf7069162a96;hb=ed191931f2fdad3eec02fdd6cb9967c1d2158fcc;hp=45cc20e6ba1088f2abbc1eb289ff38ffbb9dfc1c;hpb=c5438eec06bf117597c3a2e4e14731e314033171;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_GroupDlg.cxx b/src/SMESHGUI/SMESHGUI_GroupDlg.cxx index 45cc20e6b..3bdf5d288 100644 --- a/src/SMESHGUI/SMESHGUI_GroupDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_GroupDlg.cxx @@ -728,12 +728,12 @@ void SMESHGUI_GroupDlg::onTypeChanged (int id) if (myTypeId != id) { myElements->clear(); myTypeId = id; + if ( myGrpTypeId == 0 && myCurrentLineEdit == 0) + setSelectionMode(id); + else + setSelectionMode( mySelectionMode++ ); // update according to mySelectionMode - int curSelMode = mySelectionMode; - mySelectionMode = grpNoSelection; - setSelectionMode( curSelMode ); onObjectSelectionChanged(); - setShowEntityMode(); } } @@ -745,13 +745,13 @@ void SMESHGUI_GroupDlg::onTypeChanged (int id) void SMESHGUI_GroupDlg::onGrpTypeChanged (int id) { if (myGrpTypeId != id) { + myGrpTypeId = id; myWGStack->setCurrentIndex( id ); myName->blockSignals(true); myName->setText(myOldName); myName->blockSignals(false); - onSelectGeomGroup(id == 1); + onSelectGeomGroup(id != 0); } - myGrpTypeId = id; updateButtons(); } @@ -774,27 +774,26 @@ void SMESHGUI_GroupDlg::setSelectionMode (int theMode) if (myMesh->_is_nil()) return; SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ); - bool isSelectAll = mySelectAll->isChecked() || !myAllowElemsModif->isChecked(); + bool isSelectAll = mySelectAll->isChecked() || !myAllowElemsModif->isChecked() || myGrpTypeId != 0; if (mySelectionMode != theMode) { // [PAL10408] mySelectionMgr->clearSelected(); mySelectionMgr->clearFilters(); - if (myActorsList.count() > 0) { - QListIterator it( myActorsList ); - while ( it.hasNext() ) + + if (myActorsList.count() > 0) + for (QListIterator it( myActorsList ); it.hasNext(); ) it.next()->SetPointRepresentation(false); - } - else { + else SMESH::SetPointRepresentation(false); - } + switch (theMode) { case grpNodeSelection: - if (myActorsList.count() > 0) { - QListIterator it( myActorsList ); - while ( it.hasNext() ) - it.next()->SetPointRepresentation(true); - } - else { - SMESH::SetPointRepresentation(true); + if ( myGrpTypeId == 0 ) // standalone + { + if (myActorsList.count() > 0) + for (QListIterator it( myActorsList ); it.hasNext(); ) + it.next()->SetPointRepresentation(true); + else + SMESH::SetPointRepresentation(true); } if ( aViewWindow ) aViewWindow->SetSelectionMode(isSelectAll ? ActorSelection : NodeSelection); break; @@ -1122,7 +1121,13 @@ bool SMESHGUI_GroupDlg::onApply() case 0: anActor->SetNodeColor( aColor.R, aColor.G, aColor.B ); break; case 1: anActor->SetEdgeColor( aColor.R, aColor.G, aColor.B ); break; case 2: - case 3: anActor->SetSufaceColor( aColor.R, aColor.G, aColor.B ); break; + case 3: + { + QColor c; + int delta; + SMESH::GetColor("SMESH", "fill_color", c , delta, "0,170,255|-100"); + anActor->SetSufaceColor( aColor.R, aColor.G, aColor.B, delta ); break; + } } } } @@ -1583,7 +1588,7 @@ void SMESHGUI_GroupDlg::onSelectGroup(bool on) //================================================================================= // function : (onSelectGeomGroup) -// purpose : Called when selection in 3D view or ObjectBrowser is changed +// purpose : Called when group type changed. on == "on group" or "on filter" //================================================================================= void SMESHGUI_GroupDlg::onSelectGeomGroup(bool on) { @@ -1594,8 +1599,13 @@ void SMESHGUI_GroupDlg::onSelectGeomGroup(bool on) else if (mySelectGroup->isChecked()) { mySelectGroup->setChecked(false); } - myCurrentLineEdit = myGeomGroupLine; - updateGeomPopup(); + if ( myGrpTypeId == 1 ) { // on group + myCurrentLineEdit = myGeomGroupLine; + updateGeomPopup(); + } + else { // on filter + myCurrentLineEdit = 0; + } setSelectionMode(grpAllSelection); } else { @@ -1604,11 +1614,10 @@ void SMESHGUI_GroupDlg::onSelectGeomGroup(bool on) myGeomGroupLine->setText( "" ); myCurrentLineEdit = 0; if (myTypeId != -1) - setSelectionMode(myTypeId); + setSelectionMode( myTypeId ); } } - //================================================================================= // function : setCurrentSelection() // purpose :