3D viewer: use the right color theme (the one used in the board editor)
Fixes #14616 https://gitlab.com/kicad/code/kicad/issues/14616
This commit is contained in:
parent
39cc686dc4
commit
6618cda214
|
@ -36,6 +36,7 @@
|
||||||
#include <pgm_base.h>
|
#include <pgm_base.h>
|
||||||
#include <settings/settings_manager.h>
|
#include <settings/settings_manager.h>
|
||||||
#include <wx/log.h>
|
#include <wx/log.h>
|
||||||
|
#include <pcbnew_settings.h>
|
||||||
#include <advanced_config.h>
|
#include <advanced_config.h>
|
||||||
|
|
||||||
|
|
||||||
|
@ -92,8 +93,7 @@ BOARD_ADAPTER::BOARD_ADAPTER() :
|
||||||
{
|
{
|
||||||
wxLogTrace( m_logTrace, wxT( "BOARD_ADAPTER::BOARD_ADAPTER" ) );
|
wxLogTrace( m_logTrace, wxT( "BOARD_ADAPTER::BOARD_ADAPTER" ) );
|
||||||
|
|
||||||
if( PgmOrNull() )
|
ReloadColorSettings();
|
||||||
m_colors = Pgm().GetSettingsManager().GetColorSettings();
|
|
||||||
|
|
||||||
m_boardPos = VECTOR2I();
|
m_boardPos = VECTOR2I();
|
||||||
m_boardSize = VECTOR2I();
|
m_boardSize = VECTOR2I();
|
||||||
|
@ -208,6 +208,15 @@ BOARD_ADAPTER::~BOARD_ADAPTER()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BOARD_ADAPTER::ReloadColorSettings() noexcept
|
||||||
|
{
|
||||||
|
wxASSERT( PgmOrNull() );
|
||||||
|
|
||||||
|
PCBNEW_SETTINGS* settings = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>();
|
||||||
|
m_colors = Pgm().GetSettingsManager().GetColorSettings( settings->m_ColorTheme );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool BOARD_ADAPTER::Is3dLayerEnabled( PCB_LAYER_ID aLayer ) const
|
bool BOARD_ADAPTER::Is3dLayerEnabled( PCB_LAYER_ID aLayer ) const
|
||||||
{
|
{
|
||||||
wxASSERT( aLayer < PCB_LAYER_ID_COUNT );
|
wxASSERT( aLayer < PCB_LAYER_ID_COUNT );
|
||||||
|
|
|
@ -100,7 +100,7 @@ public:
|
||||||
void SetBoard( BOARD* aBoard ) noexcept { m_board = aBoard; }
|
void SetBoard( BOARD* aBoard ) noexcept { m_board = aBoard; }
|
||||||
const BOARD* GetBoard() const noexcept { return m_board; }
|
const BOARD* GetBoard() const noexcept { return m_board; }
|
||||||
|
|
||||||
void SetColorSettings( COLOR_SETTINGS* aSettings ) noexcept { m_colors = aSettings; }
|
void ReloadColorSettings() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function to be called by the render when it need to reload the settings for the board.
|
* Function to be called by the render when it need to reload the settings for the board.
|
||||||
|
|
|
@ -141,7 +141,7 @@ EDA_3D_CANVAS::EDA_3D_CANVAS( wxWindow* aParent, const int* aAttribList,
|
||||||
// long calculation time)
|
// long calculation time)
|
||||||
m_3d_render = m_3d_render_opengl;
|
m_3d_render = m_3d_render_opengl;
|
||||||
|
|
||||||
m_boardAdapter.SetColorSettings( Pgm().GetSettingsManager().GetColorSettings() );
|
m_boardAdapter.ReloadColorSettings();
|
||||||
|
|
||||||
wxASSERT( a3DCachePointer != nullptr );
|
wxASSERT( a3DCachePointer != nullptr );
|
||||||
m_boardAdapter.Set3dCacheManager( a3DCachePointer );
|
m_boardAdapter.Set3dCacheManager( a3DCachePointer );
|
||||||
|
@ -304,7 +304,7 @@ void EDA_3D_CANVAS::ReloadRequest( BOARD* aBoard , S3D_CACHE* aCachePointer )
|
||||||
if( aBoard != nullptr )
|
if( aBoard != nullptr )
|
||||||
m_boardAdapter.SetBoard( aBoard );
|
m_boardAdapter.SetBoard( aBoard );
|
||||||
|
|
||||||
m_boardAdapter.SetColorSettings( Pgm().GetSettingsManager().GetColorSettings() );
|
m_boardAdapter.ReloadColorSettings();
|
||||||
|
|
||||||
if( m_3d_render )
|
if( m_3d_render )
|
||||||
m_3d_render->ReloadRequest();
|
m_3d_render->ReloadRequest();
|
||||||
|
|
Loading…
Reference in New Issue