Only update colors on layer widget when closing preferences
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4545
This commit is contained in:
parent
e61185775f
commit
d46c651d80
|
@ -26,6 +26,7 @@
|
||||||
#include <panel_pcbnew_color_settings.h>
|
#include <panel_pcbnew_color_settings.h>
|
||||||
#include <pcbnew_settings.h>
|
#include <pcbnew_settings.h>
|
||||||
#include <pcb_edit_frame.h>
|
#include <pcb_edit_frame.h>
|
||||||
|
#include <pcb_layer_widget.h>
|
||||||
#include <pgm_base.h>
|
#include <pgm_base.h>
|
||||||
#include <settings/settings_manager.h>
|
#include <settings/settings_manager.h>
|
||||||
|
|
||||||
|
@ -101,8 +102,7 @@ bool PANEL_PCBNEW_COLOR_SETTINGS::TransferDataFromWindow()
|
||||||
PCBNEW_SETTINGS* app_settings = settingsMgr.GetAppSettings<PCBNEW_SETTINGS>();
|
PCBNEW_SETTINGS* app_settings = settingsMgr.GetAppSettings<PCBNEW_SETTINGS>();
|
||||||
app_settings->m_ColorTheme = m_currentSettings->GetFilename();
|
app_settings->m_ColorTheme = m_currentSettings->GetFilename();
|
||||||
|
|
||||||
m_frame->ReFillLayerWidget();
|
m_frame->GetLayerManager()->SyncLayerColors();
|
||||||
m_frame->SyncRenderStates();
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -443,6 +443,43 @@ void PCB_LAYER_WIDGET::SyncLayerAlphaIndicators()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PCB_LAYER_WIDGET::SyncLayerColors()
|
||||||
|
{
|
||||||
|
COLOR_SETTINGS* cs = myframe->GetColorSettings();
|
||||||
|
|
||||||
|
COLOR4D bg = cs->GetColor( LAYER_PCB_BACKGROUND );
|
||||||
|
|
||||||
|
int count = GetLayerRowCount();
|
||||||
|
int row;
|
||||||
|
int col = 1; // bitmap button is column 1 in layers tab
|
||||||
|
|
||||||
|
for( row = 0; row < count; ++row )
|
||||||
|
{
|
||||||
|
COLOR_SWATCH* swatch = dynamic_cast<COLOR_SWATCH*>( getLayerComp( row, col ) );
|
||||||
|
|
||||||
|
if( swatch )
|
||||||
|
{
|
||||||
|
swatch->SetSwatchBackground( bg );
|
||||||
|
swatch->SetSwatchColor( cs->GetColor( getDecodedId( swatch->GetId() ) ), false );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
count = GetRenderRowCount();
|
||||||
|
col = 0; // bitmap button is column 0 in render tab
|
||||||
|
|
||||||
|
for( row = 0; row < count; ++row )
|
||||||
|
{
|
||||||
|
COLOR_SWATCH* swatch = dynamic_cast<COLOR_SWATCH*>( getRenderComp( row, col ) );
|
||||||
|
|
||||||
|
if( swatch )
|
||||||
|
{
|
||||||
|
swatch->SetSwatchBackground( bg );
|
||||||
|
swatch->SetSwatchColor( cs->GetColor( getDecodedId( swatch->GetId() ) ), false );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void PCB_LAYER_WIDGET::ReFill()
|
void PCB_LAYER_WIDGET::ReFill()
|
||||||
{
|
{
|
||||||
BOARD* brd = myframe->GetBoard();
|
BOARD* brd = myframe->GetBoard();
|
||||||
|
|
|
@ -76,6 +76,11 @@ public:
|
||||||
*/
|
*/
|
||||||
void SyncLayerAlphaIndicators();
|
void SyncLayerAlphaIndicators();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the color for each layer and item from the active color theme
|
||||||
|
*/
|
||||||
|
void SyncLayerColors();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function SetLayersManagerTabsText
|
* Function SetLayersManagerTabsText
|
||||||
* Update the layer manager tabs labels
|
* Update the layer manager tabs labels
|
||||||
|
|
Loading…
Reference in New Issue