From 0306ec7efeedb1a0e04ff9dfea8fd12f2ea22ce5 Mon Sep 17 00:00:00 2001 From: Maciej Suminski Date: Wed, 9 Jul 2014 11:50:27 +0200 Subject: [PATCH] {Set,Get}ActiveLayer moved from PCB_EDIT_FRAME to PCB_BASE_FRAME. --- include/wxBasePcbFrame.h | 18 ++++++++++++++++++ include/wxPcbStruct.h | 11 +---------- pcbnew/class_pcb_layer_widget.cpp | 2 +- pcbnew/module_editor_frame.h | 1 - pcbnew/pcb_draw_panel_gal.cpp | 6 +++--- pcbnew/pcbframe.cpp | 7 +++---- pcbnew/pcbnew_config.cpp | 2 +- pcbnew/tools/pcbnew_control.cpp | 4 ++-- 8 files changed, 29 insertions(+), 22 deletions(-) diff --git a/include/wxBasePcbFrame.h b/include/wxBasePcbFrame.h index e5ab27d1c0..ebc694a0f6 100644 --- a/include/wxBasePcbFrame.h +++ b/include/wxBasePcbFrame.h @@ -613,6 +613,24 @@ public: virtual void SwitchLayer( wxDC* DC, LAYER_ID layer ); + /** + * Function SetActiveLayer + * will change the currently active layer to \a aLayer. + */ + virtual void SetActiveLayer( LAYER_ID aLayer ) + { + ( (PCB_SCREEN*) GetScreen() )->m_Active_Layer = aLayer; + } + + /** + * Function GetActiveLayer + * returns the active layer + */ + virtual LAYER_ID GetActiveLayer() const + { + return ( (PCB_SCREEN*) GetScreen() )->m_Active_Layer; + } + void LoadSettings( wxConfigBase* aCfg ); // override virtual void SaveSettings( wxConfigBase* aCfg ); // override virtual diff --git a/include/wxPcbStruct.h b/include/wxPcbStruct.h index 4620fc2767..33f2e0e6bb 100644 --- a/include/wxPcbStruct.h +++ b/include/wxPcbStruct.h @@ -536,16 +536,7 @@ public: * will change the currently active layer to \a aLayer and also * update the PCB_LAYER_WIDGET. */ - void SetActiveLayer( LAYER_ID aLayer, bool doLayerWidgetUpdate = true ); - - /** - * Function GetActiveLayer - * returns the active layer - */ - LAYER_ID GetActiveLayer() const - { - return ( (PCB_SCREEN*) GetScreen() )->m_Active_Layer; - } + virtual void SetActiveLayer( LAYER_ID aLayer ); /** * Function IsElementVisible diff --git a/pcbnew/class_pcb_layer_widget.cpp b/pcbnew/class_pcb_layer_widget.cpp index b0e5910a76..172df49f64 100644 --- a/pcbnew/class_pcb_layer_widget.cpp +++ b/pcbnew/class_pcb_layer_widget.cpp @@ -373,7 +373,7 @@ bool PCB_LAYER_WIDGET::OnLayerSelect( int aLayer ) { // the layer change from the PCB_LAYER_WIDGET can be denied by returning // false from this function. - myframe->SetActiveLayer( ToLAYER_ID( aLayer ), false ); + myframe->SetActiveLayer( ToLAYER_ID( aLayer ) ); if( m_alwaysShowActiveCopperLayer ) OnLayerSelected(); diff --git a/pcbnew/module_editor_frame.h b/pcbnew/module_editor_frame.h index 665349aad9..c733e922e0 100644 --- a/pcbnew/module_editor_frame.h +++ b/pcbnew/module_editor_frame.h @@ -217,7 +217,6 @@ public: BOARD_ITEM* ModeditLocateAndDisplay( int aHotKeyCode = 0 ); /* Undo and redo functions */ -public: /** * Function SaveCopyInUndoList. diff --git a/pcbnew/pcb_draw_panel_gal.cpp b/pcbnew/pcb_draw_panel_gal.cpp index 92293aaf24..12965f3e03 100644 --- a/pcbnew/pcb_draw_panel_gal.cpp +++ b/pcbnew/pcb_draw_panel_gal.cpp @@ -326,13 +326,13 @@ void PCB_DRAW_PANEL_GAL::SetTopLayer( LAYER_ID aLayer ) void PCB_DRAW_PANEL_GAL::SyncLayersVisibility( const BOARD* aBoard ) { // Load layer & elements visibility settings - for( LAYER_NUM i = 0; i < NB_LAYERS; ++i ) + for( LAYER_NUM i = 0; i < LAYER_ID_COUNT; ++i ) { - m_view->SetLayerVisible( i, aBoard->IsLayerVisible( i ) ); + m_view->SetLayerVisible( i, aBoard->IsLayerVisible( LAYER_ID( i ) ) ); // Synchronize netname layers as well if( IsCopperLayer( i ) ) - m_view->SetLayerVisible( GetNetnameLayer( i ), aBoard->IsLayerVisible( i ) ); + m_view->SetLayerVisible( GetNetnameLayer( i ), aBoard->IsLayerVisible( LAYER_ID( i ) ) ); } for( LAYER_NUM i = 0; i < END_PCB_VISIBLE_LIST; ++i ) diff --git a/pcbnew/pcbframe.cpp b/pcbnew/pcbframe.cpp index fdf24ad63f..c07f28a8c4 100644 --- a/pcbnew/pcbframe.cpp +++ b/pcbnew/pcbframe.cpp @@ -783,14 +783,13 @@ bool PCB_EDIT_FRAME::IsMicroViaAcceptable() } -void PCB_EDIT_FRAME::SetActiveLayer( LAYER_ID aLayer, bool doLayerWidgetUpdate ) +void PCB_EDIT_FRAME::SetActiveLayer( LAYER_ID aLayer ) { - ( (PCB_SCREEN*) GetScreen() )->m_Active_Layer = aLayer; + PCB_BASE_FRAME::SetActiveLayer( aLayer ); GetGalCanvas()->SetHighContrastLayer( aLayer ); - if( doLayerWidgetUpdate ) - syncLayerWidgetLayer(); + syncLayerWidgetLayer(); if( IsGalCanvasActive() ) GetGalCanvas()->Refresh(); diff --git a/pcbnew/pcbnew_config.cpp b/pcbnew/pcbnew_config.cpp index d8eda36868..963f9c4ba2 100644 --- a/pcbnew/pcbnew_config.cpp +++ b/pcbnew/pcbnew_config.cpp @@ -99,7 +99,7 @@ void PCB_EDIT_FRAME::Process_Config( wxCommandEvent& event ) if( !GetBoard()->GetEnabledLayers()[ cur_layer ] ) cur_layer = F_Cu; - SetActiveLayer( cur_layer, true ); + SetActiveLayer( cur_layer ); OnModify(); ReCreateLayerBox(); diff --git a/pcbnew/tools/pcbnew_control.cpp b/pcbnew/tools/pcbnew_control.cpp index 49d2629206..17b5b021aa 100644 --- a/pcbnew/tools/pcbnew_control.cpp +++ b/pcbnew/tools/pcbnew_control.cpp @@ -289,7 +289,7 @@ int PCBNEW_CONTROL::LayerInner6( TOOL_EVENT& aEvent ) int PCBNEW_CONTROL::LayerBottom( TOOL_EVENT& aEvent ) { - getEditFrame()->SetActiveLayer( B_Cu, true ); + getEditFrame()->SwitchLayer( NULL, B_Cu ); getEditFrame()->GetGalCanvas()->SetFocus(); setTransitions(); @@ -311,7 +311,7 @@ int PCBNEW_CONTROL::LayerNext( TOOL_EVENT& aEvent ) if( getModel()->GetCopperLayerCount() < 2 ) // Single layer layer = B_Cu; else if( layer >= getModel()->GetCopperLayerCount() - 2 ) - layer = B_Cu; + layer = F_Cu; else ++layer;