GAL opts: move config reading into GAL_DISPLAY_OPTIONS
Move repeated GAL config reading routines into GAL_DISPLAY_OPTIONS. THe app-level config is in here already, do the same for the common config. This means that the configs are loaded consistently, which fixes the symbol-chooser preview window, which previously didn't use the same config routine as other GAL canvases. Future work could move these functions to free functions that act on the public interface of GAL_DISPLAY_OPTIONS to avoid GAL_DISPLAY_OPTIONS having to know about wxConfig and wxWindow. Fixes: lp:1824524 * https://bugs.launchpad.net/kicad/+bug/1824524
This commit is contained in:
parent
3d9b5daf9c
commit
ab2281d26f
|
@ -27,6 +27,7 @@
|
|||
|
||||
#include <config_map.h>
|
||||
#include <dpi_scaling.h>
|
||||
#include <pgm_base.h>
|
||||
|
||||
using namespace KIGFX;
|
||||
|
||||
|
@ -62,38 +63,71 @@ GAL_DISPLAY_OPTIONS::GAL_DISPLAY_OPTIONS()
|
|||
{}
|
||||
|
||||
|
||||
void GAL_DISPLAY_OPTIONS::ReadConfig( wxConfigBase* aCfg, const wxString& aBaseName )
|
||||
void GAL_DISPLAY_OPTIONS::ReadAppConfig( wxConfigBase& aCfg, const wxString& aBaseName )
|
||||
{
|
||||
const wxString baseName = aBaseName + GAL_DISPLAY_OPTIONS_KEY;
|
||||
|
||||
long readLong; // Temp value buffer
|
||||
|
||||
aCfg->Read( aBaseName + GalGridStyleConfig, &readLong,
|
||||
static_cast<long>( KIGFX::GRID_STYLE::DOTS ) );
|
||||
aCfg.Read( baseName + GalGridStyleConfig, &readLong,
|
||||
static_cast<long>( KIGFX::GRID_STYLE::DOTS ) );
|
||||
m_gridStyle = UTIL::GetValFromConfig( gridStyleConfigVals, readLong );
|
||||
|
||||
aCfg->Read( aBaseName + GalGridLineWidthConfig, &m_gridLineWidth, 1.0 );
|
||||
aCfg->Read( aBaseName + GalGridMaxDensityConfig, &m_gridMinSpacing, 10 );
|
||||
aCfg->Read( aBaseName + GalGridAxesEnabledConfig, &m_axesEnabled, false );
|
||||
aCfg->Read( aBaseName + GalFullscreenCursorConfig, &m_fullscreenCursor, false );
|
||||
aCfg->Read( aBaseName + GalForceDisplayCursorConfig, &m_forceDisplayCursor, true );
|
||||
aCfg.Read( baseName + GalGridLineWidthConfig, &m_gridLineWidth, 1.0 );
|
||||
aCfg.Read( baseName + GalGridMaxDensityConfig, &m_gridMinSpacing, 10 );
|
||||
aCfg.Read( baseName + GalGridAxesEnabledConfig, &m_axesEnabled, false );
|
||||
aCfg.Read( baseName + GalFullscreenCursorConfig, &m_fullscreenCursor, false );
|
||||
aCfg.Read( baseName + GalForceDisplayCursorConfig, &m_forceDisplayCursor, true );
|
||||
|
||||
NotifyChanged();
|
||||
}
|
||||
|
||||
|
||||
void GAL_DISPLAY_OPTIONS::WriteConfig( wxConfigBase* aCfg, const wxString& aBaseName )
|
||||
void GAL_DISPLAY_OPTIONS::ReadCommonConfig( wxConfigBase& aCommonConfig, wxWindow* aWindow )
|
||||
{
|
||||
aCfg->Write( aBaseName + GalGridStyleConfig,
|
||||
int temp;
|
||||
aCommonConfig.Read(
|
||||
GAL_ANTIALIASING_MODE_KEY, &temp, (int) KIGFX::OPENGL_ANTIALIASING_MODE::NONE );
|
||||
gl_antialiasing_mode = (KIGFX::OPENGL_ANTIALIASING_MODE) temp;
|
||||
|
||||
aCommonConfig.Read(
|
||||
CAIRO_ANTIALIASING_MODE_KEY, &temp, (int) KIGFX::CAIRO_ANTIALIASING_MODE::NONE );
|
||||
cairo_antialiasing_mode = (KIGFX::CAIRO_ANTIALIASING_MODE) temp;
|
||||
|
||||
{
|
||||
const DPI_SCALING dpi{ &aCommonConfig, aWindow };
|
||||
m_scaleFactor = dpi.GetScaleFactor();
|
||||
}
|
||||
|
||||
NotifyChanged();
|
||||
}
|
||||
|
||||
|
||||
void GAL_DISPLAY_OPTIONS::ReadConfig( wxConfigBase& aCommonConfig, wxConfigBase& aAppConfig,
|
||||
const wxString& aBaseCfgName, wxWindow* aWindow )
|
||||
{
|
||||
ReadAppConfig( aAppConfig, aBaseCfgName );
|
||||
|
||||
ReadCommonConfig( aCommonConfig, aWindow );
|
||||
}
|
||||
|
||||
|
||||
void GAL_DISPLAY_OPTIONS::WriteConfig( wxConfigBase& aCfg, const wxString& aBaseName )
|
||||
{
|
||||
const wxString baseName = aBaseName + GAL_DISPLAY_OPTIONS_KEY;
|
||||
|
||||
aCfg.Write( baseName + GalGridStyleConfig,
|
||||
UTIL::GetConfigForVal( gridStyleConfigVals, m_gridStyle ) );
|
||||
|
||||
aCfg->Write( aBaseName + GalGridLineWidthConfig, m_gridLineWidth );
|
||||
aCfg->Write( aBaseName + GalGridMaxDensityConfig, m_gridMinSpacing );
|
||||
aCfg->Write( aBaseName + GalGridAxesEnabledConfig, m_axesEnabled );
|
||||
aCfg->Write( aBaseName + GalFullscreenCursorConfig, m_fullscreenCursor );
|
||||
aCfg->Write( aBaseName + GalForceDisplayCursorConfig, m_forceDisplayCursor );
|
||||
aCfg.Write( baseName + GalGridLineWidthConfig, m_gridLineWidth );
|
||||
aCfg.Write( baseName + GalGridMaxDensityConfig, m_gridMinSpacing );
|
||||
aCfg.Write( baseName + GalGridAxesEnabledConfig, m_axesEnabled );
|
||||
aCfg.Write( baseName + GalFullscreenCursorConfig, m_fullscreenCursor );
|
||||
aCfg.Write( baseName + GalForceDisplayCursorConfig, m_forceDisplayCursor );
|
||||
}
|
||||
|
||||
|
||||
void GAL_DISPLAY_OPTIONS::NotifyChanged()
|
||||
{
|
||||
Notify( &GAL_DISPLAY_OPTIONS_OBSERVER::OnGalDisplayOptionsChanged, *this );
|
||||
}
|
||||
}
|
|
@ -67,7 +67,6 @@
|
|||
#include <page_info.h>
|
||||
#include <title_block.h>
|
||||
#include <advanced_config.h>
|
||||
#include <dpi_scaling.h>
|
||||
|
||||
/**
|
||||
* Definition for enabling and disabling scroll bar setting trace output. See the
|
||||
|
@ -295,19 +294,7 @@ void EDA_DRAW_FRAME::CommonSettingsChanged()
|
|||
settings->Read( ENBL_AUTO_PAN_KEY, &option );
|
||||
m_canvas->SetEnableAutoPan( option );
|
||||
|
||||
int tmp;
|
||||
settings->Read( GAL_ANTIALIASING_MODE_KEY, &tmp, (int) KIGFX::OPENGL_ANTIALIASING_MODE::NONE );
|
||||
m_galDisplayOptions.gl_antialiasing_mode = (KIGFX::OPENGL_ANTIALIASING_MODE) tmp;
|
||||
|
||||
settings->Read( CAIRO_ANTIALIASING_MODE_KEY, &tmp, (int) KIGFX::CAIRO_ANTIALIASING_MODE::NONE );
|
||||
m_galDisplayOptions.cairo_antialiasing_mode = (KIGFX::CAIRO_ANTIALIASING_MODE) tmp;
|
||||
|
||||
{
|
||||
const DPI_SCALING dpi{ settings, this };
|
||||
m_galDisplayOptions.m_scaleFactor = dpi.GetScaleFactor();
|
||||
}
|
||||
|
||||
m_galDisplayOptions.NotifyChanged();
|
||||
m_galDisplayOptions.ReadCommonConfig( *settings, this );
|
||||
}
|
||||
|
||||
|
||||
|
@ -849,21 +836,7 @@ void EDA_DRAW_FRAME::LoadSettings( wxConfigBase* aCfg )
|
|||
|
||||
aCfg->Read( baseCfgName + FirstRunShownKeyword, &m_firstRunDialogSetting, 0L );
|
||||
|
||||
m_galDisplayOptions.ReadConfig( aCfg, baseCfgName + GAL_DISPLAY_OPTIONS_KEY );
|
||||
|
||||
int temp;
|
||||
cmnCfg->Read( GAL_ANTIALIASING_MODE_KEY, &temp, (int) KIGFX::OPENGL_ANTIALIASING_MODE::NONE );
|
||||
m_galDisplayOptions.gl_antialiasing_mode = (KIGFX::OPENGL_ANTIALIASING_MODE) temp;
|
||||
|
||||
cmnCfg->Read( CAIRO_ANTIALIASING_MODE_KEY, &temp, (int) KIGFX::CAIRO_ANTIALIASING_MODE::NONE );
|
||||
m_galDisplayOptions.cairo_antialiasing_mode = (KIGFX::CAIRO_ANTIALIASING_MODE) temp;
|
||||
|
||||
{
|
||||
const DPI_SCALING dpi{ cmnCfg, this };
|
||||
m_galDisplayOptions.m_scaleFactor = dpi.GetScaleFactor();
|
||||
}
|
||||
|
||||
m_galDisplayOptions.NotifyChanged();
|
||||
m_galDisplayOptions.ReadConfig( *cmnCfg, *aCfg, baseCfgName, this );
|
||||
}
|
||||
|
||||
|
||||
|
@ -881,7 +854,7 @@ void EDA_DRAW_FRAME::SaveSettings( wxConfigBase* aCfg )
|
|||
if( GetScreen() )
|
||||
aCfg->Write( baseCfgName + MaxUndoItemsEntry, long( GetScreen()->GetMaxUndoItems() ) );
|
||||
|
||||
m_galDisplayOptions.WriteConfig( aCfg, baseCfgName + GAL_DISPLAY_OPTIONS_KEY );
|
||||
m_galDisplayOptions.WriteConfig( *aCfg, baseCfgName );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -46,7 +46,6 @@
|
|||
#include <math/box2.h>
|
||||
#include <lockfile.h>
|
||||
#include <trace_helpers.h>
|
||||
#include <dpi_scaling.h>
|
||||
|
||||
#include <wx/clipbrd.h>
|
||||
#include <fctsys.h>
|
||||
|
@ -297,19 +296,7 @@ void EDA_DRAW_FRAME::CommonSettingsChanged()
|
|||
settings->Read( ENBL_AUTO_PAN_KEY, &option );
|
||||
m_canvas->SetEnableAutoPan( option );
|
||||
|
||||
int tmp;
|
||||
settings->Read( GAL_ANTIALIASING_MODE_KEY, &tmp, (int) KIGFX::OPENGL_ANTIALIASING_MODE::NONE );
|
||||
m_galDisplayOptions.gl_antialiasing_mode = (KIGFX::OPENGL_ANTIALIASING_MODE) tmp;
|
||||
|
||||
settings->Read( CAIRO_ANTIALIASING_MODE_KEY, &tmp, (int) KIGFX::CAIRO_ANTIALIASING_MODE::NONE );
|
||||
m_galDisplayOptions.cairo_antialiasing_mode = (KIGFX::CAIRO_ANTIALIASING_MODE) tmp;
|
||||
|
||||
{
|
||||
const DPI_SCALING dpi{ settings, this };
|
||||
m_galDisplayOptions.m_scaleFactor = dpi.GetScaleFactor();
|
||||
}
|
||||
|
||||
m_galDisplayOptions.NotifyChanged();
|
||||
m_galDisplayOptions.ReadCommonConfig( *settings, this );
|
||||
}
|
||||
|
||||
|
||||
|
@ -868,21 +855,7 @@ void EDA_DRAW_FRAME::LoadSettings( wxConfigBase* aCfg )
|
|||
|
||||
aCfg->Read( baseCfgName + FirstRunShownKeyword, &m_firstRunDialogSetting, 0L );
|
||||
|
||||
m_galDisplayOptions.ReadConfig( aCfg, baseCfgName + GAL_DISPLAY_OPTIONS_KEY );
|
||||
|
||||
int temp;
|
||||
cmnCfg->Read( GAL_ANTIALIASING_MODE_KEY, &temp, (int) KIGFX::OPENGL_ANTIALIASING_MODE::NONE );
|
||||
m_galDisplayOptions.gl_antialiasing_mode = (KIGFX::OPENGL_ANTIALIASING_MODE) temp;
|
||||
|
||||
cmnCfg->Read( CAIRO_ANTIALIASING_MODE_KEY, &temp, (int) KIGFX::CAIRO_ANTIALIASING_MODE::NONE );
|
||||
m_galDisplayOptions.cairo_antialiasing_mode = (KIGFX::CAIRO_ANTIALIASING_MODE) temp;
|
||||
|
||||
{
|
||||
const DPI_SCALING dpi{ cmnCfg, this };
|
||||
m_galDisplayOptions.m_scaleFactor = dpi.GetScaleFactor();
|
||||
}
|
||||
|
||||
m_galDisplayOptions.NotifyChanged();
|
||||
m_galDisplayOptions.ReadConfig( *cmnCfg, *aCfg, baseCfgName, this );
|
||||
}
|
||||
|
||||
|
||||
|
@ -902,7 +875,7 @@ void EDA_DRAW_FRAME::SaveSettings( wxConfigBase* aCfg )
|
|||
if( GetScreen() )
|
||||
aCfg->Write( baseCfgName + MaxUndoItemsEntry, long( GetScreen()->GetMaxUndoItems() ) );
|
||||
|
||||
m_galDisplayOptions.WriteConfig( aCfg, baseCfgName + GAL_DISPLAY_OPTIONS_KEY );
|
||||
m_galDisplayOptions.WriteConfig( *aCfg, baseCfgName );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -738,7 +738,7 @@ void LIB_VIEW_FRAME::LoadSettings( wxConfigBase* aCfg )
|
|||
SetGridColor( wtmp );
|
||||
|
||||
// Grid shape, etc.
|
||||
GetGalDisplayOptions().ReadConfig( aCfg, symbolEditor + GAL_DISPLAY_OPTIONS_KEY );
|
||||
GetGalDisplayOptions().ReadAppConfig( *aCfg, symbolEditor );
|
||||
|
||||
aCfg->Read( LIBLIST_WIDTH_KEY, &m_libListWidth, 150 );
|
||||
aCfg->Read( CMPLIST_WIDTH_KEY, &m_cmpListWidth, 150 );
|
||||
|
|
|
@ -39,7 +39,7 @@ SYMBOL_PREVIEW_WIDGET::SYMBOL_PREVIEW_WIDGET( wxWindow* aParent, KIWAY& aKiway,
|
|||
{
|
||||
wxString eeschemaFrameKey( SCH_EDIT_FRAME_NAME );
|
||||
auto eeschemaConfig = GetNewConfig( Pgm().App().GetAppName() );
|
||||
m_galDisplayOptions.ReadConfig( eeschemaConfig.get(), eeschemaFrameKey + GAL_DISPLAY_OPTIONS_KEY );
|
||||
m_galDisplayOptions.ReadAppConfig( *eeschemaConfig, eeschemaFrameKey );
|
||||
|
||||
EDA_DRAW_PANEL_GAL::GAL_TYPE canvasType = aCanvasType;
|
||||
|
||||
|
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
class wxConfigBase;
|
||||
class wxString;
|
||||
class wxWindow;
|
||||
|
||||
|
||||
namespace KIGFX
|
||||
{
|
||||
|
@ -74,8 +76,31 @@ namespace KIGFX
|
|||
public:
|
||||
GAL_DISPLAY_OPTIONS();
|
||||
|
||||
void ReadConfig ( wxConfigBase* aCfg, const wxString& aBaseName );
|
||||
void WriteConfig( wxConfigBase* aCfg, const wxString& aBaseName );
|
||||
/**
|
||||
* Read GAL config options from applicaton-level config
|
||||
* @param aCfg the application config base
|
||||
* @param aBaseName the application's GAL options key prefix
|
||||
*/
|
||||
void ReadAppConfig( wxConfigBase& aCfg, const wxString& aBaseName );
|
||||
|
||||
/**
|
||||
* Read GAL config options from the common config store
|
||||
* @param aCommonConfig the common config store
|
||||
* @param aWindow the wx parent window (used for DPI scaling)
|
||||
*/
|
||||
void ReadCommonConfig( wxConfigBase& aCommonConfig, wxWindow* aWindow );
|
||||
|
||||
/**
|
||||
* Read application and common configs
|
||||
* @param aCommonConfig the common config store
|
||||
* @param aCfg the application config base
|
||||
* @param aBaseName the application's GAL options key prefix
|
||||
* @param aWindow the wx parent window (used for DPI scaling)
|
||||
*/
|
||||
void ReadConfig( wxConfigBase& aCommonConfig, wxConfigBase& aAppCondfig,
|
||||
const wxString& aBaseCfgName, wxWindow* aWindow );
|
||||
|
||||
void WriteConfig( wxConfigBase& aCfg, const wxString& aBaseName );
|
||||
|
||||
void NotifyChanged();
|
||||
|
||||
|
|
|
@ -395,13 +395,7 @@ FOOTPRINT_PREVIEW_PANEL* FOOTPRINT_PREVIEW_PANEL::New( KIWAY* aKiway, wxWindow*
|
|||
// Make and populate a new one from config
|
||||
gal_opts = std::make_unique<KIGFX::GAL_DISPLAY_OPTIONS>();
|
||||
|
||||
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;
|
||||
|
||||
commonCfg->Read( CAIRO_ANTIALIASING_MODE_KEY, &itemp, (int) KIGFX::CAIRO_ANTIALIASING_MODE::NONE );
|
||||
gal_opts->cairo_antialiasing_mode = (KIGFX::CAIRO_ANTIALIASING_MODE) itemp;
|
||||
gal_opts->ReadConfig( *commonCfg, *cfg, wxString( PCB_EDIT_FRAME_NAME ), aParent );
|
||||
}
|
||||
|
||||
#ifdef __WXMAC__
|
||||
|
|
|
@ -513,7 +513,7 @@ void FOOTPRINT_VIEWER_FRAME::LoadSettings( wxConfigBase* aCfg )
|
|||
SetGridColor( wtmp );
|
||||
|
||||
// Grid shape, etc.
|
||||
GetGalDisplayOptions().ReadConfig( aCfg, footprintEditor + GAL_DISPLAY_OPTIONS_KEY );
|
||||
GetGalDisplayOptions().ReadAppConfig( *aCfg, footprintEditor );
|
||||
|
||||
m_configSettings.Load( aCfg ); // mainly, load the color config
|
||||
|
||||
|
|
Loading…
Reference in New Issue