Commit fd0a89c2 authored by g_harland's avatar g_harland

Fix bug in GerbView's Export to Pcbnew command

parent 6d0a8f2c
...@@ -150,7 +150,7 @@ static int SavePcbFormatAscii( WinEDA_GerberFrame* frame, FILE* aFile, ...@@ -150,7 +150,7 @@ static int SavePcbFormatAscii( WinEDA_GerberFrame* frame, FILE* aFile,
{ {
int layer = track->GetLayer(); int layer = track->GetLayer();
int pcb_layer_number = LayerLookUpTable[layer]; int pcb_layer_number = LayerLookUpTable[layer];
if( pcb_layer_number < 0 ) if( pcb_layer_number < 0 || pcb_layer_number > LAST_NO_COPPER_LAYER )
continue; continue;
if( pcb_layer_number > LAST_COPPER_LAYER ) if( pcb_layer_number > LAST_COPPER_LAYER )
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "wx/statline.h" #include "wx/statline.h"
/* Variables locales */ /* Variables locales */
#define LAYER_UNSELECTED NB_LAYERS
static int ButtonTable[32]; // Indexes buttons to Gerber layers static int ButtonTable[32]; // Indexes buttons to Gerber layers
static int LayerLookUpTable[32]; // Indexes Gerber layers to PCB file layers static int LayerLookUpTable[32]; // Indexes Gerber layers to PCB file layers
wxStaticText* layer_list[32]; // Indexes text strings to buttons wxStaticText* layer_list[32]; // Indexes text strings to buttons
...@@ -57,7 +58,7 @@ private: ...@@ -57,7 +58,7 @@ private:
/* Table des evenements pour WinEDA_SwapLayerFrame */ /* Table des evenements pour WinEDA_SwapLayerFrame */
BEGIN_EVENT_TABLE(WinEDA_SwapLayerFrame, wxDialog) BEGIN_EVENT_TABLE(WinEDA_SwapLayerFrame, wxDialog)
EVT_COMMAND_RANGE( ID_BUTTON_0, ID_BUTTON_0 + NB_LAYERS - 1, EVT_COMMAND_RANGE( ID_BUTTON_0, ID_BUTTON_0 + 31,
wxEVT_COMMAND_BUTTON_CLICKED, wxEVT_COMMAND_BUTTON_CLICKED,
WinEDA_SwapLayerFrame::Sel_Layer ) WinEDA_SwapLayerFrame::Sel_Layer )
EVT_BUTTON( wxID_OK, WinEDA_SwapLayerFrame::OnOkClick ) EVT_BUTTON( wxID_OK, WinEDA_SwapLayerFrame::OnOkClick )
...@@ -131,7 +132,7 @@ WinEDA_SwapLayerFrame::WinEDA_SwapLayerFrame(WinEDA_GerberFrame *parent) : ...@@ -131,7 +132,7 @@ WinEDA_SwapLayerFrame::WinEDA_SwapLayerFrame(WinEDA_GerberFrame *parent) :
// Specify the default value for each member of these arrays. // Specify the default value for each member of these arrays.
ButtonTable[ii] = -1; ButtonTable[ii] = -1;
LayerLookUpTable[ii] = NB_LAYERS; // Value associated with deselected Gerber layer LayerLookUpTable[ii] = LAYER_UNSELECTED; // Value associated with deselected Gerber layer
} }
int pcb_layer_number = 0; int pcb_layer_number = 0;
...@@ -312,17 +313,17 @@ void WinEDA_SwapLayerFrame::Sel_Layer(wxCommandEvent& event) ...@@ -312,17 +313,17 @@ void WinEDA_SwapLayerFrame::Sel_Layer(wxCommandEvent& event)
ii = event.GetId() - ID_BUTTON_0; ii = event.GetId() - ID_BUTTON_0;
jj = LayerLookUpTable[ButtonTable[ii]]; jj = LayerLookUpTable[ButtonTable[ii]];
if( (jj < 0) || (jj > NB_LAYERS) ) if( (jj < 0) || (jj > LAYER_UNSELECTED) )
jj = 0; // (Defaults to "Copper" layer.) jj = 0; // (Defaults to "Copper" layer.)
jj = m_Parent->SelectLayer(jj, -1, -1, true); jj = m_Parent->SelectLayer(jj, -1, -1, true);
if( (jj < 0) || (jj > NB_LAYERS) ) if( (jj < 0) || (jj > LAYER_UNSELECTED) )
return; return;
if( jj != LayerLookUpTable[ButtonTable[ii]] ) if( jj != LayerLookUpTable[ButtonTable[ii]] )
{ {
LayerLookUpTable[ButtonTable[ii]] = jj; LayerLookUpTable[ButtonTable[ii]] = jj;
if( jj == NB_LAYERS ) if( jj == LAYER_UNSELECTED )
{ {
layer_list[ii]->SetLabel( _( "Do not export" ) ); layer_list[ii]->SetLabel( _( "Do not export" ) );
// Change the text color to blue (to highlight // Change the text color to blue (to highlight
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment