populate PCB_PARSER::m_layerMap with English layernames so footprints
can be parsed, since they do not have an overriding layer name map like a BOARD does. Avoid doubly looking up hashtable entries in m_layerMap. Minor code reformatting.
This commit is contained in:
parent
b4ab7ef7ea
commit
272936ef21
|
@ -65,8 +65,8 @@ static const wxChar* CommonConfigPath = wxT( "kicad_common" );
|
|||
* the size of the array. */
|
||||
#define LANGUAGE_DESCR_COUNT ( sizeof( s_Language_List ) / sizeof( struct LANGUAGE_DESCR ) )
|
||||
|
||||
/* Default font size */
|
||||
#define FONT_DEFAULT_SIZE 10 /* Default font size. */
|
||||
// Default font size
|
||||
#define FONT_DEFAULT_SIZE 10 // Default font size.
|
||||
|
||||
static wxString languageCfgKey( wxT( "LanguageID" ) );
|
||||
|
||||
|
@ -108,7 +108,7 @@ struct LANGUAGE_DESCR
|
|||
*/
|
||||
static struct LANGUAGE_DESCR s_Language_List[] =
|
||||
{
|
||||
/* Default language */
|
||||
// Default language
|
||||
{
|
||||
wxLANGUAGE_DEFAULT,
|
||||
ID_LANGUAGE_DEFAULT,
|
||||
|
@ -116,7 +116,7 @@ static struct LANGUAGE_DESCR s_Language_List[] =
|
|||
_( "Default" )
|
||||
},
|
||||
|
||||
/* English language */
|
||||
// English language
|
||||
{
|
||||
wxLANGUAGE_ENGLISH,
|
||||
ID_LANGUAGE_ENGLISH,
|
||||
|
@ -125,7 +125,7 @@ static struct LANGUAGE_DESCR s_Language_List[] =
|
|||
true
|
||||
},
|
||||
|
||||
/* French language */
|
||||
// French language
|
||||
{
|
||||
wxLANGUAGE_FRENCH,
|
||||
ID_LANGUAGE_FRENCH,
|
||||
|
@ -133,7 +133,7 @@ static struct LANGUAGE_DESCR s_Language_List[] =
|
|||
_( "French" )
|
||||
},
|
||||
|
||||
/* Finnish language */
|
||||
// Finnish language
|
||||
{
|
||||
wxLANGUAGE_FINNISH,
|
||||
ID_LANGUAGE_FINNISH,
|
||||
|
@ -141,7 +141,7 @@ static struct LANGUAGE_DESCR s_Language_List[] =
|
|||
_( "Finnish" )
|
||||
},
|
||||
|
||||
/* Spanish language */
|
||||
// Spanish language
|
||||
{
|
||||
wxLANGUAGE_SPANISH,
|
||||
ID_LANGUAGE_SPANISH,
|
||||
|
@ -149,7 +149,7 @@ static struct LANGUAGE_DESCR s_Language_List[] =
|
|||
_( "Spanish" )
|
||||
},
|
||||
|
||||
/* Portuguese language */
|
||||
// Portuguese language
|
||||
{
|
||||
wxLANGUAGE_PORTUGUESE,
|
||||
ID_LANGUAGE_PORTUGUESE,
|
||||
|
@ -157,7 +157,7 @@ static struct LANGUAGE_DESCR s_Language_List[] =
|
|||
_( "Portuguese" )
|
||||
},
|
||||
|
||||
/* Italian language */
|
||||
// Italian language
|
||||
{
|
||||
wxLANGUAGE_ITALIAN,
|
||||
ID_LANGUAGE_ITALIAN,
|
||||
|
@ -165,7 +165,7 @@ static struct LANGUAGE_DESCR s_Language_List[] =
|
|||
_( "Italian" )
|
||||
},
|
||||
|
||||
/* German language */
|
||||
// German language
|
||||
{
|
||||
wxLANGUAGE_GERMAN,
|
||||
ID_LANGUAGE_GERMAN,
|
||||
|
@ -173,7 +173,7 @@ static struct LANGUAGE_DESCR s_Language_List[] =
|
|||
_( "German" )
|
||||
},
|
||||
|
||||
/* Greek language */
|
||||
// Greek language
|
||||
{
|
||||
wxLANGUAGE_GREEK,
|
||||
ID_LANGUAGE_GREEK,
|
||||
|
@ -181,7 +181,7 @@ static struct LANGUAGE_DESCR s_Language_List[] =
|
|||
_( "Greek" )
|
||||
},
|
||||
|
||||
/* Slovenian language */
|
||||
// Slovenian language
|
||||
{
|
||||
wxLANGUAGE_SLOVENIAN,
|
||||
ID_LANGUAGE_SLOVENIAN,
|
||||
|
@ -189,7 +189,7 @@ static struct LANGUAGE_DESCR s_Language_List[] =
|
|||
_( "Slovenian" )
|
||||
},
|
||||
|
||||
/* Hungarian language */
|
||||
// Hungarian language
|
||||
{
|
||||
wxLANGUAGE_HUNGARIAN,
|
||||
ID_LANGUAGE_HUNGARIAN,
|
||||
|
@ -197,7 +197,7 @@ static struct LANGUAGE_DESCR s_Language_List[] =
|
|||
_( "Hungarian" )
|
||||
},
|
||||
|
||||
/* Polish language */
|
||||
// Polish language
|
||||
{
|
||||
wxLANGUAGE_POLISH,
|
||||
ID_LANGUAGE_POLISH,
|
||||
|
@ -205,7 +205,7 @@ static struct LANGUAGE_DESCR s_Language_List[] =
|
|||
_( "Polish" )
|
||||
},
|
||||
|
||||
/* Czech language */
|
||||
// Czech language
|
||||
{
|
||||
wxLANGUAGE_CZECH,
|
||||
ID_LANGUAGE_CZECH,
|
||||
|
@ -213,7 +213,7 @@ static struct LANGUAGE_DESCR s_Language_List[] =
|
|||
_( "Czech" )
|
||||
},
|
||||
|
||||
/* Russian language */
|
||||
// Russian language
|
||||
{
|
||||
wxLANGUAGE_RUSSIAN,
|
||||
ID_LANGUAGE_RUSSIAN,
|
||||
|
@ -221,7 +221,7 @@ static struct LANGUAGE_DESCR s_Language_List[] =
|
|||
_( "Russian" )
|
||||
},
|
||||
|
||||
/* Korean language */
|
||||
// Korean language
|
||||
{
|
||||
wxLANGUAGE_KOREAN,
|
||||
ID_LANGUAGE_KOREAN,
|
||||
|
@ -229,7 +229,7 @@ static struct LANGUAGE_DESCR s_Language_List[] =
|
|||
_( "Korean" )
|
||||
},
|
||||
|
||||
/* Chinese simplified */
|
||||
// Chinese simplified
|
||||
{
|
||||
wxLANGUAGE_CHINESE_SIMPLIFIED,
|
||||
ID_LANGUAGE_CHINESE_SIMPLIFIED,
|
||||
|
@ -237,7 +237,7 @@ static struct LANGUAGE_DESCR s_Language_List[] =
|
|||
_( "Chinese simplified" )
|
||||
},
|
||||
|
||||
/* Catalan language */
|
||||
// Catalan language
|
||||
{
|
||||
wxLANGUAGE_CATALAN,
|
||||
ID_LANGUAGE_CATALAN,
|
||||
|
@ -286,7 +286,7 @@ EDA_APP::~EDA_APP()
|
|||
{
|
||||
SaveSettings();
|
||||
|
||||
/* delete user datas */
|
||||
// delete user datas
|
||||
if( m_projectSettings )
|
||||
delete m_projectSettings;
|
||||
|
||||
|
@ -309,10 +309,9 @@ void EDA_APP::InitEDA_Appl( const wxString& aName, EDA_APP_T aId )
|
|||
m_Id = aId;
|
||||
m_Checker = new wxSingleInstanceChecker( aName.Lower() + wxT( "-" ) + wxGetUserId() );
|
||||
|
||||
/* Init KiCad environment
|
||||
* the environment variable KICAD (if exists) gives the kicad path:
|
||||
* something like set KICAD=d:\kicad
|
||||
*/
|
||||
// Init KiCad environment
|
||||
// the environment variable KICAD (if exists) gives the kicad path:
|
||||
// something like set KICAD=d:\kicad
|
||||
bool isDefined = wxGetEnv( wxT( "KICAD" ), &m_KicadEnv );
|
||||
|
||||
if( isDefined ) // ensure m_KicadEnv ends by "/"
|
||||
|
@ -323,8 +322,8 @@ void EDA_APP::InitEDA_Appl( const wxString& aName, EDA_APP_T aId )
|
|||
m_KicadEnv += UNIX_STRING_DIR_SEP;
|
||||
}
|
||||
|
||||
/* Prepare On Line Help. Use only lower case for help file names, in order to
|
||||
* avoid problems with upper/lower case file names under windows and unix */
|
||||
// Prepare On Line Help. Use only lower case for help file names, in order to
|
||||
// avoid problems with upper/lower case file names under windows and unix.
|
||||
#if defined ONLINE_HELP_FILES_FORMAT_IS_HTML
|
||||
m_HelpFileName = aName.Lower() + wxT( ".html" );
|
||||
#elif defined ONLINE_HELP_FILES_FORMAT_IS_PDF
|
||||
|
@ -333,7 +332,7 @@ void EDA_APP::InitEDA_Appl( const wxString& aName, EDA_APP_T aId )
|
|||
#error Help files format not defined
|
||||
#endif
|
||||
|
||||
/* Init parameters for configuration */
|
||||
// Init parameters for configuration
|
||||
SetVendorName( wxT( "KiCad" ) );
|
||||
SetAppName( aName.Lower() );
|
||||
SetTitle( aName );
|
||||
|
@ -342,7 +341,7 @@ void EDA_APP::InitEDA_Appl( const wxString& aName, EDA_APP_T aId )
|
|||
m_commonSettings = new wxConfig( CommonConfigPath );
|
||||
wxASSERT( m_commonSettings != NULL );
|
||||
|
||||
/* Install some image handlers, mainly for help */
|
||||
// Install some image handlers, mainly for help
|
||||
wxImage::AddHandler( new wxPNGHandler );
|
||||
wxImage::AddHandler( new wxGIFHandler );
|
||||
wxImage::AddHandler( new wxJPEGHandler );
|
||||
|
@ -375,7 +374,7 @@ void EDA_APP::InitEDA_Appl( const wxString& aName, EDA_APP_T aId )
|
|||
{
|
||||
}
|
||||
|
||||
/* Set locale option for separator used in float numbers */
|
||||
// Set locale option for separator used in float numbers
|
||||
SetLocaleTo_Default();
|
||||
}
|
||||
|
||||
|
@ -418,10 +417,10 @@ void EDA_APP::InitOnLineHelp()
|
|||
|
||||
bool EDA_APP::SetBinDir()
|
||||
{
|
||||
/* Apple MacOSx */
|
||||
// Apple MacOSx
|
||||
#ifdef __APPLE__
|
||||
|
||||
/* Derive path from location of the app bundle */
|
||||
// Derive path from location of the app bundle
|
||||
CFBundleRef mainBundle = CFBundleGetMainBundle();
|
||||
|
||||
if( mainBundle == NULL )
|
||||
|
@ -446,12 +445,12 @@ bool EDA_APP::SetBinDir()
|
|||
m_BinDir = FROM_UTF8( native_str );
|
||||
delete[] native_str;
|
||||
|
||||
/* Linux and Unix */
|
||||
// Linux and Unix
|
||||
#elif defined(__UNIX__)
|
||||
m_BinDir = wxStandardPaths().GetExecutablePath();
|
||||
#else
|
||||
m_BinDir = argv[0];
|
||||
#endif /* __UNIX__ */
|
||||
#endif // __UNIX__
|
||||
|
||||
/* Use unix notation for paths. I am not sure this is a good idea,
|
||||
* but it simplify compatibility between Windows and Unices
|
||||
|
@ -493,16 +492,16 @@ void EDA_APP::SetDefaultSearchPaths( void )
|
|||
if( ::wxGetEnv( wxT( "KICAD" ), NULL ) )
|
||||
m_searchPaths.AddEnvList( wxT( "KICAD" ) );
|
||||
|
||||
/* Add the user's home path. */
|
||||
// Add the user's home path.
|
||||
m_searchPaths.Add( GetTraits()->GetStandardPaths().GetUserDataDir() );
|
||||
|
||||
/* Standard application data path if it is different from the binary path. */
|
||||
// Standard application data path if it is different from the binary path.
|
||||
if( fn.GetPath() != GetTraits()->GetStandardPaths().GetDataDir() )
|
||||
{
|
||||
m_searchPaths.Add( GetTraits()->GetStandardPaths().GetDataDir() );
|
||||
}
|
||||
|
||||
/* Up one level relative to binary path with "share" appended for Windows. */
|
||||
// Up one level relative to binary path with "share" appended for Windows.
|
||||
fn.RemoveLastDir();
|
||||
m_searchPaths.Add( fn.GetPath() );
|
||||
fn.AppendDir( wxT( "share" ) );
|
||||
|
@ -511,10 +510,11 @@ void EDA_APP::SetDefaultSearchPaths( void )
|
|||
m_searchPaths.Add( fn.GetPath() );
|
||||
|
||||
/* The normal OS program file install paths allow for binary to be
|
||||
* installed in a different path from the library files. This is
|
||||
* useful for development purposes so the library and documentation
|
||||
* files do not need to be installed separately. If someone can
|
||||
* figure out a way to implement this without #ifdef, please do. */
|
||||
* installed in a different path from the library files. This is
|
||||
* useful for development purposes so the library and documentation
|
||||
* files do not need to be installed separately. If someone can
|
||||
* figure out a way to implement this without #ifdef, please do.
|
||||
*/
|
||||
#ifdef __WXMSW__
|
||||
tmp.AddEnvList( wxT( "PROGRAMFILES" ) );
|
||||
#elif __WXMAC__
|
||||
|
@ -545,7 +545,7 @@ void EDA_APP::SetDefaultSearchPaths( void )
|
|||
m_searchPaths.Add( fn.GetPath() );
|
||||
}
|
||||
|
||||
/* Remove all non-existent paths from the list. */
|
||||
// Remove all non-existent paths from the list.
|
||||
for( i = 0; i < m_searchPaths.GetCount(); i++ )
|
||||
{
|
||||
if( !wxFileName::IsDirReadable( m_searchPaths[i] ) )
|
||||
|
@ -570,7 +570,7 @@ void EDA_APP::SetDefaultSearchPaths( void )
|
|||
m_libSearchPaths.Add( fn.GetPath() );
|
||||
}
|
||||
|
||||
/* Add schematic doc file path (library/doc)to search path list. */
|
||||
// Add schematic doc file path (library/doc)to search path list.
|
||||
fn.AppendDir( wxT( "doc" ) );
|
||||
|
||||
if( fn.IsDirReadable() )
|
||||
|
@ -582,7 +582,7 @@ void EDA_APP::SetDefaultSearchPaths( void )
|
|||
fn.RemoveLastDir(); // point to <kicad path>
|
||||
}
|
||||
|
||||
/* Add PCB library file path to search path list. */
|
||||
// Add PCB library file path to search path list.
|
||||
if( ( m_Id == APP_PCBNEW_T ) || ( m_Id == APP_CVPCB_T ) )
|
||||
{
|
||||
fn.AppendDir( wxT( "modules" ) );
|
||||
|
@ -592,7 +592,7 @@ void EDA_APP::SetDefaultSearchPaths( void )
|
|||
m_libSearchPaths.Add( fn.GetPath() );
|
||||
}
|
||||
|
||||
/* Add 3D module library file path to search path list. */
|
||||
// Add 3D module library file path to search path list.
|
||||
fn.AppendDir( wxT( "packages3d" ) );
|
||||
|
||||
if( fn.IsDirReadable() )
|
||||
|
@ -604,7 +604,7 @@ void EDA_APP::SetDefaultSearchPaths( void )
|
|||
fn.RemoveLastDir(); // point to <kicad path>
|
||||
}
|
||||
|
||||
/* Add KiCad template file path to search path list. */
|
||||
// Add KiCad template file path to search path list.
|
||||
fn.AppendDir( wxT( "template" ) );
|
||||
|
||||
if( fn.IsDirReadable() )
|
||||
|
@ -656,6 +656,7 @@ void EDA_APP::GetSettings( bool aReopenLastUsedDirectory )
|
|||
}
|
||||
|
||||
int draw_bg_color;
|
||||
|
||||
// FIXME OSX Mountain Lion (10.8)
|
||||
// Seems that Read doesn't found anything and ColorFromInt Asserts - I'm unable to reproduce on 10.7
|
||||
// In general terms i think is better have a failsafe BLACK default than an uninit variable
|
||||
|
@ -688,7 +689,7 @@ void EDA_APP::SaveSettings()
|
|||
m_settings->Write( wxT( "WorkingDir" ), wxGetCwd() );
|
||||
m_settings->Write( wxT( "BgColor" ), (long) g_DrawBgColor );
|
||||
|
||||
/* Save the file history list */
|
||||
// Save the file history list
|
||||
m_fileHistory.Save( *m_settings );
|
||||
}
|
||||
|
||||
|
@ -771,7 +772,7 @@ bool EDA_APP::SetLanguage( bool first_time )
|
|||
|
||||
void EDA_APP::SetLanguageIdentifier( int menu_id )
|
||||
{
|
||||
wxLogDebug( wxT( "Select language ID %d from %d possible languages." ),
|
||||
wxLogDebug( wxT( "Select language ID %d from %zd possible languages." ),
|
||||
menu_id, LANGUAGE_DESCR_COUNT );
|
||||
|
||||
for( unsigned int ii = 0; ii < LANGUAGE_DESCR_COUNT; ii++ )
|
||||
|
@ -789,7 +790,7 @@ void EDA_APP::SetLanguagePath( void )
|
|||
{
|
||||
size_t i;
|
||||
|
||||
/* Add defined search paths to locale paths */
|
||||
// Add defined search paths to locale paths
|
||||
if( !m_searchPaths.IsEmpty() )
|
||||
{
|
||||
for( i = 0; i < m_searchPaths.GetCount(); i++ )
|
||||
|
|
|
@ -376,38 +376,38 @@ wxString BOARD::GetLayerName( int aLayerIndex, bool aTranslate ) const
|
|||
|
||||
|
||||
// Default layer names are statically initialized,
|
||||
// because we want the English name and the translation
|
||||
// because we want the English name and the translation.
|
||||
// The English name is stored here, and to get the translation
|
||||
// wxGetTranslation must be called explicitly
|
||||
static const wxChar * layer_FRONT_name = _( "Front" );
|
||||
static const wxChar * layer_INNER1_name = _( "Inner1" );
|
||||
static const wxChar * layer_INNER2_name = _( "Inner2" );
|
||||
static const wxChar * layer_INNER3_name = _( "Inner3" );
|
||||
static const wxChar * layer_INNER4_name = _( "Inner4" );
|
||||
static const wxChar * layer_INNER5_name = _( "Inner5" );
|
||||
static const wxChar * layer_INNER6_name = _( "Inner6" );
|
||||
static const wxChar * layer_INNER7_name = _( "Inner7" );
|
||||
static const wxChar * layer_INNER8_name = _( "Inner8" );
|
||||
static const wxChar * layer_INNER9_name = _( "Inner9" );
|
||||
static const wxChar * layer_INNER10_name = _( "Inner10" );
|
||||
static const wxChar * layer_INNER11_name = _( "Inner11" );
|
||||
static const wxChar * layer_INNER12_name = _( "Inner12" );
|
||||
static const wxChar * layer_INNER13_name = _( "Inner13" );
|
||||
static const wxChar * layer_INNER14_name = _( "Inner14" );
|
||||
static const wxChar * layer_BACK_name = _( "Back" );
|
||||
static const wxChar * layer_ADHESIVE_BACK_name = _( "Adhes_Back" );
|
||||
static const wxChar * layer_ADHESIVE_FRONT_name = _( "Adhes_Front" );
|
||||
static const wxChar * layer_SOLDERPASTE_BACK_namet = _( "SoldP_Back" );
|
||||
static const wxChar * layer_SOLDERPASTE_FRONT_name = _( "SoldP_Front" );
|
||||
static const wxChar * layer_SILKSCREEN_BACK_name = _( "SilkS_Back" );
|
||||
static const wxChar * layer_SILKSCREEN_FRONT_name = _( "SilkS_Front" );
|
||||
static const wxChar * layer_SOLDERMASK_BACK_name = _( "Mask_Back" );
|
||||
static const wxChar * layer_SOLDERMASK_FRONT_name = _( "Mask_Front" );
|
||||
static const wxChar * layer_DRAW_name = _( "Drawings" );
|
||||
static const wxChar * layer_COMMENT_name = _( "Comments" );
|
||||
static const wxChar * layer_ECO1_name = _( "Eco1" );
|
||||
static const wxChar * layer_ECO2_name = _( "Eco2" );
|
||||
static const wxChar * layer_EDGE_name = _( "PCB_Edges" );
|
||||
// wxGetTranslation must be called explicitly.
|
||||
static const wxChar* layer_FRONT_name = _( "Front" );
|
||||
static const wxChar* layer_INNER1_name = _( "Inner1" );
|
||||
static const wxChar* layer_INNER2_name = _( "Inner2" );
|
||||
static const wxChar* layer_INNER3_name = _( "Inner3" );
|
||||
static const wxChar* layer_INNER4_name = _( "Inner4" );
|
||||
static const wxChar* layer_INNER5_name = _( "Inner5" );
|
||||
static const wxChar* layer_INNER6_name = _( "Inner6" );
|
||||
static const wxChar* layer_INNER7_name = _( "Inner7" );
|
||||
static const wxChar* layer_INNER8_name = _( "Inner8" );
|
||||
static const wxChar* layer_INNER9_name = _( "Inner9" );
|
||||
static const wxChar* layer_INNER10_name = _( "Inner10" );
|
||||
static const wxChar* layer_INNER11_name = _( "Inner11" );
|
||||
static const wxChar* layer_INNER12_name = _( "Inner12" );
|
||||
static const wxChar* layer_INNER13_name = _( "Inner13" );
|
||||
static const wxChar* layer_INNER14_name = _( "Inner14" );
|
||||
static const wxChar* layer_BACK_name = _( "Back" );
|
||||
static const wxChar* layer_ADHESIVE_BACK_name = _( "Adhes_Back" );
|
||||
static const wxChar* layer_ADHESIVE_FRONT_name = _( "Adhes_Front" );
|
||||
static const wxChar* layer_SOLDERPASTE_BACK_name = _( "SoldP_Back" );
|
||||
static const wxChar* layer_SOLDERPASTE_FRONT_name = _( "SoldP_Front" );
|
||||
static const wxChar* layer_SILKSCREEN_BACK_name = _( "SilkS_Back" );
|
||||
static const wxChar* layer_SILKSCREEN_FRONT_name = _( "SilkS_Front" );
|
||||
static const wxChar* layer_SOLDERMASK_BACK_name = _( "Mask_Back" );
|
||||
static const wxChar* layer_SOLDERMASK_FRONT_name = _( "Mask_Front" );
|
||||
static const wxChar* layer_DRAW_name = _( "Drawings" );
|
||||
static const wxChar* layer_COMMENT_name = _( "Comments" );
|
||||
static const wxChar* layer_ECO1_name = _( "Eco1" );
|
||||
static const wxChar* layer_ECO2_name = _( "Eco2" );
|
||||
static const wxChar* layer_EDGE_name = _( "PCB_Edges" );
|
||||
|
||||
wxString BOARD::GetDefaultLayerName( int aLayerNumber, bool aTranslate )
|
||||
{
|
||||
|
@ -428,40 +428,42 @@ wxString BOARD::GetDefaultLayerName( int aLayerNumber, bool aTranslate )
|
|||
case LAYER_N_7: txt = layer_INNER6_name; break;
|
||||
case LAYER_N_8: txt = layer_INNER7_name; break;
|
||||
case LAYER_N_9: txt = layer_INNER8_name; break;
|
||||
case LAYER_N_10: txt = layer_INNER9_name; break;
|
||||
case LAYER_N_10: txt = layer_INNER9_name; break;
|
||||
case LAYER_N_11: txt = layer_INNER10_name; break;
|
||||
case LAYER_N_12: txt = layer_INNER11_name; break;
|
||||
case LAYER_N_13: txt = layer_INNER12_name; break;
|
||||
case LAYER_N_14: txt = layer_INNER13_name; break;
|
||||
case LAYER_N_15: txt = layer_INNER14_name; break;
|
||||
case LAYER_N_BACK: txt = layer_BACK_name; break;
|
||||
case ADHESIVE_N_BACK: txt =layer_ADHESIVE_BACK_name; break;
|
||||
case ADHESIVE_N_FRONT: txt = layer_ADHESIVE_FRONT_name; break;
|
||||
case SOLDERPASTE_N_BACK: txt = layer_SOLDERPASTE_BACK_namet; break;
|
||||
case SOLDERPASTE_N_FRONT: txt = layer_SOLDERPASTE_FRONT_name; break;
|
||||
case SILKSCREEN_N_BACK: txt = layer_SILKSCREEN_BACK_name; break;
|
||||
case SILKSCREEN_N_FRONT: txt = layer_SILKSCREEN_FRONT_name; break;
|
||||
case SOLDERMASK_N_BACK: txt = layer_SOLDERMASK_BACK_name; break;
|
||||
case SOLDERMASK_N_FRONT: txt = layer_SOLDERMASK_FRONT_name; break;
|
||||
case DRAW_N: txt = layer_DRAW_name; break;
|
||||
case COMMENT_N: txt = layer_COMMENT_name; break;
|
||||
case ADHESIVE_N_BACK: txt = layer_ADHESIVE_BACK_name; break;
|
||||
case ADHESIVE_N_FRONT: txt = layer_ADHESIVE_FRONT_name; break;
|
||||
case SOLDERPASTE_N_BACK: txt = layer_SOLDERPASTE_BACK_name; break;
|
||||
case SOLDERPASTE_N_FRONT: txt = layer_SOLDERPASTE_FRONT_name; break;
|
||||
case SILKSCREEN_N_BACK: txt = layer_SILKSCREEN_BACK_name; break;
|
||||
case SILKSCREEN_N_FRONT: txt = layer_SILKSCREEN_FRONT_name; break;
|
||||
case SOLDERMASK_N_BACK: txt = layer_SOLDERMASK_BACK_name; break;
|
||||
case SOLDERMASK_N_FRONT: txt = layer_SOLDERMASK_FRONT_name; break;
|
||||
case DRAW_N: txt = layer_DRAW_name; break;
|
||||
case COMMENT_N: txt = layer_COMMENT_name; break;
|
||||
case ECO1_N: txt = layer_ECO1_name; break;
|
||||
case ECO2_N: txt = layer_ECO2_name; break;
|
||||
case EDGE_N: txt = layer_EDGE_name; break;
|
||||
default: txt = wxT( "BAD_INDEX" ); break;
|
||||
case EDGE_N: txt = layer_EDGE_name; break;
|
||||
default: txt = wxT( "BAD_INDEX" ); break;
|
||||
}
|
||||
|
||||
wxString name;
|
||||
if( aTranslate )
|
||||
{
|
||||
name = wxGetTranslation( txt );
|
||||
wxString name = wxGetTranslation( txt );
|
||||
|
||||
/* would someone translate into a name with leading or trailing spaces?
|
||||
name.Trim( true );
|
||||
name.Trim( false );
|
||||
*/
|
||||
|
||||
return name;
|
||||
}
|
||||
else
|
||||
name = txt;
|
||||
|
||||
return name;
|
||||
return txt;
|
||||
}
|
||||
|
||||
|
||||
|
@ -573,55 +575,6 @@ LAYER_T LAYER::ParseType( const char* aType )
|
|||
}
|
||||
|
||||
|
||||
int LAYER::GetDefaultIndex( const wxString& aName )
|
||||
{
|
||||
static LAYER_INDEX_HASH_MAP layerIndices;
|
||||
|
||||
if( layerIndices.empty() )
|
||||
{
|
||||
// These are only default layer names. The copper names may be over-ridden in
|
||||
// the BOARD (*.brd) file.
|
||||
|
||||
layerIndices[ _( "Front" ) ] = LAYER_N_FRONT;
|
||||
layerIndices[ _( "Inner2" ) ] = LAYER_N_2;
|
||||
layerIndices[ _( "Inner3" ) ] = LAYER_N_3;
|
||||
layerIndices[ _( "Inner4" ) ] = LAYER_N_4;
|
||||
layerIndices[ _( "Inner5" ) ] = LAYER_N_5;
|
||||
layerIndices[ _( "Inner6" ) ] = LAYER_N_6;
|
||||
layerIndices[ _( "Inner7" ) ] = LAYER_N_7;
|
||||
layerIndices[ _( "Inner8" ) ] = LAYER_N_8;
|
||||
layerIndices[ _( "Inner9" ) ] = LAYER_N_9;
|
||||
layerIndices[ _( "Inner10" ) ] = LAYER_N_10;
|
||||
layerIndices[ _( "Inner11" ) ] = LAYER_N_11;
|
||||
layerIndices[ _( "Inner12" ) ] = LAYER_N_12;
|
||||
layerIndices[ _( "Inner13" ) ] = LAYER_N_13;
|
||||
layerIndices[ _( "Inner14" ) ] = LAYER_N_14;
|
||||
layerIndices[ _( "Inner15" ) ] = LAYER_N_15;
|
||||
layerIndices[ _( "Back" ) ] = LAYER_N_BACK;
|
||||
layerIndices[ _( "Adhes_Back" ) ] = ADHESIVE_N_BACK;
|
||||
layerIndices[ _( "Adhes_Front" ) ] = ADHESIVE_N_FRONT;
|
||||
layerIndices[ _( "SoldP_Back" ) ] = SOLDERPASTE_N_BACK;
|
||||
layerIndices[ _( "SoldP_Front" ) ] = SOLDERPASTE_N_FRONT;
|
||||
layerIndices[ _( "SilkS_Back" ) ] = SILKSCREEN_N_BACK;
|
||||
layerIndices[ _( "SilkS_Front" ) ] = SILKSCREEN_N_FRONT;
|
||||
layerIndices[ _( "Mask_Back" ) ] = SOLDERMASK_N_BACK;
|
||||
layerIndices[ _( "Mask_Front" ) ] = SOLDERMASK_N_FRONT;
|
||||
layerIndices[ _( "Drawings" ) ] = DRAW_N;
|
||||
layerIndices[ _( "Comments" ) ] = COMMENT_N;
|
||||
layerIndices[ _( "Eco1" ) ] = ECO1_N;
|
||||
layerIndices[ _( "Eco2" ) ] = ECO2_N;
|
||||
layerIndices[ _( "PCB_Edges" ) ] = EDGE_N;
|
||||
}
|
||||
|
||||
const LAYER_INDEX_HASH_MAP::iterator it = layerIndices.find( aName );
|
||||
|
||||
if( it == layerIndices.end() )
|
||||
return UNDEFINED_LAYER;
|
||||
|
||||
return layerIndices[ aName ];
|
||||
}
|
||||
|
||||
|
||||
int BOARD::GetCopperLayerCount() const
|
||||
{
|
||||
return m_designSettings.GetCopperLayerCount();
|
||||
|
|
|
@ -19,8 +19,6 @@
|
|||
#include <class_zone_settings.h>
|
||||
#include <pcb_plot_params.h>
|
||||
|
||||
#include <wx/hashmap.h>
|
||||
|
||||
|
||||
class PCB_BASE_FRAME;
|
||||
class PCB_EDIT_FRAME;
|
||||
|
@ -34,10 +32,9 @@ class MARKER_PCB;
|
|||
|
||||
|
||||
// non-owning container of item candidates when searching for items on the same track.
|
||||
typedef std::vector< TRACK* > TRACK_PTRS;
|
||||
typedef std::vector< TRACK* > TRACK_PTRS;
|
||||
|
||||
|
||||
#define HISTORY_MAX_COUNT 8
|
||||
#define HISTORY_MAX_COUNT 8
|
||||
|
||||
|
||||
/**
|
||||
|
@ -101,24 +98,12 @@ public:
|
|||
*/
|
||||
static LAYER_T ParseType( const char* aType );
|
||||
|
||||
/**
|
||||
* Function GetDefaultIndex
|
||||
* returns the layer index of the layer \a aName.
|
||||
*
|
||||
* @param aName A reference to a wxString object containing the default layer name.
|
||||
* @return The index of the layer \a aName if found otherwise #UNDEFINED_LAYER_INDEX.
|
||||
*/
|
||||
static int GetDefaultIndex( const wxString& aName );
|
||||
|
||||
private:
|
||||
bool m_visible;
|
||||
int m_fixedListIndex;
|
||||
bool m_visible;
|
||||
int m_fixedListIndex;
|
||||
};
|
||||
|
||||
|
||||
WX_DECLARE_STRING_HASH_MAP( int, LAYER_INDEX_HASH_MAP );
|
||||
|
||||
|
||||
/**
|
||||
* Struct VIA_DIMENSION
|
||||
* is a small helper container to handle a stock of specific vias each with
|
||||
|
|
|
@ -56,7 +56,14 @@ void PCB_PARSER::init()
|
|||
{
|
||||
m_layerMap.clear();
|
||||
|
||||
// @todo add default layernames here.
|
||||
// Add untranslated default (i.e. english) layernames.
|
||||
// Some may be overridden later if parsing a board rather than a footprint.
|
||||
// The english name will survive if parsing only a footprint.
|
||||
for( int layerNdx = 0; layerNdx < NB_LAYERS; ++layerNdx )
|
||||
{
|
||||
wxString untranslated = BOARD::GetDefaultLayerName( layerNdx, false );
|
||||
m_layerMap[ untranslated ] = layerNdx;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -594,38 +601,38 @@ void PCB_PARSER::parseTITLE_BLOCK() throw( IO_ERROR, PARSE_ERROR )
|
|||
break;
|
||||
|
||||
case T_comment:
|
||||
{
|
||||
int commentNumber = parseInt( "comment" );
|
||||
|
||||
switch( commentNumber )
|
||||
{
|
||||
case 1:
|
||||
NextTok();
|
||||
titleBlock.SetComment1( FromUTF8() );
|
||||
int commentNumber = parseInt( "comment" );
|
||||
|
||||
switch( commentNumber )
|
||||
{
|
||||
case 1:
|
||||
NextTok();
|
||||
titleBlock.SetComment1( FromUTF8() );
|
||||
break;
|
||||
|
||||
case 2:
|
||||
NextTok();
|
||||
titleBlock.SetComment2( FromUTF8() );
|
||||
break;
|
||||
|
||||
case 3:
|
||||
NextTok();
|
||||
titleBlock.SetComment3( FromUTF8() );
|
||||
break;
|
||||
|
||||
case 4:
|
||||
NextTok();
|
||||
titleBlock.SetComment4( FromUTF8() );
|
||||
break;
|
||||
|
||||
default:
|
||||
wxString err;
|
||||
err.Printf( wxT( "%d is not a valid title block comment number" ), commentNumber );
|
||||
THROW_PARSE_ERROR( err, CurSource(), CurLine(), CurLineNumber(), CurOffset() );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 2:
|
||||
NextTok();
|
||||
titleBlock.SetComment2( FromUTF8() );
|
||||
break;
|
||||
|
||||
case 3:
|
||||
NextTok();
|
||||
titleBlock.SetComment3( FromUTF8() );
|
||||
break;
|
||||
|
||||
case 4:
|
||||
NextTok();
|
||||
titleBlock.SetComment4( FromUTF8() );
|
||||
break;
|
||||
|
||||
default:
|
||||
wxString err;
|
||||
err.Printf( wxT( "%d is not a valid title block comment number" ), commentNumber );
|
||||
THROW_PARSE_ERROR( err, CurSource(), CurLine(), CurLineNumber(), CurOffset() );
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
|
@ -644,14 +651,14 @@ void PCB_PARSER::parseLayers() throw( IO_ERROR, PARSE_ERROR )
|
|||
wxCHECK_RET( CurTok() == T_layers,
|
||||
wxT( "Cannot parse " ) + GetTokenString( CurTok() ) + wxT( " as layers." ) );
|
||||
|
||||
T token;
|
||||
wxString name;
|
||||
wxString type;
|
||||
int layerIndex;
|
||||
bool isVisible = true;
|
||||
int visibleLayers = 0;
|
||||
int enabledLayers = 0;
|
||||
int copperLayerCount = 0;
|
||||
T token;
|
||||
wxString name;
|
||||
std::string type;
|
||||
int layerIndex;
|
||||
bool isVisible = true;
|
||||
int visibleLayers = 0;
|
||||
int enabledLayers = 0;
|
||||
int copperLayerCount = 0;
|
||||
|
||||
for( token = NextTok(); token != T_RIGHT; token = NextTok() )
|
||||
{
|
||||
|
@ -662,8 +669,9 @@ void PCB_PARSER::parseLayers() throw( IO_ERROR, PARSE_ERROR )
|
|||
|
||||
NeedSYMBOL();
|
||||
name = FromUTF8();
|
||||
|
||||
NeedSYMBOL();
|
||||
type = FromUTF8();
|
||||
type = CurText();
|
||||
|
||||
token = NextTok();
|
||||
|
||||
|
@ -686,7 +694,7 @@ void PCB_PARSER::parseLayers() throw( IO_ERROR, PARSE_ERROR )
|
|||
if( isVisible )
|
||||
visibleLayers |= 1 << layerIndex;
|
||||
|
||||
enum LAYER_T layerType = LAYER::ParseType( TO_UTF8( type ) );
|
||||
enum LAYER_T layerType = LAYER::ParseType( type.c_str() );
|
||||
LAYER layer( name, layerType, isVisible );
|
||||
|
||||
layer.SetFixedListIndex( layerIndex );
|
||||
|
@ -694,7 +702,7 @@ void PCB_PARSER::parseLayers() throw( IO_ERROR, PARSE_ERROR )
|
|||
|
||||
m_layerMap[ name ] = layerIndex;
|
||||
|
||||
wxLogDebug( wxT( "Mapping layer %s index index %d" ),
|
||||
wxLogDebug( wxT( "Mapping layer %s to index %d" ),
|
||||
GetChars( name ), layerIndex );
|
||||
|
||||
if( layerType != LT_UNDEFINED )
|
||||
|
@ -704,8 +712,9 @@ void PCB_PARSER::parseLayers() throw( IO_ERROR, PARSE_ERROR )
|
|||
// We need at least 2 copper layers and there must be an even number of them.
|
||||
if( (copperLayerCount < 2) || ((copperLayerCount % 2) != 0) )
|
||||
{
|
||||
wxString err;
|
||||
err.Printf( _( "%d is not a valid layer count" ), copperLayerCount );
|
||||
wxString err = wxString::Format(
|
||||
_( "%d is not a valid layer count" ), copperLayerCount );
|
||||
|
||||
THROW_PARSE_ERROR( err, CurSource(), CurLine(), CurLineNumber(), CurOffset() );
|
||||
}
|
||||
|
||||
|
@ -722,13 +731,14 @@ int PCB_PARSER::lookUpLayer() throw( PARSE_ERROR, IO_ERROR )
|
|||
|
||||
if( it == m_layerMap.end() )
|
||||
{
|
||||
wxString error;
|
||||
error.Printf( wxT( "Layer '%s' in file <%s> at line %d, position %d was not defined in the layers section" ),
|
||||
GetChars( name ), GetChars( CurSource() ), CurLineNumber(), CurOffset() );
|
||||
wxString error = wxString::Format(
|
||||
_( "Layer '%s' in file <%s> at line %d, position %d, was not defined in the layers section" ),
|
||||
GetChars( name ), GetChars( CurSource() ), CurLineNumber(), CurOffset() );
|
||||
|
||||
THROW_IO_ERROR( error );
|
||||
}
|
||||
|
||||
return m_layerMap[ name ];
|
||||
return it->second;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ WX_DECLARE_STRING_HASH_MAP( int, LAYER_HASH_MAP );
|
|||
class PCB_PARSER : public PCB_LEXER
|
||||
{
|
||||
BOARD* m_board;
|
||||
LAYER_HASH_MAP m_layerMap; //< Map layer name to it's index saved in BOARD::m_Layer.
|
||||
LAYER_HASH_MAP m_layerMap; ///< Map layer name to it's index saved in BOARD::m_Layer.
|
||||
|
||||
|
||||
/**
|
||||
|
@ -220,6 +220,7 @@ public:
|
|||
PCB_LEXER( aReader ),
|
||||
m_board( 0 )
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue