Loading common/common.cpp +12 −3 Original line number Original line Diff line number Diff line Loading @@ -277,14 +277,23 @@ void* MyMalloc( size_t nb_octets ) } } /**************************************************************/ bool ProcessExecute( const wxString& aCommandLine, int aFlags ) bool ProcessExecute( const wxString& aCommandLine, int aFlags ) /**************************************************************/ /** * Function ProcessExecute * runs a child process. * @param aCommandLine The process and any arguments to it all in a single string. * @param aFlags The same args as allowed for wxExecute() * @return bool - true if success, else false */ { { #ifdef __WINDOWS__ #ifdef __WINDOWS__ wxExecute(aCommandLine); int pid = wxExecute(aCommandLine); return true; return pid ? true : false; #else #else wxProcess* process = wxProcess::Open( aCommandLine, aFlags ); wxProcess* process = wxProcess::Open( aCommandLine, aFlags ); return process != NULL; return (process != NULL) ? true : false; #endif #endif } } Loading common/eda_doc.cpp +49 −92 Original line number Original line Diff line number Diff line Loading @@ -54,16 +54,10 @@ void WinEDA_App::WritePdfBrowserInfos() } } // Mime type extensions // Mime type extensions (PDF files are not considered here) static wxMimeTypesManager* mimeDatabase; static wxMimeTypesManager* mimeDatabase; static const wxFileTypeInfo EDAfallbacks[] = static const wxFileTypeInfo EDAfallbacks[] = { { wxFileTypeInfo( wxT( "text/pdf" ), wxT( "xpdf %s" ), wxT( "xpdf -p %s" ), wxT( "pdf document (from Kicad)" ), wxT( "pdf" ), wxT( "PDF" ), NULL ), wxFileTypeInfo( wxT( "text/html" ), wxFileTypeInfo( wxT( "text/html" ), wxT( "wxhtml %s" ), wxT( "wxhtml %s" ), wxT( "wxhtml %s" ), wxT( "wxhtml %s" ), Loading Loading @@ -95,7 +89,7 @@ bool GetAssociatedDocument( wxFrame* frame, const wxString& LibPath, * if DocName is starting by http: or ftp: or www. the default internet browser is launched * if DocName is starting by http: or ftp: or www. the default internet browser is launched */ */ { { wxString docpath, fullfilename; wxString docpath, fullfilename, file_ext; wxString Line; wxString Line; wxString command; wxString command; bool success = FALSE; bool success = FALSE; Loading Loading @@ -158,22 +152,27 @@ bool GetAssociatedDocument( wxFrame* frame, const wxString& LibPath, return FALSE; return FALSE; } } /* Try to launch some browser (usefull under linux) */ wxFileName CurrentFileName( fullfilename ); g_EDA_Appl->ReadPdfBrowserInfos(); file_ext = CurrentFileName.GetExt(); if( g_EDA_Appl->m_PdfBrowserIsDefault ) if( file_ext == wxT( "pdf" ) ) { { success = OpenPDF( fullfilename ); return success; } /* Try to launch some browser (usefull under linux) */ wxFileType* filetype; wxFileType* filetype; wxFileName CurrentFileName( fullfilename ); wxString ext, type; wxString type; ext = CurrentFileName.GetExt(); filetype = wxTheMimeTypesManager->GetFileTypeFromExtension( file_ext ); filetype = wxTheMimeTypesManager->GetFileTypeFromExtension( ext ); if( !filetype ) // 2ieme tentative if( !filetype ) // 2ieme tentative { { mimeDatabase = new wxMimeTypesManager; mimeDatabase = new wxMimeTypesManager; mimeDatabase->AddFallbacks( EDAfallbacks ); mimeDatabase->AddFallbacks( EDAfallbacks ); filetype = mimeDatabase->GetFileTypeFromExtension( ext ); filetype = mimeDatabase->GetFileTypeFromExtension( file_ext ); delete mimeDatabase; delete mimeDatabase; mimeDatabase = NULL; mimeDatabase = NULL; } } Loading @@ -185,57 +184,15 @@ bool GetAssociatedDocument( wxFrame* frame, const wxString& LibPath, success = filetype->GetOpenCommand( &command, params ); success = filetype->GetOpenCommand( &command, params ); delete filetype; delete filetype; if( success ) if( success ) ProcessExecute( command ); success = ProcessExecute( command ); } } if( !success ) if( !success ) { { #ifdef __LINUX__ Line.Printf( _( "Unknown MIME type for Doc File [%s]" ), if( ext == wxT( "pdf" ) ) fullfilename.GetData() ); { success = TRUE; command.Empty(); if( wxFileExists( wxT( "/usr/bin/kpdf" ) ) ) command = wxT( "kpdf " ) + fullfilename; else if( wxFileExists( wxT( "/usr/bin/konqueror" ) ) ) command = wxT( "konqueror " ) + fullfilename; else if( wxFileExists( wxT( "/usr/bin/gpdf" ) ) ) command = wxT( "gpdf " ) + fullfilename; if( wxFileExists( wxT( "/usr/bin/xpdf" ) ) ) command = wxT( "xpdf " ) + fullfilename; if( command.IsEmpty() ) // not started { DisplayError( frame, _( " Cannot find the PDF viewer (kpdf, gpdf, konqueror or xpdf) in /usr/bin/" ) ); success = FALSE; } else ProcessExecute( command ); } else #endif { Line.Printf( _( "Unknown MIME type for Doc File [%s] (%s)" ), fullfilename.GetData(), ext.GetData() ); DisplayError( frame, Line ); } } } else { command = g_EDA_Appl->m_PdfBrowser; if( wxFileExists( command ) ) { success = TRUE; AddDelimiterString( fullfilename ); command += wxT( " " ) + fullfilename; ProcessExecute( command ); } else { Line.Printf( _( "Cannot find Pdf viewer %s" ), command.GetData() ); DisplayError( frame, Line ); DisplayError( frame, Line ); } } } return success; return success; } } Loading common/gestfich.cpp +57 −20 Original line number Original line Diff line number Diff line Loading @@ -74,8 +74,8 @@ static wxString s_HelpPathList[] = { #else #else wxT( "/usr/share/doc/kicad/help/" ), wxT( "/usr/share/doc/kicad/help/" ), wxT( "/usr/local/share/doc/kicad/help/" ), wxT( "/usr/local/share/doc/kicad/help/" ), wxT( "/usr/local/kicad/doc/" ), // default install for "universal tarballs" and build for a server (new) wxT( "/usr/local/kicad/doc/help/" ), // default install for "universal tarballs" and build for a server (new) // wxT( "/usr/local/kicad/" ), // default install for "universal tarballs" and build for a server (old) wxT( "/usr/local/kicad/help/" ), // default install for "universal tarballs" and build for a server (old) #endif #endif wxT( "end_list" ) // End of list symbol, do not change wxT( "end_list" ) // End of list symbol, do not change }; }; Loading Loading @@ -701,64 +701,101 @@ wxString GetEditorName() return g_EditorName; return g_EditorName; } } /***********************************/ void OpenPDF( const wxString& file ) bool OpenPDF( const wxString& file ) /***********************************/ /** Function OpenPDF * run the PDF viewer and display a PDF file * @param file = PDF file to open * @return true is success, false if no PDF viewer found */ { { wxString command; wxString command; wxString filename = file; wxString filename = file; wxString type; wxString type; bool success = false; g_EDA_Appl->ReadPdfBrowserInfos(); g_EDA_Appl->ReadPdfBrowserInfos(); if( !g_EDA_Appl->m_PdfBrowserIsDefault ) if( !g_EDA_Appl->m_PdfBrowserIsDefault ) // Run the prefered PDF Browser { { AddDelimiterString( filename ); AddDelimiterString( filename ); command = g_EDA_Appl->m_PdfBrowser + filename; command = g_EDA_Appl->m_PdfBrowser + wxT( " " ) + filename; } } else else { { bool success = false; wxFileType* filetype = NULL; wxFileType* filetype = NULL; wxFileType::MessageParameters params( filename, type ); wxFileType::MessageParameters params( filename, type ); filetype = wxTheMimeTypesManager->GetFileTypeFromExtension( wxT( "pdf" ) ); filetype = wxTheMimeTypesManager->GetFileTypeFromExtension( wxT( ".pdf" ) ); if( filetype ) if( filetype ) success = filetype->GetOpenCommand( &command, params ); success = filetype->GetOpenCommand( &command, params ); delete filetype; delete filetype; #ifndef __WINDOWS__ // Bug ? under linux wxWidgets returns acroread as PDF viewer,even it not exists if ( command.StartsWith(wxT("acroread")) ) // Workaround success = false; #endif if( success && !command.IsEmpty() ) { success = ProcessExecute( command ); } else success = false; if( !success ) if( !success ) { { AddDelimiterString( filename ); command.Empty(); command.Empty(); #ifndef __WINDOWS__ AddDelimiterString( filename ); /* here is a list of PDF viewers candidates */ const static wxString tries[] = const static wxString tries[] = { { wxT( "/usr/bin/evince" ), wxT( "/usr/bin/evince" ), wxT( "/usr/bin/xpdf" ), wxT( "/usr/bin/konqueror" ), wxT( "/usr/bin/gpdf" ), wxT( "/usr/bin/gpdf" ), wxT( "/usr/bin/konqueror" ), wxT( "/usr/bin/kpdf" ), wxT( "/usr/bin/xpdf" ), wxT( "" ), wxT( "" ), }; }; for( int i = 0; ; i++ ) for( int ii = 0; ; ii++ ) { { if( tries[i].IsEmpty() ) if( tries[ii].IsEmpty() ) break; break; if( wxFileExists( tries[i] ) ) if( wxFileExists( tries[ii] ) ) { { command = tries[i] + wxT( " " ) + filename; command = tries[ii] + wxT( " " ) + filename; break; } } } } #endif } } } } if( !command.IsEmpty() ) if( !command.IsEmpty() ) ProcessExecute( command ); { success = ProcessExecute( command ); if ( !success ) { wxString msg = _("Problem while running the PDF viewer"); msg << wxT("\n command is") << command; DisplayError( NULL, msg ); } } else { wxString msg = _("Unable to find a PDF viewer for"); msg << wxT(" ") << filename; DisplayError( NULL, msg ); success = false; } } return success; } /*************************************/ void OpenFile( const wxString& file ) void OpenFile( const wxString& file ) /*************************************/ { { wxString command; wxString command; wxString filename = file; wxString filename = file; Loading gerbview/block.cpp +17 −11 Original line number Original line Diff line number Diff line Loading @@ -309,7 +309,7 @@ void WinEDA_BasePcbFrame::Block_Move( wxDC* DC ) * Function to move items in the current selected block * Function to move items in the current selected block */ */ { { int deltaX, deltaY; wxPoint delta; wxPoint oldpos; wxPoint oldpos; oldpos = GetScreen()->m_Curseur; oldpos = GetScreen()->m_Curseur; Loading @@ -321,8 +321,7 @@ void WinEDA_BasePcbFrame::Block_Move( wxDC* DC ) GetScreen()->BlockLocate.Normalize(); GetScreen()->BlockLocate.Normalize(); /* calcul du vecteur de deplacement pour les deplacements suivants */ /* calcul du vecteur de deplacement pour les deplacements suivants */ deltaX = GetScreen()->BlockLocate.m_MoveVector.x; delta = GetScreen()->BlockLocate.m_MoveVector; deltaY = GetScreen()->BlockLocate.m_MoveVector.y; /* Move the Track segments in block */ /* Move the Track segments in block */ TRACK* track = m_Pcb->m_Track; TRACK* track = m_Pcb->m_Track; Loading @@ -332,9 +331,13 @@ void WinEDA_BasePcbFrame::Block_Move( wxDC* DC ) { { m_Pcb->m_Status_Pcb = 0; m_Pcb->m_Status_Pcb = 0; track->Draw( DrawPanel, DC, GR_XOR ); // erase the display track->Draw( DrawPanel, DC, GR_XOR ); // erase the display track->m_Start.x += deltaX; track->m_Start.y += deltaY; track->m_Start += delta; track->m_End.x += deltaX; track->m_End.y += deltaY; track->m_End += delta; track->m_Param += deltaX; track->SetSubNet( track->GetSubNet() + deltaY ); // the two parameters are used in gerbview to store centre coordinates for arcs. // move this centre track->m_Param += delta.x; track->SetSubNet( track->GetSubNet() + delta.y ); track->Draw( DrawPanel, DC, GR_OR ); // redraw the moved track track->Draw( DrawPanel, DC, GR_OR ); // redraw the moved track } } track = track->Next(); track = track->Next(); Loading @@ -344,12 +347,15 @@ void WinEDA_BasePcbFrame::Block_Move( wxDC* DC ) SEGZONE * zsegment= m_Pcb->m_Zone; SEGZONE * zsegment= m_Pcb->m_Zone; while( zsegment ) while( zsegment ) { { if( IsSegmentInBox( GetScreen()->BlockLocate, track ) ) if( IsSegmentInBox( GetScreen()->BlockLocate, zsegment ) ) { { zsegment->Draw( DrawPanel, DC, GR_XOR ); // erase the display zsegment->Draw( DrawPanel, DC, GR_XOR ); // erase the display zsegment->m_Start.x += deltaX; track->m_Start.y += deltaY; zsegment->m_Start += delta; zsegment->m_End.x += deltaX; track->m_End.y += deltaY; zsegment->m_End += delta; zsegment->m_Param += deltaX; track->SetSubNet( track->GetSubNet() + deltaY ); // the two parameters are used in gerbview to store centre coordinates for arcs. // move this centre zsegment->m_Param += delta.x; zsegment->SetSubNet( zsegment->GetSubNet() + delta.y ); zsegment->Draw( DrawPanel, DC, GR_OR ); // redraw the moved zone zegment zsegment->Draw( DrawPanel, DC, GR_OR ); // redraw the moved zone zegment } } zsegment = zsegment->Next(); zsegment = zsegment->Next(); Loading Loading @@ -407,7 +413,7 @@ void WinEDA_BasePcbFrame::Block_Duplicate( wxDC* DC ) while( zsegment ) while( zsegment ) { { SEGZONE * next_zsegment = zsegment->Next(); SEGZONE * next_zsegment = zsegment->Next(); if( IsSegmentInBox( GetScreen()->BlockLocate, track ) ) if( IsSegmentInBox( GetScreen()->BlockLocate, zsegment ) ) { { /* this zone segment must be duplicated */ /* this zone segment must be duplicated */ SEGZONE * new_zsegment = (SEGZONE*) zsegment->Copy(); SEGZONE * new_zsegment = (SEGZONE*) zsegment->Copy(); Loading include/build_version.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -9,7 +9,7 @@ COMMON_GLOBL wxString g_BuildVersion # include "config.h" # include "config.h" (wxT(KICAD_SVN_VERSION)) (wxT(KICAD_SVN_VERSION)) # else # else (wxT("(20080530-r1107)")) (wxT("(20080622-r1138)")) # endif # endif #endif #endif ; ; Loading Loading
common/common.cpp +12 −3 Original line number Original line Diff line number Diff line Loading @@ -277,14 +277,23 @@ void* MyMalloc( size_t nb_octets ) } } /**************************************************************/ bool ProcessExecute( const wxString& aCommandLine, int aFlags ) bool ProcessExecute( const wxString& aCommandLine, int aFlags ) /**************************************************************/ /** * Function ProcessExecute * runs a child process. * @param aCommandLine The process and any arguments to it all in a single string. * @param aFlags The same args as allowed for wxExecute() * @return bool - true if success, else false */ { { #ifdef __WINDOWS__ #ifdef __WINDOWS__ wxExecute(aCommandLine); int pid = wxExecute(aCommandLine); return true; return pid ? true : false; #else #else wxProcess* process = wxProcess::Open( aCommandLine, aFlags ); wxProcess* process = wxProcess::Open( aCommandLine, aFlags ); return process != NULL; return (process != NULL) ? true : false; #endif #endif } } Loading
common/eda_doc.cpp +49 −92 Original line number Original line Diff line number Diff line Loading @@ -54,16 +54,10 @@ void WinEDA_App::WritePdfBrowserInfos() } } // Mime type extensions // Mime type extensions (PDF files are not considered here) static wxMimeTypesManager* mimeDatabase; static wxMimeTypesManager* mimeDatabase; static const wxFileTypeInfo EDAfallbacks[] = static const wxFileTypeInfo EDAfallbacks[] = { { wxFileTypeInfo( wxT( "text/pdf" ), wxT( "xpdf %s" ), wxT( "xpdf -p %s" ), wxT( "pdf document (from Kicad)" ), wxT( "pdf" ), wxT( "PDF" ), NULL ), wxFileTypeInfo( wxT( "text/html" ), wxFileTypeInfo( wxT( "text/html" ), wxT( "wxhtml %s" ), wxT( "wxhtml %s" ), wxT( "wxhtml %s" ), wxT( "wxhtml %s" ), Loading Loading @@ -95,7 +89,7 @@ bool GetAssociatedDocument( wxFrame* frame, const wxString& LibPath, * if DocName is starting by http: or ftp: or www. the default internet browser is launched * if DocName is starting by http: or ftp: or www. the default internet browser is launched */ */ { { wxString docpath, fullfilename; wxString docpath, fullfilename, file_ext; wxString Line; wxString Line; wxString command; wxString command; bool success = FALSE; bool success = FALSE; Loading Loading @@ -158,22 +152,27 @@ bool GetAssociatedDocument( wxFrame* frame, const wxString& LibPath, return FALSE; return FALSE; } } /* Try to launch some browser (usefull under linux) */ wxFileName CurrentFileName( fullfilename ); g_EDA_Appl->ReadPdfBrowserInfos(); file_ext = CurrentFileName.GetExt(); if( g_EDA_Appl->m_PdfBrowserIsDefault ) if( file_ext == wxT( "pdf" ) ) { { success = OpenPDF( fullfilename ); return success; } /* Try to launch some browser (usefull under linux) */ wxFileType* filetype; wxFileType* filetype; wxFileName CurrentFileName( fullfilename ); wxString ext, type; wxString type; ext = CurrentFileName.GetExt(); filetype = wxTheMimeTypesManager->GetFileTypeFromExtension( file_ext ); filetype = wxTheMimeTypesManager->GetFileTypeFromExtension( ext ); if( !filetype ) // 2ieme tentative if( !filetype ) // 2ieme tentative { { mimeDatabase = new wxMimeTypesManager; mimeDatabase = new wxMimeTypesManager; mimeDatabase->AddFallbacks( EDAfallbacks ); mimeDatabase->AddFallbacks( EDAfallbacks ); filetype = mimeDatabase->GetFileTypeFromExtension( ext ); filetype = mimeDatabase->GetFileTypeFromExtension( file_ext ); delete mimeDatabase; delete mimeDatabase; mimeDatabase = NULL; mimeDatabase = NULL; } } Loading @@ -185,57 +184,15 @@ bool GetAssociatedDocument( wxFrame* frame, const wxString& LibPath, success = filetype->GetOpenCommand( &command, params ); success = filetype->GetOpenCommand( &command, params ); delete filetype; delete filetype; if( success ) if( success ) ProcessExecute( command ); success = ProcessExecute( command ); } } if( !success ) if( !success ) { { #ifdef __LINUX__ Line.Printf( _( "Unknown MIME type for Doc File [%s]" ), if( ext == wxT( "pdf" ) ) fullfilename.GetData() ); { success = TRUE; command.Empty(); if( wxFileExists( wxT( "/usr/bin/kpdf" ) ) ) command = wxT( "kpdf " ) + fullfilename; else if( wxFileExists( wxT( "/usr/bin/konqueror" ) ) ) command = wxT( "konqueror " ) + fullfilename; else if( wxFileExists( wxT( "/usr/bin/gpdf" ) ) ) command = wxT( "gpdf " ) + fullfilename; if( wxFileExists( wxT( "/usr/bin/xpdf" ) ) ) command = wxT( "xpdf " ) + fullfilename; if( command.IsEmpty() ) // not started { DisplayError( frame, _( " Cannot find the PDF viewer (kpdf, gpdf, konqueror or xpdf) in /usr/bin/" ) ); success = FALSE; } else ProcessExecute( command ); } else #endif { Line.Printf( _( "Unknown MIME type for Doc File [%s] (%s)" ), fullfilename.GetData(), ext.GetData() ); DisplayError( frame, Line ); } } } else { command = g_EDA_Appl->m_PdfBrowser; if( wxFileExists( command ) ) { success = TRUE; AddDelimiterString( fullfilename ); command += wxT( " " ) + fullfilename; ProcessExecute( command ); } else { Line.Printf( _( "Cannot find Pdf viewer %s" ), command.GetData() ); DisplayError( frame, Line ); DisplayError( frame, Line ); } } } return success; return success; } } Loading
common/gestfich.cpp +57 −20 Original line number Original line Diff line number Diff line Loading @@ -74,8 +74,8 @@ static wxString s_HelpPathList[] = { #else #else wxT( "/usr/share/doc/kicad/help/" ), wxT( "/usr/share/doc/kicad/help/" ), wxT( "/usr/local/share/doc/kicad/help/" ), wxT( "/usr/local/share/doc/kicad/help/" ), wxT( "/usr/local/kicad/doc/" ), // default install for "universal tarballs" and build for a server (new) wxT( "/usr/local/kicad/doc/help/" ), // default install for "universal tarballs" and build for a server (new) // wxT( "/usr/local/kicad/" ), // default install for "universal tarballs" and build for a server (old) wxT( "/usr/local/kicad/help/" ), // default install for "universal tarballs" and build for a server (old) #endif #endif wxT( "end_list" ) // End of list symbol, do not change wxT( "end_list" ) // End of list symbol, do not change }; }; Loading Loading @@ -701,64 +701,101 @@ wxString GetEditorName() return g_EditorName; return g_EditorName; } } /***********************************/ void OpenPDF( const wxString& file ) bool OpenPDF( const wxString& file ) /***********************************/ /** Function OpenPDF * run the PDF viewer and display a PDF file * @param file = PDF file to open * @return true is success, false if no PDF viewer found */ { { wxString command; wxString command; wxString filename = file; wxString filename = file; wxString type; wxString type; bool success = false; g_EDA_Appl->ReadPdfBrowserInfos(); g_EDA_Appl->ReadPdfBrowserInfos(); if( !g_EDA_Appl->m_PdfBrowserIsDefault ) if( !g_EDA_Appl->m_PdfBrowserIsDefault ) // Run the prefered PDF Browser { { AddDelimiterString( filename ); AddDelimiterString( filename ); command = g_EDA_Appl->m_PdfBrowser + filename; command = g_EDA_Appl->m_PdfBrowser + wxT( " " ) + filename; } } else else { { bool success = false; wxFileType* filetype = NULL; wxFileType* filetype = NULL; wxFileType::MessageParameters params( filename, type ); wxFileType::MessageParameters params( filename, type ); filetype = wxTheMimeTypesManager->GetFileTypeFromExtension( wxT( "pdf" ) ); filetype = wxTheMimeTypesManager->GetFileTypeFromExtension( wxT( ".pdf" ) ); if( filetype ) if( filetype ) success = filetype->GetOpenCommand( &command, params ); success = filetype->GetOpenCommand( &command, params ); delete filetype; delete filetype; #ifndef __WINDOWS__ // Bug ? under linux wxWidgets returns acroread as PDF viewer,even it not exists if ( command.StartsWith(wxT("acroread")) ) // Workaround success = false; #endif if( success && !command.IsEmpty() ) { success = ProcessExecute( command ); } else success = false; if( !success ) if( !success ) { { AddDelimiterString( filename ); command.Empty(); command.Empty(); #ifndef __WINDOWS__ AddDelimiterString( filename ); /* here is a list of PDF viewers candidates */ const static wxString tries[] = const static wxString tries[] = { { wxT( "/usr/bin/evince" ), wxT( "/usr/bin/evince" ), wxT( "/usr/bin/xpdf" ), wxT( "/usr/bin/konqueror" ), wxT( "/usr/bin/gpdf" ), wxT( "/usr/bin/gpdf" ), wxT( "/usr/bin/konqueror" ), wxT( "/usr/bin/kpdf" ), wxT( "/usr/bin/xpdf" ), wxT( "" ), wxT( "" ), }; }; for( int i = 0; ; i++ ) for( int ii = 0; ; ii++ ) { { if( tries[i].IsEmpty() ) if( tries[ii].IsEmpty() ) break; break; if( wxFileExists( tries[i] ) ) if( wxFileExists( tries[ii] ) ) { { command = tries[i] + wxT( " " ) + filename; command = tries[ii] + wxT( " " ) + filename; break; } } } } #endif } } } } if( !command.IsEmpty() ) if( !command.IsEmpty() ) ProcessExecute( command ); { success = ProcessExecute( command ); if ( !success ) { wxString msg = _("Problem while running the PDF viewer"); msg << wxT("\n command is") << command; DisplayError( NULL, msg ); } } else { wxString msg = _("Unable to find a PDF viewer for"); msg << wxT(" ") << filename; DisplayError( NULL, msg ); success = false; } } return success; } /*************************************/ void OpenFile( const wxString& file ) void OpenFile( const wxString& file ) /*************************************/ { { wxString command; wxString command; wxString filename = file; wxString filename = file; Loading
gerbview/block.cpp +17 −11 Original line number Original line Diff line number Diff line Loading @@ -309,7 +309,7 @@ void WinEDA_BasePcbFrame::Block_Move( wxDC* DC ) * Function to move items in the current selected block * Function to move items in the current selected block */ */ { { int deltaX, deltaY; wxPoint delta; wxPoint oldpos; wxPoint oldpos; oldpos = GetScreen()->m_Curseur; oldpos = GetScreen()->m_Curseur; Loading @@ -321,8 +321,7 @@ void WinEDA_BasePcbFrame::Block_Move( wxDC* DC ) GetScreen()->BlockLocate.Normalize(); GetScreen()->BlockLocate.Normalize(); /* calcul du vecteur de deplacement pour les deplacements suivants */ /* calcul du vecteur de deplacement pour les deplacements suivants */ deltaX = GetScreen()->BlockLocate.m_MoveVector.x; delta = GetScreen()->BlockLocate.m_MoveVector; deltaY = GetScreen()->BlockLocate.m_MoveVector.y; /* Move the Track segments in block */ /* Move the Track segments in block */ TRACK* track = m_Pcb->m_Track; TRACK* track = m_Pcb->m_Track; Loading @@ -332,9 +331,13 @@ void WinEDA_BasePcbFrame::Block_Move( wxDC* DC ) { { m_Pcb->m_Status_Pcb = 0; m_Pcb->m_Status_Pcb = 0; track->Draw( DrawPanel, DC, GR_XOR ); // erase the display track->Draw( DrawPanel, DC, GR_XOR ); // erase the display track->m_Start.x += deltaX; track->m_Start.y += deltaY; track->m_Start += delta; track->m_End.x += deltaX; track->m_End.y += deltaY; track->m_End += delta; track->m_Param += deltaX; track->SetSubNet( track->GetSubNet() + deltaY ); // the two parameters are used in gerbview to store centre coordinates for arcs. // move this centre track->m_Param += delta.x; track->SetSubNet( track->GetSubNet() + delta.y ); track->Draw( DrawPanel, DC, GR_OR ); // redraw the moved track track->Draw( DrawPanel, DC, GR_OR ); // redraw the moved track } } track = track->Next(); track = track->Next(); Loading @@ -344,12 +347,15 @@ void WinEDA_BasePcbFrame::Block_Move( wxDC* DC ) SEGZONE * zsegment= m_Pcb->m_Zone; SEGZONE * zsegment= m_Pcb->m_Zone; while( zsegment ) while( zsegment ) { { if( IsSegmentInBox( GetScreen()->BlockLocate, track ) ) if( IsSegmentInBox( GetScreen()->BlockLocate, zsegment ) ) { { zsegment->Draw( DrawPanel, DC, GR_XOR ); // erase the display zsegment->Draw( DrawPanel, DC, GR_XOR ); // erase the display zsegment->m_Start.x += deltaX; track->m_Start.y += deltaY; zsegment->m_Start += delta; zsegment->m_End.x += deltaX; track->m_End.y += deltaY; zsegment->m_End += delta; zsegment->m_Param += deltaX; track->SetSubNet( track->GetSubNet() + deltaY ); // the two parameters are used in gerbview to store centre coordinates for arcs. // move this centre zsegment->m_Param += delta.x; zsegment->SetSubNet( zsegment->GetSubNet() + delta.y ); zsegment->Draw( DrawPanel, DC, GR_OR ); // redraw the moved zone zegment zsegment->Draw( DrawPanel, DC, GR_OR ); // redraw the moved zone zegment } } zsegment = zsegment->Next(); zsegment = zsegment->Next(); Loading Loading @@ -407,7 +413,7 @@ void WinEDA_BasePcbFrame::Block_Duplicate( wxDC* DC ) while( zsegment ) while( zsegment ) { { SEGZONE * next_zsegment = zsegment->Next(); SEGZONE * next_zsegment = zsegment->Next(); if( IsSegmentInBox( GetScreen()->BlockLocate, track ) ) if( IsSegmentInBox( GetScreen()->BlockLocate, zsegment ) ) { { /* this zone segment must be duplicated */ /* this zone segment must be duplicated */ SEGZONE * new_zsegment = (SEGZONE*) zsegment->Copy(); SEGZONE * new_zsegment = (SEGZONE*) zsegment->Copy(); Loading
include/build_version.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -9,7 +9,7 @@ COMMON_GLOBL wxString g_BuildVersion # include "config.h" # include "config.h" (wxT(KICAD_SVN_VERSION)) (wxT(KICAD_SVN_VERSION)) # else # else (wxT("(20080530-r1107)")) (wxT("(20080622-r1138)")) # endif # endif #endif #endif ; ; Loading