Pcbnew: fix Bug #1380943 (Filled polygons with thick outlines are missing last outline thick segment in gerber)

Remove a debug message in searchhelpfilefullpath.cpp.
This commit is contained in:
jean-pierre charras 2014-10-17 20:30:56 +02:00
parent f06bfe6d70
commit 9c64b061fe
2 changed files with 33 additions and 47 deletions

View File

@ -370,7 +370,7 @@ void GERBER_PLOTTER::Arc( const wxPoint& aCenter, double aStAngle, double aEndAn
fprintf( outputFile, "X%dY%dI%dJ%dD01*\n", fprintf( outputFile, "X%dY%dI%dJ%dD01*\n",
KiROUND( devEnd.x ), KiROUND( devEnd.y ), KiROUND( devEnd.x ), KiROUND( devEnd.y ),
KiROUND( devCenter.x ), KiROUND( devCenter.y ) ); KiROUND( devCenter.x ), KiROUND( devCenter.y ) );
fprintf( outputFile, "G74*\nG01*\n" ); // Back to single quadrant and linear interp. fprintf( outputFile, "G01*\n" ); // Back to linear interp.
} }
@ -410,6 +410,11 @@ void GERBER_PLOTTER:: PlotPoly( const std::vector< wxPoint >& aCornerList,
for( unsigned ii = 1; ii < aCornerList.size(); ii++ ) for( unsigned ii = 1; ii < aCornerList.size(); ii++ )
LineTo( aCornerList[ii] ); LineTo( aCornerList[ii] );
// Ensure the thick outline is closed for filled polygons
// (if not filled, could be only a polyline)
if( aFill && ( aCornerList[aCornerList.size()-1] != aCornerList[0] ) )
LineTo( aCornerList[0] );
PenFinish(); PenFinish();
} }
} }

View File

@ -27,7 +27,6 @@ wxString FindFileInSearchPaths( const SEARCH_STACK& aStack,
if( fn.DirExists() ) if( fn.DirExists() )
{ {
wxLogMessage(fn.GetFullPath()+aFilename);
paths.Add( fn.GetPath() ); paths.Add( fn.GetPath() );
} }
} }
@ -81,9 +80,14 @@ wxString SearchHelpFileFullPath( const SEARCH_STACK& aSStack, const wxString& aB
wxLocale* i18n = Pgm().GetLocale(); wxLocale* i18n = Pgm().GetLocale();
// Step 1 : Try to find help file in help/<canonical name> // We try to find help file in help/<canonical name>
subdirs.Add( i18n->GetCanonicalName() ); // If fails, try to find help file in help/<short canonical name>
altsubdirs.Add( i18n->GetCanonicalName() ); // If fails, try to find help file in help/en
wxArrayString locale_name_dirs;
locale_name_dirs.Add( i18n->GetCanonicalName() ); // canonical name like fr_FR
// wxLocale::GetName() does not return always the short name
locale_name_dirs.Add( i18n->GetName().BeforeLast( '_' ) ); // short canonical name like fr
locale_name_dirs.Add( wxT("en") ); // default (en)
#if defined(DEBUG) && 0 #if defined(DEBUG) && 0
ss.Show( __func__ ); ss.Show( __func__ );
@ -93,58 +97,35 @@ wxString SearchHelpFileFullPath( const SEARCH_STACK& aSStack, const wxString& aB
// Help files can be html (.html ext) or pdf (.pdf ext) files. // Help files can be html (.html ext) or pdf (.pdf ext) files.
// Therefore, <BaseName>.html file is searched and if not found, // Therefore, <BaseName>.html file is searched and if not found,
// <BaseName>.pdf file is searched in the same paths // <BaseName>.pdf file is searched in the same paths
wxString fn;
wxString fn = FindFileInSearchPaths( ss, aBaseName + wxT(".html"), &altsubdirs ); for( unsigned ii = 0; ii < locale_name_dirs.GetCount(); ii++ )
if( !fn )
fn = FindFileInSearchPaths( ss, aBaseName + wxT(".pdf"), &altsubdirs );
if( !fn )
fn = FindFileInSearchPaths( ss, aBaseName + wxT(".html"), &subdirs );
if( !fn )
fn = FindFileInSearchPaths( ss, aBaseName + wxT(".pdf"), &subdirs );
// Step 2 : if not found Try to find help file in help/<short name>
if( !fn )
{ {
subdirs.RemoveAt( subdirs.GetCount() - 1 ); subdirs.Add( locale_name_dirs[ii] );
altsubdirs.RemoveAt( altsubdirs.GetCount() - 1 ); altsubdirs.Add( locale_name_dirs[ii] );
// wxLocale::GetName() does not return always the short name
subdirs.Add( i18n->GetName().BeforeLast( '_' ) );
altsubdirs.Add( i18n->GetName().BeforeLast( '_' ) );
fn = FindFileInSearchPaths( ss, aBaseName + wxT(".html"), &altsubdirs ); fn = FindFileInSearchPaths( ss, aBaseName + wxT(".html"), &altsubdirs );
if( !fn ) if( !fn.IsEmpty() )
fn = FindFileInSearchPaths( ss, aBaseName + wxT(".pdf"), &altsubdirs ); break;
if( !fn ) fn = FindFileInSearchPaths( ss, aBaseName + wxT(".pdf"), &altsubdirs );
fn = FindFileInSearchPaths( ss, aBaseName + wxT(".html"), &subdirs );
if( !fn ) if( !fn.IsEmpty() )
fn = FindFileInSearchPaths( ss, aBaseName + wxT(".pdf"), &subdirs ); break;
}
fn = FindFileInSearchPaths( ss, aBaseName + wxT(".html"), &subdirs );
if( !fn.IsEmpty() )
break;
fn = FindFileInSearchPaths( ss, aBaseName + wxT(".pdf"), &subdirs );
if( !fn.IsEmpty() )
break;
// Step 3 : if not found Try to find help file in help/en
if( !fn )
{
subdirs.RemoveAt( subdirs.GetCount() - 1 ); subdirs.RemoveAt( subdirs.GetCount() - 1 );
altsubdirs.RemoveAt( altsubdirs.GetCount() - 1 ); altsubdirs.RemoveAt( altsubdirs.GetCount() - 1 );
subdirs.Add( wxT( "en" ) );
altsubdirs.Add( wxT( "en" ) );
fn = FindFileInSearchPaths( ss, aBaseName, &altsubdirs );
if( !fn )
fn = FindFileInSearchPaths( ss, aBaseName + wxT(".pdf"), &altsubdirs );
if( !fn )
fn = FindFileInSearchPaths( ss, aBaseName + wxT(".html"), &subdirs );
if( !fn )
fn = FindFileInSearchPaths( ss, aBaseName + wxT(".pdf"), &subdirs );
} }
return fn; return fn;