minor bugs fix.

This commit is contained in:
charras 2009-11-21 20:44:19 +00:00
parent 34d5dff91d
commit cdf248b236
11 changed files with 114 additions and 143 deletions

View File

@ -14,8 +14,7 @@
static void LoadDCodeFile( WinEDA_GerberFrame* frame, static void LoadDCodeFile( WinEDA_GerberFrame* frame,
const wxString& FullFileName, const wxString& FullFileName );
wxDC* DC );
void WinEDA_GerberFrame::OnFileHistory( wxCommandEvent& event ) void WinEDA_GerberFrame::OnFileHistory( wxCommandEvent& event )
@ -26,11 +25,7 @@ void WinEDA_GerberFrame::OnFileHistory( wxCommandEvent& event )
if( fn != wxEmptyString && Clear_Pcb( true ) ) if( fn != wxEmptyString && Clear_Pcb( true ) )
{ {
wxClientDC dc( DrawPanel ); LoadOneGerberFile( fn, false );
DrawPanel->CursorOff( &dc );
LoadOneGerberFile( fn, &dc, false );
DrawPanel->MouseToCursorSchema();
DrawPanel->CursorOn( &dc );
} }
} }
@ -40,16 +35,12 @@ void WinEDA_GerberFrame::Files_io( wxCommandEvent& event )
{ {
int id = event.GetId(); int id = event.GetId();
wxClientDC dc( DrawPanel );
DrawPanel->CursorOff( &dc );
switch( id ) switch( id )
{ {
case ID_LOAD_FILE: case ID_LOAD_FILE:
if( Clear_Pcb( TRUE ) ) if( Clear_Pcb( TRUE ) )
{ {
LoadOneGerberFile( wxEmptyString, &dc, 0 ); LoadOneGerberFile( wxEmptyString, 0 );
} }
break; break;
@ -60,7 +51,7 @@ void WinEDA_GerberFrame::Files_io( wxCommandEvent& event )
GetScreen()->m_Active_Layer++; GetScreen()->m_Active_Layer++;
if( !LoadOneGerberFile( wxEmptyString, &dc, 0 ) ) if( !LoadOneGerberFile( wxEmptyString, 0 ) )
GetScreen()->m_Active_Layer = origLayer; GetScreen()->m_Active_Layer = origLayer;
SetToolbars(); SetToolbars();
@ -68,7 +59,7 @@ void WinEDA_GerberFrame::Files_io( wxCommandEvent& event )
break; break;
case ID_APPEND_FILE: case ID_APPEND_FILE:
LoadOneGerberFile( wxEmptyString, &dc, 0 ); LoadOneGerberFile( wxEmptyString, 0 );
break; break;
case ID_NEW_BOARD: case ID_NEW_BOARD:
@ -82,24 +73,21 @@ void WinEDA_GerberFrame::Files_io( wxCommandEvent& event )
break; break;
case ID_GERBVIEW_LOAD_DCODE_FILE: case ID_GERBVIEW_LOAD_DCODE_FILE:
LoadDCodeFile( this, wxEmptyString, &dc ); LoadDCodeFile( this, wxEmptyString );
break; break;
case ID_SAVE_BOARD: case ID_SAVE_BOARD:
SaveGerberFile( GetScreen()->m_FileName, &dc ); SaveGerberFile( GetScreen()->m_FileName );
break; break;
case ID_SAVE_BOARD_AS: case ID_SAVE_BOARD_AS:
SaveGerberFile( wxEmptyString, &dc ); SaveGerberFile( wxEmptyString );
break; break;
default: default:
DisplayError( this, wxT( "File_io Internal Error" ) ); DisplayError( this, wxT( "File_io Internal Error" ) );
break; break;
} }
DrawPanel->MouseToCursorSchema();
DrawPanel->CursorOn( &dc );
} }
@ -111,7 +99,6 @@ void WinEDA_GerberFrame::Files_io( wxCommandEvent& event )
* 1 if OK * 1 if OK
*/ */
bool WinEDA_GerberFrame::LoadOneGerberFile( const wxString& FullFileName, bool WinEDA_GerberFrame::LoadOneGerberFile( const wxString& FullFileName,
wxDC* DC,
int mode ) int mode )
{ {
wxString filetypes; wxString filetypes;
@ -165,7 +152,7 @@ bool WinEDA_GerberFrame::LoadOneGerberFile( const wxString& FullFileName,
wxSetWorkingDirectory( filename.GetPath() ); wxSetWorkingDirectory( filename.GetPath() );
filename.SetExt( g_PenFilenameExt ); filename.SetExt( g_PenFilenameExt );
if( Read_GERBER_File( DC, GetScreen()->m_FileName, filename.GetFullPath() ) ) if( Read_GERBER_File( GetScreen()->m_FileName, filename.GetFullPath() ) )
SetLastProject( GetScreen()->m_FileName ); SetLastProject( GetScreen()->m_FileName );
Zoom_Automatique( FALSE ); Zoom_Automatique( FALSE );
@ -184,8 +171,7 @@ bool WinEDA_GerberFrame::LoadOneGerberFile( const wxString& FullFileName,
* 1 if OK * 1 if OK
*/ */
static void LoadDCodeFile( WinEDA_GerberFrame* frame, static void LoadDCodeFile( WinEDA_GerberFrame* frame,
const wxString& FullFileName, const wxString& FullFileName )
wxDC* DC )
{ {
wxString wildcard; wxString wildcard;
wxFileName fn = FullFileName; wxFileName fn = FullFileName;
@ -218,8 +204,7 @@ static void LoadDCodeFile( WinEDA_GerberFrame* frame,
/* Save the file in ASCII PCB. /* Save the file in ASCII PCB.
*/ */
bool WinEDA_GerberFrame::SaveGerberFile( const wxString& FullFileName, bool WinEDA_GerberFrame::SaveGerberFile( const wxString& FullFileName )
wxDC* DC )
{ {
wxString wildcard; wxString wildcard;
wxFileName fn = FullFileName; wxFileName fn = FullFileName;

View File

@ -95,26 +95,21 @@ bool WinEDA_App::OnInit()
return true; return true;
fn = argv[1]; fn = argv[1];
fn.SetExt( g_PhotoFilenameExt );
if( fn.IsOk() ) if( fn.IsOk() )
{ {
wxClientDC dc( frame->DrawPanel );
frame->DrawPanel->PrepareGraphicContext( &dc );
if( fn.DirExists() ) if( fn.DirExists() )
wxSetWorkingDirectory( fn.GetPath() ); wxSetWorkingDirectory( fn.GetPath() );
// Load all files specified on the command line. // Load all files specified on the command line.
for( int i = 1; i < argc; ++i ) for( int ii = 1; ii < argc && ii <= LAYER_COUNT; ++ii )
{ {
fn = wxFileName( argv[i] ); fn = wxFileName( argv[ii] );
fn.SetExt( g_PhotoFilenameExt );
if( fn.FileExists() ) if( fn.FileExists() )
{ {
( (PCB_SCREEN*) frame->GetScreen() )->m_Active_Layer = i - 1; ( (PCB_SCREEN*) frame->GetScreen() )->m_Active_Layer = ii - 1;
frame->LoadOneGerberFile( fn.GetFullPath(), &dc, FALSE ); frame->LoadOneGerberFile( fn.GetFullPath(), FALSE );
} }
} }
} }

View File

@ -380,7 +380,7 @@ public:
int ReturnGCodeNumber( char*& Text ); int ReturnGCodeNumber( char*& Text );
int ReturnDCodeNumber( char*& Text ); int ReturnDCodeNumber( char*& Text );
bool Execute_G_Command( char*& text, int G_commande ); bool Execute_G_Command( char*& text, int G_commande );
bool Execute_DCODE_Command( WinEDA_GerberFrame* frame, wxDC* DC, bool Execute_DCODE_Command( WinEDA_GerberFrame* frame,
char*& text, int D_commande ); char*& text, int D_commande );
/** /**
@ -393,7 +393,7 @@ public:
* Function ReadRS274XCommand * Function ReadRS274XCommand
* reads a single RS274X command terminated with a % * reads a single RS274X command terminated with a %
*/ */
bool ReadRS274XCommand( WinEDA_GerberFrame* frame, wxDC* DC, bool ReadRS274XCommand( WinEDA_GerberFrame* frame,
char aBuff[GERBER_BUFZ], char*& text ); char aBuff[GERBER_BUFZ], char*& text );
/** /**

View File

@ -102,8 +102,7 @@
* CrLf after each command * CrLf after each command
* G codes BROKE * G codes BROKE
*/ */
bool WinEDA_GerberFrame::Read_GERBER_File( wxDC* DC, bool WinEDA_GerberFrame::Read_GERBER_File( const wxString& GERBER_FullFileName,
const wxString& GERBER_FullFileName,
const wxString& D_Code_FullFileName ) const wxString& D_Code_FullFileName )
{ {
int G_commande = 0, int G_commande = 0,
@ -197,7 +196,7 @@ bool WinEDA_GerberFrame::Read_GERBER_File( wxDC* DC,
case 'D': /* Line type Dxx : Tool selection (xx > 0) or case 'D': /* Line type Dxx : Tool selection (xx > 0) or
* command if xx = 0..9 */ * command if xx = 0..9 */
D_commande = gerber->ReturnDCodeNumber( text ); D_commande = gerber->ReturnDCodeNumber( text );
gerber->Execute_DCODE_Command( this, DC, text, D_commande ); gerber->Execute_DCODE_Command( this, text, D_commande );
break; break;
case 'X': case 'X':
@ -205,7 +204,7 @@ bool WinEDA_GerberFrame::Read_GERBER_File( wxDC* DC,
pos = gerber->ReadXYCoord( text ); pos = gerber->ReadXYCoord( text );
if( *text == '*' ) // command like X12550Y19250* if( *text == '*' ) // command like X12550Y19250*
{ {
gerber->Execute_DCODE_Command( this, DC, text, gerber->Execute_DCODE_Command( this, text,
gerber->m_Last_Pen_Command ); gerber->m_Last_Pen_Command );
} }
break; break;
@ -220,7 +219,7 @@ bool WinEDA_GerberFrame::Read_GERBER_File( wxDC* DC,
{ {
gerber->m_CommandState = ENTER_RS274X_CMD; gerber->m_CommandState = ENTER_RS274X_CMD;
if( !gerber->ReadRS274XCommand( this, DC, line, text ) ) if( !gerber->ReadRS274XCommand( this, line, text ) )
{ {
error++; error++;
} }
@ -244,7 +243,7 @@ bool WinEDA_GerberFrame::Read_GERBER_File( wxDC* DC,
if( error ) if( error )
{ {
msg.Printf( _( "%d errors while reading Gerber file [%s]" ), msg.Printf( _( "%d errors while reading Gerber file [%s]" ),
error, GERBER_FullFileName.GetData() ); error, GetChars(GERBER_FullFileName) );
DisplayError( this, msg ); DisplayError( this, msg );
} }
fclose( gerber->m_Current_File ); fclose( gerber->m_Current_File );

View File

@ -849,7 +849,7 @@ static bool mapExposure( int param1, bool curExposure, bool isNegative )
} }
bool GERBER::Execute_DCODE_Command( WinEDA_GerberFrame* frame, wxDC* DC, bool GERBER::Execute_DCODE_Command( WinEDA_GerberFrame* frame,
char*& text, int D_commande ) char*& text, int D_commande )
{ {
wxSize size( 15, 15 ); wxSize size( 15, 15 );

View File

@ -106,7 +106,7 @@ static double ReadDouble( char*& text )
} }
bool GERBER::ReadRS274XCommand( WinEDA_GerberFrame* frame, wxDC* DC, bool GERBER::ReadRS274XCommand( WinEDA_GerberFrame* frame,
char buff[GERBER_BUFZ], char*& text ) char buff[GERBER_BUFZ], char*& text )
{ {
bool ok = true; bool ok = true;

View File

@ -138,13 +138,11 @@ public:
void Files_io( wxCommandEvent& event ); void Files_io( wxCommandEvent& event );
void OnFileHistory( wxCommandEvent& event ); void OnFileHistory( wxCommandEvent& event );
bool LoadOneGerberFile( const wxString& FileName, wxDC* DC, bool LoadOneGerberFile( const wxString& FileName, int mode );
int mode ); int ReadGerberFile( FILE* File, bool Append );
int ReadGerberFile( wxDC* DC, FILE* File, bool Append ); bool Read_GERBER_File( const wxString& GERBER_FullFileName,
bool Read_GERBER_File( wxDC* DC,
const wxString& GERBER_FullFileName,
const wxString& D_Code_FullFileName ); const wxString& D_Code_FullFileName );
bool SaveGerberFile( const wxString& FileName, wxDC* DC ); bool SaveGerberFile( const wxString& FileName );
void GeneralControle( wxDC* DC, wxPoint Mouse ); void GeneralControle( wxDC* DC, wxPoint Mouse );

Binary file not shown.

View File

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: kicad\n" "Project-Id-Version: kicad\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-11-20 20:25+0100\n" "POT-Creation-Date: 2009-11-21 20:29+0100\n"
"PO-Revision-Date: 2009-11-20 20:28+0100\n" "PO-Revision-Date: 2009-11-21 20:35+0100\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n" "Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -2552,49 +2552,9 @@ msgstr "Attention: option d'échelle ajustée à une valeur très grande"
msgid "No layer selected" msgid "No layer selected"
msgstr "Pas de couche sélectionnée" msgstr "Pas de couche sélectionnée"
#: pcbnew/dialog_freeroute_exchange.cpp:179 #: pcbnew/dialog_freeroute_exchange.cpp:68
msgid "Export a Specctra Design (*.dsn) File" msgid "Freeroute Help"
msgstr "Exporter un fichier de conception Specctra (*.dsn)" msgstr ""
#: pcbnew/dialog_freeroute_exchange.cpp:181
msgid "Export a Specctra DSN file (to FreeRouter)"
msgstr "Exporter un fichier Specctra DSN (pour FreeRoute)"
#: pcbnew/dialog_freeroute_exchange.cpp:184
msgid "Launch FreeRouter via Java Web Start"
msgstr "Lancer FreeRouter via Java Web Start"
#: pcbnew/dialog_freeroute_exchange.cpp:186
msgid "Use Java Web Start function to run FreeRouter via Internet (or your Browser if not found)"
msgstr "Utiliser Java Web Start function pour lancer FreeRouter via Internet (ou votre Navigateur si non trouvé)"
#: pcbnew/dialog_freeroute_exchange.cpp:189
msgid "Back Import the Specctra Session (*.ses) File"
msgstr "Importer un Fichier Specctra Session (*.ses)"
#: pcbnew/dialog_freeroute_exchange.cpp:191
msgid "Merge a session file created by FreeRouter with the current board."
msgstr "Importer un fichier session créé par FreeRouter dans le C.I. courant."
#: pcbnew/dialog_freeroute_exchange.cpp:198
msgid "Visit FreeRouting.net website"
msgstr "Visiter le site FreeRouting.net"
#: pcbnew/dialog_freeroute_exchange.cpp:200
msgid "Launch your browser and go to the FreeRouting.net website"
msgstr "Lancer votre navigateur pour aller sur FreeRouting.net"
#: pcbnew/dialog_freeroute_exchange.cpp:203
msgid "FreeRouting.net URL"
msgstr "URL FreeRouting.net"
#: pcbnew/dialog_freeroute_exchange.cpp:208
msgid "The URL of the FreeRouting.net website"
msgstr "L' URL du site FreeRouting.net"
#: pcbnew/dialog_freeroute_exchange.cpp:214
msgid "&Close"
msgstr "&Fermer"
#: pcbnew/dialog_edit_module_for_Modedit.cpp:83 #: pcbnew/dialog_edit_module_for_Modedit.cpp:83
msgid "Use this attribute for most non smd components" msgid "Use this attribute for most non smd components"
@ -3925,10 +3885,6 @@ msgstr "Test module"
msgid "Add Pads" msgid "Add Pads"
msgstr "Addition de \"pins\"" msgstr "Addition de \"pins\""
#: pcbnew/tool_modedit.cpp:203
msgid "Display Grid OFF"
msgstr "Suppression de l'affichage de la grille"
#: pcbnew/tool_modedit.cpp:208 #: pcbnew/tool_modedit.cpp:208
msgid "Display Polar Coord ON" msgid "Display Polar Coord ON"
msgstr "Activer affichage coord Polaires" msgstr "Activer affichage coord Polaires"
@ -4890,7 +4846,7 @@ msgstr "Effacer Marqueur"
#: pcbnew/onrightclick.cpp:792 #: pcbnew/onrightclick.cpp:792
msgid "Marker Error Info" msgid "Marker Error Info"
msgstr "Info de Marqueurd'Erreur" msgstr "Info du Marqueur d'Erreur"
#: pcbnew/onrightclick.cpp:812 #: pcbnew/onrightclick.cpp:812
msgid "Auto Width" msgid "Auto Width"
@ -4911,7 +4867,7 @@ msgstr "Utiliser les dimensions de pistes et vias de leur valeurs en Netclasse"
#: pcbnew/onrightclick.cpp:832 #: pcbnew/onrightclick.cpp:832
#, c-format #, c-format
msgid "Track %s" msgid "Track %s"
msgstr "Piste %s:" msgstr "Piste %s"
#: pcbnew/onrightclick.cpp:834 #: pcbnew/onrightclick.cpp:834
#: pcbnew/onrightclick.cpp:862 #: pcbnew/onrightclick.cpp:862
@ -7401,6 +7357,10 @@ msgstr "Offset de tracé X"
msgid "Plot Offset Y" msgid "Plot Offset Y"
msgstr "Offset de tracé Y" msgstr "Offset de tracé Y"
#: eeschema/plothpgl.cpp:372
msgid "&Close"
msgstr "&Fermer"
#: eeschema/plothpgl.cpp:381 #: eeschema/plothpgl.cpp:381
msgid "&Accept Offset" msgid "&Accept Offset"
msgstr "&Accepter Offset" msgstr "&Accepter Offset"
@ -10444,6 +10404,7 @@ msgid "File <"
msgstr "Fichier <" msgstr "Fichier <"
#: cvpcb/readschematicnetlist.cpp:115 #: cvpcb/readschematicnetlist.cpp:115
#: kicad/prjconfig.cpp:93
msgid "> not found" msgid "> not found"
msgstr "> non trouvé" msgstr "> non trouvé"
@ -11009,25 +10970,24 @@ msgstr "Polygones:"
msgid "Show D codes" msgid "Show D codes"
msgstr "Montrer DCodes" msgstr "Montrer DCodes"
#: gerbview/readgerb.cpp:138 #: gerbview/readgerb.cpp:137
#: gerbview/dcode.cpp:299
msgid "File " msgid "File "
msgstr "Fichier " msgstr "Fichier "
#: gerbview/readgerb.cpp:246 #: gerbview/readgerb.cpp:245
#, c-format #, c-format
msgid "%d errors while reading Gerber file [%s]" msgid "%d errors while reading Gerber file [%s]"
msgstr "%d erreurs pendant lecture fichier gerber [%s]" msgstr "%d erreurs pendant lecture fichier gerber [%s]"
#: gerbview/readgerb.cpp:268 #: gerbview/readgerb.cpp:267
#: gerbview/files.cpp:197 #: gerbview/files.cpp:183
#: gerbview/files.cpp:231 #: gerbview/files.cpp:216
#, c-format #, c-format
msgid "Gerber DCODE files (%s)|*.%s" msgid "Gerber DCODE files (%s)|*.%s"
msgstr "Fichiers Gerber DCODE (%s)|*.%s" msgstr "Fichiers Gerber DCODE (%s)|*.%s"
#: gerbview/readgerb.cpp:273 #: gerbview/readgerb.cpp:272
#: gerbview/files.cpp:203 #: gerbview/files.cpp:189
msgid "Load GERBER DCODE File" msgid "Load GERBER DCODE File"
msgstr "Charger Fichier de DCodes" msgstr "Charger Fichier de DCodes"
@ -11056,67 +11016,67 @@ msgstr "Effacer textes pcb"
msgid "Delete layer %d?" msgid "Delete layer %d?"
msgstr "Effacer couche %d" msgstr "Effacer couche %d"
#: gerbview/files.cpp:81 #: gerbview/files.cpp:72
msgid "Not yet available..." msgid "Not yet available..."
msgstr "non encore disponible" msgstr "non encore disponible"
#: gerbview/files.cpp:127 #: gerbview/files.cpp:114
msgid "Gerber files (.gbr .gbx .lgr .ger .pho)| .gbr;*.GBR;*.gbx;*.GBX;*.lgr;*.LGR;*.ger;*.GER;*.pho;*.PHO|" msgid "Gerber files (.gbr .gbx .lgr .ger .pho)| .gbr;*.GBR;*.gbx;*.GBX;*.lgr;*.LGR;*.ger;*.GER;*.pho;*.PHO|"
msgstr "Fichiers Gerber (.gbr .gbx .lgr .ger .pho)| *.gbr;*.GBR;*.gbx;*.GBX;*.lgr;*.LGR;*.ger;*.GER;*.pho;*.PHO|" msgstr "Fichiers Gerber (.gbr .gbx .lgr .ger .pho)| *.gbr;*.GBR;*.gbx;*.GBX;*.lgr;*.LGR;*.ger;*.GER;*.pho;*.PHO|"
#: gerbview/files.cpp:131 #: gerbview/files.cpp:118
msgid "Top layer (*.GTL)|*.GTL;*.gtl|" msgid "Top layer (*.GTL)|*.GTL;*.gtl|"
msgstr "Couche composant" msgstr "Couche composant"
#: gerbview/files.cpp:132 #: gerbview/files.cpp:119
msgid "Bottom layer (*.GBL)|*.GBL;*.gbl|" msgid "Bottom layer (*.GBL)|*.GBL;*.gbl|"
msgstr "Couche cuivre" msgstr "Couche cuivre"
#: gerbview/files.cpp:133 #: gerbview/files.cpp:120
msgid "Bottom solder resist (*.GBS)|*.GBS;*.gbs|" msgid "Bottom solder resist (*.GBS)|*.GBS;*.gbs|"
msgstr "Masque soudure cuivre (*.GBS)|*.GBS;*.gbs|" msgstr "Masque soudure cuivre (*.GBS)|*.GBS;*.gbs|"
#: gerbview/files.cpp:134 #: gerbview/files.cpp:121
msgid "Top solder resist (*.GTS)|*.GTS;*.gts|" msgid "Top solder resist (*.GTS)|*.GTS;*.gts|"
msgstr "Masque soudure composant (*.GTS)|*.GTS;*.gts|" msgstr "Masque soudure composant (*.GTS)|*.GTS;*.gts|"
#: gerbview/files.cpp:135 #: gerbview/files.cpp:122
msgid "Bottom overlay (*.GBO)|*.GBO;*.gbo|" msgid "Bottom overlay (*.GBO)|*.GBO;*.gbo|"
msgstr "" msgstr ""
#: gerbview/files.cpp:136 #: gerbview/files.cpp:123
msgid "Top overlay (*.GTO)|*.GTO;*.gto|" msgid "Top overlay (*.GTO)|*.GTO;*.gto|"
msgstr "" msgstr ""
#: gerbview/files.cpp:137 #: gerbview/files.cpp:124
msgid "Bottom paste (*.GBP)|*.GBP;*.gbp|" msgid "Bottom paste (*.GBP)|*.GBP;*.gbp|"
msgstr "Bottom paste (*.GBP)|*.GBP;*.gbp|" msgstr "Bottom paste (*.GBP)|*.GBP;*.gbp|"
#: gerbview/files.cpp:138 #: gerbview/files.cpp:125
msgid "Top paste (*.GTP)|*.GTP;*.gtp|" msgid "Top paste (*.GTP)|*.GTP;*.gtp|"
msgstr "Masque pate à souder composant (*.GTP)|*.GTP;*.gtp|" msgstr "Masque pate à souder composant (*.GTP)|*.GTP;*.gtp|"
#: gerbview/files.cpp:139 #: gerbview/files.cpp:126
msgid "Keep-out layer (*.GKO)|*.GKO;*.gko|" msgid "Keep-out layer (*.GKO)|*.GKO;*.gko|"
msgstr "" msgstr ""
#: gerbview/files.cpp:140 #: gerbview/files.cpp:127
msgid "Mechanical layers (*.GMx)|*.GM1;*.gm1;*.GM2;*.gm2;*.GM3;*.gm3|" msgid "Mechanical layers (*.GMx)|*.GM1;*.gm1;*.GM2;*.gm2;*.GM3;*.gm3|"
msgstr "Couches mécaniques (*.GMx)|*.GM1;*.gm1;*.GM2;*.gm2;*.GM3;*.gm3|" msgstr "Couches mécaniques (*.GMx)|*.GM1;*.gm1;*.GM2;*.gm2;*.GM3;*.gm3|"
#: gerbview/files.cpp:141 #: gerbview/files.cpp:128
msgid "Top Pad Master (*.GPT)|*.GPT;*.gpt|" msgid "Top Pad Master (*.GPT)|*.GPT;*.gpt|"
msgstr "" msgstr ""
#: gerbview/files.cpp:142 #: gerbview/files.cpp:129
msgid "Bottom Pad Master (*.GPB)|*.GPB;*.gpb|" msgid "Bottom Pad Master (*.GPB)|*.GPB;*.gpb|"
msgstr "" msgstr ""
#: gerbview/files.cpp:152 #: gerbview/files.cpp:139
msgid "Open Gerber File" msgid "Open Gerber File"
msgstr "Ouvrir Fichier Gerber" msgstr "Ouvrir Fichier Gerber"
#: gerbview/files.cpp:235 #: gerbview/files.cpp:220
msgid "Save Gerber File" msgid "Save Gerber File"
msgstr "Sauver Fichier Gerber" msgstr "Sauver Fichier Gerber"
@ -12158,10 +12118,6 @@ msgstr "Options de Nettoyage"
msgid "TextMod properties" msgid "TextMod properties"
msgstr "Propriétés du Texte sur Module" msgstr "Propriétés du Texte sur Module"
#: pcbnew/dialog_freeroute_exchange.h:46
msgid "dialog_freeroute_exchange"
msgstr "dialog_freeroute_exchange"
#: pcbnew/dialog_initpcb.h:38 #: pcbnew/dialog_initpcb.h:38
msgid "Global Delete" msgid "Global Delete"
msgstr "Effacements Globaux" msgstr "Effacements Globaux"
@ -12567,6 +12523,35 @@ msgstr "DCodes id."
msgid "Page Settings" msgid "Page Settings"
msgstr "Ajustage opt Page" msgstr "Ajustage opt Page"
#~ msgid "Export a Specctra Design (*.dsn) File"
#~ msgstr "Exporter un fichier de conception Specctra (*.dsn)"
#~ msgid "Export a Specctra DSN file (to FreeRouter)"
#~ msgstr "Exporter un fichier Specctra DSN (pour FreeRoute)"
#~ msgid "Launch FreeRouter via Java Web Start"
#~ msgstr "Lancer FreeRouter via Java Web Start"
#~ msgid ""
#~ "Use Java Web Start function to run FreeRouter via Internet (or your "
#~ "Browser if not found)"
#~ msgstr ""
#~ "Utiliser Java Web Start function pour lancer FreeRouter via Internet (ou "
#~ "votre Navigateur si non trouvé)"
#~ msgid "Back Import the Specctra Session (*.ses) File"
#~ msgstr "Importer un Fichier Specctra Session (*.ses)"
#~ msgid "Merge a session file created by FreeRouter with the current board."
#~ msgstr ""
#~ "Importer un fichier session créé par FreeRouter dans le C.I. courant."
#~ msgid "Visit FreeRouting.net website"
#~ msgstr "Visiter le site FreeRouting.net"
#~ msgid "Launch your browser and go to the FreeRouting.net website"
#~ msgstr "Lancer votre navigateur pour aller sur FreeRouting.net"
#~ msgid "FreeRouting.net URL"
#~ msgstr "URL FreeRouting.net"
#~ msgid "The URL of the FreeRouting.net website"
#~ msgstr "L' URL du site FreeRouting.net"
#~ msgid "Display Grid OFF"
#~ msgstr "Suppression de l'affichage de la grille"
#~ msgid "dialog_freeroute_exchange"
#~ msgstr "dialog_freeroute_exchange"
#~ msgid "Drc OFF" #~ msgid "Drc OFF"
#~ msgstr "Drc DESACTIVEE" #~ msgstr "Drc DESACTIVEE"
#~ msgid "Show General Ratsnest" #~ msgid "Show General Ratsnest"

View File

@ -164,19 +164,28 @@ void SwapData( BOARD_ITEM* aItem, BOARD_ITEM* aImage )
case TYPE_TRACK: case TYPE_TRACK:
case TYPE_VIA: case TYPE_VIA:
EXCHG( ( (TRACK*) aItem )->m_Start, ( (TRACK*) aImage )->m_Start );
EXCHG( ( (TRACK*) aItem )->m_End, ( (TRACK*) aImage )->m_End );
EXCHG( ( (TRACK*) aItem )->m_Width, ( (TRACK*) aImage )->m_Width );
EXCHG( ( (TRACK*) aItem )->m_Shape, ( (TRACK*) aImage )->m_Shape );
{ {
int itmp = ((TRACK*) aItem )->GetDrillValue(); TRACK* track = (TRACK*) aItem;
if( ((TRACK*) aItem )->IsDrillDefault() ) TRACK* image = (TRACK*) aImage;
itmp = -1; EXCHG( track->m_Start, image->m_Start );
int atmp = ((TRACK*) aImage )->GetDrillValue(); EXCHG( track->m_End, image->m_End );
if( ((TRACK*) aImage )->IsDrillDefault() ) EXCHG( track->m_Width, image->m_Width );
EXCHG( track->m_Shape, image->m_Shape );
int atmp = track->GetDrillValue();
if( track->IsDrillDefault() )
atmp = -1; atmp = -1;
( (TRACK*) aItem )->SetDrillValue( atmp ); int itmp = image->GetDrillValue();
( (TRACK*) aImage )->SetDrillValue(itmp); if( image->IsDrillDefault() )
itmp = -1;
EXCHG(itmp, atmp );
if( atmp > 0 )
track->SetDrillValue( atmp );
else
track->SetDrillDefault();
if( itmp > 0 )
image->SetDrillValue( itmp );
else
image->SetDrillDefault();
} }
break; break;

View File

@ -181,7 +181,7 @@ public:
* Function IsDrillDefault * Function IsDrillDefault
* @return true if the drill value is default value (-1) * @return true if the drill value is default value (-1)
*/ */
bool IsDrillDefault(void) { return m_Drill < 0; } bool IsDrillDefault(void) { return m_Drill <= 0; }
/** /**
* Function GetDrillValue * Function GetDrillValue