Make sure appearance panel builds after project has been loaded
OnBoardChanged must run after LoadProjectSettings. Move the local overrides to PCB_EDIT_FRAME::onBoardLoaded so that they are run after the panel is initialized.
This commit is contained in:
parent
e9b8cac320
commit
67a5ed15c7
|
@ -643,11 +643,12 @@ bool PCB_EDIT_FRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, in
|
|||
GetBoard()->BuildConnectivity();
|
||||
Compile_Ratsnest( true );
|
||||
|
||||
onBoardLoaded();
|
||||
|
||||
// Load project settings after setting up board; some of them depend on the nets list
|
||||
LoadProjectSettings();
|
||||
|
||||
// Syncs the UI (appearance panel, etc) with the loaded board and project
|
||||
onBoardLoaded();
|
||||
|
||||
// Refresh the 3D view, if any
|
||||
EDA_3D_VIEWER* draw3DFrame = Get3DViewerFrame();
|
||||
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
#include <pcb_draw_panel_gal.h>
|
||||
#include <functional>
|
||||
#include <project/project_file.h>
|
||||
#include <project/project_local_settings.h>
|
||||
#include <project/net_settings.h>
|
||||
#include <settings/common_settings.h>
|
||||
#include <settings/settings_manager.h>
|
||||
|
@ -1021,6 +1022,14 @@ void PCB_EDIT_FRAME::onBoardLoaded()
|
|||
|
||||
m_appearancePanel->OnBoardChanged();
|
||||
|
||||
// Apply saved display state to the appearance panel after it has been set up
|
||||
PROJECT_LOCAL_SETTINGS& localSettings = Prj().GetLocalSettings();
|
||||
|
||||
m_appearancePanel->ApplyLayerPreset( localSettings.m_ActiveLayerPreset );
|
||||
|
||||
if( GetBoard()->GetDesignSettings().IsLayerEnabled( localSettings.m_ActiveLayer ) )
|
||||
SetActiveLayer( localSettings.m_ActiveLayer );
|
||||
|
||||
// Update the tracks / vias available sizes list:
|
||||
ReCreateAuxiliaryToolbar();
|
||||
|
||||
|
|
|
@ -125,7 +125,6 @@ bool PCB_EDIT_FRAME::LoadProjectSettings()
|
|||
}
|
||||
|
||||
m_appearancePanel->SetUserLayerPresets( project.m_LayerPresets );
|
||||
m_appearancePanel->ApplyLayerPreset( localSettings.m_ActiveLayerPreset );
|
||||
|
||||
SELECTION_FILTER_OPTIONS& filterOpts = GetToolManager()->GetTool<SELECTION_TOOL>()->GetFilter();
|
||||
|
||||
|
@ -141,9 +140,6 @@ bool PCB_EDIT_FRAME::LoadProjectSettings()
|
|||
opts.m_ZoneOpacity = localSettings.m_ZoneOpacity;
|
||||
SetDisplayOptions( opts );
|
||||
|
||||
if( GetBoard()->GetDesignSettings().IsLayerEnabled( localSettings.m_ActiveLayer ) )
|
||||
SetActiveLayer( localSettings.m_ActiveLayer );
|
||||
|
||||
wxFileName fn( GetCurrentFileName() );
|
||||
fn.MakeRelativeTo( Prj().GetProjectPath() );
|
||||
LoadWindowState( fn.GetFullPath() );
|
||||
|
|
Loading…
Reference in New Issue