beautify
This commit is contained in:
parent
ce04867e84
commit
8eff8df94b
|
@ -277,10 +277,10 @@ wxString ReturnPcbLayerName( int layer_number, bool omitSpacePadding )
|
|||
*/
|
||||
{
|
||||
|
||||
#if 0 && defined(DEBUG)
|
||||
#if 1 && defined(DEBUG)
|
||||
|
||||
// Dick: this code is working fine, but we have no place to store the layer names yet.
|
||||
|
||||
|
||||
const unsigned LAYER_LIMIT = 29;
|
||||
|
||||
// @todo: these layer names should be configurable on a per project basis.
|
||||
|
@ -288,17 +288,17 @@ wxString ReturnPcbLayerName( int layer_number, bool omitSpacePadding )
|
|||
// deriving the file names from the "configured" layer names.
|
||||
// The main idea is to use a single array of names, and then remove
|
||||
// spaces on the fly from the names when writing to disk.
|
||||
|
||||
|
||||
#if 1 // my specific layer names
|
||||
|
||||
|
||||
#if 1 // my specific layer names
|
||||
static const wxString layer_name_list[] = {
|
||||
_( "H2 Bottom" ), _( "Power" ), _( "V2 Signal" ), _( "H1 Signal" ),
|
||||
_( "Ground" ), _( "Inner L5 " ), _( "Inner L6 " ), _( "Inner L7 " ),
|
||||
_( "Inner L8 " ), _( "Inner L9 " ), _( "Inner L10" ), _( "Inner L11" ),
|
||||
_( "Ground" ), _( "Inner L5" ), _( "Inner L6" ), _( "Inner L7" ),
|
||||
_( "Inner L8" ), _( "Inner L9" ), _( "Inner L10" ), _( "Inner L11" ),
|
||||
_( "Inner L12" ), _( "Inner L13" ), _( "Inner L14" ), _( "Component" ),
|
||||
_( "Adhes Cop" ), _( "Adhes Cmp" ), _( "SoldP Cop" ), _( "SoldP Cmp" ),
|
||||
_( "SilkS Cop" ), _( "SilkS Cmp" ), _( "Mask Cop " ), _( "Mask Cmp " ),
|
||||
_( "Drawings " ), _( "Comments " ), _( "Eco1 " ), _( "Eco2 " ),
|
||||
_( "SilkS Cop" ), _( "SilkS Cmp" ), _( "Mask Cop" ), _( "Mask Cmp" ),
|
||||
_( "Drawings " ), _( "Comments" ), _( "Eco1" ), _( "Eco2" ),
|
||||
_( "Edges Pcb" ), _( "BAD INDEX" ),
|
||||
};
|
||||
#else
|
||||
|
@ -319,22 +319,22 @@ wxString ReturnPcbLayerName( int layer_number, bool omitSpacePadding )
|
|||
layer_number = LAYER_LIMIT;
|
||||
|
||||
const wxString* p = &layer_name_list[layer_number];
|
||||
|
||||
|
||||
if( omitSpacePadding )
|
||||
{
|
||||
wxString ret = *p; // copy the string
|
||||
|
||||
|
||||
// modify the copy
|
||||
ret.Trim();
|
||||
ret.Replace( wxT(" "), wxT("_") );
|
||||
|
||||
|
||||
return ret;
|
||||
}
|
||||
else
|
||||
return *p;
|
||||
|
||||
#else // long standing established code:
|
||||
|
||||
|
||||
static const wxString layer_name_list[] = {
|
||||
_( "Copper " ), _( "Inner L1 " ), _( "Inner L2 " ), _( "Inner L3 " ),
|
||||
_( "Inner L4 " ), _( "Inner L5 " ), _( "Inner L6 " ), _( "Inner L7 " ),
|
||||
|
@ -346,7 +346,7 @@ wxString ReturnPcbLayerName( int layer_number, bool omitSpacePadding )
|
|||
_( "Edges Pcb" ), _( "--- " ), _( "--- " ), _( "--- " )
|
||||
};
|
||||
|
||||
|
||||
|
||||
// Same as layer_name_list, without space, not internationalized
|
||||
static const wxString layer_name_list_for_filename[] = {
|
||||
wxT( "Copper" ), wxT( "InnerL1" ), wxT( "InnerL2" ), wxT( "InnerL3" ),
|
||||
|
@ -358,16 +358,16 @@ wxString ReturnPcbLayerName( int layer_number, bool omitSpacePadding )
|
|||
wxT( "Drawings" ), wxT( "Comments" ), wxT( "Eco1" ), wxT( "Eco2" ),
|
||||
wxT( "EdgesPcb" ), wxT( "---" ), wxT( "---" ), wxT( "---" )
|
||||
};
|
||||
|
||||
|
||||
|
||||
if( (unsigned) layer_number >= 31u )
|
||||
layer_number = 31;
|
||||
|
||||
return omitSpacePadding ?
|
||||
return omitSpacePadding ?
|
||||
layer_name_list_for_filename[layer_number] :
|
||||
layer_name_list[layer_number];
|
||||
#endif
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -509,6 +509,6 @@ const wxString& valeur_param( int valeur, wxString& buf_texte )
|
|||
{
|
||||
buf_texte.Printf( wxT( "%2.4f \"" ), valeur * 0.0001 );
|
||||
}
|
||||
|
||||
|
||||
return buf_texte;
|
||||
}
|
||||
|
|
|
@ -118,8 +118,8 @@ void WinEDA_App::InitEDA_Appl( const wxString& name )
|
|||
|
||||
/* Init kicad environment
|
||||
* the environment variable KICAD (if exists) gives the kicad path:
|
||||
* something like set KICAD=d:\kicad
|
||||
*/
|
||||
* something like set KICAD=d:\kicad
|
||||
*/
|
||||
m_Env_Defined = wxGetEnv( wxT( "KICAD" ), &m_KicadEnv );
|
||||
if( m_Env_Defined ) // ensure m_KicadEnv ends by "/"
|
||||
{
|
||||
|
@ -214,7 +214,7 @@ bool WinEDA_App::SetBinDir()
|
|||
if (str == NULL) return false;
|
||||
char *native_str = NULL;
|
||||
int len = CFStringGetMaximumSizeForEncoding(CFStringGetLength(str),
|
||||
kCFStringEncodingUTF8) + 1;
|
||||
kCFStringEncodingUTF8) + 1;
|
||||
native_str = new char[len];
|
||||
CFStringGetCString(str, native_str, len, kCFStringEncodingUTF8);
|
||||
m_BinDir = CONV_FROM_UTF8(native_str);
|
||||
|
@ -222,7 +222,7 @@ bool WinEDA_App::SetBinDir()
|
|||
|
||||
#elif defined(__UNIX__)
|
||||
|
||||
// Under Linux, if argv[0] doesn't the complete path to the executable,
|
||||
// Under Linux, if argv[0] doesn't the complete path to the executable,
|
||||
// it's necessary to obtain it using "which <filename>".
|
||||
FILE* ftmp;
|
||||
|
||||
|
@ -270,7 +270,8 @@ void WinEDA_App::GetSettings()
|
|||
wxString Line, Ident;
|
||||
unsigned ii;
|
||||
|
||||
m_HelpSize.x = 500; m_HelpSize.y = 400;
|
||||
m_HelpSize.x = 500;
|
||||
m_HelpSize.y = 400;
|
||||
|
||||
if( m_EDA_CommonConfig )
|
||||
{
|
||||
|
@ -285,8 +286,11 @@ void WinEDA_App::GetSettings()
|
|||
|
||||
for( ii = 0; ii < 10; ii++ )
|
||||
{
|
||||
Ident = wxT( "LastProject" ); if( ii )
|
||||
Ident = wxT( "LastProject" );
|
||||
|
||||
if( ii )
|
||||
Ident << ii;
|
||||
|
||||
if( m_EDA_Config->Read( Ident, &Line ) )
|
||||
m_LastProject.Add( Line );
|
||||
}
|
||||
|
@ -299,6 +303,7 @@ void WinEDA_App::GetSettings()
|
|||
Line = m_EDA_Config->Read( wxT( "SdtFontType" ), wxEmptyString );
|
||||
if( !Line.IsEmpty() )
|
||||
g_StdFont->SetFaceName( Line );
|
||||
|
||||
ii = m_EDA_Config->Read( wxT( "SdtFontStyle" ), wxFONTFAMILY_ROMAN );
|
||||
g_StdFont->SetStyle( ii );
|
||||
ii = m_EDA_Config->Read( wxT( "SdtFontWeight" ), wxNORMAL );
|
||||
|
@ -309,6 +314,7 @@ void WinEDA_App::GetSettings()
|
|||
Line = m_EDA_Config->Read( wxT( "MsgFontType" ), wxEmptyString );
|
||||
if( !Line.IsEmpty() )
|
||||
g_MsgFont->SetFaceName( Line );
|
||||
|
||||
ii = m_EDA_Config->Read( wxT( "MsgFontStyle" ), wxFONTFAMILY_ROMAN );
|
||||
g_MsgFont->SetStyle( ii );
|
||||
ii = m_EDA_Config->Read( wxT( "MsgFontWeight" ), wxNORMAL );
|
||||
|
@ -318,6 +324,7 @@ void WinEDA_App::GetSettings()
|
|||
Line = m_EDA_Config->Read( wxT( "DialogFontType" ), wxEmptyString );
|
||||
if( !Line.IsEmpty() )
|
||||
g_DialogFont->SetFaceName( Line );
|
||||
|
||||
ii = m_EDA_Config->Read( wxT( "DialogFontStyle" ), wxFONTFAMILY_ROMAN );
|
||||
g_DialogFont->SetStyle( ii );
|
||||
ii = m_EDA_Config->Read( wxT( "DialogFontWeight" ), wxNORMAL );
|
||||
|
@ -343,7 +350,6 @@ void WinEDA_App::SaveSettings()
|
|||
{
|
||||
unsigned int ii;
|
||||
|
||||
|
||||
if( m_EDA_Config == NULL )
|
||||
return;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**************************************************/
|
||||
/* projet_config : routines de trace du cartouche */
|
||||
/**************************************************/
|
||||
/**************************************************/
|
||||
/* projet_config : routines de trace du cartouche */
|
||||
/**************************************************/
|
||||
|
||||
#include "fctsys.h"
|
||||
#include "gr_basic.h"
|
||||
|
@ -13,341 +13,386 @@
|
|||
|
||||
|
||||
/*********************************************************************/
|
||||
static bool ReCreatePrjConfig(const wxString & local_config_filename,
|
||||
const wxString & GroupName, bool ForceUseLocalConfig)
|
||||
static bool ReCreatePrjConfig( const wxString& local_config_filename,
|
||||
const wxString& GroupName, bool ForceUseLocalConfig )
|
||||
/*********************************************************************/
|
||||
|
||||
/* Cree ou recree la configuration locale de kicad (filename.pro)
|
||||
initialise:
|
||||
g_Prj_Config
|
||||
g_Prj_Config_LocalFilename
|
||||
g_Prj_Default_Config_FullFilename
|
||||
return:
|
||||
TRUE si config locale
|
||||
FALSE si default config
|
||||
*/
|
||||
* initialise:
|
||||
* g_Prj_Config
|
||||
* g_Prj_Config_LocalFilename
|
||||
* g_Prj_Default_Config_FullFilename
|
||||
* return:
|
||||
* TRUE si config locale
|
||||
* FALSE si default config
|
||||
*/
|
||||
{
|
||||
// free old config
|
||||
if ( g_Prj_Config ) delete g_Prj_Config;
|
||||
g_Prj_Config = NULL;
|
||||
|
||||
// Init local Config filename
|
||||
if ( local_config_filename.IsEmpty() ) g_Prj_Config_LocalFilename = wxT("kicad");
|
||||
else g_Prj_Config_LocalFilename = local_config_filename;
|
||||
// free old config
|
||||
if( g_Prj_Config )
|
||||
delete g_Prj_Config;
|
||||
g_Prj_Config = NULL;
|
||||
|
||||
ChangeFileNameExt( g_Prj_Config_LocalFilename, g_Prj_Config_Filename_ext );
|
||||
// Init local Config filename
|
||||
if( local_config_filename.IsEmpty() )
|
||||
g_Prj_Config_LocalFilename = wxT( "kicad" );
|
||||
else
|
||||
g_Prj_Config_LocalFilename = local_config_filename;
|
||||
|
||||
// Init local config filename
|
||||
if ( ForceUseLocalConfig || wxFileExists(g_Prj_Config_LocalFilename) )
|
||||
{
|
||||
g_Prj_Default_Config_FullFilename.Empty();
|
||||
g_Prj_Config = new wxFileConfig(wxEmptyString, wxEmptyString,
|
||||
g_Prj_Config_LocalFilename, wxEmptyString,
|
||||
wxCONFIG_USE_RELATIVE_PATH);
|
||||
g_Prj_Config->DontCreateOnDemand();
|
||||
ChangeFileNameExt( g_Prj_Config_LocalFilename, g_Prj_Config_Filename_ext );
|
||||
|
||||
if ( ForceUseLocalConfig ) return TRUE;
|
||||
|
||||
// Test de la bonne version du fichier (ou groupe) de configuration
|
||||
int version = -1, def_version = 0;
|
||||
g_Prj_Config->SetPath(GroupName);
|
||||
version = g_Prj_Config->Read( wxT("version"), def_version);
|
||||
g_Prj_Config->SetPath(UNIX_STRING_DIR_SEP);
|
||||
if ( version > 0 ) return TRUE;
|
||||
else delete g_Prj_Config; // Version incorrecte
|
||||
}
|
||||
// Init local config filename
|
||||
if( ForceUseLocalConfig || wxFileExists( g_Prj_Config_LocalFilename ) )
|
||||
{
|
||||
g_Prj_Default_Config_FullFilename.Empty();
|
||||
g_Prj_Config = new wxFileConfig( wxEmptyString, wxEmptyString,
|
||||
g_Prj_Config_LocalFilename, wxEmptyString,
|
||||
wxCONFIG_USE_RELATIVE_PATH );
|
||||
|
||||
g_Prj_Config->DontCreateOnDemand();
|
||||
|
||||
if( ForceUseLocalConfig )
|
||||
return TRUE;
|
||||
|
||||
// Test de la bonne version du fichier (ou groupe) de configuration
|
||||
int version = -1, def_version = 0;
|
||||
g_Prj_Config->SetPath( GroupName );
|
||||
version = g_Prj_Config->Read( wxT( "version" ), def_version );
|
||||
g_Prj_Config->SetPath( UNIX_STRING_DIR_SEP );
|
||||
if( version > 0 )
|
||||
return TRUE;
|
||||
else
|
||||
delete g_Prj_Config; // Version incorrecte
|
||||
}
|
||||
|
||||
|
||||
// Fichier local non trouve ou invalide
|
||||
g_Prj_Config_LocalFilename.Empty();
|
||||
g_Prj_Default_Config_FullFilename =
|
||||
ReturnKicadDatasPath() +
|
||||
wxT("template/kicad") +
|
||||
g_Prj_Config_Filename_ext;
|
||||
|
||||
// Recreate new config
|
||||
g_Prj_Config = new wxFileConfig(wxEmptyString, wxEmptyString,
|
||||
wxEmptyString, g_Prj_Default_Config_FullFilename,
|
||||
wxCONFIG_USE_RELATIVE_PATH);
|
||||
g_Prj_Config->DontCreateOnDemand();
|
||||
// Fichier local non trouve ou invalide
|
||||
g_Prj_Config_LocalFilename.Empty();
|
||||
g_Prj_Default_Config_FullFilename =
|
||||
ReturnKicadDatasPath() +
|
||||
wxT( "template/kicad" ) +
|
||||
g_Prj_Config_Filename_ext;
|
||||
|
||||
return FALSE;
|
||||
// Recreate new config
|
||||
g_Prj_Config = new wxFileConfig( wxEmptyString, wxEmptyString,
|
||||
wxEmptyString, g_Prj_Default_Config_FullFilename,
|
||||
wxCONFIG_USE_RELATIVE_PATH );
|
||||
|
||||
g_Prj_Config->DontCreateOnDemand();
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************************/
|
||||
void WinEDA_App::WriteProjectConfig(const wxString & local_config_filename,
|
||||
const wxString & GroupName, PARAM_CFG_BASE ** List)
|
||||
void WinEDA_App::WriteProjectConfig( const wxString& local_config_filename,
|
||||
const wxString& GroupName, PARAM_CFG_BASE** List )
|
||||
/***************************************************************************************/
|
||||
/* enregistrement de la config "projet"*/
|
||||
{
|
||||
const PARAM_CFG_BASE * pt_cfg;
|
||||
wxString msg;
|
||||
|
||||
ReCreatePrjConfig(local_config_filename, GroupName,
|
||||
FORCE_LOCAL_CONFIG);
|
||||
/* Write date ( surtout pour eviter bug de wxFileConfig
|
||||
qui se trompe de rubrique si declaration [xx] en premiere ligne
|
||||
(en fait si groupe vide) */
|
||||
g_Prj_Config->SetPath(UNIX_STRING_DIR_SEP);
|
||||
msg = DateAndTime();
|
||||
g_Prj_Config->Write( wxT("update"), msg);
|
||||
msg = GetAppName();
|
||||
g_Prj_Config->Write( wxT("last_client"), msg);
|
||||
const PARAM_CFG_BASE* pt_cfg;
|
||||
wxString msg;
|
||||
|
||||
/* ecriture de la configuration */
|
||||
g_Prj_Config->DeleteGroup(GroupName); // Erase all datas
|
||||
g_Prj_Config->Flush();
|
||||
ReCreatePrjConfig( local_config_filename, GroupName,
|
||||
FORCE_LOCAL_CONFIG );
|
||||
|
||||
g_Prj_Config->SetPath(GroupName);
|
||||
g_Prj_Config->Write( wxT("version"), CONFIG_VERSION);
|
||||
g_Prj_Config->SetPath(UNIX_STRING_DIR_SEP);
|
||||
/* Write date ( surtout pour eviter bug de wxFileConfig
|
||||
* qui se trompe de rubrique si declaration [xx] en premiere ligne
|
||||
* (en fait si groupe vide) */
|
||||
g_Prj_Config->SetPath( UNIX_STRING_DIR_SEP );
|
||||
msg = DateAndTime();
|
||||
|
||||
for( ; *List != NULL ; List++)
|
||||
{
|
||||
pt_cfg = *List;
|
||||
if ( pt_cfg->m_Group ) g_Prj_Config->SetPath(pt_cfg->m_Group);
|
||||
else g_Prj_Config->SetPath(GroupName);
|
||||
g_Prj_Config->Write( wxT( "update" ), msg );
|
||||
msg = GetAppName();
|
||||
|
||||
switch( pt_cfg->m_Type )
|
||||
{
|
||||
case PARAM_INT:
|
||||
#undef PTCFG
|
||||
#define PTCFG ((PARAM_CFG_INT *)pt_cfg)
|
||||
if (PTCFG->m_Pt_param == NULL) break;
|
||||
if ( pt_cfg->m_Setup)
|
||||
m_EDA_Config->Write(pt_cfg->m_Ident, *PTCFG->m_Pt_param);
|
||||
else
|
||||
g_Prj_Config->Write(pt_cfg->m_Ident, *PTCFG->m_Pt_param);
|
||||
break;
|
||||
g_Prj_Config->Write( wxT( "last_client" ), msg );
|
||||
|
||||
case PARAM_SETCOLOR:
|
||||
#undef PTCFG
|
||||
#define PTCFG ((PARAM_CFG_SETCOLOR *)pt_cfg)
|
||||
if (PTCFG->m_Pt_param == NULL) break;
|
||||
if ( pt_cfg->m_Setup)
|
||||
m_EDA_Config->Write(pt_cfg->m_Ident, *PTCFG->m_Pt_param);
|
||||
else
|
||||
g_Prj_Config->Write(pt_cfg->m_Ident, *PTCFG->m_Pt_param);
|
||||
break;
|
||||
/* ecriture de la configuration */
|
||||
g_Prj_Config->DeleteGroup( GroupName ); // Erase all datas
|
||||
g_Prj_Config->Flush();
|
||||
|
||||
case PARAM_DOUBLE:
|
||||
#undef PTCFG
|
||||
#define PTCFG ((PARAM_CFG_DOUBLE *)pt_cfg)
|
||||
if (PTCFG->m_Pt_param == NULL) break;
|
||||
if ( pt_cfg->m_Setup)
|
||||
m_EDA_Config->Write(pt_cfg->m_Ident, *PTCFG->m_Pt_param);
|
||||
else
|
||||
g_Prj_Config->Write(pt_cfg->m_Ident, *PTCFG->m_Pt_param);
|
||||
break;
|
||||
g_Prj_Config->SetPath( GroupName );
|
||||
g_Prj_Config->Write( wxT( "version" ), CONFIG_VERSION );
|
||||
g_Prj_Config->SetPath( UNIX_STRING_DIR_SEP );
|
||||
|
||||
case PARAM_BOOL:
|
||||
#undef PTCFG
|
||||
#define PTCFG ((PARAM_CFG_BOOL *)pt_cfg)
|
||||
if (PTCFG->m_Pt_param == NULL) break;
|
||||
if ( pt_cfg->m_Setup)
|
||||
m_EDA_Config->Write(pt_cfg->m_Ident, (int)*PTCFG->m_Pt_param);
|
||||
else
|
||||
g_Prj_Config->Write(pt_cfg->m_Ident, (int)*PTCFG->m_Pt_param);
|
||||
break;
|
||||
for( ; *List != NULL; List++ )
|
||||
{
|
||||
pt_cfg = *List;
|
||||
if( pt_cfg->m_Group )
|
||||
g_Prj_Config->SetPath( pt_cfg->m_Group );
|
||||
else
|
||||
g_Prj_Config->SetPath( GroupName );
|
||||
|
||||
case PARAM_WXSTRING:
|
||||
#undef PTCFG
|
||||
#define PTCFG ((PARAM_CFG_WXSTRING *)pt_cfg)
|
||||
if (PTCFG->m_Pt_param == NULL) break;
|
||||
if ( pt_cfg->m_Setup)
|
||||
m_EDA_Config->Write(pt_cfg->m_Ident, *PTCFG->m_Pt_param);
|
||||
else
|
||||
g_Prj_Config->Write(pt_cfg->m_Ident, *PTCFG->m_Pt_param);
|
||||
break;
|
||||
switch( pt_cfg->m_Type )
|
||||
{
|
||||
case PARAM_INT:
|
||||
#undef PTCFG
|
||||
#define PTCFG ( (PARAM_CFG_INT*) pt_cfg )
|
||||
if( PTCFG->m_Pt_param == NULL )
|
||||
break;
|
||||
|
||||
case PARAM_LIBNAME_LIST:
|
||||
{
|
||||
#undef PTCFG
|
||||
#define PTCFG ((PARAM_CFG_LIBNAME_LIST *)pt_cfg)
|
||||
if (PTCFG->m_Pt_param == NULL) break;
|
||||
wxArrayString * libname_list = PTCFG->m_Pt_param;
|
||||
if ( libname_list == NULL ) break;
|
||||
unsigned indexlib = 0;
|
||||
wxString cle_config;
|
||||
for ( ; indexlib < libname_list->GetCount(); indexlib++ )
|
||||
{
|
||||
cle_config = pt_cfg->m_Ident;
|
||||
// We use indexlib+1 because first lib name is LibName1
|
||||
cle_config << (indexlib+1);
|
||||
g_Prj_Config->Write(cle_config, libname_list->Item(indexlib));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case PARAM_COMMAND_ERASE: // Erase all datas
|
||||
if ( pt_cfg->m_Ident )
|
||||
{
|
||||
m_EDA_Config->DeleteGroup(pt_cfg->m_Ident);
|
||||
g_Prj_Config->DeleteGroup(pt_cfg->m_Ident);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
g_Prj_Config->SetPath(UNIX_STRING_DIR_SEP);
|
||||
delete g_Prj_Config;
|
||||
g_Prj_Config = NULL;
|
||||
if( pt_cfg->m_Setup )
|
||||
m_EDA_Config->Write( pt_cfg->m_Ident, *PTCFG->m_Pt_param );
|
||||
else
|
||||
g_Prj_Config->Write( pt_cfg->m_Ident, *PTCFG->m_Pt_param );
|
||||
break;
|
||||
|
||||
case PARAM_SETCOLOR:
|
||||
#undef PTCFG
|
||||
#define PTCFG ( (PARAM_CFG_SETCOLOR*) pt_cfg )
|
||||
if( PTCFG->m_Pt_param == NULL )
|
||||
break;
|
||||
|
||||
if( pt_cfg->m_Setup )
|
||||
m_EDA_Config->Write( pt_cfg->m_Ident, *PTCFG->m_Pt_param );
|
||||
else
|
||||
g_Prj_Config->Write( pt_cfg->m_Ident, *PTCFG->m_Pt_param );
|
||||
break;
|
||||
|
||||
case PARAM_DOUBLE:
|
||||
#undef PTCFG
|
||||
#define PTCFG ( (PARAM_CFG_DOUBLE*) pt_cfg )
|
||||
if( PTCFG->m_Pt_param == NULL )
|
||||
break;
|
||||
|
||||
if( pt_cfg->m_Setup )
|
||||
m_EDA_Config->Write( pt_cfg->m_Ident, *PTCFG->m_Pt_param );
|
||||
else
|
||||
g_Prj_Config->Write( pt_cfg->m_Ident, *PTCFG->m_Pt_param );
|
||||
break;
|
||||
|
||||
case PARAM_BOOL:
|
||||
#undef PTCFG
|
||||
#define PTCFG ( (PARAM_CFG_BOOL*) pt_cfg )
|
||||
if( PTCFG->m_Pt_param == NULL )
|
||||
break;
|
||||
|
||||
if( pt_cfg->m_Setup )
|
||||
m_EDA_Config->Write( pt_cfg->m_Ident, (int) *PTCFG->m_Pt_param );
|
||||
else
|
||||
g_Prj_Config->Write( pt_cfg->m_Ident, (int) *PTCFG->m_Pt_param );
|
||||
break;
|
||||
|
||||
case PARAM_WXSTRING:
|
||||
#undef PTCFG
|
||||
#define PTCFG ( (PARAM_CFG_WXSTRING*) pt_cfg )
|
||||
if( PTCFG->m_Pt_param == NULL )
|
||||
break;
|
||||
|
||||
if( pt_cfg->m_Setup )
|
||||
m_EDA_Config->Write( pt_cfg->m_Ident, *PTCFG->m_Pt_param );
|
||||
else
|
||||
g_Prj_Config->Write( pt_cfg->m_Ident, *PTCFG->m_Pt_param );
|
||||
break;
|
||||
|
||||
case PARAM_LIBNAME_LIST:
|
||||
{
|
||||
#undef PTCFG
|
||||
#define PTCFG ( (PARAM_CFG_LIBNAME_LIST*) pt_cfg )
|
||||
if( PTCFG->m_Pt_param == NULL )
|
||||
break;
|
||||
|
||||
wxArrayString* libname_list = PTCFG->m_Pt_param;
|
||||
if( libname_list == NULL )
|
||||
break;
|
||||
|
||||
unsigned indexlib = 0;
|
||||
wxString cle_config;
|
||||
for( ; indexlib < libname_list->GetCount(); indexlib++ )
|
||||
{
|
||||
cle_config = pt_cfg->m_Ident;
|
||||
|
||||
// We use indexlib+1 because first lib name is LibName1
|
||||
cle_config << (indexlib + 1);
|
||||
g_Prj_Config->Write( cle_config, libname_list->Item( indexlib ) );
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case PARAM_COMMAND_ERASE: // Erase all datas
|
||||
if( pt_cfg->m_Ident )
|
||||
{
|
||||
m_EDA_Config->DeleteGroup( pt_cfg->m_Ident );
|
||||
g_Prj_Config->DeleteGroup( pt_cfg->m_Ident );
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
g_Prj_Config->SetPath( UNIX_STRING_DIR_SEP );
|
||||
delete g_Prj_Config;
|
||||
g_Prj_Config = NULL;
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************************/
|
||||
bool WinEDA_App::ReadProjectConfig(const wxString & local_config_filename,
|
||||
const wxString & GroupName, PARAM_CFG_BASE ** List,
|
||||
bool Load_Only_if_New)
|
||||
bool WinEDA_App::ReadProjectConfig( const wxString& local_config_filename,
|
||||
const wxString& GroupName, PARAM_CFG_BASE** List,
|
||||
bool Load_Only_if_New )
|
||||
/***************************************************************************************/
|
||||
|
||||
/* Lecture de la config "projet"
|
||||
*** si Load_Only_if_New == TRUE, elle n'est lue que si elle
|
||||
*** est differente de la config actuelle (dates differentes)
|
||||
|
||||
return:
|
||||
TRUE si lue.
|
||||
Met a jour en plus:
|
||||
g_EDA_Appl->m_CurrentOptionFileDateAndTime
|
||||
g_EDA_Appl->m_CurrentOptionFile
|
||||
*/
|
||||
*** si Load_Only_if_New == TRUE, elle n'est lue que si elle
|
||||
*** est differente de la config actuelle (dates differentes)
|
||||
*
|
||||
* return:
|
||||
* TRUE si lue.
|
||||
* Met a jour en plus:
|
||||
* g_EDA_Appl->m_CurrentOptionFileDateAndTime
|
||||
* g_EDA_Appl->m_CurrentOptionFile
|
||||
*/
|
||||
{
|
||||
const PARAM_CFG_BASE * pt_cfg;
|
||||
wxString timestamp;
|
||||
|
||||
if ( List == NULL )return FALSE;
|
||||
const PARAM_CFG_BASE* pt_cfg;
|
||||
wxString timestamp;
|
||||
|
||||
ReCreatePrjConfig(local_config_filename, GroupName, FALSE);
|
||||
if( List == NULL )
|
||||
return FALSE;
|
||||
|
||||
g_Prj_Config->SetPath(UNIX_STRING_DIR_SEP);
|
||||
timestamp = g_Prj_Config->Read( wxT("update") );
|
||||
if ( Load_Only_if_New && ( !timestamp.IsEmpty() ) &&
|
||||
(timestamp == g_EDA_Appl->m_CurrentOptionFileDateAndTime) )
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
g_EDA_Appl->m_CurrentOptionFileDateAndTime = timestamp;
|
||||
|
||||
if ( ! g_Prj_Default_Config_FullFilename.IsEmpty() )
|
||||
g_EDA_Appl->m_CurrentOptionFile = g_Prj_Default_Config_FullFilename;
|
||||
else
|
||||
{
|
||||
if ( wxPathOnly(g_Prj_Config_LocalFilename).IsEmpty() )
|
||||
g_EDA_Appl->m_CurrentOptionFile =
|
||||
wxGetCwd() + STRING_DIR_SEP + g_Prj_Config_LocalFilename;
|
||||
else
|
||||
g_EDA_Appl->m_CurrentOptionFile = g_Prj_Config_LocalFilename;
|
||||
}
|
||||
ReCreatePrjConfig( local_config_filename, GroupName, FALSE );
|
||||
|
||||
for( ; *List != NULL ; List++)
|
||||
{
|
||||
pt_cfg = *List;
|
||||
if ( pt_cfg->m_Group ) g_Prj_Config->SetPath(pt_cfg->m_Group);
|
||||
else g_Prj_Config->SetPath(GroupName);
|
||||
switch( pt_cfg->m_Type )
|
||||
{
|
||||
case PARAM_INT:
|
||||
{
|
||||
#undef PTCFG
|
||||
#define PTCFG ((PARAM_CFG_INT *)pt_cfg)
|
||||
int itmp;
|
||||
if ( pt_cfg->m_Setup)
|
||||
itmp = m_EDA_Config->Read(pt_cfg->m_Ident, PTCFG->m_Default );
|
||||
else
|
||||
itmp = g_Prj_Config->Read(pt_cfg->m_Ident, PTCFG->m_Default );
|
||||
if( (itmp < PTCFG->m_Min) || (itmp > PTCFG->m_Max) )
|
||||
itmp = PTCFG->m_Default;
|
||||
*PTCFG->m_Pt_param = itmp;
|
||||
break;
|
||||
}
|
||||
|
||||
case PARAM_SETCOLOR:
|
||||
{
|
||||
#undef PTCFG
|
||||
#define PTCFG ((PARAM_CFG_SETCOLOR *)pt_cfg)
|
||||
int itmp;
|
||||
if ( pt_cfg->m_Setup)
|
||||
itmp = m_EDA_Config->Read(pt_cfg->m_Ident, PTCFG->m_Default );
|
||||
else
|
||||
itmp = g_Prj_Config->Read(pt_cfg->m_Ident, PTCFG->m_Default );
|
||||
if( (itmp < 0) || (itmp > MAX_COLOR) )
|
||||
itmp = PTCFG->m_Default;
|
||||
*PTCFG->m_Pt_param = itmp;
|
||||
break;
|
||||
}
|
||||
|
||||
case PARAM_DOUBLE:
|
||||
{
|
||||
#undef PTCFG
|
||||
#define PTCFG ((PARAM_CFG_DOUBLE *)pt_cfg)
|
||||
double ftmp = 0; wxString msg;
|
||||
if ( pt_cfg->m_Setup)
|
||||
msg = m_EDA_Config->Read(pt_cfg->m_Ident, wxT("") );
|
||||
else
|
||||
msg = g_Prj_Config->Read(pt_cfg->m_Ident, wxT("") );
|
||||
|
||||
if ( msg.IsEmpty() ) ftmp = PTCFG->m_Default;
|
||||
else
|
||||
{
|
||||
msg.ToDouble(&ftmp);
|
||||
if( (ftmp < PTCFG->m_Min) || (ftmp > PTCFG->m_Max) )
|
||||
ftmp = PTCFG->m_Default;
|
||||
}
|
||||
*PTCFG->m_Pt_param = ftmp;
|
||||
break;
|
||||
}
|
||||
|
||||
case PARAM_BOOL:
|
||||
{
|
||||
#undef PTCFG
|
||||
#define PTCFG ((PARAM_CFG_BOOL *)pt_cfg)
|
||||
int itmp;
|
||||
if ( pt_cfg->m_Setup)
|
||||
itmp = m_EDA_Config->Read(pt_cfg->m_Ident, PTCFG->m_Default );
|
||||
else
|
||||
itmp = g_Prj_Config->Read(pt_cfg->m_Ident, PTCFG->m_Default );
|
||||
*PTCFG->m_Pt_param = itmp ? TRUE : FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
case PARAM_WXSTRING:
|
||||
{
|
||||
#undef PTCFG
|
||||
#define PTCFG ((PARAM_CFG_WXSTRING *)pt_cfg)
|
||||
if (PTCFG->m_Pt_param == NULL) break;
|
||||
if ( pt_cfg->m_Setup)
|
||||
*PTCFG->m_Pt_param = m_EDA_Config->Read(pt_cfg->m_Ident );
|
||||
else
|
||||
*PTCFG->m_Pt_param = g_Prj_Config->Read(pt_cfg->m_Ident );
|
||||
break;
|
||||
}
|
||||
g_Prj_Config->SetPath( UNIX_STRING_DIR_SEP );
|
||||
timestamp = g_Prj_Config->Read( wxT( "update" ) );
|
||||
if( Load_Only_if_New && ( !timestamp.IsEmpty() )
|
||||
&& (timestamp == g_EDA_Appl->m_CurrentOptionFileDateAndTime) )
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
case PARAM_LIBNAME_LIST:
|
||||
{
|
||||
#undef PTCFG
|
||||
#define PTCFG ((PARAM_CFG_LIBNAME_LIST *)pt_cfg)
|
||||
int indexlib = 1; // We start indexlib to 1 because first lib name is LibName1
|
||||
wxString libname, id_lib;
|
||||
wxArrayString * libname_list = PTCFG->m_Pt_param;
|
||||
while ( 1 )
|
||||
{
|
||||
id_lib = pt_cfg->m_Ident; id_lib << indexlib; indexlib++;
|
||||
libname = g_Prj_Config->Read(id_lib, wxT("") );
|
||||
if( libname.IsEmpty() ) break;
|
||||
libname_list->Add(libname);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case PARAM_COMMAND_ERASE:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
delete g_Prj_Config;
|
||||
g_Prj_Config = NULL;
|
||||
|
||||
return TRUE;
|
||||
g_EDA_Appl->m_CurrentOptionFileDateAndTime = timestamp;
|
||||
|
||||
if( !g_Prj_Default_Config_FullFilename.IsEmpty() )
|
||||
g_EDA_Appl->m_CurrentOptionFile = g_Prj_Default_Config_FullFilename;
|
||||
else
|
||||
{
|
||||
if( wxPathOnly( g_Prj_Config_LocalFilename ).IsEmpty() )
|
||||
g_EDA_Appl->m_CurrentOptionFile =
|
||||
wxGetCwd() + STRING_DIR_SEP + g_Prj_Config_LocalFilename;
|
||||
else
|
||||
g_EDA_Appl->m_CurrentOptionFile = g_Prj_Config_LocalFilename;
|
||||
}
|
||||
|
||||
for( ; *List != NULL; List++ )
|
||||
{
|
||||
pt_cfg = *List;
|
||||
if( pt_cfg->m_Group )
|
||||
g_Prj_Config->SetPath( pt_cfg->m_Group );
|
||||
else
|
||||
g_Prj_Config->SetPath( GroupName );
|
||||
|
||||
switch( pt_cfg->m_Type )
|
||||
{
|
||||
case PARAM_INT:
|
||||
{
|
||||
#undef PTCFG
|
||||
#define PTCFG ( (PARAM_CFG_INT*) pt_cfg )
|
||||
int itmp;
|
||||
if( pt_cfg->m_Setup )
|
||||
itmp = m_EDA_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default );
|
||||
else
|
||||
itmp = g_Prj_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default );
|
||||
|
||||
if( (itmp < PTCFG->m_Min) || (itmp > PTCFG->m_Max) )
|
||||
itmp = PTCFG->m_Default;
|
||||
|
||||
*PTCFG->m_Pt_param = itmp;
|
||||
break;
|
||||
}
|
||||
|
||||
case PARAM_SETCOLOR:
|
||||
{
|
||||
#undef PTCFG
|
||||
#define PTCFG ( (PARAM_CFG_SETCOLOR*) pt_cfg )
|
||||
int itmp;
|
||||
if( pt_cfg->m_Setup )
|
||||
itmp = m_EDA_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default );
|
||||
else
|
||||
itmp = g_Prj_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default );
|
||||
|
||||
if( (itmp < 0) || (itmp > MAX_COLOR) )
|
||||
itmp = PTCFG->m_Default;
|
||||
|
||||
*PTCFG->m_Pt_param = itmp;
|
||||
break;
|
||||
}
|
||||
|
||||
case PARAM_DOUBLE:
|
||||
{
|
||||
#undef PTCFG
|
||||
#define PTCFG ( (PARAM_CFG_DOUBLE*) pt_cfg )
|
||||
double ftmp = 0; wxString msg;
|
||||
if( pt_cfg->m_Setup )
|
||||
msg = m_EDA_Config->Read( pt_cfg->m_Ident, wxT( "" ) );
|
||||
else
|
||||
msg = g_Prj_Config->Read( pt_cfg->m_Ident, wxT( "" ) );
|
||||
|
||||
if( msg.IsEmpty() )
|
||||
ftmp = PTCFG->m_Default;
|
||||
else
|
||||
{
|
||||
msg.ToDouble( &ftmp );
|
||||
if( (ftmp < PTCFG->m_Min) || (ftmp > PTCFG->m_Max) )
|
||||
ftmp = PTCFG->m_Default;
|
||||
}
|
||||
*PTCFG->m_Pt_param = ftmp;
|
||||
break;
|
||||
}
|
||||
|
||||
case PARAM_BOOL:
|
||||
{
|
||||
#undef PTCFG
|
||||
#define PTCFG ( (PARAM_CFG_BOOL*) pt_cfg )
|
||||
int itmp;
|
||||
if( pt_cfg->m_Setup )
|
||||
itmp = m_EDA_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default );
|
||||
else
|
||||
itmp = g_Prj_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default );
|
||||
|
||||
*PTCFG->m_Pt_param = itmp ? TRUE : FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
case PARAM_WXSTRING:
|
||||
{
|
||||
#undef PTCFG
|
||||
#define PTCFG ( (PARAM_CFG_WXSTRING*) pt_cfg )
|
||||
if( PTCFG->m_Pt_param == NULL )
|
||||
break;
|
||||
|
||||
if( pt_cfg->m_Setup )
|
||||
*PTCFG->m_Pt_param = m_EDA_Config->Read( pt_cfg->m_Ident );
|
||||
else
|
||||
*PTCFG->m_Pt_param = g_Prj_Config->Read( pt_cfg->m_Ident );
|
||||
break;
|
||||
}
|
||||
|
||||
case PARAM_LIBNAME_LIST:
|
||||
{
|
||||
#undef PTCFG
|
||||
#define PTCFG ( (PARAM_CFG_LIBNAME_LIST*) pt_cfg )
|
||||
int indexlib = 1; // We start indexlib to 1 because first lib name is LibName1
|
||||
wxString libname, id_lib;
|
||||
wxArrayString* libname_list = PTCFG->m_Pt_param;
|
||||
while( 1 )
|
||||
{
|
||||
id_lib = pt_cfg->m_Ident; id_lib << indexlib; indexlib++;
|
||||
libname = g_Prj_Config->Read( id_lib, wxT( "" ) );
|
||||
if( libname.IsEmpty() )
|
||||
break;
|
||||
libname_list->Add( libname );
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case PARAM_COMMAND_ERASE:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
delete g_Prj_Config;
|
||||
g_Prj_Config = NULL;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
@ -355,114 +400,124 @@ wxString timestamp;
|
|||
/* Constructeurs des descripteurs de structs de configuration */
|
||||
/**************************************************************/
|
||||
|
||||
PARAM_CFG_BASE::PARAM_CFG_BASE(const wxChar * ident, const paramcfg_id type,
|
||||
const wxChar * group)
|
||||
PARAM_CFG_BASE::PARAM_CFG_BASE( const wxChar* ident, const paramcfg_id type,
|
||||
const wxChar* group )
|
||||
{
|
||||
m_Ident = ident;
|
||||
m_Type = type;
|
||||
m_Group = group;
|
||||
m_Setup = FALSE;
|
||||
m_Ident = ident;
|
||||
m_Type = type;
|
||||
m_Group = group;
|
||||
m_Setup = FALSE;
|
||||
}
|
||||
|
||||
|
||||
PARAM_CFG_INT::PARAM_CFG_INT(const wxChar * ident, int * ptparam,
|
||||
int default_val, int min, int max,
|
||||
const wxChar * group)
|
||||
: PARAM_CFG_BASE(ident, PARAM_INT, group)
|
||||
PARAM_CFG_INT::PARAM_CFG_INT( const wxChar* ident, int* ptparam,
|
||||
int default_val, int min, int max,
|
||||
const wxChar* group ) :
|
||||
PARAM_CFG_BASE( ident, PARAM_INT, group )
|
||||
{
|
||||
m_Pt_param = ptparam;
|
||||
m_Default = default_val;
|
||||
m_Min = min;
|
||||
m_Max = max;
|
||||
m_Pt_param = ptparam;
|
||||
m_Default = default_val;
|
||||
m_Min = min;
|
||||
m_Max = max;
|
||||
}
|
||||
|
||||
PARAM_CFG_INT::PARAM_CFG_INT(bool Insetup, const wxChar * ident, int * ptparam,
|
||||
int default_val, int min, int max,
|
||||
const wxChar * group)
|
||||
: PARAM_CFG_BASE(ident, PARAM_INT, group)
|
||||
|
||||
PARAM_CFG_INT::PARAM_CFG_INT( bool Insetup, const wxChar* ident, int* ptparam,
|
||||
int default_val, int min, int max,
|
||||
const wxChar* group ) :
|
||||
PARAM_CFG_BASE( ident, PARAM_INT, group )
|
||||
{
|
||||
m_Pt_param = ptparam;
|
||||
m_Default = default_val;
|
||||
m_Min = min;
|
||||
m_Max = max;
|
||||
m_Setup = Insetup;
|
||||
m_Pt_param = ptparam;
|
||||
m_Default = default_val;
|
||||
m_Min = min;
|
||||
m_Max = max;
|
||||
m_Setup = Insetup;
|
||||
}
|
||||
|
||||
PARAM_CFG_SETCOLOR::PARAM_CFG_SETCOLOR(const wxChar * ident, int * ptparam,
|
||||
int default_val, const wxChar * group)
|
||||
: PARAM_CFG_BASE(ident, PARAM_SETCOLOR, group)
|
||||
|
||||
PARAM_CFG_SETCOLOR::PARAM_CFG_SETCOLOR( const wxChar* ident, int* ptparam,
|
||||
int default_val, const wxChar* group ) :
|
||||
PARAM_CFG_BASE( ident, PARAM_SETCOLOR, group )
|
||||
{
|
||||
m_Pt_param = ptparam;
|
||||
m_Default = default_val;
|
||||
m_Pt_param = ptparam;
|
||||
m_Default = default_val;
|
||||
}
|
||||
|
||||
PARAM_CFG_SETCOLOR::PARAM_CFG_SETCOLOR(bool Insetup, const wxChar * ident, int * ptparam,
|
||||
int default_val, const wxChar * group)
|
||||
: PARAM_CFG_BASE(ident, PARAM_SETCOLOR, group)
|
||||
|
||||
PARAM_CFG_SETCOLOR::PARAM_CFG_SETCOLOR( bool Insetup, const wxChar* ident, int* ptparam,
|
||||
int default_val, const wxChar* group ) :
|
||||
PARAM_CFG_BASE( ident, PARAM_SETCOLOR, group )
|
||||
{
|
||||
m_Pt_param = ptparam;
|
||||
m_Default = default_val;
|
||||
m_Setup = Insetup;
|
||||
m_Pt_param = ptparam;
|
||||
m_Default = default_val;
|
||||
m_Setup = Insetup;
|
||||
}
|
||||
|
||||
PARAM_CFG_DOUBLE::PARAM_CFG_DOUBLE(const wxChar * ident, double * ptparam,
|
||||
double default_val, double min , double max,
|
||||
const wxChar * group)
|
||||
: PARAM_CFG_BASE(ident, PARAM_DOUBLE, group)
|
||||
|
||||
PARAM_CFG_DOUBLE::PARAM_CFG_DOUBLE( const wxChar* ident, double* ptparam,
|
||||
double default_val, double min, double max,
|
||||
const wxChar* group ) :
|
||||
PARAM_CFG_BASE( ident, PARAM_DOUBLE, group )
|
||||
{
|
||||
m_Pt_param = ptparam;
|
||||
m_Default = default_val;
|
||||
m_Min = min;
|
||||
m_Max = max;
|
||||
}
|
||||
PARAM_CFG_DOUBLE::PARAM_CFG_DOUBLE(bool Insetup, const wxChar * ident, double * ptparam,
|
||||
double default_val, double min , double max,
|
||||
const wxChar * group)
|
||||
: PARAM_CFG_BASE(ident, PARAM_DOUBLE, group)
|
||||
{
|
||||
m_Pt_param = ptparam;
|
||||
m_Default = default_val;
|
||||
m_Min = min;
|
||||
m_Max = max;
|
||||
m_Setup = Insetup;
|
||||
m_Pt_param = ptparam;
|
||||
m_Default = default_val;
|
||||
m_Min = min;
|
||||
m_Max = max;
|
||||
}
|
||||
|
||||
PARAM_CFG_BOOL::PARAM_CFG_BOOL(const wxChar * ident, bool * ptparam,
|
||||
int default_val, const wxChar * group)
|
||||
: PARAM_CFG_BASE(ident, PARAM_BOOL, group)
|
||||
|
||||
PARAM_CFG_DOUBLE::PARAM_CFG_DOUBLE( bool Insetup, const wxChar* ident, double* ptparam,
|
||||
double default_val, double min, double max,
|
||||
const wxChar* group ) :
|
||||
PARAM_CFG_BASE( ident, PARAM_DOUBLE, group )
|
||||
{
|
||||
m_Pt_param = ptparam;
|
||||
m_Default = default_val ? TRUE : FALSE;
|
||||
m_Pt_param = ptparam;
|
||||
m_Default = default_val;
|
||||
m_Min = min;
|
||||
m_Max = max;
|
||||
m_Setup = Insetup;
|
||||
}
|
||||
|
||||
PARAM_CFG_BOOL::PARAM_CFG_BOOL(bool Insetup, const wxChar * ident, bool * ptparam,
|
||||
int default_val, const wxChar * group)
|
||||
: PARAM_CFG_BASE(ident, PARAM_BOOL, group)
|
||||
|
||||
PARAM_CFG_BOOL::PARAM_CFG_BOOL( const wxChar* ident, bool* ptparam,
|
||||
int default_val, const wxChar* group ) :
|
||||
PARAM_CFG_BASE( ident, PARAM_BOOL, group )
|
||||
{
|
||||
m_Pt_param = ptparam;
|
||||
m_Default = default_val ? TRUE : FALSE;
|
||||
m_Setup = Insetup;
|
||||
m_Pt_param = ptparam;
|
||||
m_Default = default_val ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
PARAM_CFG_WXSTRING::PARAM_CFG_WXSTRING(const wxChar * ident,
|
||||
wxString * ptparam, const wxChar * group)
|
||||
: PARAM_CFG_BASE(ident, PARAM_WXSTRING, group)
|
||||
|
||||
PARAM_CFG_BOOL::PARAM_CFG_BOOL( bool Insetup, const wxChar* ident, bool* ptparam,
|
||||
int default_val, const wxChar* group ) :
|
||||
PARAM_CFG_BASE( ident, PARAM_BOOL, group )
|
||||
{
|
||||
m_Pt_param = ptparam;
|
||||
m_Pt_param = ptparam;
|
||||
m_Default = default_val ? TRUE : FALSE;
|
||||
m_Setup = Insetup;
|
||||
}
|
||||
|
||||
PARAM_CFG_WXSTRING::PARAM_CFG_WXSTRING(bool Insetup, const wxChar * ident,
|
||||
wxString * ptparam, const wxChar * group)
|
||||
: PARAM_CFG_BASE(ident, PARAM_WXSTRING, group)
|
||||
|
||||
PARAM_CFG_WXSTRING::PARAM_CFG_WXSTRING( const wxChar* ident,
|
||||
wxString* ptparam, const wxChar* group ) :
|
||||
PARAM_CFG_BASE( ident, PARAM_WXSTRING, group )
|
||||
{
|
||||
m_Pt_param = ptparam;
|
||||
m_Setup = Insetup;
|
||||
m_Pt_param = ptparam;
|
||||
}
|
||||
|
||||
PARAM_CFG_LIBNAME_LIST::PARAM_CFG_LIBNAME_LIST(const wxChar * ident,
|
||||
wxArrayString * ptparam, const wxChar * group)
|
||||
: PARAM_CFG_BASE(ident, PARAM_LIBNAME_LIST, group)
|
||||
|
||||
PARAM_CFG_WXSTRING::PARAM_CFG_WXSTRING( bool Insetup, const wxChar* ident,
|
||||
wxString* ptparam, const wxChar* group ) :
|
||||
PARAM_CFG_BASE( ident, PARAM_WXSTRING, group )
|
||||
{
|
||||
m_Pt_param = ptparam;
|
||||
m_Pt_param = ptparam;
|
||||
m_Setup = Insetup;
|
||||
}
|
||||
|
||||
|
||||
PARAM_CFG_LIBNAME_LIST::PARAM_CFG_LIBNAME_LIST( const wxChar* ident,
|
||||
wxArrayString* ptparam, const wxChar* group ) :
|
||||
PARAM_CFG_BASE( ident, PARAM_LIBNAME_LIST, group )
|
||||
{
|
||||
m_Pt_param = ptparam;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/***********************************/
|
||||
/** pcbcfg() : configuration **/
|
||||
/***********************************/
|
||||
/***********************************/
|
||||
/** pcbcfg() : configuration **/
|
||||
/***********************************/
|
||||
|
||||
/* lit ou met a jour la configuration de PCBNEW */
|
||||
|
||||
|
@ -21,193 +21,200 @@
|
|||
|
||||
/* Variables locales */
|
||||
|
||||
#define HOTKEY_FILENAME wxT("pcbnew")
|
||||
#define HOTKEY_FILENAME wxT( "pcbnew" )
|
||||
|
||||
/***********************************************************/
|
||||
void WinEDA_PcbFrame::Process_Config(wxCommandEvent& event)
|
||||
void WinEDA_PcbFrame::Process_Config( wxCommandEvent& event )
|
||||
/***********************************************************/
|
||||
{
|
||||
int id = event.GetId();
|
||||
wxPoint pos;
|
||||
wxClientDC dc(DrawPanel);
|
||||
wxString FullFileName;
|
||||
int id = event.GetId();
|
||||
wxPoint pos;
|
||||
|
||||
DrawPanel->PrepareGraphicContext(&dc);
|
||||
wxClientDC dc( DrawPanel );
|
||||
|
||||
pos = GetPosition();
|
||||
pos.x += 20; pos.y += 20;
|
||||
wxString FullFileName;
|
||||
|
||||
switch( id )
|
||||
{
|
||||
case ID_COLORS_SETUP :
|
||||
DisplayColorSetupFrame(this, pos);
|
||||
break;
|
||||
DrawPanel->PrepareGraphicContext( &dc );
|
||||
|
||||
case ID_CONFIG_REQ : // Creation de la fenetre de configuration
|
||||
InstallConfigFrame(pos);
|
||||
break;
|
||||
pos = GetPosition();
|
||||
pos.x += 20;
|
||||
pos.y += 20;
|
||||
|
||||
case ID_PCB_TRACK_SIZE_SETUP:
|
||||
case ID_PCB_LOOK_SETUP:
|
||||
case ID_OPTIONS_SETUP:
|
||||
case ID_PCB_DRAWINGS_WIDTHS_SETUP:
|
||||
InstallPcbOptionsFrame(pos, &dc, id);
|
||||
break;
|
||||
switch( id )
|
||||
{
|
||||
case ID_COLORS_SETUP:
|
||||
DisplayColorSetupFrame( this, pos );
|
||||
break;
|
||||
|
||||
case ID_PCB_PAD_SETUP:
|
||||
InstallPadOptionsFrame( NULL, NULL, pos);
|
||||
break;
|
||||
case ID_CONFIG_REQ: // Creation de la fenetre de configuration
|
||||
InstallConfigFrame( pos );
|
||||
break;
|
||||
|
||||
case ID_CONFIG_SAVE:
|
||||
Update_config(this);
|
||||
break;
|
||||
case ID_PCB_TRACK_SIZE_SETUP:
|
||||
case ID_PCB_LOOK_SETUP:
|
||||
case ID_OPTIONS_SETUP:
|
||||
case ID_PCB_DRAWINGS_WIDTHS_SETUP:
|
||||
InstallPcbOptionsFrame( pos, &dc, id );
|
||||
break;
|
||||
|
||||
case ID_CONFIG_READ:
|
||||
FullFileName = GetScreen()->m_FileName.AfterLast('/');
|
||||
ChangeFileNameExt(FullFileName, g_Prj_Config_Filename_ext);
|
||||
FullFileName = EDA_FileSelector(_("Read config file"),
|
||||
wxPathOnly(GetScreen()->m_FileName),/* Chemin par defaut */
|
||||
FullFileName, /* nom fichier par defaut */
|
||||
g_Prj_Config_Filename_ext, /* extension par defaut */
|
||||
FullFileName, /* Masque d'affichage */
|
||||
this,
|
||||
wxFD_OPEN,
|
||||
TRUE /* ne change pas de repertoire courant */
|
||||
);
|
||||
if ( FullFileName.IsEmpty()) break;
|
||||
if ( ! wxFileExists(FullFileName) )
|
||||
{
|
||||
wxString msg;
|
||||
msg.Printf(_("File %s not found"), FullFileName.GetData());
|
||||
DisplayError(this, msg); break;
|
||||
}
|
||||
Read_Config(FullFileName );
|
||||
break;
|
||||
case ID_PCB_PAD_SETUP:
|
||||
InstallPadOptionsFrame( NULL, NULL, pos );
|
||||
break;
|
||||
|
||||
case ID_PREFERENCES_CREATE_CONFIG_HOTKEYS:
|
||||
FullFileName = ReturnHotkeyConfigFilePath( g_ConfigFileLocationChoice );
|
||||
FullFileName += HOTKEY_FILENAME;
|
||||
FullFileName += DEFAULT_HOTKEY_FILENAME_EXT;
|
||||
WriteHotkeyConfigFile(FullFileName, s_Pcbnew_Editor_Hokeys_Descr, true);
|
||||
break;
|
||||
case ID_CONFIG_SAVE:
|
||||
Update_config( this );
|
||||
break;
|
||||
|
||||
case ID_PREFERENCES_READ_CONFIG_HOTKEYS:
|
||||
Read_Hotkey_Config( this, true);
|
||||
break;
|
||||
case ID_CONFIG_READ:
|
||||
FullFileName = GetScreen()->m_FileName.AfterLast( '/' );
|
||||
ChangeFileNameExt( FullFileName, g_Prj_Config_Filename_ext );
|
||||
FullFileName = EDA_FileSelector( _( "Read config file" ),
|
||||
wxPathOnly( GetScreen()->m_FileName ), /* Chemin par defaut */
|
||||
FullFileName, /* nom fichier par defaut */
|
||||
g_Prj_Config_Filename_ext, /* extension par defaut */
|
||||
FullFileName, /* Masque d'affichage */
|
||||
this,
|
||||
wxFD_OPEN,
|
||||
TRUE /* ne change pas de repertoire courant */
|
||||
);
|
||||
if( FullFileName.IsEmpty() )
|
||||
break;
|
||||
if( !wxFileExists( FullFileName ) )
|
||||
{
|
||||
wxString msg;
|
||||
msg.Printf( _( "File %s not found" ), FullFileName.GetData() );
|
||||
DisplayError( this, msg ); break;
|
||||
}
|
||||
Read_Config( FullFileName );
|
||||
break;
|
||||
|
||||
case ID_PREFERENCES_EDIT_CONFIG_HOTKEYS:
|
||||
{
|
||||
FullFileName = ReturnHotkeyConfigFilePath( g_ConfigFileLocationChoice );
|
||||
FullFileName += HOTKEY_FILENAME;
|
||||
FullFileName += DEFAULT_HOTKEY_FILENAME_EXT;
|
||||
wxString editorname = GetEditorName();
|
||||
if ( !editorname.IsEmpty() )
|
||||
ExecuteFile(this, editorname, FullFileName);
|
||||
break;
|
||||
}
|
||||
case ID_PREFERENCES_CREATE_CONFIG_HOTKEYS:
|
||||
FullFileName = ReturnHotkeyConfigFilePath( g_ConfigFileLocationChoice );
|
||||
FullFileName += HOTKEY_FILENAME;
|
||||
FullFileName += DEFAULT_HOTKEY_FILENAME_EXT;
|
||||
WriteHotkeyConfigFile( FullFileName, s_Pcbnew_Editor_Hokeys_Descr, true );
|
||||
break;
|
||||
|
||||
case ID_PREFERENCES_HOTKEY_PATH_IS_HOME:
|
||||
case ID_PREFERENCES_HOTKEY_PATH_IS_KICAD:
|
||||
HandleHotkeyConfigMenuSelection( this, id );
|
||||
break;
|
||||
case ID_PREFERENCES_READ_CONFIG_HOTKEYS:
|
||||
Read_Hotkey_Config( this, true );
|
||||
break;
|
||||
|
||||
case ID_PREFERENCES_HOTKEY_SHOW_CURRENT_LIST: // Display Current hotkey list for eeschema
|
||||
DisplayHotkeyList( this, s_Board_Editor_Hokeys_Descr );
|
||||
break;
|
||||
case ID_PREFERENCES_EDIT_CONFIG_HOTKEYS:
|
||||
{
|
||||
FullFileName = ReturnHotkeyConfigFilePath( g_ConfigFileLocationChoice );
|
||||
FullFileName += HOTKEY_FILENAME;
|
||||
FullFileName += DEFAULT_HOTKEY_FILENAME_EXT;
|
||||
wxString editorname = GetEditorName();
|
||||
if( !editorname.IsEmpty() )
|
||||
ExecuteFile( this, editorname, FullFileName );
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
DisplayError(this, wxT("WinEDA_PcbFrame::Process_Config internal error"));
|
||||
}
|
||||
case ID_PREFERENCES_HOTKEY_PATH_IS_HOME:
|
||||
case ID_PREFERENCES_HOTKEY_PATH_IS_KICAD:
|
||||
HandleHotkeyConfigMenuSelection( this, id );
|
||||
break;
|
||||
|
||||
case ID_PREFERENCES_HOTKEY_SHOW_CURRENT_LIST: // Display Current hotkey list for eeschema
|
||||
DisplayHotkeyList( this, s_Board_Editor_Hokeys_Descr );
|
||||
break;
|
||||
|
||||
default:
|
||||
DisplayError( this, wxT( "WinEDA_PcbFrame::Process_Config internal error" ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************/
|
||||
bool Read_Hotkey_Config( WinEDA_DrawFrame * frame, bool verbose )
|
||||
bool Read_Hotkey_Config( WinEDA_DrawFrame* frame, bool verbose )
|
||||
/***************************************************************/
|
||||
|
||||
/*
|
||||
* Read the hotkey files config for pcbnew and module_edit
|
||||
*/
|
||||
*/
|
||||
{
|
||||
wxString FullFileName = ReturnHotkeyConfigFilePath( g_ConfigFileLocationChoice );
|
||||
FullFileName += HOTKEY_FILENAME;
|
||||
FullFileName += DEFAULT_HOTKEY_FILENAME_EXT;
|
||||
return frame->ReadHotkeyConfigFile(FullFileName, s_Pcbnew_Editor_Hokeys_Descr, verbose);
|
||||
wxString FullFileName = ReturnHotkeyConfigFilePath( g_ConfigFileLocationChoice );
|
||||
|
||||
FullFileName += HOTKEY_FILENAME;
|
||||
FullFileName += DEFAULT_HOTKEY_FILENAME_EXT;
|
||||
return frame->ReadHotkeyConfigFile( FullFileName, s_Pcbnew_Editor_Hokeys_Descr, verbose );
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
bool Read_Config(const wxString & project_name)
|
||||
bool Read_Config( const wxString& project_name )
|
||||
/*************************************************************************/
|
||||
|
||||
/* lit la configuration, si elle n'a pas deja ete lue
|
||||
1 - lit <nom fichier brd>.pro
|
||||
2 - si non trouve lit <chemin de *.exe>/kicad.pro
|
||||
3 - si non trouve: init des variables aux valeurs par defaut
|
||||
|
||||
Retourne TRUE si lu, FALSE si config non lue ou non modifiée
|
||||
*/
|
||||
* 1 - lit <nom fichier brd>.pro
|
||||
* 2 - si non trouve lit <chemin de *.exe>/kicad.pro
|
||||
* 3 - si non trouve: init des variables aux valeurs par defaut
|
||||
*
|
||||
* Retourne TRUE si lu, FALSE si config non lue ou non modifiée
|
||||
*/
|
||||
{
|
||||
wxString FullFileName;
|
||||
int ii;
|
||||
wxString FullFileName;
|
||||
int ii;
|
||||
|
||||
g_Prj_Config_Filename_ext = wxT(".pro");
|
||||
FullFileName = project_name;
|
||||
ChangeFileNameExt(FullFileName, g_Prj_Config_Filename_ext);
|
||||
g_Prj_Config_Filename_ext = wxT( ".pro" );
|
||||
FullFileName = project_name;
|
||||
ChangeFileNameExt( FullFileName, g_Prj_Config_Filename_ext );
|
||||
|
||||
/* Init des valeurs par defaut */
|
||||
g_LibName_List.Clear();
|
||||
/* Init des valeurs par defaut */
|
||||
g_LibName_List.Clear();
|
||||
|
||||
g_EDA_Appl->ReadProjectConfig( FullFileName,
|
||||
GROUP, ParamCfgList, FALSE);
|
||||
g_EDA_Appl->ReadProjectConfig( FullFileName,
|
||||
GROUP, ParamCfgList, FALSE );
|
||||
|
||||
/* Traitement des variables particulieres: */
|
||||
/* Traitement des variables particulieres: */
|
||||
|
||||
SetRealLibraryPath( wxT("modules") );
|
||||
SetRealLibraryPath( wxT( "modules" ) );
|
||||
|
||||
if (ScreenPcb)
|
||||
{
|
||||
ScreenPcb->m_Diviseur_Grille = Pcbdiv_grille;
|
||||
ScreenPcb->m_UserGrid = g_UserGrid;
|
||||
ScreenPcb->m_UserGridUnit = g_UserGrid_Unit;
|
||||
}
|
||||
if( ScreenPcb )
|
||||
{
|
||||
ScreenPcb->m_Diviseur_Grille = Pcbdiv_grille;
|
||||
ScreenPcb->m_UserGrid = g_UserGrid;
|
||||
ScreenPcb->m_UserGridUnit = g_UserGrid_Unit;
|
||||
}
|
||||
|
||||
g_DesignSettings.m_TrackWidthHistory[0] = g_DesignSettings.m_CurrentTrackWidth;
|
||||
g_DesignSettings.m_ViaSizeHistory[0] = g_DesignSettings.m_CurrentViaSize;
|
||||
for ( ii = 1; ii < HISTORY_NUMBER; ii++)
|
||||
{
|
||||
g_DesignSettings.m_TrackWidthHistory[ii] = 0;
|
||||
g_DesignSettings.m_ViaSizeHistory[ii] = 0;
|
||||
}
|
||||
g_DesignSettings.m_TrackWidthHistory[0] = g_DesignSettings.m_CurrentTrackWidth;
|
||||
g_DesignSettings.m_ViaSizeHistory[0] = g_DesignSettings.m_CurrentViaSize;
|
||||
for( ii = 1; ii < HISTORY_NUMBER; ii++ )
|
||||
{
|
||||
g_DesignSettings.m_TrackWidthHistory[ii] = 0;
|
||||
g_DesignSettings.m_ViaSizeHistory[ii] = 0;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************/
|
||||
void WinEDA_PcbFrame::Update_config(wxWindow * displayframe)
|
||||
void WinEDA_PcbFrame::Update_config( wxWindow* displayframe )
|
||||
/***********************************************************/
|
||||
/* enregistrement de la config */
|
||||
{
|
||||
wxString FullFileName;
|
||||
wxString mask;
|
||||
wxString FullFileName;
|
||||
wxString mask;
|
||||
|
||||
mask = wxT("*") + g_Prj_Config_Filename_ext;
|
||||
FullFileName = GetScreen()->m_FileName.AfterLast('/');
|
||||
ChangeFileNameExt(FullFileName, g_Prj_Config_Filename_ext);
|
||||
mask = wxT( "*" ) + g_Prj_Config_Filename_ext;
|
||||
FullFileName = GetScreen()->m_FileName.AfterLast( '/' );
|
||||
ChangeFileNameExt( FullFileName, g_Prj_Config_Filename_ext );
|
||||
|
||||
FullFileName = EDA_FileSelector(_("Save preferences"),
|
||||
wxPathOnly(GetScreen()->m_FileName), /* Chemin par defaut */
|
||||
FullFileName, /* nom fichier par defaut */
|
||||
g_Prj_Config_Filename_ext, /* extension par defaut */
|
||||
mask, /* Masque d'affichage */
|
||||
displayframe,
|
||||
wxFD_SAVE,
|
||||
TRUE
|
||||
);
|
||||
if ( FullFileName.IsEmpty() ) return;
|
||||
FullFileName = EDA_FileSelector( _( "Save preferences" ),
|
||||
wxPathOnly( GetScreen()->m_FileName ), /* Chemin par defaut */
|
||||
FullFileName, /* nom fichier par defaut */
|
||||
g_Prj_Config_Filename_ext, /* extension par defaut */
|
||||
mask, /* Masque d'affichage */
|
||||
displayframe,
|
||||
wxFD_SAVE,
|
||||
TRUE
|
||||
);
|
||||
if( FullFileName.IsEmpty() )
|
||||
return;
|
||||
|
||||
Pcbdiv_grille = GetScreen()->m_Diviseur_Grille;
|
||||
Pcbdiv_grille = GetScreen()->m_Diviseur_Grille;
|
||||
|
||||
/* ecriture de la configuration */
|
||||
g_EDA_Appl->WriteProjectConfig(FullFileName, wxT("/pcbnew"), ParamCfgList);
|
||||
/* ecriture de la configuration */
|
||||
g_EDA_Appl->WriteProjectConfig( FullFileName, wxT( "/pcbnew" ), ParamCfgList );
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue