From 24b23e238383f4f274e51dc95116fb5127606f8a Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Tue, 15 Jan 2013 10:31:11 +0100 Subject: [PATCH] Pcbnew: store in configuration the default line width (now in mm), under a new keyword, to avoid a strange behavior of pcbnew in decimils version (old pcbnew versions), after running pcbnew in nanometers. --- pcbnew/pcbframe.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/pcbnew/pcbframe.cpp b/pcbnew/pcbframe.cpp index dae82a9ad2..3edab082b4 100644 --- a/pcbnew/pcbframe.cpp +++ b/pcbnew/pcbframe.cpp @@ -53,13 +53,14 @@ #include #include #include +#include #ifdef KICAD_SCRIPTING #include #endif // Keys used in read/write config -#define OPTKEY_DEFAULT_LINEWIDTH_VALUE wxT( "PlotLineWidth" ) +#define OPTKEY_DEFAULT_LINEWIDTH_VALUE wxT( "PlotLineWidth_mm" ) #define PCB_SHOW_FULL_RATSNET_OPT wxT( "PcbFulRatsnest" ) #define PCB_MAGNETIC_PADS_OPT wxT( "PcbMagPadOpt" ) #define PCB_MAGNETIC_TRACKS_OPT wxT( "PcbMagTrackOpt" ) @@ -582,8 +583,14 @@ void PCB_EDIT_FRAME::LoadSettings() PCB_BASE_FRAME::LoadSettings(); + double dtmp; + config->Read( OPTKEY_DEFAULT_LINEWIDTH_VALUE, &dtmp, 0.1 ); // stored in mm + if( dtmp < 0.01 ) + dtmp = 0.01; + if( dtmp > 5.0 ) + dtmp = 5.0; + g_DrawDefaultLineThickness = Millimeter2iu( dtmp ); long tmp; - config->Read( OPTKEY_DEFAULT_LINEWIDTH_VALUE, &g_DrawDefaultLineThickness ); config->Read( PCB_SHOW_FULL_RATSNET_OPT, &tmp ); GetBoard()->SetElementVisibility(RATSNEST_VISIBLE, tmp); config->Read( PCB_MAGNETIC_PADS_OPT, &g_MagneticPadOption ); @@ -610,7 +617,9 @@ void PCB_EDIT_FRAME::SaveSettings() PCB_BASE_FRAME::SaveSettings(); - config->Write( OPTKEY_DEFAULT_LINEWIDTH_VALUE, g_DrawDefaultLineThickness ); + // This value is stored in mm ) + config->Write( OPTKEY_DEFAULT_LINEWIDTH_VALUE, + MM_PER_IU * g_DrawDefaultLineThickness ); long tmp = GetBoard()->IsElementVisible(RATSNEST_VISIBLE); config->Write( PCB_SHOW_FULL_RATSNET_OPT, tmp ); config->Write( PCB_MAGNETIC_PADS_OPT, (long) g_MagneticPadOption );