Pcbnew: keep layer manager synchronized with board items visibility after switching to a new canvas.
This commit is contained in:
parent
068f96f2ce
commit
9bb43a89ba
|
@ -1,9 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
* Copyright (C) 2017 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||||
* Copyright (C) 2008-2016 Wayne Stambaugh <stambaughw@verizon.net>
|
* Copyright (C) 2008-2016 Wayne Stambaugh <stambaughw@verizon.net>
|
||||||
* Copyright (C) 1992-2016 KiCad Developers, see AUTHORS.txt for contributors.
|
* Copyright (C) 1992-2017 KiCad Developers, see AUTHORS.txt for contributors.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
@ -687,7 +687,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* switches currently used canvas (default / Cairo / OpenGL).
|
* switches currently used canvas (default / Cairo / OpenGL).
|
||||||
*/
|
*/
|
||||||
void SwitchCanvas( wxCommandEvent& aEvent );
|
virtual void SwitchCanvas( wxCommandEvent& aEvent );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update UI called when switches currently used canvas (default / Cairo / OpenGL).
|
* Update UI called when switches currently used canvas (default / Cairo / OpenGL).
|
||||||
|
|
|
@ -118,6 +118,11 @@ protected:
|
||||||
*/
|
*/
|
||||||
void enableGALSpecificMenus();
|
void enableGALSpecificMenus();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* switches currently used canvas (default / Cairo / OpenGL).
|
||||||
|
*/
|
||||||
|
virtual void SwitchCanvas( wxCommandEvent& aEvent ) override;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper function to coerce all colors to legacy-compatible when
|
* Helper function to coerce all colors to legacy-compatible when
|
||||||
* switching from GAL to legacy canvas
|
* switching from GAL to legacy canvas
|
||||||
|
|
|
@ -979,7 +979,7 @@ void PCB_BASE_FRAME::UseGalCanvas( bool aEnable )
|
||||||
if( m_toolManager )
|
if( m_toolManager )
|
||||||
m_toolManager->ResetTools( TOOL_BASE::GAL_SWITCH );
|
m_toolManager->ResetTools( TOOL_BASE::GAL_SWITCH );
|
||||||
|
|
||||||
// Transfer latets current display options from legacy to GAL canvas:
|
// Transfer latest current display options from legacy to GAL canvas:
|
||||||
auto painter = static_cast<KIGFX::PCB_PAINTER*>( galCanvas->GetView()->GetPainter() );
|
auto painter = static_cast<KIGFX::PCB_PAINTER*>( galCanvas->GetView()->GetPainter() );
|
||||||
auto settings = painter->GetSettings();
|
auto settings = painter->GetSettings();
|
||||||
DISPLAY_OPTIONS* displ_opts = (DISPLAY_OPTIONS*)GetDisplayOptions();
|
DISPLAY_OPTIONS* displ_opts = (DISPLAY_OPTIONS*)GetDisplayOptions();
|
||||||
|
|
|
@ -190,9 +190,9 @@ BEGIN_EVENT_TABLE( PCB_EDIT_FRAME, PCB_BASE_FRAME )
|
||||||
EVT_MENU( ID_MENU_PCB_SHOW_3D_FRAME, PCB_EDIT_FRAME::Show3D_Frame )
|
EVT_MENU( ID_MENU_PCB_SHOW_3D_FRAME, PCB_EDIT_FRAME::Show3D_Frame )
|
||||||
|
|
||||||
// Switching canvases
|
// Switching canvases
|
||||||
EVT_MENU( ID_MENU_CANVAS_LEGACY, PCB_BASE_FRAME::SwitchCanvas )
|
EVT_MENU( ID_MENU_CANVAS_LEGACY, PCB_EDIT_FRAME::SwitchCanvas )
|
||||||
EVT_MENU( ID_MENU_CANVAS_CAIRO, PCB_BASE_FRAME::SwitchCanvas )
|
EVT_MENU( ID_MENU_CANVAS_CAIRO, PCB_EDIT_FRAME::SwitchCanvas )
|
||||||
EVT_MENU( ID_MENU_CANVAS_OPENGL, PCB_BASE_FRAME::SwitchCanvas )
|
EVT_MENU( ID_MENU_CANVAS_OPENGL, PCB_EDIT_FRAME::SwitchCanvas )
|
||||||
|
|
||||||
// Menu Get Design Rules Editor
|
// Menu Get Design Rules Editor
|
||||||
EVT_MENU( ID_MENU_PCB_SHOW_DESIGN_RULES_DIALOG, PCB_EDIT_FRAME::ShowDesignRulesEditor )
|
EVT_MENU( ID_MENU_PCB_SHOW_DESIGN_RULES_DIALOG, PCB_EDIT_FRAME::ShowDesignRulesEditor )
|
||||||
|
@ -1106,6 +1106,19 @@ void PCB_EDIT_FRAME::OnLayerColorChange( wxCommandEvent& aEvent )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PCB_EDIT_FRAME::SwitchCanvas( wxCommandEvent& aEvent )
|
||||||
|
{
|
||||||
|
// switches currently used canvas (default / Cairo / OpenGL).
|
||||||
|
PCB_BASE_FRAME::SwitchCanvas( aEvent );
|
||||||
|
|
||||||
|
// The base class method reinit the layers manager.
|
||||||
|
// We must upate the layer widget to match board visibility states,
|
||||||
|
// both layers and render columns.
|
||||||
|
syncLayerVisibilities();
|
||||||
|
syncLayerWidgetLayer();
|
||||||
|
syncRenderStates();
|
||||||
|
}
|
||||||
|
|
||||||
void PCB_EDIT_FRAME::ToPlotter( wxCommandEvent& event )
|
void PCB_EDIT_FRAME::ToPlotter( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
DIALOG_PLOT dlg( this );
|
DIALOG_PLOT dlg( this );
|
||||||
|
|
Loading…
Reference in New Issue