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 ) :
|
||||
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 );
|
||||
|
||||
|
@ -99,6 +100,7 @@ LIB_VIEW_FRAME::LIB_VIEW_FRAME( wxWindow* father, CMP_LIBRARY* Library, wxSemaph
|
|||
m_LibListWindow = NULL;
|
||||
m_CmpListWindow = NULL;
|
||||
m_Semaphore = semaphore;
|
||||
m_exportToEeschemaCmpName.Empty();
|
||||
|
||||
if( m_Semaphore )
|
||||
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_exportToEeschemaCmpName.Clear();
|
||||
|
||||
// Creates the component window display
|
||||
m_CmpListSize.y = size.y;
|
||||
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 ),
|
||||
myframe( aParent )
|
||||
{
|
||||
BOARD* board = myframe->GetBoard();
|
||||
|
||||
// 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) );
|
||||
ReFillRender();
|
||||
|
||||
// Update default tabs labels for gerbview
|
||||
SetLayersManagerTabsText( );
|
||||
|
@ -105,6 +80,40 @@ void GERBER_LAYER_WIDGET::SetLayersManagerTabsText( )
|
|||
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()
|
||||
{
|
||||
|
|
|
@ -80,6 +80,12 @@ public:
|
|||
|
||||
void ReFill();
|
||||
|
||||
/**
|
||||
* Function ReFillRender
|
||||
* Rebuild Render for instance after the config is read
|
||||
*/
|
||||
void ReFillRender();
|
||||
|
||||
//-----<implement LAYER_WIDGET abstract callback functions>-----------
|
||||
void OnLayerColorChange( int aLayer, int aColor );
|
||||
bool OnLayerSelect( int aLayer );
|
||||
|
|
|
@ -129,6 +129,7 @@ GERBVIEW_FRAME::GERBVIEW_FRAME( wxWindow* father,
|
|||
wxAuiPaneInfo( horiz ).Name( wxT( "MsgPanel" ) ).Bottom() );
|
||||
|
||||
ReFillLayerWidget(); // this is near end because contents establish size
|
||||
m_LayersManager->ReFillRender(); // Update colors in Render after the config is read
|
||||
m_auimgr.Update();
|
||||
}
|
||||
|
||||
|
|
|
@ -55,49 +55,7 @@ PCB_LAYER_WIDGET::PCB_LAYER_WIDGET( PCB_EDIT_FRAME* aParent, wxWindow* aFocusOwn
|
|||
LAYER_WIDGET( aParent, aFocusOwner, aPointSize ),
|
||||
myframe( aParent )
|
||||
{
|
||||
BOARD* board = myframe->GetBoard();
|
||||
|
||||
// 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) );
|
||||
ReFillRender();
|
||||
|
||||
// Update default tabs labels for gerbview
|
||||
SetLayersManagerTabsText( );
|
||||
|
@ -210,6 +168,56 @@ void PCB_LAYER_WIDGET::SetLayersManagerTabsText( )
|
|||
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()
|
||||
{
|
||||
|
|
|
@ -71,6 +71,12 @@ public:
|
|||
|
||||
void ReFill();
|
||||
|
||||
/**
|
||||
* Function ReFillRender
|
||||
* Rebuild Render for instance after the config is read
|
||||
*/
|
||||
void ReFillRender();
|
||||
|
||||
//-----<implement LAYER_WIDGET abstract callback functions>-----------
|
||||
void OnLayerColorChange( int aLayer, int aColor );
|
||||
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() );
|
||||
|
||||
ReFillLayerWidget(); // this is near end because contents establish size
|
||||
m_Layers->ReFillRender(); // Update colors in Render after the config is read
|
||||
syncLayerWidget();
|
||||
m_auimgr.Update();
|
||||
|
||||
|
|
Loading…
Reference in New Issue