Pcbnew: Do not change visibility objects when changing Visibility layers
Fixes #13836 https://gitlab.com/kicad/code/kicad/issues/13836
This commit is contained in:
parent
2529918d5f
commit
8467e2d376
|
@ -1153,7 +1153,7 @@ void APPEARANCE_CONTROLS::OnDarkModeToggle()
|
||||||
m_layerPanelColour = m_panelLayers->GetBackgroundColour().ChangeLightness( 110 );
|
m_layerPanelColour = m_panelLayers->GetBackgroundColour().ChangeLightness( 110 );
|
||||||
|
|
||||||
m_windowLayers->SetBackgroundColour( m_layerPanelColour );
|
m_windowLayers->SetBackgroundColour( m_layerPanelColour );
|
||||||
|
|
||||||
for( wxSizerItem* child : m_layersOuterSizer->GetChildren() )
|
for( wxSizerItem* child : m_layersOuterSizer->GetChildren() )
|
||||||
{
|
{
|
||||||
if( child && child->GetWindow() )
|
if( child && child->GetWindow() )
|
||||||
|
@ -1829,14 +1829,20 @@ void APPEARANCE_CONTROLS::OnLayerContextMenu( wxCommandEvent& aEvent )
|
||||||
|
|
||||||
PCB_LAYER_ID current = m_frame->GetActiveLayer();
|
PCB_LAYER_ID current = m_frame->GetActiveLayer();
|
||||||
|
|
||||||
|
// The new preset. We keep the visibility state of objects:
|
||||||
|
LAYER_PRESET preset;
|
||||||
|
preset.renderLayers = getVisibleObjects();
|
||||||
|
|
||||||
switch( aEvent.GetId() )
|
switch( aEvent.GetId() )
|
||||||
{
|
{
|
||||||
case ID_PRESET_NO_LAYERS:
|
case ID_PRESET_NO_LAYERS:
|
||||||
ApplyLayerPreset( presetNoLayers );
|
preset.layers = presetNoLayers.layers;
|
||||||
|
ApplyLayerPreset( preset );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case ID_PRESET_ALL_LAYERS:
|
case ID_PRESET_ALL_LAYERS:
|
||||||
ApplyLayerPreset( presetAllLayers );
|
preset.layers &presetAllLayers.layers;
|
||||||
|
ApplyLayerPreset( preset );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case ID_SHOW_ALL_COPPER_LAYERS:
|
case ID_SHOW_ALL_COPPER_LAYERS:
|
||||||
|
@ -1845,8 +1851,8 @@ void APPEARANCE_CONTROLS::OnLayerContextMenu( wxCommandEvent& aEvent )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_HIDE_ALL_BUT_ACTIVE:
|
case ID_HIDE_ALL_BUT_ACTIVE:
|
||||||
ApplyLayerPreset( presetNoLayers );
|
preset.layers = presetNoLayers.layers | LSET( current );
|
||||||
SetLayerVisible( current, true );
|
ApplyLayerPreset( preset );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_HIDE_ALL_COPPER_LAYERS:
|
case ID_HIDE_ALL_COPPER_LAYERS:
|
||||||
|
@ -1874,23 +1880,28 @@ void APPEARANCE_CONTROLS::OnLayerContextMenu( wxCommandEvent& aEvent )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_PRESET_FRONT_ASSEMBLY:
|
case ID_PRESET_FRONT_ASSEMBLY:
|
||||||
ApplyLayerPreset( presetFrontAssembly );
|
preset.layers = presetFrontAssembly.layers;
|
||||||
|
ApplyLayerPreset( preset );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case ID_PRESET_FRONT:
|
case ID_PRESET_FRONT:
|
||||||
ApplyLayerPreset( presetFront );
|
preset.layers = presetFront.layers;
|
||||||
|
ApplyLayerPreset( preset );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case ID_PRESET_INNER_COPPER:
|
case ID_PRESET_INNER_COPPER:
|
||||||
ApplyLayerPreset( presetInnerCopper );
|
preset.layers = presetInnerCopper.layers;
|
||||||
|
ApplyLayerPreset( preset );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case ID_PRESET_BACK:
|
case ID_PRESET_BACK:
|
||||||
ApplyLayerPreset( presetBack );
|
preset.layers = presetBack.layers;
|
||||||
|
ApplyLayerPreset( preset );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case ID_PRESET_BACK_ASSEMBLY:
|
case ID_PRESET_BACK_ASSEMBLY:
|
||||||
ApplyLayerPreset( presetBackAssembly );
|
preset.layers = presetBackAssembly.layers;
|
||||||
|
ApplyLayerPreset( preset );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue