Inherit grid settings from PCBNew.
Fixes: lp:1801428 * https://bugs.launchpad.net/kicad/+bug/1801428
This commit is contained in:
parent
8c1ebc4314
commit
3bfd32cdc5
|
@ -78,16 +78,6 @@ static const wxString traceScrollSettings( wxT( "KicadScrollSettings" ) );
|
|||
///@{
|
||||
/// \ingroup config
|
||||
|
||||
/// User units
|
||||
static const wxString UserUnitsEntryKeyword( wxT( "Units" ) );
|
||||
static const wxString FpEditorUserUnitsEntryKeyword( wxT( "FpEditorUnits" ) );
|
||||
/// Nonzero to show grid (suffix)
|
||||
static const wxString ShowGridEntryKeyword( wxT( "ShowGrid" ) );
|
||||
/// Grid color ID (suffix)
|
||||
static const wxString GridColorEntryKeyword( wxT( "GridColor" ) );
|
||||
/// Most recently used grid size (suffix)
|
||||
static const wxString LastGridSizeIdKeyword( wxT( "_LastGridSize" ) );
|
||||
|
||||
const wxChar EDA_DRAW_FRAME::CANVAS_TYPE_KEY[] = wxT( "canvas_type" );
|
||||
|
||||
static const wxString FirstRunShownKeyword( wxT( "FirstRunShown" ) );
|
||||
|
|
|
@ -81,16 +81,6 @@ static const wxString traceScrollSettings( wxT( "KicadScrollSettings" ) );
|
|||
///@{
|
||||
/// \ingroup config
|
||||
|
||||
/// User units
|
||||
static const wxString UserUnitsEntryKeyword( wxT( "Units" ) );
|
||||
static const wxString FpEditorUserUnitsEntryKeyword( wxT( "FpEditorUnits" ) );
|
||||
/// Nonzero to show grid (suffix)
|
||||
static const wxString ShowGridEntryKeyword( wxT( "ShowGrid" ) );
|
||||
/// Grid color ID (suffix)
|
||||
static const wxString GridColorEntryKeyword( wxT( "GridColor" ) );
|
||||
/// Most recently used grid size (suffix)
|
||||
static const wxString LastGridSizeIdKeyword( wxT( "_LastGridSize" ) );
|
||||
|
||||
const wxChar EDA_DRAW_FRAME::CANVAS_TYPE_KEY[] = wxT( "canvas_type" );
|
||||
|
||||
static const wxString FirstRunShownKeyword( wxT( "FirstRunShown" ) );
|
||||
|
|
|
@ -55,6 +55,22 @@ namespace KIGFX
|
|||
#define FOOTPRINT_VIEWER_FRAME_NAME_MODAL wxT( "ModViewFrameModal" )
|
||||
#define PCB_EDIT_FRAME_NAME wxT( "PcbFrame" )
|
||||
|
||||
|
||||
///@{
|
||||
/// \ingroup config
|
||||
|
||||
/// User units
|
||||
static const wxString UserUnitsEntryKeyword( wxT( "Units" ) );
|
||||
/// Nonzero to show grid (suffix)
|
||||
static const wxString ShowGridEntryKeyword( wxT( "ShowGrid" ) );
|
||||
/// Grid color ID (suffix)
|
||||
static const wxString GridColorEntryKeyword( wxT( "GridColor" ) );
|
||||
/// Most recently used grid size (suffix)
|
||||
static const wxString LastGridSizeIdKeyword( wxT( "_LastGridSize" ) );
|
||||
|
||||
///@}
|
||||
|
||||
|
||||
/**
|
||||
* Class EDA_DRAW_FRAME
|
||||
* is the base class for create windows for drawing purpose. The Eeschema, Pcbnew and
|
||||
|
|
|
@ -30,14 +30,15 @@
|
|||
#include <class_module.h>
|
||||
#include <class_board.h>
|
||||
#include <ki_mutex.h>
|
||||
|
||||
#include <draw_frame.h>
|
||||
#include <boost/bind.hpp>
|
||||
#include <utility>
|
||||
#include <make_unique.h>
|
||||
#include <colors_design_settings.h>
|
||||
|
||||
#include <pcb_edit_frame.h>
|
||||
#include <wx/stattext.h>
|
||||
|
||||
#include <pgm_base.h>
|
||||
#include <painter.h>
|
||||
|
||||
/**
|
||||
* Threadsafe interface class between loader thread and panel class.
|
||||
|
@ -367,7 +368,29 @@ wxWindow* FOOTPRINT_PREVIEW_PANEL::GetWindow()
|
|||
|
||||
FOOTPRINT_PREVIEW_PANEL* FOOTPRINT_PREVIEW_PANEL::New( KIWAY* aKiway, wxWindow* aParent )
|
||||
{
|
||||
PCB_EDIT_FRAME* pcbnew = static_cast<PCB_EDIT_FRAME*>( aKiway->Player( FRAME_PCB, false ) );
|
||||
KIGFX::GAL_DISPLAY_OPTIONS gal_opts;
|
||||
wxConfigBase* cfg = Kiface().KifaceSettings();
|
||||
wxConfigBase* commonCfg = Pgm().CommonSettings();
|
||||
bool btemp;
|
||||
int itemp;
|
||||
wxString msg;
|
||||
COLOR4D ctemp;
|
||||
|
||||
// Fetch grid & display settings from PCBNew if it's running; otherwise fetch them
|
||||
// from PCBNew's config settings.
|
||||
|
||||
if( pcbnew )
|
||||
{
|
||||
gal_opts = pcbnew->GetGalDisplayOptions();
|
||||
}
|
||||
else
|
||||
{
|
||||
gal_opts.ReadConfig( cfg, wxString( PCB_EDIT_FRAME_NAME ) + GAL_DISPLAY_OPTIONS_KEY );
|
||||
|
||||
commonCfg->Read( GAL_ANTIALIASING_MODE_KEY, &itemp, (int) KIGFX::OPENGL_ANTIALIASING_MODE::NONE );
|
||||
gal_opts.gl_antialiasing_mode = (KIGFX::OPENGL_ANTIALIASING_MODE) itemp;
|
||||
}
|
||||
|
||||
#ifdef __WXMAC__
|
||||
// Cairo renderer doesn't handle Retina displays
|
||||
|
@ -375,5 +398,34 @@ FOOTPRINT_PREVIEW_PANEL* FOOTPRINT_PREVIEW_PANEL::New( KIWAY* aKiway, wxWindow*
|
|||
#else
|
||||
EDA_DRAW_PANEL_GAL::GAL_TYPE backend = EDA_DRAW_PANEL_GAL::GAL_TYPE_CAIRO;
|
||||
#endif
|
||||
return new FOOTPRINT_PREVIEW_PANEL( aKiway, aParent, gal_opts, backend );
|
||||
|
||||
auto panel = new FOOTPRINT_PREVIEW_PANEL( aKiway, aParent, gal_opts, backend );
|
||||
|
||||
if( pcbnew )
|
||||
{
|
||||
panel->GetGAL()->SetGridVisibility( pcbnew->IsGridVisible() );
|
||||
panel->GetGAL()->SetGridSize( VECTOR2D( pcbnew->GetScreen()->GetGridSize() ) );
|
||||
|
||||
// Grid color (among other things):
|
||||
KIGFX::PAINTER* pcbnew_painter = pcbnew->GetGalCanvas()->GetView()->GetPainter();
|
||||
panel->GetView()->GetPainter()->ApplySettings( pcbnew_painter->GetSettings() );
|
||||
}
|
||||
else
|
||||
{
|
||||
btemp = cfg->ReadBool( wxString( PCB_EDIT_FRAME_NAME ) + ShowGridEntryKeyword, true );
|
||||
panel->GetGAL()->SetGridVisibility( btemp );
|
||||
|
||||
// Read grid size:
|
||||
std::unique_ptr<PCB_SCREEN> temp_screen = std::make_unique<PCB_SCREEN>( wxSize() );
|
||||
cfg->Read( wxString( PCB_EDIT_FRAME_NAME ) + LastGridSizeIdKeyword, &itemp, 0L );
|
||||
temp_screen->SetGrid( itemp + ID_POPUP_GRID_LEVEL_1000 );
|
||||
panel->GetGAL()->SetGridSize( VECTOR2D( temp_screen->GetGridSize() ) );
|
||||
|
||||
// Read grid color:
|
||||
msg = cfg->Read( wxString( PCB_EDIT_FRAME_NAME ) + GridColorEntryKeyword, wxT( "NONE" ) );
|
||||
ctemp.SetFromWxString( msg );
|
||||
panel->GetGAL()->SetGridColor( ctemp );
|
||||
}
|
||||
|
||||
return panel;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue