made GetAssociatedDocument() compatible with last changes in kicad path handling.
This commit is contained in:
parent
6e54ec713d
commit
e719b42e1f
|
@ -10,6 +10,10 @@ email address.
|
|||
fixed: bug 2738052 (Delete tool does not delete zones outlines)
|
||||
++eeschema:
|
||||
fixed: void history file list in menu
|
||||
++All:
|
||||
made GetAssociatedDocument() compatible with last changes in kicad path handling.
|
||||
Get PDF doc associated with a component now works
|
||||
Some work still needed.
|
||||
|
||||
2009-apr-06 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
|
||||
================================================================================
|
||||
|
|
|
@ -259,15 +259,6 @@ void WinEDA_BasicFrame::GetKicadHelp( wxCommandEvent& event )
|
|||
}
|
||||
|
||||
#elif defined ONLINE_HELP_FILES_FORMAT_IS_PDF
|
||||
// wxString fullfilename = FindKicadHelpPath() + wxGetApp().m_HelpFileName;
|
||||
// if ( wxFileExists(fullfilename) )
|
||||
// GetAssociatedDocument( this, wxEmptyString, fullfilename );
|
||||
// else // Try to find file in English format:
|
||||
// {
|
||||
// fullfilename = FindKicadHelpPath() + wxT("../en/") + wxGetApp().m_HelpFileName;;
|
||||
// GetAssociatedDocument( this, wxEmptyString, fullfilename );
|
||||
// }
|
||||
|
||||
wxString helpFile = wxGetApp().GetHelpFile();
|
||||
if( !helpFile )
|
||||
{
|
||||
|
@ -276,7 +267,7 @@ void WinEDA_BasicFrame::GetKicadHelp( wxCommandEvent& event )
|
|||
DisplayError( this, msg );
|
||||
}
|
||||
else
|
||||
GetAssociatedDocument( this, wxEmptyString, helpFile );
|
||||
GetAssociatedDocument( this, helpFile );
|
||||
|
||||
#else
|
||||
# error Help files format not defined
|
||||
|
|
|
@ -71,21 +71,20 @@ static const wxFileTypeInfo EDAfallbacks[] =
|
|||
};
|
||||
|
||||
|
||||
/********************************************************************/
|
||||
bool GetAssociatedDocument( wxFrame* frame, const wxString& LibPath,
|
||||
const wxString& DocName )
|
||||
/*********************************************************************/
|
||||
|
||||
/* Launch the viewer for the doc file DocName (mime type)
|
||||
* LibPath is the doc file search path:
|
||||
* (kicad/library)
|
||||
* DocName is the short filename with ext. Wildcarts are allowed
|
||||
* Seach file is made in LibPath/doc/DocName
|
||||
*
|
||||
/** Function GetAssociatedDocument
|
||||
* open a document (file) with the suitable browser
|
||||
* @param aFrame = main frame
|
||||
* if DocName is starting by http: or ftp: or www. the default internet browser is launched
|
||||
*/
|
||||
* @param aDocName = filename of file to open (Full filename or short filename)
|
||||
* @param aPaths = a wxPathList to explore.
|
||||
* if NULL or aDocName is a full filename, aPath is not used.
|
||||
*/
|
||||
bool GetAssociatedDocument( wxFrame* aFrame,
|
||||
const wxString& aDocName,
|
||||
const wxPathList* aPaths)
|
||||
|
||||
{
|
||||
wxString docpath, fullfilename, file_ext;
|
||||
wxString fullfilename, file_ext;
|
||||
wxString msg;
|
||||
wxString command;
|
||||
bool success = FALSE;
|
||||
|
@ -95,20 +94,19 @@ bool GetAssociatedDocument( wxFrame* frame, const wxString& LibPath,
|
|||
|
||||
for( int ii = 0; ii < 3; ii++ )
|
||||
{
|
||||
if( DocName.First( url_header[ii] ) == 0 ) //. seems an internet url
|
||||
if( aDocName.First( url_header[ii] ) == 0 ) //. seems an internet url
|
||||
{
|
||||
wxLaunchDefaultBrowser( DocName );
|
||||
wxLaunchDefaultBrowser( aDocName );
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
/* Compute the full file name */
|
||||
if( wxIsAbsolutePath( DocName ) )
|
||||
fullfilename = DocName;
|
||||
if( wxIsAbsolutePath( aDocName ) || aPaths == NULL)
|
||||
fullfilename = aDocName;
|
||||
else
|
||||
{
|
||||
docpath = LibPath + wxT( "doc/" );
|
||||
fullfilename = docpath + DocName;
|
||||
fullfilename = aPaths->FindValidPath( aDocName );
|
||||
}
|
||||
|
||||
#ifdef __WINDOWS__
|
||||
|
@ -132,7 +130,7 @@ bool GetAssociatedDocument( wxFrame* frame, const wxString& LibPath,
|
|||
fullfilename, /* nom fichier par defaut */
|
||||
extension, /* extension par defaut */
|
||||
mask, /* Masque d'affichage */
|
||||
frame, /* parent frame */
|
||||
aFrame, /* parent frame */
|
||||
wxFD_OPEN, /* wxSAVE, wxFD_OPEN ..*/
|
||||
TRUE, /* true = ne change pas le repertoire courant */
|
||||
wxPoint( -1, -1 )
|
||||
|
@ -145,7 +143,7 @@ bool GetAssociatedDocument( wxFrame* frame, const wxString& LibPath,
|
|||
{
|
||||
msg = _( "Doc File " );
|
||||
msg << wxT("\"") << fullfilename << wxT("\"") << _( " not found" );
|
||||
DisplayError( frame, msg );
|
||||
DisplayError( aFrame, msg );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -186,7 +184,7 @@ bool GetAssociatedDocument( wxFrame* frame, const wxString& LibPath,
|
|||
{
|
||||
msg.Printf( _( "Unknown MIME type for doc file <%s>" ),
|
||||
fullfilename.GetData() );
|
||||
DisplayError( frame, msg );
|
||||
DisplayError( aFrame, msg );
|
||||
}
|
||||
|
||||
return success;
|
||||
|
|
|
@ -540,6 +540,16 @@ void WinEDA_App::SetDefaultSearchPaths( void )
|
|||
m_libSearchPaths.Add( fn.GetPath() );
|
||||
}
|
||||
|
||||
/* Add schematic doc file path (library/doc)to search path list. */
|
||||
fn.AppendDir( wxT( "doc") );
|
||||
if( fn.IsDirReadable() )
|
||||
{
|
||||
wxLogDebug( wxT( "Adding <%s> to library search path list" ),
|
||||
fn.GetPath().c_str() );
|
||||
m_libSearchPaths.Add( fn.GetPath() );
|
||||
}
|
||||
fn.RemoveLastDir();
|
||||
|
||||
/* Add kicad template file path to search path list. */
|
||||
fn.RemoveLastDir();
|
||||
fn.AppendDir( wxT( "template" ) );
|
||||
|
|
|
@ -521,7 +521,7 @@ void WinEDA_CvpcbFrame::DisplayDocFile( wxCommandEvent& event )
|
|||
else
|
||||
fullfilename = FindKicadHelpPath() + wxT( "../" ) + DocModuleFileName;
|
||||
|
||||
GetAssociatedDocument( this, wxEmptyString, fullfilename );
|
||||
GetAssociatedDocument( this, fullfilename );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -494,7 +494,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
docfilename = CurrentLibEntry->m_DocFile;
|
||||
|
||||
if( !docfilename.IsEmpty() )
|
||||
GetAssociatedDocument( this, g_RealLibDirBuffer, docfilename );
|
||||
GetAssociatedDocument( this, docfilename, & wxGetApp().GetLibraryPathList() );
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
#include "fctsys.h"
|
||||
#include "gr_basic.h"
|
||||
#include "appl_wxstruct.h"
|
||||
#include "common.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "confirm.h"
|
||||
|
@ -619,9 +620,8 @@ void WinEDA_SchematicFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
wxEmptyString, FIND_ALIAS );
|
||||
if( LibEntry && LibEntry->m_DocFile != wxEmptyString )
|
||||
{
|
||||
GetAssociatedDocument( this,
|
||||
g_RealLibDirBuffer,
|
||||
LibEntry->m_DocFile );
|
||||
GetAssociatedDocument( this, LibEntry->m_DocFile ,
|
||||
& wxGetApp().GetLibraryPathList() );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include "fctsys.h"
|
||||
#include "gr_basic.h"
|
||||
#include "common.h"
|
||||
#include "appl_wxstruct.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "confirm.h"
|
||||
#include "eda_doc.h"
|
||||
|
@ -59,9 +60,8 @@ void WinEDA_ViewlibFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
LibEntry = FindLibPart( g_CurrentViewComponentName.GetData(),
|
||||
g_CurrentViewLibraryName.GetData(), FIND_ALIAS );
|
||||
if( LibEntry && ( !LibEntry->m_DocFile.IsEmpty() ) )
|
||||
GetAssociatedDocument( this,
|
||||
g_RealLibDirBuffer,
|
||||
LibEntry->m_DocFile );
|
||||
GetAssociatedDocument( this, LibEntry->m_DocFile,
|
||||
& wxGetApp().GetLibraryPathList());
|
||||
break;
|
||||
|
||||
case ID_LIBVIEW_DE_MORGAN_NORMAL_BUTT:
|
||||
|
|
|
@ -8,19 +8,28 @@
|
|||
#define __INCLUDE__EDA_DOC_H__ 1
|
||||
|
||||
|
||||
int KeyWordOk( const wxString& KeyList,
|
||||
const wxString& Database );
|
||||
|
||||
/* Recherche si dans le texte Database on retrouve tous les mots
|
||||
* cles donnes dans KeyList ( KeyList = suite de mots cles
|
||||
* separes par des espaces
|
||||
* Retourne:
|
||||
* 0 si aucun mot cle trouv<EFBFBD>
|
||||
* 1 si mot cle trouv<EFBFBD>
|
||||
* 0 si aucun mot cle trouve
|
||||
* 1 si mot cle trouve
|
||||
*/
|
||||
bool GetAssociatedDocument( wxFrame* frame,
|
||||
const wxString& LibPath,
|
||||
const wxString& DocName );
|
||||
int KeyWordOk( const wxString& KeyList,
|
||||
const wxString& Database );
|
||||
|
||||
/** Function GetAssociatedDocument
|
||||
* open a document (file) with the suitable browser
|
||||
* @param aFrame = main frame
|
||||
* @param aDocName = filename of file to open (Full filename or short filename)
|
||||
* if DocName is starting by http: or ftp: or www. the default internet browser is launched
|
||||
* @param aPaths = a wxPathList to explore.
|
||||
* if NULL or aDocName is a full filename, aPath is not used.
|
||||
*/
|
||||
bool GetAssociatedDocument( wxFrame* aFrame,
|
||||
const wxString& aDocName,
|
||||
const wxPathList* aPaths = NULL );
|
||||
|
||||
|
||||
#endif /* __INCLUDE__EDA_DOC_H__ */
|
||||
|
|
|
@ -1032,7 +1032,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
wxString msg = FindKicadHelpPath();
|
||||
msg += cfg->Read( wxT( "module_doc_file" ),
|
||||
wxT( "pcbnew/footprints.pdf" ) );
|
||||
GetAssociatedDocument( this, wxEmptyString, msg );
|
||||
GetAssociatedDocument( this, msg );
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
Loading…
Reference in New Issue