Pcbnew, Gerbview: Fix a minor issue in layer manager:
In Render, colors shown were the default colors, not the selected colors, when starting Pcbnew or Gerbview, because colors were not updated after reading the config.
This commit is contained in:
parent
a4f2d3ea57
commit
0952393413
|
@ -83,7 +83,8 @@ static wxAcceleratorEntry accels[] =
|
||||||
|
|
||||||
|
|
||||||
LIB_VIEW_FRAME::LIB_VIEW_FRAME( wxWindow* father, CMP_LIBRARY* Library, wxSemaphore* semaphore ) :
|
LIB_VIEW_FRAME::LIB_VIEW_FRAME( wxWindow* father, CMP_LIBRARY* Library, wxSemaphore* semaphore ) :
|
||||||
EDA_DRAW_FRAME( father, VIEWER_FRAME, _( "Library browser" ), wxDefaultPosition, wxDefaultSize )
|
EDA_DRAW_FRAME( father, VIEWER_FRAME, _( "Library browser" ),
|
||||||
|
wxDefaultPosition, wxDefaultSize )
|
||||||
{
|
{
|
||||||
wxAcceleratorTable table( ACCEL_TABLE_CNT, accels );
|
wxAcceleratorTable table( ACCEL_TABLE_CNT, accels );
|
||||||
|
|
||||||
|
@ -99,6 +100,7 @@ LIB_VIEW_FRAME::LIB_VIEW_FRAME( wxWindow* father, CMP_LIBRARY* Library, wxSemaph
|
||||||
m_LibListWindow = NULL;
|
m_LibListWindow = NULL;
|
||||||
m_CmpListWindow = NULL;
|
m_CmpListWindow = NULL;
|
||||||
m_Semaphore = semaphore;
|
m_Semaphore = semaphore;
|
||||||
|
m_exportToEeschemaCmpName.Empty();
|
||||||
|
|
||||||
if( m_Semaphore )
|
if( m_Semaphore )
|
||||||
SetWindowStyle( GetWindowStyle() | wxSTAY_ON_TOP );
|
SetWindowStyle( GetWindowStyle() | wxSTAY_ON_TOP );
|
||||||
|
@ -149,8 +151,6 @@ LIB_VIEW_FRAME::LIB_VIEW_FRAME( wxWindow* father, CMP_LIBRARY* Library, wxSemaph
|
||||||
m_LibListSize.x = 0;
|
m_LibListSize.x = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_exportToEeschemaCmpName.Clear();
|
|
||||||
|
|
||||||
// Creates the component window display
|
// Creates the component window display
|
||||||
m_CmpListSize.y = size.y;
|
m_CmpListSize.y = size.y;
|
||||||
win_pos.x = m_LibListSize.x;
|
win_pos.x = m_LibListSize.x;
|
||||||
|
|
|
@ -50,32 +50,7 @@ GERBER_LAYER_WIDGET::GERBER_LAYER_WIDGET( GERBVIEW_FRAME* aParent, wxWindow* aFo
|
||||||
LAYER_WIDGET( aParent, aFocusOwner, aPointSize ),
|
LAYER_WIDGET( aParent, aFocusOwner, aPointSize ),
|
||||||
myframe( aParent )
|
myframe( aParent )
|
||||||
{
|
{
|
||||||
BOARD* board = myframe->GetBoard();
|
ReFillRender();
|
||||||
|
|
||||||
// Fixed "Rendering" tab rows within the LAYER_WIDGET, only the initial color
|
|
||||||
// is changed before appending to the LAYER_WIDGET. This is an automatic variable
|
|
||||||
// not a static variable, change the color & state after copying from code to renderRows
|
|
||||||
// on the stack.
|
|
||||||
LAYER_WIDGET::ROW renderRows[2] = {
|
|
||||||
|
|
||||||
#define RR LAYER_WIDGET::ROW // Render Row abreviation to reduce source width
|
|
||||||
|
|
||||||
// text id color tooltip checked
|
|
||||||
RR( _( "Grid" ), GERBER_GRID_VISIBLE, WHITE, _( "Show the (x,y) grid dots" ) ),
|
|
||||||
RR( _( "DCodes" ), DCODES_VISIBLE, WHITE, _( "Show DCodes identification" ) ),
|
|
||||||
};
|
|
||||||
|
|
||||||
for( unsigned row=0; row<DIM(renderRows); ++row )
|
|
||||||
{
|
|
||||||
if( renderRows[row].color != -1 ) // does this row show a color?
|
|
||||||
{
|
|
||||||
// this window frame must have an established BOARD, i.e. after SetBoard()
|
|
||||||
renderRows[row].color = board->GetVisibleElementColor( renderRows[row].id );
|
|
||||||
}
|
|
||||||
renderRows[row].state = board->IsElementVisible( renderRows[row].id );
|
|
||||||
}
|
|
||||||
|
|
||||||
AppendRenderRows( renderRows, DIM(renderRows) );
|
|
||||||
|
|
||||||
// Update default tabs labels for gerbview
|
// Update default tabs labels for gerbview
|
||||||
SetLayersManagerTabsText( );
|
SetLayersManagerTabsText( );
|
||||||
|
@ -105,6 +80,40 @@ void GERBER_LAYER_WIDGET::SetLayersManagerTabsText( )
|
||||||
m_notebook->SetPageText(1, _("Render") );
|
m_notebook->SetPageText(1, _("Render") );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function ReFillRender
|
||||||
|
* Rebuild Render for instance after the config is read
|
||||||
|
*/
|
||||||
|
void GERBER_LAYER_WIDGET::ReFillRender()
|
||||||
|
{
|
||||||
|
BOARD* board = myframe->GetBoard();
|
||||||
|
ClearRenderRows();
|
||||||
|
|
||||||
|
// Fixed "Rendering" tab rows within the LAYER_WIDGET, only the initial color
|
||||||
|
// is changed before appending to the LAYER_WIDGET. This is an automatic variable
|
||||||
|
// not a static variable, change the color & state after copying from code to renderRows
|
||||||
|
// on the stack.
|
||||||
|
LAYER_WIDGET::ROW renderRows[2] = {
|
||||||
|
|
||||||
|
#define RR LAYER_WIDGET::ROW // Render Row abreviation to reduce source width
|
||||||
|
|
||||||
|
// text id color tooltip checked
|
||||||
|
RR( _( "Grid" ), GERBER_GRID_VISIBLE, WHITE, _( "Show the (x,y) grid dots" ) ),
|
||||||
|
RR( _( "DCodes" ), DCODES_VISIBLE, WHITE, _( "Show DCodes identification" ) ),
|
||||||
|
};
|
||||||
|
|
||||||
|
for( unsigned row=0; row<DIM(renderRows); ++row )
|
||||||
|
{
|
||||||
|
if( renderRows[row].color != -1 ) // does this row show a color?
|
||||||
|
{
|
||||||
|
// this window frame must have an established BOARD, i.e. after SetBoard()
|
||||||
|
renderRows[row].color = board->GetVisibleElementColor( renderRows[row].id );
|
||||||
|
}
|
||||||
|
renderRows[row].state = board->IsElementVisible( renderRows[row].id );
|
||||||
|
}
|
||||||
|
|
||||||
|
AppendRenderRows( renderRows, DIM(renderRows) );
|
||||||
|
}
|
||||||
|
|
||||||
void GERBER_LAYER_WIDGET::installRightLayerClickHandler()
|
void GERBER_LAYER_WIDGET::installRightLayerClickHandler()
|
||||||
{
|
{
|
||||||
|
|
|
@ -80,6 +80,12 @@ public:
|
||||||
|
|
||||||
void ReFill();
|
void ReFill();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function ReFillRender
|
||||||
|
* Rebuild Render for instance after the config is read
|
||||||
|
*/
|
||||||
|
void ReFillRender();
|
||||||
|
|
||||||
//-----<implement LAYER_WIDGET abstract callback functions>-----------
|
//-----<implement LAYER_WIDGET abstract callback functions>-----------
|
||||||
void OnLayerColorChange( int aLayer, int aColor );
|
void OnLayerColorChange( int aLayer, int aColor );
|
||||||
bool OnLayerSelect( int aLayer );
|
bool OnLayerSelect( int aLayer );
|
||||||
|
|
|
@ -129,6 +129,7 @@ GERBVIEW_FRAME::GERBVIEW_FRAME( wxWindow* father,
|
||||||
wxAuiPaneInfo( horiz ).Name( wxT( "MsgPanel" ) ).Bottom() );
|
wxAuiPaneInfo( horiz ).Name( wxT( "MsgPanel" ) ).Bottom() );
|
||||||
|
|
||||||
ReFillLayerWidget(); // this is near end because contents establish size
|
ReFillLayerWidget(); // this is near end because contents establish size
|
||||||
|
m_LayersManager->ReFillRender(); // Update colors in Render after the config is read
|
||||||
m_auimgr.Update();
|
m_auimgr.Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,49 +55,7 @@ PCB_LAYER_WIDGET::PCB_LAYER_WIDGET( PCB_EDIT_FRAME* aParent, wxWindow* aFocusOwn
|
||||||
LAYER_WIDGET( aParent, aFocusOwner, aPointSize ),
|
LAYER_WIDGET( aParent, aFocusOwner, aPointSize ),
|
||||||
myframe( aParent )
|
myframe( aParent )
|
||||||
{
|
{
|
||||||
BOARD* board = myframe->GetBoard();
|
ReFillRender();
|
||||||
|
|
||||||
// Fixed "Rendering" tab rows within the LAYER_WIDGET, only the initial color
|
|
||||||
// is changed before appending to the LAYER_WIDGET. This is an automatic variable
|
|
||||||
// not a static variable, change the color & state after copying from code to renderRows
|
|
||||||
// on the stack.
|
|
||||||
LAYER_WIDGET::ROW renderRows[16] = {
|
|
||||||
|
|
||||||
#define RR LAYER_WIDGET::ROW // Render Row abreviation to reduce source width
|
|
||||||
|
|
||||||
// text id color tooltip checked
|
|
||||||
RR( _( "Through Via" ), VIA_THROUGH_VISIBLE, WHITE, _( "Show through vias" ) ),
|
|
||||||
RR( _( "Bl/Buried Via" ), VIA_BBLIND_VISIBLE, WHITE, _( "Show blind or buried vias" ) ),
|
|
||||||
RR( _( "Micro Via" ), VIA_MICROVIA_VISIBLE, WHITE, _( "Show micro vias") ),
|
|
||||||
RR( _( "Ratsnest" ), RATSNEST_VISIBLE, WHITE, _( "Show unconnected nets as a ratsnest") ),
|
|
||||||
|
|
||||||
RR( _( "Pads Front" ), PAD_FR_VISIBLE, WHITE, _( "Show footprint pads on board's front" ) ),
|
|
||||||
RR( _( "Pads Back" ), PAD_BK_VISIBLE, WHITE, _( "Show footprint pads on board's back" ) ),
|
|
||||||
|
|
||||||
RR( _( "Text Front" ), MOD_TEXT_FR_VISIBLE, WHITE, _( "Show footprint text on board's back" ) ),
|
|
||||||
RR( _( "Text Back" ), MOD_TEXT_BK_VISIBLE, WHITE, _( "Show footprint text on board's back" ) ),
|
|
||||||
RR( _( "Hidden Text" ), MOD_TEXT_INVISIBLE, WHITE, _( "Show footprint text marked as invisible" ) ),
|
|
||||||
|
|
||||||
RR( _( "Anchors" ), ANCHOR_VISIBLE, WHITE, _( "Show footprint and text origins as a cross" ) ),
|
|
||||||
RR( _( "Grid" ), GRID_VISIBLE, WHITE, _( "Show the (x,y) grid dots" ) ),
|
|
||||||
RR( _( "No-Connects" ), NO_CONNECTS_VISIBLE, -1, _( "Show a marker on pads which have no net connected" ) ),
|
|
||||||
RR( _( "Modules Front" ), MOD_FR_VISIBLE, -1, _( "Show footprints that are on board's front") ),
|
|
||||||
RR( _( "Modules Back" ), MOD_BK_VISIBLE, -1, _( "Show footprints that are on board's back") ),
|
|
||||||
RR( _( "Values" ), MOD_VALUES_VISIBLE, -1, _( "Show footprint's values") ),
|
|
||||||
RR( _( "References" ), MOD_REFERENCES_VISIBLE, -1, _( "Show footprint's references") ),
|
|
||||||
};
|
|
||||||
|
|
||||||
for( unsigned row=0; row<DIM(renderRows); ++row )
|
|
||||||
{
|
|
||||||
if( renderRows[row].color != -1 ) // does this row show a color?
|
|
||||||
{
|
|
||||||
// this window frame must have an established BOARD, i.e. after SetBoard()
|
|
||||||
renderRows[row].color = board->GetVisibleElementColor( renderRows[row].id );
|
|
||||||
}
|
|
||||||
renderRows[row].state = board->IsElementVisible( renderRows[row].id );
|
|
||||||
}
|
|
||||||
|
|
||||||
AppendRenderRows( renderRows, DIM(renderRows) );
|
|
||||||
|
|
||||||
// Update default tabs labels for gerbview
|
// Update default tabs labels for gerbview
|
||||||
SetLayersManagerTabsText( );
|
SetLayersManagerTabsText( );
|
||||||
|
@ -210,6 +168,56 @@ void PCB_LAYER_WIDGET::SetLayersManagerTabsText( )
|
||||||
m_notebook->SetPageText(1, _("Render") );
|
m_notebook->SetPageText(1, _("Render") );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function ReFillRender
|
||||||
|
* Rebuild Render for instance after the config is read
|
||||||
|
*/
|
||||||
|
void PCB_LAYER_WIDGET::ReFillRender()
|
||||||
|
{
|
||||||
|
BOARD* board = myframe->GetBoard();
|
||||||
|
ClearRenderRows();
|
||||||
|
// Fixed "Rendering" tab rows within the LAYER_WIDGET, only the initial color
|
||||||
|
// is changed before appending to the LAYER_WIDGET. This is an automatic variable
|
||||||
|
// not a static variable, change the color & state after copying from code to renderRows
|
||||||
|
// on the stack.
|
||||||
|
LAYER_WIDGET::ROW renderRows[16] = {
|
||||||
|
|
||||||
|
#define RR LAYER_WIDGET::ROW // Render Row abreviation to reduce source width
|
||||||
|
|
||||||
|
// text id color tooltip checked
|
||||||
|
RR( _( "Through Via" ), VIA_THROUGH_VISIBLE, WHITE, _( "Show through vias" ) ),
|
||||||
|
RR( _( "Bl/Buried Via" ), VIA_BBLIND_VISIBLE, WHITE, _( "Show blind or buried vias" ) ),
|
||||||
|
RR( _( "Micro Via" ), VIA_MICROVIA_VISIBLE, WHITE, _( "Show micro vias") ),
|
||||||
|
RR( _( "Ratsnest" ), RATSNEST_VISIBLE, WHITE, _( "Show unconnected nets as a ratsnest") ),
|
||||||
|
|
||||||
|
RR( _( "Pads Front" ), PAD_FR_VISIBLE, WHITE, _( "Show footprint pads on board's front" ) ),
|
||||||
|
RR( _( "Pads Back" ), PAD_BK_VISIBLE, WHITE, _( "Show footprint pads on board's back" ) ),
|
||||||
|
|
||||||
|
RR( _( "Text Front" ), MOD_TEXT_FR_VISIBLE, WHITE, _( "Show footprint text on board's back" ) ),
|
||||||
|
RR( _( "Text Back" ), MOD_TEXT_BK_VISIBLE, WHITE, _( "Show footprint text on board's back" ) ),
|
||||||
|
RR( _( "Hidden Text" ), MOD_TEXT_INVISIBLE, WHITE, _( "Show footprint text marked as invisible" ) ),
|
||||||
|
|
||||||
|
RR( _( "Anchors" ), ANCHOR_VISIBLE, WHITE, _( "Show footprint and text origins as a cross" ) ),
|
||||||
|
RR( _( "Grid" ), GRID_VISIBLE, WHITE, _( "Show the (x,y) grid dots" ) ),
|
||||||
|
RR( _( "No-Connects" ), NO_CONNECTS_VISIBLE, -1, _( "Show a marker on pads which have no net connected" ) ),
|
||||||
|
RR( _( "Modules Front" ), MOD_FR_VISIBLE, -1, _( "Show footprints that are on board's front") ),
|
||||||
|
RR( _( "Modules Back" ), MOD_BK_VISIBLE, -1, _( "Show footprints that are on board's back") ),
|
||||||
|
RR( _( "Values" ), MOD_VALUES_VISIBLE, -1, _( "Show footprint's values") ),
|
||||||
|
RR( _( "References" ), MOD_REFERENCES_VISIBLE, -1, _( "Show footprint's references") ),
|
||||||
|
};
|
||||||
|
|
||||||
|
for( unsigned row=0; row<DIM(renderRows); ++row )
|
||||||
|
{
|
||||||
|
if( renderRows[row].color != -1 ) // does this row show a color?
|
||||||
|
{
|
||||||
|
// this window frame must have an established BOARD, i.e. after SetBoard()
|
||||||
|
renderRows[row].color = board->GetVisibleElementColor( renderRows[row].id );
|
||||||
|
}
|
||||||
|
renderRows[row].state = board->IsElementVisible( renderRows[row].id );
|
||||||
|
}
|
||||||
|
|
||||||
|
AppendRenderRows( renderRows, DIM(renderRows) );
|
||||||
|
}
|
||||||
|
|
||||||
void PCB_LAYER_WIDGET::ReFill()
|
void PCB_LAYER_WIDGET::ReFill()
|
||||||
{
|
{
|
||||||
|
|
|
@ -71,6 +71,12 @@ public:
|
||||||
|
|
||||||
void ReFill();
|
void ReFill();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function ReFillRender
|
||||||
|
* Rebuild Render for instance after the config is read
|
||||||
|
*/
|
||||||
|
void ReFillRender();
|
||||||
|
|
||||||
//-----<implement LAYER_WIDGET abstract callback functions>-----------
|
//-----<implement LAYER_WIDGET abstract callback functions>-----------
|
||||||
void OnLayerColorChange( int aLayer, int aColor );
|
void OnLayerColorChange( int aLayer, int aColor );
|
||||||
bool OnLayerSelect( int aLayer );
|
bool OnLayerSelect( int aLayer );
|
||||||
|
|
|
@ -401,6 +401,7 @@ PCB_EDIT_FRAME::PCB_EDIT_FRAME( wxWindow* parent, const wxString& title,
|
||||||
wxAuiPaneInfo( horiz ).Name( wxT( "MsgPanel" ) ).Bottom() );
|
wxAuiPaneInfo( horiz ).Name( wxT( "MsgPanel" ) ).Bottom() );
|
||||||
|
|
||||||
ReFillLayerWidget(); // this is near end because contents establish size
|
ReFillLayerWidget(); // this is near end because contents establish size
|
||||||
|
m_Layers->ReFillRender(); // Update colors in Render after the config is read
|
||||||
syncLayerWidget();
|
syncLayerWidget();
|
||||||
m_auimgr.Update();
|
m_auimgr.Update();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue