From 84ee9591d140669bd8204af8fabf6a79a4b57df6 Mon Sep 17 00:00:00 2001 From: Maciej Suminski Date: Wed, 3 Apr 2013 11:19:08 +0200 Subject: [PATCH] Added loading layer visibility settings when loading a board. Minor code cleaning. --- pcbnew/basepcbframe.cpp | 11 +++++++++++ pcbnew/class_pcb_layer_widget.cpp | 26 +++++++++++++------------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/pcbnew/basepcbframe.cpp b/pcbnew/basepcbframe.cpp index 57947a7585..04a5686eeb 100644 --- a/pcbnew/basepcbframe.cpp +++ b/pcbnew/basepcbframe.cpp @@ -226,6 +226,17 @@ void PCB_BASE_FRAME::SetBoard( BOARD* aBoard ) { view->SetLayerOrder( m_galLayerOrder[i], i ); } + + // Load layer & elements visibility settings + for( unsigned int i = 0; i < LAYER_COUNT; ++i ) + { + view->SetLayerVisible( i, m_Pcb->IsLayerVisible( i ) ); + } + + for( unsigned int i = 0; i < END_PCB_VISIBLE_LIST; ++i ) + { + view->SetLayerVisible( ITEM_GAL_LAYER( i ), m_Pcb->IsElementVisible( i ) ); + } } #endif } diff --git a/pcbnew/class_pcb_layer_widget.cpp b/pcbnew/class_pcb_layer_widget.cpp index ab82861afa..731d6051f4 100644 --- a/pcbnew/class_pcb_layer_widget.cpp +++ b/pcbnew/class_pcb_layer_widget.cpp @@ -368,16 +368,18 @@ void PCB_LAYER_WIDGET::OnLayerVisible( int aLayer, bool isVisible, bool isFinal { KiGfx::VIEW* view = galCanvas->GetView(); view->SetLayerVisible( aLayer, isVisible ); - - if( myframe->IsGalCanvasActive() ) - { - galCanvas->Refresh(); - } } #endif /* KICAD_GAL */ if( isFinal ) - myframe->GetCanvas()->Refresh(); + { +#ifdef KICAD_GAL + if( myframe->IsGalCanvasActive() ) + galCanvas->Refresh(); + else +#endif /* KICAD_GAL */ + myframe->GetCanvas()->Refresh(); + } } void PCB_LAYER_WIDGET::OnRenderColorChange( int aId, EDA_COLOR_T aColor ) @@ -418,15 +420,13 @@ void PCB_LAYER_WIDGET::OnRenderEnable( int aId, bool isEnabled ) { KiGfx::VIEW* view = galCanvas->GetView(); view->SetLayerVisible( ITEM_GAL_LAYER( aId ), isEnabled ); - - if( myframe->IsGalCanvasActive() ) - { - galCanvas->Refresh(); - } } -#endif /* KICAD_GAL */ - myframe->GetCanvas()->Refresh(); + if( myframe->IsGalCanvasActive() ) + galCanvas->Refresh(); + else +#endif /* KICAD_GAL */ + myframe->GetCanvas()->Refresh(); } //-----------------------------------------------