Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
e7ea0480
Commit
e7ea0480
authored
Apr 16, 2014
by
Maciej Suminski
Browse files
Options
Browse Files
Download
Plain Diff
Upstream merge.
parents
bff37e50
8e6713ca
Changes
72
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
72 changed files
with
1184 additions
and
4441 deletions
+1184
-4441
CMakeLists.txt
CMakeLists.txt
+3
-3
CMakeLists.txt
common/CMakeLists.txt
+2
-0
basicframe.cpp
common/basicframe.cpp
+36
-29
eda_doc.cpp
common/eda_doc.cpp
+10
-5
findkicadhelppath.cpp.notused
common/findkicadhelppath.cpp.notused
+126
-0
fp_lib_table.cpp
common/fp_lib_table.cpp
+24
-162
gestfich.cpp
common/gestfich.cpp
+86
-200
kiface_i.cpp
common/kiface_i.cpp
+5
-85
page_layout_reader.cpp
common/page_layout/page_layout_reader.cpp
+3
-3
pgm_base.cpp
common/pgm_base.cpp
+30
-23
project.cpp
common/project.cpp
+42
-19
search_stack.cpp
common/search_stack.cpp
+0
-25
searchhelpfilefullpath.cpp
common/searchhelpfilefullpath.cpp
+128
-0
single_top.cpp
common/single_top.cpp
+39
-4
autosel.cpp
cvpcb/autosel.cpp
+1
-1
cfg.cpp
cvpcb/cfg.cpp
+8
-13
class_DisplayFootprintsFrame.cpp
cvpcb/class_DisplayFootprintsFrame.cpp
+1
-1
cvframe.cpp
cvpcb/cvframe.cpp
+1
-8
readwrite_dlgs.cpp
cvpcb/readwrite_dlgs.cpp
+378
-8
class_libentry.cpp
eeschema/class_libentry.cpp
+1
-1
class_library.cpp
eeschema/class_library.cpp
+2
-2
dialog_bom.cpp
eeschema/dialogs/dialog_bom.cpp
+1
-1
eelibs_read_libraryfiles.cpp
eeschema/eelibs_read_libraryfiles.cpp
+1
-1
eeschema_config.cpp
eeschema/eeschema_config.cpp
+5
-5
eeschema_config.h
eeschema/eeschema_config.h
+0
-3
netform.cpp
eeschema/netform.cpp
+1
-1
schframe.cpp
eeschema/schframe.cpp
+1
-1
symbedit.cpp
eeschema/symbedit.cpp
+2
-2
bin_mod.h
include/bin_mod.h
+2
-0
common.h
include/common.h
+21
-0
config_params.h
include/config_params.h
+11
-0
fp_lib_table.h
include/fp_lib_table.h
+16
-13
fpid.h
include/fpid.h
+0
-1
gestfich.h
include/gestfich.h
+0
-22
kiface_i.h
include/kiface_i.h
+5
-21
pgm_base.h
include/pgm_base.h
+3
-9
project.h
include/project.h
+0
-9
ptree.h
include/ptree.h
+1
-1
search_stack.h
include/search_stack.h
+0
-24
wxstruct.h
include/wxstruct.h
+9
-0
kicad.h
kicad/kicad.h
+5
-0
mainframe.cpp
kicad/mainframe.cpp
+12
-9
pgm_kicad.h
kicad/pgm_kicad.h
+2
-0
tree_project_frame.cpp
kicad/tree_project_frame.cpp
+2
-3
sch_dir_lib_source.cpp
new/sch_dir_lib_source.cpp
+1
-1
test_sch_lib_table.cpp
new/test_sch_lib_table.cpp
+1
-1
page_layout_writer.cpp
pagelayout_editor/page_layout_writer.cpp
+2
-2
datafile_read_write.cpp
pcb_calculator/datafile_read_write.cpp
+8
-5
CMakeLists.txt
pcbnew/CMakeLists.txt
+48
-46
class_netclass.cpp
pcbnew/class_netclass.cpp
+1
-1
class_netclass.h
pcbnew/class_netclass.h
+1
-1
clean.cpp
pcbnew/clean.cpp
+44
-62
dialog_netlist.cpp
pcbnew/dialogs/dialog_netlist.cpp
+2
-2
export_idf.cpp
pcbnew/exporters/export_idf.cpp
+1
-1
gen_modules_placefile.cpp
pcbnew/exporters/gen_modules_placefile.cpp
+1
-1
files.cpp
pcbnew/files.cpp
+2
-2
github_plugin.cpp
pcbnew/github/github_plugin.cpp
+1
-1
io_mgr.h
pcbnew/io_mgr.h
+1
-1
ioascii.cpp.notused
pcbnew/ioascii.cpp.notused
+0
-1260
item_io.cpp.notused
pcbnew/item_io.cpp.notused
+0
-2266
librairi.cpp
pcbnew/librairi.cpp
+10
-10
loadcmp.cpp
pcbnew/loadcmp.cpp
+5
-29
moduleframe.cpp
pcbnew/moduleframe.cpp
+2
-2
netlist.cpp
pcbnew/netlist.cpp
+1
-1
pcbnew.cpp
pcbnew/pcbnew.cpp
+2
-3
pcbnew_config.cpp
pcbnew/pcbnew_config.cpp
+3
-6
pcbnew_config.h
pcbnew/pcbnew_config.h
+1
-5
specctra_export.cpp
pcbnew/specctra_export.cpp
+2
-2
specctra_import.cpp
pcbnew/specctra_import.cpp
+7
-6
specctra_test.cpp
pcbnew/specctra_test.cpp
+1
-1
kicad-install.sh
scripts/kicad-install.sh
+9
-4
property_tree.cpp
tools/property_tree.cpp
+1
-1
No files found.
CMakeLists.txt
View file @
e7ea0480
...
@@ -364,13 +364,13 @@ check_find_package_result( OPENGL_FOUND "OpenGL" )
...
@@ -364,13 +364,13 @@ check_find_package_result( OPENGL_FOUND "OpenGL" )
# https://www.mail-archive.com/cmake@cmake.org/msg47501.html
# https://www.mail-archive.com/cmake@cmake.org/msg47501.html
# Handle target used to specify if a target needs wx-widgets or other libraries
# Handle target used to specify if a target needs wx-widgets or other libraries
# Always defined, empty if no libraries are to be buil
d
# Always defined, empty if no libraries are to be buil
t
add_custom_target
(
lib-dependencies
)
add_custom_target
(
lib-dependencies
)
if
(
KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC
)
if
(
KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC
)
# This should be buil
d
in all cases, if swig exec is not avaiable
# This should be buil
t
in all cases, if swig exec is not avaiable
# will be impossible also enable SCRIPTING being for PCBNEW required immediatly
# will be impossible also enable SCRIPTING being for PCBNEW required immediat
e
ly
include
(
download_pcre
)
include
(
download_pcre
)
include
(
download_swig
)
include
(
download_swig
)
...
...
common/CMakeLists.txt
View file @
e7ea0480
...
@@ -172,6 +172,7 @@ set( COMMON_SRCS
...
@@ -172,6 +172,7 @@ set( COMMON_SRCS
eda_dde.cpp
eda_dde.cpp
eda_doc.cpp
eda_doc.cpp
filter_reader.cpp
filter_reader.cpp
# findkicadhelppath.cpp.notused deprecated, use searchhelpfilefullpath.cpp
gestfich.cpp
gestfich.cpp
getrunningmicrosecs.cpp
getrunningmicrosecs.cpp
grid_tricks.cpp
grid_tricks.cpp
...
@@ -189,6 +190,7 @@ set( COMMON_SRCS
...
@@ -189,6 +190,7 @@ set( COMMON_SRCS
ptree.cpp
ptree.cpp
reporter.cpp
reporter.cpp
richio.cpp
richio.cpp
searchhelpfilefullpath.cpp
search_stack.cpp
search_stack.cpp
selcolor.cpp
selcolor.cpp
systemdirsappend.cpp
systemdirsappend.cpp
...
...
common/basicframe.cpp
View file @
e7ea0480
...
@@ -271,6 +271,18 @@ wxConfigBase* EDA_BASE_FRAME::config()
...
@@ -271,6 +271,18 @@ wxConfigBase* EDA_BASE_FRAME::config()
}
}
const
SEARCH_STACK
&
EDA_BASE_FRAME
::
sys_search
()
{
return
Kiface
().
KifaceSearch
();
}
wxString
EDA_BASE_FRAME
::
help_name
()
{
return
Kiface
().
GetHelpFileName
();
}
void
EDA_BASE_FRAME
::
PrintMsg
(
const
wxString
&
text
)
void
EDA_BASE_FRAME
::
PrintMsg
(
const
wxString
&
text
)
{
{
SetStatusText
(
text
);
SetStatusText
(
text
);
...
@@ -327,33 +339,28 @@ wxString EDA_BASE_FRAME::GetFileFromHistory( int cmdId, const wxString& type,
...
@@ -327,33 +339,28 @@ wxString EDA_BASE_FRAME::GetFileFromHistory( int cmdId, const wxString& type,
void
EDA_BASE_FRAME
::
GetKicadHelp
(
wxCommandEvent
&
event
)
void
EDA_BASE_FRAME
::
GetKicadHelp
(
wxCommandEvent
&
event
)
{
{
wxString
msg
;
const
SEARCH_STACK
&
search
=
sys_search
()
;
/* We have to get document for beginners,
/* We have to get document for beginners,
* or the
the
full specific doc
* or the full specific doc
* if event id is wxID_INDEX, we want the document for beginners.
* if event id is wxID_INDEX, we want the document for beginners.
* else the specific doc file (its name is in Kiface().GetHelpFileName())
* else the specific doc file (its name is in Kiface().GetHelpFileName())
* The document for beginners is the same for all KiCad utilities
* The document for beginners is the same for all KiCad utilities
*/
*/
if
(
event
.
GetId
()
==
wxID_INDEX
)
if
(
event
.
GetId
()
==
wxID_INDEX
)
{
{
// Temporarily change the help filename
wxString
tmp
=
Kiface
().
GetHelpFileName
();
// Search for "getting_started_in_kicad.pdf" or "Getting_Started_in_KiCad.pdf"
// Search for "getting_started_in_kicad.pdf" or "Getting_Started_in_KiCad.pdf"
Kiface
().
SetHelpFileName
(
wxT
(
"getting_started_in_kicad.pdf"
)
);
wxString
helpFile
=
SearchHelpFileFullPath
(
search
,
wxT
(
"getting_started_in_kicad.pdf"
)
);
wxString
helpFile
=
Kiface
().
GetHelpFile
();
if
(
!
helpFile
)
if
(
!
helpFile
)
{
// Try to find "Getting_Started_in_KiCad.pdf"
helpFile
=
SearchHelpFileFullPath
(
search
,
wxT
(
"Getting_Started_in_KiCad.pdf"
)
);
Kiface
().
SetHelpFileName
(
wxT
(
"Getting_Started_in_KiCad.pdf"
)
);
helpFile
=
Kiface
().
GetHelpFile
();
}
if
(
!
helpFile
)
if
(
!
helpFile
)
{
{
msg
.
Printf
(
_
(
"Help file %s could not be found."
),
wxString
msg
=
wxString
::
Format
(
_
(
GetChars
(
Kiface
().
GetHelpFileName
()
)
);
"Help file '%s' could not be found."
),
wxT
(
"getting_started_in_kicad.pdf"
)
);
wxMessageBox
(
msg
);
wxMessageBox
(
msg
);
}
}
else
else
...
@@ -361,36 +368,36 @@ void EDA_BASE_FRAME::GetKicadHelp( wxCommandEvent& event )
...
@@ -361,36 +368,36 @@ void EDA_BASE_FRAME::GetKicadHelp( wxCommandEvent& event )
GetAssociatedDocument
(
this
,
helpFile
);
GetAssociatedDocument
(
this
,
helpFile
);
}
}
Kiface
().
SetHelpFileName
(
tmp
);
return
;
return
;
}
}
wxString
base_name
=
help_name
();
#if defined ONLINE_HELP_FILES_FORMAT_IS_HTML
#if defined ONLINE_HELP_FILES_FORMAT_IS_HTML
if
(
Kiface
().
GetHtmlHelpController
()
==
NULL
)
wxHtmlHelpController
*
hc
=
Pgm
().
GetHtmlHelpController
();
{
Kiface
().
InitOnLineHelp
();
}
wxString
helpFile
=
SearchHelpFileFullPath
(
search
,
);
if
(
Kiface
().
GetHtmlHelpController
()
)
if
(
!!
helpFile
)
{
{
Kiface
().
GetHtmlHelpController
()
->
DisplayContents
();
hc
->
UseConfig
(
Pgm
().
CommonSettings
()
);
Kiface
().
GetHtmlHelpController
()
->
Display
(
Kiface
().
GetHelpFileName
()
);
hc
->
SetTitleFormat
(
wxT
(
"KiCad Help"
)
);
}
hc
->
AddBook
(
helpFile
);
else
{
msg
.
Printf
(
_
(
"Help file %s could not be found."
),
GetChars
(
Kiface
().
GetHelpFileName
()
)
);
wxMessageBox
(
msg
);
}
}
hc
->
DisplayContents
();
hc
->
Display
(
helpFile
);
#elif defined ONLINE_HELP_FILES_FORMAT_IS_PDF
#elif defined ONLINE_HELP_FILES_FORMAT_IS_PDF
wxString
helpFile
=
Kiface
().
GetHelpFile
(
);
wxString
helpFile
=
SearchHelpFileFullPath
(
search
,
base_name
);
if
(
!
helpFile
)
if
(
!
helpFile
)
{
{
msg
.
Printf
(
_
(
"Help file %s could not be found."
),
wxString
msg
=
wxString
::
Format
(
_
(
GetChars
(
Kiface
().
GetHelpFileName
()
)
);
"Help file '%s' could not be found."
),
GetChars
(
base_name
)
);
wxMessageBox
(
msg
);
wxMessageBox
(
msg
);
}
}
else
else
...
...
common/eda_doc.cpp
View file @
e7ea0480
...
@@ -64,15 +64,19 @@ bool GetAssociatedDocument( wxFrame* aFrame,
...
@@ -64,15 +64,19 @@ bool GetAssociatedDocument( wxFrame* aFrame,
const
wxPathList
*
aPaths
)
const
wxPathList
*
aPaths
)
{
{
wxString
docname
,
fullfilename
,
file_ext
;
wxString
docname
,
fullfilename
;
wxString
msg
;
wxString
msg
;
wxString
command
;
wxString
command
;
bool
success
=
false
;
bool
success
=
false
;
// Is an internet url
// Is an internet url
static
const
wxString
url_header
[
3
]
=
{
wxT
(
"http:"
),
wxT
(
"ftp:"
),
wxT
(
"www."
)
};
static
const
wxChar
*
url_header
[
3
]
=
{
wxT
(
"http:"
),
wxT
(
"ftp:"
),
wxT
(
"www."
)
};
for
(
int
ii
=
0
;
ii
<
3
;
ii
++
)
for
(
unsigned
ii
=
0
;
ii
<
DIM
(
url_header
)
;
ii
++
)
{
{
if
(
aDocName
.
First
(
url_header
[
ii
]
)
==
0
)
//. seems an internet url
if
(
aDocName
.
First
(
url_header
[
ii
]
)
==
0
)
//. seems an internet url
{
{
...
@@ -133,8 +137,9 @@ bool GetAssociatedDocument( wxFrame* aFrame,
...
@@ -133,8 +137,9 @@ bool GetAssociatedDocument( wxFrame* aFrame,
return
false
;
return
false
;
}
}
wxFileName
CurrentFileName
(
fullfilename
);
wxFileName
currentFileName
(
fullfilename
);
file_ext
=
CurrentFileName
.
GetExt
();
wxString
file_ext
=
currentFileName
.
GetExt
();
if
(
file_ext
==
wxT
(
"pdf"
)
)
if
(
file_ext
==
wxT
(
"pdf"
)
)
{
{
...
...
common/findkicadhelppath.cpp.notused
0 → 100644
View file @
e7ea0480
#include <fctsys.h>
#include <pgm_base.h>
#include <macros.h>
#include <gestfich.h>
/**
* Function FindKicadHelpPath
* finds the absolute path for KiCad "help" (or "help/<language>")
* Find path kicad/doc/help/xx/ or kicad/doc/help/:
* from BinDir
* else from environment variable KICAD
* else from one of s_HelpPathList
* typically c:/kicad/doc/help or /usr/share/kicad/help
* or /usr/local/share/kicad/help
* (must have kicad in path name)
*
* xx = iso639-1 language id (2 letters (generic) or 4 letters):
* fr = french (or fr_FR)
* en = English (or en_GB or en_US ...)
* de = deutch
* es = spanish
* pt = portuguese (or pt_BR ...)
*
* default = en (if not found = fr)
*/
wxString FindKicadHelpPath()
{
bool found = false;
wxString bin_dir = Pgm().GetExecutablePath();
if( bin_dir.Last() == '/' )
bin_dir.RemoveLast();
wxString fullPath = bin_dir.BeforeLast( '/' ); // cd ..
fullPath += wxT( "/doc/help/" );
wxString localeString = Pgm().GetLocale()->GetCanonicalName();
wxString path_tmp = fullPath;
#ifdef __WINDOWS__
path_tmp.MakeLower();
#endif
if( path_tmp.Contains( wxT( "kicad" ) ) )
{
if( wxDirExists( fullPath ) )
found = true;
}
// find kicad/help/ from environment variable KICAD
if( !found && Pgm().IsKicadEnvVariableDefined() )
{
fullPath = Pgm().GetKicadEnvVariable() + wxT( "/doc/help/" );
if( wxDirExists( fullPath ) )
found = true;
}
if( !found )
{
// Possibilities online help
const static wxChar* possibilities[] = {
#ifdef __WINDOWS__
wxT( "c:/kicad/doc/help/" ),
wxT( "d:/kicad/doc/help/" ),
wxT( "c:/Program Files/kicad/doc/help/" ),
wxT( "d:/Program Files/kicad/doc/help/" ),
#else
wxT( "/usr/share/doc/kicad/help/" ),
wxT( "/usr/local/share/doc/kicad/help/" ),
wxT( "/usr/local/kicad/doc/help/" ), // default install for "universal
// tarballs" and build for a server
// (new)
wxT( "/usr/local/kicad/help/" ), // default install for "universal
// tarballs" and build for a server
// (old)
#endif
};
for( unsigned i=0; i<DIM(possibilities); ++i )
{
fullPath = possibilities[i];
if( wxDirExists( fullPath ) )
{
found = true;
break;
}
}
}
if( found )
{
wxString langFullPath = fullPath + localeString + UNIX_STRING_DIR_SEP;
if( wxDirExists( langFullPath ) )
return langFullPath;
langFullPath = fullPath + localeString.Left( 2 ) + UNIX_STRING_DIR_SEP;
if( wxDirExists( langFullPath ) )
return langFullPath;
langFullPath = fullPath + wxT( "en/" );
if( wxDirExists( langFullPath ) )
{
return langFullPath;
}
else
{
langFullPath = fullPath + wxT( "fr/" );
if( wxDirExists( langFullPath ) )
return langFullPath;
}
return fullPath;
}
return wxEmptyString;
}
common/fp_lib_table.cpp
View file @
e7ea0480
...
@@ -622,8 +622,6 @@ const FP_LIB_TABLE::ROW* FP_LIB_TABLE::FindRow( const wxString& aNickname )
...
@@ -622,8 +622,6 @@ const FP_LIB_TABLE::ROW* FP_LIB_TABLE::FindRow( const wxString& aNickname )
// wxGetenv( wchar_t* ) is not re-entrant on linux.
// wxGetenv( wchar_t* ) is not re-entrant on linux.
// Put a lock on multithreaded use of wxGetenv( wchar_t* ), called from wxEpandEnvVars(),
// Put a lock on multithreaded use of wxGetenv( wchar_t* ), called from wxEpandEnvVars(),
// needed by bool ReadFootprintFiles( FP_LIB_TABLE* aTable, const wxString* aNickname = NULL );
// needed by bool ReadFootprintFiles( FP_LIB_TABLE* aTable, const wxString* aNickname = NULL );
#if 1
#include <ki_mutex.h>
#include <ki_mutex.h>
const
wxString
FP_LIB_TABLE
::
ExpandSubstitutions
(
const
wxString
&
aString
)
const
wxString
FP_LIB_TABLE
::
ExpandSubstitutions
(
const
wxString
&
aString
)
...
@@ -637,177 +635,44 @@ const wxString FP_LIB_TABLE::ExpandSubstitutions( const wxString& aString )
...
@@ -637,177 +635,44 @@ const wxString FP_LIB_TABLE::ExpandSubstitutions( const wxString& aString )
return
wxExpandEnvVars
(
aString
);
return
wxExpandEnvVars
(
aString
);
}
}
#else
const
wxString
FP_LIB_TABLE
::
ExpandSubstitutions
(
const
wxString
&
aString
)
{
// We reserve the right to do this another way, by providing our own member
// function.
return
wxExpandEnvVars
(
aString
);
}
#endif
bool
FP_LIB_TABLE
::
IsEmpty
(
bool
aIncludeFallback
)
bool
FP_LIB_TABLE
::
IsEmpty
(
bool
aIncludeFallback
)
{
{
if
(
!
aIncludeFallback
||
(
fallBack
==
NULL
)
)
if
(
!
aIncludeFallback
||
!
fallBack
)
return
rows
.
empty
();
return
rows
.
empty
();
return
fallBack
->
IsEmpty
()
&&
rows
.
empty
(
);
return
rows
.
empty
()
&&
fallBack
->
IsEmpty
(
true
);
}
}
bool
FP_LIB_TABLE
::
ConvertFromLegacy
(
SEARCH_STACK
&
aSStack
,
NETLIST
&
aNetList
,
MODULE
*
FP_LIB_TABLE
::
FootprintLoadWithOptionalNickname
(
const
FPID
&
aFootprintId
)
const
wxArrayString
&
aLibNames
,
REPORTER
*
aReporter
)
throw
(
IO
_ERROR
)
throw
(
IO_ERROR
,
PARSE
_ERROR
)
{
{
wxString
msg
;
wxString
nickname
=
aFootprintId
.
GetLibNickname
();
FPID
lastFPID
;
wxString
fpname
=
aFootprintId
.
GetFootprintName
();
COMPONENT
*
component
;
MODULE
*
module
=
0
;
bool
retv
=
true
;
if
(
aNetList
.
IsEmpty
()
)
return
true
;
aNetList
.
SortByFPID
();
wxString
libPath
;
PLUGIN
::
RELEASER
pi
(
IO_MGR
::
PluginFind
(
IO_MGR
::
LEGACY
)
);
for
(
unsigned
ii
=
0
;
ii
<
aNetList
.
GetCount
();
ii
++
)
if
(
nickname
.
size
()
)
{
{
component
=
aNetList
.
GetComponent
(
ii
);
return
FootprintLoad
(
nickname
,
fpname
);
}
// The footprint hasn't been assigned yet so ignore it.
if
(
component
->
GetFPID
().
empty
()
)
continue
;
if
(
component
->
GetFPID
()
!=
lastFPID
)
{
module
=
NULL
;
for
(
unsigned
ii
=
0
;
ii
<
aLibNames
.
GetCount
();
ii
++
)
{
wxFileName
fn
(
wxEmptyString
,
aLibNames
[
ii
],
LegacyFootprintLibPathExtension
);
libPath
=
aSStack
.
FindValidPath
(
fn
);
if
(
!
libPath
)
{
if
(
aReporter
)
{
msg
.
Printf
(
_
(
"Cannot find footprint library file '%s' in any of the "
"KiCad legacy library search paths.
\n
"
),
GetChars
(
fn
.
GetFullPath
()
)
);
aReporter
->
Report
(
msg
);
}
retv
=
false
;
continue
;
}
module
=
pi
->
FootprintLoad
(
libPath
,
component
->
GetFPID
().
GetFootprintName
()
);
if
(
module
)
// nickname is empty, sequentially search (alphabetically) all libs/nicks for first match:
{
else
lastFPID
=
component
->
GetFPID
();
{
break
;
std
::
vector
<
wxString
>
nicks
=
GetLogicalLibs
();
}
}
}
if
(
!
module
)
// Search each library going through libraries alphabetically.
for
(
unsigned
i
=
0
;
i
<
nicks
.
size
();
++
i
)
{
{
if
(
aReporter
)
// FootprintLoad() returns NULL on not found, does not throw exception
{
// unless there's an IO_ERROR.
msg
.
Printf
(
_
(
"Component `%s` footprint '%s' was not found in any legacy "
MODULE
*
ret
=
FootprintLoad
(
nicks
[
i
],
fpname
);
"library.
\n
"
),
if
(
ret
)
GetChars
(
component
->
GetReference
()
),
return
ret
;
GetChars
(
component
->
GetFPID
().
Format
()
)
);
aReporter
->
Report
(
msg
);
}
// Clear the footprint assignment since the old library lookup method is no
// longer valid.
FPID
emptyFPID
;
component
->
SetFPID
(
emptyFPID
);
retv
=
false
;
continue
;
}
}
else
{
wxString
libNickname
;
FP_LIB_TABLE
*
cur
=
this
;
do
{
cur
->
ensureIndex
();
for
(
unsigned
i
=
0
;
i
<
cur
->
rows
.
size
();
i
++
)
{
wxString
uri
=
cur
->
rows
[
i
].
GetFullURI
(
true
);
if
(
wxFileName
::
GetPathSeparator
()
==
wxChar
(
'\\'
)
&&
uri
.
Find
(
wxChar
(
'/'
)
)
>=
0
)
{
uri
.
Replace
(
wxT
(
"/"
),
wxT
(
"
\\
"
)
);
}
#ifdef __WINDOWS__
if
(
uri
.
CmpNoCase
(
libPath
)
)
#else
if
(
uri
==
libPath
)
#endif
{
libNickname
=
cur
->
rows
[
i
].
GetNickName
();
break
;
}
}
}
while
(
(
cur
=
cur
->
fallBack
)
!=
0
&&
libNickname
.
IsEmpty
()
);
if
(
libNickname
.
IsEmpty
()
)
return
NULL
;
{
if
(
aReporter
)
{
msg
.
Printf
(
_
(
"Component '%s' footprint '%s' legacy library path '%s' "
"was not found in the footprint library table.
\n
"
),
GetChars
(
component
->
GetReference
()
),
GetChars
(
component
->
GetFPID
().
Format
()
)
);
aReporter
->
Report
(
msg
);
}
retv
=
false
;
}
else
{
FPID
newFPID
=
lastFPID
;
newFPID
.
SetLibNickname
(
libNickname
);
if
(
!
newFPID
.
IsValid
()
)
{
if
(
aReporter
)
{
msg
.
Printf
(
_
(
"Component '%s' FPID '%s' is not valid.
\n
"
),
GetChars
(
component
->
GetReference
()
),
GetChars
(
newFPID
.
Format
()
)
);
aReporter
->
Report
(
msg
);
}
retv
=
false
;
}
else
{
// The footprint name should already be set.
component
->
SetFPID
(
newFPID
);
}
}
}
}
}
return
retv
;
}
}
...
@@ -839,17 +704,14 @@ bool FP_LIB_TABLE::LoadGlobalTable( FP_LIB_TABLE& aTable ) throw (IO_ERROR, PARS
...
@@ -839,17 +704,14 @@ bool FP_LIB_TABLE::LoadGlobalTable( FP_LIB_TABLE& aTable ) throw (IO_ERROR, PARS
// The fallback is to create an empty global footprint table for the user to populate.
// The fallback is to create an empty global footprint table for the user to populate.
if
(
fileName
.
IsEmpty
()
||
!::
wxCopyFile
(
fileName
,
fn
.
GetFullPath
(),
false
)
)
if
(
fileName
.
IsEmpty
()
||
!::
wxCopyFile
(
fileName
,
fn
.
GetFullPath
(),
false
)
)
{
{
FP_LIB_TABLE
emptyTable
;
FP_LIB_TABLE
emptyTable
;
FILE_OUTPUTFORMATTER
sf
(
fn
.
GetFullPath
()
);
emptyTable
.
Format
(
&
sf
,
0
);
emptyTable
.
Save
(
fn
.
GetFullPath
()
);
}
}
}
}
FILE_LINE_READER
reader
(
fn
.
GetFullPath
()
);
aTable
.
Load
(
fn
.
GetFullPath
()
);
FP_LIB_TABLE_LEXER
lexer
(
&
reader
);
aTable
.
Parse
(
&
lexer
);
return
tableExists
;
return
tableExists
;
}
}
...
...
common/gestfich.cpp
View file @
e7ea0480
This diff is collapsed.
Click to expand it.
common/kiface_i.cpp
View file @
e7ea0480
...
@@ -55,10 +55,11 @@ static void setSearchPaths( SEARCH_STACK* aDst, KIWAY::FACE_T aId )
...
@@ -55,10 +55,11 @@ static void setSearchPaths( SEARCH_STACK* aDst, KIWAY::FACE_T aId )
// we must add <kicad path>/library and <kicad path>/library/doc
// we must add <kicad path>/library and <kicad path>/library/doc
if
(
aId
==
KIWAY
::
FACE_SCH
)
if
(
aId
==
KIWAY
::
FACE_SCH
)
{
{
// Add schematic doc file path (library/doc) to search path list.
fn
.
AppendDir
(
wxT
(
"library"
)
);
fn
.
AppendDir
(
wxT
(
"library"
)
);
aDst
->
AddPaths
(
fn
.
GetPath
()
);
aDst
->
AddPaths
(
fn
.
GetPath
()
);
// Add schematic doc file path (library/doc)to search path list.
fn
.
AppendDir
(
wxT
(
"doc"
)
);
fn
.
AppendDir
(
wxT
(
"doc"
)
);
aDst
->
AddPaths
(
fn
.
GetPath
()
);
aDst
->
AddPaths
(
fn
.
GetPath
()
);
...
@@ -85,8 +86,10 @@ static void setSearchPaths( SEARCH_STACK* aDst, KIWAY::FACE_T aId )
...
@@ -85,8 +86,10 @@ static void setSearchPaths( SEARCH_STACK* aDst, KIWAY::FACE_T aId )
aDst
->
AddPaths
(
fn
.
GetPath
()
);
aDst
->
AddPaths
(
fn
.
GetPath
()
);
}
}
aDst
->
AddPaths
(
wxT
(
"/usr/local/share"
)
);
#if 1 && defined(DEBUG)
#if 1 && defined(DEBUG)
aDst
->
Show
(
"ki
way
"
);
aDst
->
Show
(
"ki
face
"
);
#endif
#endif
}
}
...
@@ -121,86 +124,3 @@ void KIFACE_I::end_common()
...
@@ -121,86 +124,3 @@ void KIFACE_I::end_common()
m_bm
.
End
();
m_bm
.
End
();
}
}
wxString
KIFACE_I
::
GetHelpFile
()
{
wxString
fn
;
wxArrayString
subdirs
;
wxArrayString
altsubdirs
;
// FIXME: This is not the ideal way to handle this. Unfortunately, the
// CMake install paths seem to be a moving target so this crude
// hack solves the problem of install path differences between
// Windows and non-Windows platforms.
// Partially fixed, but must be enhanced
// Create subdir tree for "standard" linux distributions, when KiCad comes
// from a distribution files are in /usr/share/doc/kicad/help and binaries
// in /usr/bin or /usr/local/bin
subdirs
.
Add
(
wxT
(
"share"
)
);
subdirs
.
Add
(
wxT
(
"doc"
)
);
subdirs
.
Add
(
wxT
(
"kicad"
)
);
subdirs
.
Add
(
wxT
(
"help"
)
);
// Create subdir tree for linux and Windows KiCad pack.
// Note the pack form under linux is also useful if a user wants to
// install KiCad to a server because there is only one path to mount
// or export (something like /usr/local/kicad).
// files are in <install dir>/kicad/doc/help
// (often /usr/local/kicad/kicad/doc/help)
// <install dir>/kicad/ is retrieved from m_BinDir
altsubdirs
.
Add
(
wxT
(
"doc"
)
);
altsubdirs
.
Add
(
wxT
(
"help"
)
);
/* Search for a help file.
* we *must* find a help file.
* so help is searched in directories in this order:
* help/<canonical name> like help/en_GB
* help/<short name> like help/en
* help/en
*/
wxLocale
*
i18n
=
Pgm
().
GetLocale
();
// Step 1 : Try to find help file in help/<canonical name>
subdirs
.
Add
(
i18n
->
GetCanonicalName
()
);
altsubdirs
.
Add
(
i18n
->
GetCanonicalName
()
);
fn
=
m_bm
.
m_search
.
FindFileInSearchPaths
(
m_bm
.
m_help_file
,
&
altsubdirs
);
if
(
!
fn
)
fn
=
m_bm
.
m_search
.
FindFileInSearchPaths
(
m_bm
.
m_help_file
,
&
subdirs
);
// Step 2 : if not found Try to find help file in help/<short name>
if
(
!
fn
)
{
subdirs
.
RemoveAt
(
subdirs
.
GetCount
()
-
1
);
altsubdirs
.
RemoveAt
(
altsubdirs
.
GetCount
()
-
1
);
// wxLocale::GetName() does not return always the short name
subdirs
.
Add
(
i18n
->
GetName
().
BeforeLast
(
'_'
)
);
altsubdirs
.
Add
(
i18n
->
GetName
().
BeforeLast
(
'_'
)
);
fn
=
m_bm
.
m_search
.
FindFileInSearchPaths
(
m_bm
.
m_help_file
,
&
altsubdirs
);
if
(
!
fn
)
fn
=
m_bm
.
m_search
.
FindFileInSearchPaths
(
m_bm
.
m_help_file
,
&
subdirs
);
}
// Step 3 : if not found Try to find help file in help/en
if
(
!
fn
)
{
subdirs
.
RemoveAt
(
subdirs
.
GetCount
()
-
1
);
altsubdirs
.
RemoveAt
(
altsubdirs
.
GetCount
()
-
1
);
subdirs
.
Add
(
wxT
(
"en"
)
);
altsubdirs
.
Add
(
wxT
(
"en"
)
);
fn
=
m_bm
.
m_search
.
FindFileInSearchPaths
(
m_bm
.
m_help_file
,
&
altsubdirs
);
if
(
!
fn
)
fn
=
m_bm
.
m_search
.
FindFileInSearchPaths
(
m_bm
.
m_help_file
,
&
subdirs
);
}
return
fn
;
}
common/page_layout/page_layout_reader.cpp
View file @
e7ea0480
...
@@ -744,7 +744,7 @@ void WORKSHEET_LAYOUT::SetDefaultLayout()
...
@@ -744,7 +744,7 @@ void WORKSHEET_LAYOUT::SetDefaultLayout()
{
{
lp_parser
.
Parse
(
this
);
lp_parser
.
Parse
(
this
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
wxLogMessage
(
ioe
.
errorText
);
wxLogMessage
(
ioe
.
errorText
);
}
}
...
@@ -765,7 +765,7 @@ void WORKSHEET_LAYOUT::SetPageLayout( const char* aPageLayout, bool Append )
...
@@ -765,7 +765,7 @@ void WORKSHEET_LAYOUT::SetPageLayout( const char* aPageLayout, bool Append )
{
{
lp_parser
.
Parse
(
this
);
lp_parser
.
Parse
(
this
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
wxLogMessage
(
ioe
.
errorText
);
wxLogMessage
(
ioe
.
errorText
);
}
}
...
@@ -828,7 +828,7 @@ void WORKSHEET_LAYOUT::SetPageLayout( const wxString& aFullFileName, bool Append
...
@@ -828,7 +828,7 @@ void WORKSHEET_LAYOUT::SetPageLayout( const wxString& aFullFileName, bool Append
{
{
lp_parser
.
Parse
(
this
);
lp_parser
.
Parse
(
this
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
wxLogMessage
(
ioe
.
errorText
);
wxLogMessage
(
ioe
.
errorText
);
}
}
...
...
common/pgm_base.cpp
View file @
e7ea0480
...
@@ -297,6 +297,13 @@ void PGM_BASE::destroy()
...
@@ -297,6 +297,13 @@ void PGM_BASE::destroy()
delete
m_locale
;
delete
m_locale
;
m_locale
=
0
;
m_locale
=
0
;
/*
// Close the help frame
if( m_html_ctrl && m_html_ctrl->GetFrame() ) // returns NULL if no help frame active
m_html_ctrl->GetFrame()->Close( true );
}
*/
delete
m_html_ctrl
;
delete
m_html_ctrl
;
m_html_ctrl
=
0
;
m_html_ctrl
=
0
;
}
}
...
@@ -415,30 +422,18 @@ bool PGM_BASE::initPgm()
...
@@ -415,30 +422,18 @@ bool PGM_BASE::initPgm()
}
}
void
PGM_BASE
::
SetHtmlHelpController
(
wxHtmlHelpController
*
aController
)
void
PGM_BASE
::
initHtmlHelpController
(
)
{
{
delete
m_html_ctrl
;
m_html_ctrl
=
aController
;
}
void
PGM_BASE
::
InitOnLineHelp
()
{
wxString
fullfilename
=
FindKicadHelpPath
();
#if defined ONLINE_HELP_FILES_FORMAT_IS_HTML
#if defined ONLINE_HELP_FILES_FORMAT_IS_HTML
m_HelpFileName
=
fullfilename
+
wxT
(
".html"
);
fullfilename
+=
wxT
(
"kicad.hhp"
);
if
(
wxFileExists
(
fullfilename
)
)
if
(
!
m_html_ctrl
)
{
m_html_ctrl
=
new
wxHtmlHelpController
(
m_html_ctrl
=
new
wxHtmlHelpController
(
wxHF_TOOLBAR
|
wxHF_CONTENTS
|
wxHF_TOOLBAR
|
wxHF_CONTENTS
|
wxHF_PRINT
|
wxHF_OPEN_FILES
wxHF_PRINT
|
wxHF_OPEN_FILES
/*| wxHF_SEARCH */
);
// | wxHF_SEARCH
m_html_ctrl
->
UseConfig
(
m_common_settings
);
);
m_html_ctrl
->
SetTitleFormat
(
wxT
(
"KiCad Help"
)
);
m_html_ctrl
->
AddBook
(
fullfilename
);
wxASSERT
(
m_html_ctrl
);
// may not leave here as NULL
}
#elif defined ONLINE_HELP_FILES_FORMAT_IS_PDF
#elif defined ONLINE_HELP_FILES_FORMAT_IS_PDF
m_html_ctrl
=
NULL
;
m_html_ctrl
=
NULL
;
...
@@ -449,10 +444,22 @@ void PGM_BASE::InitOnLineHelp()
...
@@ -449,10 +444,22 @@ void PGM_BASE::InitOnLineHelp()
}
}
wxHtmlHelpController
*
PGM_BASE
::
HtmlHelpController
()
{
if
(
!
m_html_ctrl
)
initHtmlHelpController
();
// there should not be calls to this unless ONLINE_HELP_FILES_FORMAT_IS_HTML is defined
wxASSERT
(
m_html_ctrl
);
return
m_html_ctrl
;
}
bool
PGM_BASE
::
setExecutablePath
()
bool
PGM_BASE
::
setExecutablePath
()
{
{
// Apple MacOSx
#ifdef __APPLE__ // Apple MacOSx
#ifdef __APPLE__
// Derive path from location of the app bundle
// Derive path from location of the app bundle
CFBundleRef
mainBundle
=
CFBundleGetMainBundle
();
CFBundleRef
mainBundle
=
CFBundleGetMainBundle
();
...
...
common/project.cpp
View file @
e7ea0480
...
@@ -23,18 +23,19 @@
...
@@ -23,18 +23,19 @@
*/
*/
#include <wx/stdpaths.h>
#include <fctsys.h>
#include <fctsys.h>
#include <macros.h>
#include <macros.h>
#include <gr_basic.h>
#include <gr_basic.h>
#include <pgm_base.h>
#include <pgm_base.h>
#include <project.h>
#include <project.h>
#include <
wx/stdpaths
.h>
#include <
confirm
.h>
#include <kicad_string.h>
#include <kicad_string.h>
#include <config_params.h>
#include <config_params.h>
#include <wildcards_and_files_ext.h>
#include <wildcards_and_files_ext.h>
PROJECT
::
PROJECT
()
PROJECT
::
PROJECT
()
{
{
memset
(
m_elems
,
0
,
sizeof
(
m_elems
)
);
memset
(
m_elems
,
0
,
sizeof
(
m_elems
)
);
...
@@ -198,18 +199,18 @@ wxConfigBase* PROJECT::configCreate( const SEARCH_STACK& aSList, const wxString&
...
@@ -198,18 +199,18 @@ wxConfigBase* PROJECT::configCreate( const SEARCH_STACK& aSList, const wxString&
const
wxString
&
aGroupName
,
bool
aForceUseLocalConfig
)
const
wxString
&
aGroupName
,
bool
aForceUseLocalConfig
)
{
{
wxConfigBase
*
cfg
=
0
;
wxConfigBase
*
cfg
=
0
;
wxFileName
fn
=
aFileName
;
wxFileName
fn
=
aFileName
;
fn
.
SetExt
(
ProjectFileExtension
);
fn
.
SetExt
(
ProjectFileExtension
);
wxString
cur_pro_fn
=
fn
.
GetFullPath
();
// is there an edge transition, a change in m_project_filename?
// is there an edge transition, a change in m_project_filename?
if
(
m_project_name
!=
fn
)
if
(
m_project_name
!=
cur_pro_
fn
)
{
{
m_sch_search
.
Clear
();
m_sch_search
.
Clear
();
SetProjectFullName
(
fn
.
GetFullPath
()
);
// to the empty lists, add project dir as first
// to the empty list, add project dir as first
m_sch_search
.
AddPaths
(
fn
.
GetPath
()
);
m_sch_search
.
AddPaths
(
fn
.
GetPath
()
);
// append all paths from aSList
// append all paths from aSList
...
@@ -228,8 +229,6 @@ wxConfigBase* PROJECT::configCreate( const SEARCH_STACK& aSList, const wxString&
...
@@ -228,8 +229,6 @@ wxConfigBase* PROJECT::configCreate( const SEARCH_STACK& aSList, const wxString&
// Init local config filename
// Init local config filename
if
(
aForceUseLocalConfig
||
fn
.
FileExists
()
)
if
(
aForceUseLocalConfig
||
fn
.
FileExists
()
)
{
{
wxString
cur_pro_fn
=
fn
.
GetFullPath
();
cfg
=
new
wxFileConfig
(
wxEmptyString
,
wxEmptyString
,
cur_pro_fn
,
wxEmptyString
);
cfg
=
new
wxFileConfig
(
wxEmptyString
,
wxEmptyString
,
cur_pro_fn
,
wxEmptyString
);
cfg
->
DontCreateOnDemand
();
cfg
->
DontCreateOnDemand
();
...
@@ -262,31 +261,43 @@ wxConfigBase* PROJECT::configCreate( const SEARCH_STACK& aSList, const wxString&
...
@@ -262,31 +261,43 @@ wxConfigBase* PROJECT::configCreate( const SEARCH_STACK& aSList, const wxString&
}
}
else
// Version incorrect
else
// Version incorrect
{
{
wxLogDebug
(
wxT
(
"Project file version is zero, not using this old project file, going with template."
)
);
delete
cfg
;
delete
cfg
;
cfg
=
0
;
cfg
=
0
;
}
}
}
}
// Search for the template kicad.pro file by using caller's SEARCH_STACK.
// No suitable pro file was found, either does not exist, or is too old.
// Use the template kicad.pro file. Find it by using caller's SEARCH_STACK.
wxString
kicad_pro_template
=
aSList
.
FindValidPath
(
wxT
(
"kicad.pro"
)
);
wxString
kicad_pro_template
=
aSList
.
FindValidPath
(
wxT
(
"kicad.pro"
)
);
if
(
!
kicad_pro_template
)
if
(
!
kicad_pro_template
)
{
{
wxLogDebug
(
wxT
(
"Template file <kicad.pro> not found."
)
);
wxLogDebug
(
wxT
(
"Template file <kicad.pro> not found
using search paths
."
)
);
fn
=
wxFileName
(
wxStandardPaths
::
Get
().
GetDocumentsDir
(),
wxFileName
templ
(
wxStandardPaths
::
Get
().
GetDocumentsDir
(),
wxT
(
"kicad"
),
ProjectFileExtension
);
wxT
(
"kicad"
),
ProjectFileExtension
);
}
else
if
(
!
templ
.
IsFileReadable
()
)
{
{
fn
=
kicad_pro_template
;
wxString
msg
=
wxString
::
Format
(
_
(
"Unable to find kicad.pro template file."
)
);
DisplayError
(
NULL
,
msg
);
return
NULL
;
}
kicad_pro_template
=
templ
.
GetFullPath
();
}
}
cfg
=
new
wxFileConfig
(
wxEmptyString
,
wxEmptyString
,
wxEmptyString
,
fn
.
GetFullPath
()
);
// copy the template to cur_pro_fn, and open it at that destination.
wxCopyFile
(
kicad_pro_template
,
cur_pro_fn
);
cfg
=
new
wxFileConfig
(
wxEmptyString
,
wxEmptyString
,
cur_pro_fn
,
wxEmptyString
);
cfg
->
DontCreateOnDemand
();
cfg
->
DontCreateOnDemand
();
SetProjectFullName
(
fn
.
GetFullPath
()
);
SetProjectFullName
(
cur_pro_fn
);
return
cfg
;
return
cfg
;
}
}
...
@@ -296,6 +307,12 @@ void PROJECT::ConfigSave( const SEARCH_STACK& aSList, const wxString& aFileName
...
@@ -296,6 +307,12 @@ void PROJECT::ConfigSave( const SEARCH_STACK& aSList, const wxString& aFileName
{
{
std
::
auto_ptr
<
wxConfigBase
>
cfg
(
configCreate
(
aSList
,
aFileName
,
aGroupName
,
FORCE_LOCAL_CONFIG
)
);
std
::
auto_ptr
<
wxConfigBase
>
cfg
(
configCreate
(
aSList
,
aFileName
,
aGroupName
,
FORCE_LOCAL_CONFIG
)
);
if
(
!
cfg
.
get
()
)
{
// could not find template
return
;
}
cfg
->
SetPath
(
wxCONFIG_PATH_SEPARATOR
);
cfg
->
SetPath
(
wxCONFIG_PATH_SEPARATOR
);
cfg
->
Write
(
wxT
(
"update"
),
DateAndTime
()
);
cfg
->
Write
(
wxT
(
"update"
),
DateAndTime
()
);
...
@@ -326,6 +343,12 @@ bool PROJECT::ConfigLoad( const SEARCH_STACK& aSList, const wxString& aFileName,
...
@@ -326,6 +343,12 @@ bool PROJECT::ConfigLoad( const SEARCH_STACK& aSList, const wxString& aFileName,
{
{
std
::
auto_ptr
<
wxConfigBase
>
cfg
(
configCreate
(
aSList
,
aFileName
,
aGroupName
,
false
)
);
std
::
auto_ptr
<
wxConfigBase
>
cfg
(
configCreate
(
aSList
,
aFileName
,
aGroupName
,
false
)
);
if
(
!
cfg
.
get
()
)
{
// could not find template
return
false
;
}
cfg
->
SetPath
(
wxCONFIG_PATH_SEPARATOR
);
cfg
->
SetPath
(
wxCONFIG_PATH_SEPARATOR
);
wxString
timestamp
=
cfg
->
Read
(
wxT
(
"update"
)
);
wxString
timestamp
=
cfg
->
Read
(
wxT
(
"update"
)
);
...
...
common/search_stack.cpp
View file @
e7ea0480
...
@@ -104,31 +104,6 @@ void SEARCH_STACK::AddPaths( const wxString& aPaths, int aIndex )
...
@@ -104,31 +104,6 @@ void SEARCH_STACK::AddPaths( const wxString& aPaths, int aIndex )
}
}
wxString
SEARCH_STACK
::
FindFileInSearchPaths
(
const
wxString
&
aFilename
,
const
wxArrayString
*
aSubdirs
)
{
wxPathList
paths
;
for
(
unsigned
i
=
0
;
i
<
GetCount
();
++
i
)
{
wxFileName
fn
(
(
*
this
)[
i
]
);
if
(
aSubdirs
)
{
for
(
unsigned
j
=
0
;
j
<
aSubdirs
->
GetCount
();
j
++
)
fn
.
AppendDir
(
(
*
aSubdirs
)[
j
]
);
}
if
(
fn
.
DirExists
()
)
{
paths
.
Add
(
fn
.
GetPath
()
);
}
}
return
paths
.
FindValidPath
(
aFilename
);
}
void
RETAINED_PATH
::
Clear
()
void
RETAINED_PATH
::
Clear
()
{
{
m_retained_path
.
Clear
();
m_retained_path
.
Clear
();
...
...
common/searchhelpfilefullpath.cpp
0 → 100644
View file @
e7ea0480
#include <pgm_base.h>
#include <common.h>
/**
* Function FindFileInSearchPaths
* looks in "this" for \a aFilename, but first modifies every search
* path by appending a list of path fragments from aSubdirs. That modification
* is not rentative.
*/
wxString
FindFileInSearchPaths
(
const
SEARCH_STACK
&
aStack
,
const
wxString
&
aFilename
,
const
wxArrayString
*
aSubdirs
)
{
wxPathList
paths
;
for
(
unsigned
i
=
0
;
i
<
aStack
.
GetCount
();
++
i
)
{
wxFileName
fn
(
aStack
[
i
],
wxEmptyString
);
if
(
aSubdirs
)
{
for
(
unsigned
j
=
0
;
j
<
aSubdirs
->
GetCount
();
j
++
)
fn
.
AppendDir
(
(
*
aSubdirs
)[
j
]
);
}
if
(
fn
.
DirExists
()
)
{
paths
.
Add
(
fn
.
GetPath
()
);
}
}
return
paths
.
FindValidPath
(
aFilename
);
}
// See also FindKicadHelpPath.cpp.notused.
wxString
SearchHelpFileFullPath
(
const
SEARCH_STACK
&
aSStack
,
const
wxString
&
aBaseName
)
{
wxArrayString
subdirs
;
wxArrayString
altsubdirs
;
SEARCH_STACK
ss
=
aSStack
;
// It might already be in aSStack, but why depend on other code
// far away when it's so easy to add it again (to our copy) as the first place to look.
// This is CMAKE_INSTALL_PREFIX:
ss
.
AddPaths
(
wxT
(
DEFAULT_INSTALL_PATH
),
0
);
// If there's a KICAD environment variable set, use that guy's path also
ss
.
AddPaths
(
Pgm
().
GetKicadEnvVariable
(),
0
);
#if 1 // && defined(__linux__)
// Based on kicad-doc.bzr/CMakeLists.txt, line 20, the help files are
// installed into "<CMAKE_INSTALL_PREFIX>/share/doc/kicad/help" for linux.
// This is ${KICAD_HELP} var in that CMakeLists.txt file.
// Below we account for an international subdirectory.
subdirs
.
Add
(
wxT
(
"share"
)
);
subdirs
.
Add
(
wxT
(
"doc"
)
);
subdirs
.
Add
(
wxT
(
"kicad"
)
);
subdirs
.
Add
(
wxT
(
"help"
)
);
#endif
#if 1 // && defined(__WINDOWS__)
// Based on kicad-doc.bzr/CMakeLists.txt, line 35, the help files are
// installed into "<CMAKE_INSTALL_PREFIX>/doc/help" for Windows.
// This is ${KICAD_HELP} var in that CMakeLists.txt file.
// Below we account for an international subdirectory.
altsubdirs
.
Add
(
wxT
(
"doc"
)
);
altsubdirs
.
Add
(
wxT
(
"help"
)
);
#endif
/* Search for a help file.
* we *must* find a help file.
* so help is searched in directories in this order:
* help/<canonical name> like help/en_GB
* help/<short name> like help/en
* help/en
*/
wxLocale
*
i18n
=
Pgm
().
GetLocale
();
// Step 1 : Try to find help file in help/<canonical name>
subdirs
.
Add
(
i18n
->
GetCanonicalName
()
);
altsubdirs
.
Add
(
i18n
->
GetCanonicalName
()
);
#if defined(DEBUG) && 0
ss
.
Show
(
__func__
);
printf
(
"%s: m_help_file:'%s'
\n
"
,
__func__
,
TO_UTF8
(
aBaseName
)
);
#endif
wxString
fn
=
FindFileInSearchPaths
(
ss
,
aBaseName
,
&
altsubdirs
);
if
(
!
fn
)
fn
=
FindFileInSearchPaths
(
ss
,
aBaseName
,
&
subdirs
);
// Step 2 : if not found Try to find help file in help/<short name>
if
(
!
fn
)
{
subdirs
.
RemoveAt
(
subdirs
.
GetCount
()
-
1
);
altsubdirs
.
RemoveAt
(
altsubdirs
.
GetCount
()
-
1
);
// wxLocale::GetName() does not return always the short name
subdirs
.
Add
(
i18n
->
GetName
().
BeforeLast
(
'_'
)
);
altsubdirs
.
Add
(
i18n
->
GetName
().
BeforeLast
(
'_'
)
);
fn
=
FindFileInSearchPaths
(
ss
,
aBaseName
,
&
altsubdirs
);
if
(
!
fn
)
fn
=
FindFileInSearchPaths
(
ss
,
aBaseName
,
&
subdirs
);
}
// Step 3 : if not found Try to find help file in help/en
if
(
!
fn
)
{
subdirs
.
RemoveAt
(
subdirs
.
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
,
&
subdirs
);
}
return
fn
;
}
common/single_top.cpp
View file @
e7ea0480
...
@@ -34,6 +34,7 @@
...
@@ -34,6 +34,7 @@
*/
*/
#include <typeinfo>
#include <macros.h>
#include <macros.h>
#include <fctsys.h>
#include <fctsys.h>
#include <wx/dynlib.h>
#include <wx/dynlib.h>
...
@@ -182,10 +183,6 @@ static const wxString dso_full_path( const wxString& aAbsoluteArgv0 )
...
@@ -182,10 +183,6 @@ static const wxString dso_full_path( const wxString& aAbsoluteArgv0 )
return
fn
.
GetFullPath
();
return
fn
.
GetFullPath
();
}
}
// Use of this is arbitrary, remember single_top only knows about a single DSO.
// Could have used one from the KIWAY also.
static
wxDynamicLibrary
dso
;
// Only a single KIWAY is supported in this single_top top level component,
// Only a single KIWAY is supported in this single_top top level component,
// which is dedicated to loading only a single DSO.
// which is dedicated to loading only a single DSO.
...
@@ -230,6 +227,32 @@ struct APP_SINGLE_TOP : public wxApp
...
@@ -230,6 +227,32 @@ struct APP_SINGLE_TOP : public wxApp
return
wxApp
::
OnExit
();
return
wxApp
::
OnExit
();
}
}
int
OnRun
()
// overload wxApp virtual
{
try
{
return
wxApp
::
OnRun
();
}
catch
(
const
std
::
exception
&
e
)
{
wxLogError
(
wxT
(
"Unhandled exception class: %s what: %s"
),
GetChars
(
FROM_UTF8
(
typeid
(
e
).
name
()
)),
GetChars
(
FROM_UTF8
(
e
.
what
()
)
)
);;
}
catch
(
const
IO_ERROR
&
ioe
)
{
wxLogError
(
wxT
(
"Unhandled exception class: %s what: %s"
),
GetChars
(
FROM_UTF8
(
typeid
(
ioe
).
name
()
)
),
GetChars
(
ioe
.
errorText
)
);
}
catch
(...)
{
wxLogError
(
wxT
(
"Unhandled exception of unknown type"
)
);
}
return
-
1
;
}
/**
/**
* Function MacOpenFile
* Function MacOpenFile
* is specific to MacOSX (not used under Linux or Windows).
* is specific to MacOSX (not used under Linux or Windows).
...
@@ -261,6 +284,15 @@ IMPLEMENT_APP( APP_SINGLE_TOP );
...
@@ -261,6 +284,15 @@ IMPLEMENT_APP( APP_SINGLE_TOP );
static
KIFACE_GETTER_FUNC
*
get_kiface_getter
(
const
wxString
&
aDSOName
)
static
KIFACE_GETTER_FUNC
*
get_kiface_getter
(
const
wxString
&
aDSOName
)
{
{
#if defined(BUILD_KIWAY_DLL)
#if defined(BUILD_KIWAY_DLL)
// Remember single_top only knows about a single DSO. Using an automatic
// with a defeated destructor, see Detach() below, so that the DSO program
// image stays in RAM until process termination, and specifically
// beyond the point in time at which static destructors are run. Otherwise
// a static wxDynamicLibrary's destructor might create an out of sequence
// problem. This was never detected, so it's only a preventative strategy.
wxDynamicLibrary
dso
;
void
*
addr
=
NULL
;
void
*
addr
=
NULL
;
if
(
!
dso
.
Load
(
aDSOName
,
wxDL_VERBATIM
|
wxDL_NOW
)
)
if
(
!
dso
.
Load
(
aDSOName
,
wxDL_VERBATIM
|
wxDL_NOW
)
)
...
@@ -275,6 +307,9 @@ static KIFACE_GETTER_FUNC* get_kiface_getter( const wxString& aDSOName )
...
@@ -275,6 +307,9 @@ static KIFACE_GETTER_FUNC* get_kiface_getter( const wxString& aDSOName )
// No further reporting required here.
// No further reporting required here.
}
}
// Tell dso's wxDynamicLibrary destructor not to Unload() the program image.
(
void
)
dso
.
Detach
();
return
(
KIFACE_GETTER_FUNC
*
)
addr
;
return
(
KIFACE_GETTER_FUNC
*
)
addr
;
#else
#else
...
...
cvpcb/autosel.cpp
View file @
e7ea0480
...
@@ -107,7 +107,7 @@ void CVPCB_MAINFRAME::AssocieModule( wxCommandEvent& event )
...
@@ -107,7 +107,7 @@ void CVPCB_MAINFRAME::AssocieModule( wxCommandEvent& event )
{
{
fn
.
SetExt
(
fn
.
GetExt
()
+
wxT
(
"."
)
+
FootprintAliasFileExtension
);
fn
.
SetExt
(
fn
.
GetExt
()
+
wxT
(
"."
)
+
FootprintAliasFileExtension
);
}
}
tmp
=
search
.
FindValidPath
(
fn
);
tmp
=
search
.
FindValidPath
(
fn
.
GetFullPath
()
);
if
(
!
tmp
)
if
(
!
tmp
)
{
{
...
...
cvpcb/cfg.cpp
View file @
e7ea0480
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
*/
*/
#include <fctsys.h>
#include <fctsys.h>
#include <
pgm_base
.h>
#include <
kiface_i
.h>
#include <fp_lib_table.h>
#include <fp_lib_table.h>
#include <id.h>
#include <id.h>
#include <common.h>
#include <common.h>
...
@@ -42,29 +42,24 @@
...
@@ -42,29 +42,24 @@
#include <class_DisplayFootprintsFrame.h>
#include <class_DisplayFootprintsFrame.h>
#define GROUP wxT("/cvpcb")
#define GROUPLIB wxT("/pcbnew/libraries")
#define GROUPEQU wxT("/cvpcb/libraries")
PARAM_CFG_ARRAY
&
CVPCB_MAINFRAME
::
GetProjectFileParameters
()
PARAM_CFG_ARRAY
&
CVPCB_MAINFRAME
::
GetProjectFileParameters
()
{
{
if
(
!
m_projectFileParams
.
empty
()
)
if
(
!
m_projectFileParams
.
empty
()
)
return
m_projectFileParams
;
return
m_projectFileParams
;
m_projectFileParams
.
push_back
(
new
PARAM_CFG_BASE
(
GROUP
LIB
,
PARAM_COMMAND_ERASE
)
);
m_projectFileParams
.
push_back
(
new
PARAM_CFG_BASE
(
GROUP
_PCB_LIBS
,
PARAM_COMMAND_ERASE
)
);
m_projectFileParams
.
push_back
(
new
PARAM_CFG_LIBNAME_LIST
(
m_projectFileParams
.
push_back
(
new
PARAM_CFG_LIBNAME_LIST
(
wxT
(
"LibName"
),
&
m_ModuleLibNames
,
GROUP
LIB
)
);
wxT
(
"LibName"
),
&
m_ModuleLibNames
,
GROUP
_PCB_LIBS
)
);
m_projectFileParams
.
push_back
(
new
PARAM_CFG_LIBNAME_LIST
(
m_projectFileParams
.
push_back
(
new
PARAM_CFG_LIBNAME_LIST
(
wxT
(
"EquName"
),
&
m_AliasLibNames
,
GROUPEQU
)
);
wxT
(
"EquName"
),
&
m_AliasLibNames
,
GROUP
_CVP_
EQU
)
);
m_projectFileParams
.
push_back
(
new
PARAM_CFG_WXSTRING
(
m_projectFileParams
.
push_back
(
new
PARAM_CFG_WXSTRING
(
wxT
(
"NetIExt"
),
&
m_NetlistFileExtension
)
);
wxT
(
"NetIExt"
),
&
m_NetlistFileExtension
)
);
m_projectFileParams
.
push_back
(
new
PARAM_CFG_FILENAME
(
m_projectFileParams
.
push_back
(
new
PARAM_CFG_FILENAME
(
wxT
(
"LibDir"
),
&
m_UserLibraryPath
,
GROUP
LIB
)
);
wxT
(
"LibDir"
),
&
m_UserLibraryPath
,
GROUP
_PCB_LIBS
)
);
return
m_projectFileParams
;
return
m_projectFileParams
;
}
}
...
@@ -81,7 +76,7 @@ void CVPCB_MAINFRAME::LoadProjectFile( const wxString& aFileName )
...
@@ -81,7 +76,7 @@ void CVPCB_MAINFRAME::LoadProjectFile( const wxString& aFileName )
fn
.
SetExt
(
ProjectFileExtension
);
fn
.
SetExt
(
ProjectFileExtension
);
// was: Pgm().ReadProjectConfig( fn.GetFullPath(), GROUP, GetProjectFileParameters(), false );
// was: Pgm().ReadProjectConfig( fn.GetFullPath(), GROUP, GetProjectFileParameters(), false );
prj
.
ConfigLoad
(
prj
.
PcbSearchS
(),
fn
.
GetFullPath
(),
GROU
P
,
GetProjectFileParameters
(),
false
);
prj
.
ConfigLoad
(
Kiface
().
KifaceSearch
(),
fn
.
GetFullPath
(),
GROUP_CV
P
,
GetProjectFileParameters
(),
false
);
if
(
m_NetlistFileExtension
.
IsEmpty
()
)
if
(
m_NetlistFileExtension
.
IsEmpty
()
)
m_NetlistFileExtension
=
wxT
(
"net"
);
m_NetlistFileExtension
=
wxT
(
"net"
);
...
@@ -133,7 +128,7 @@ void CVPCB_MAINFRAME::SaveProjectFile( wxCommandEvent& aEvent )
...
@@ -133,7 +128,7 @@ void CVPCB_MAINFRAME::SaveProjectFile( wxCommandEvent& aEvent )
// Pgm().WriteProjectConfig( fn.GetFullPath(), GROUP, GetProjectFileParameters() );
// Pgm().WriteProjectConfig( fn.GetFullPath(), GROUP, GetProjectFileParameters() );
PROJECT
&
prj
=
Prj
();
PROJECT
&
prj
=
Prj
();
SEARCH_STACK
&
search
=
prj
.
SchSearchS
();
prj
.
ConfigSave
(
search
,
fn
.
GetFullPath
(),
GROU
P
,
GetProjectFileParameters
()
);
prj
.
ConfigSave
(
Kiface
().
KifaceSearch
(),
fn
.
GetFullPath
(),
GROUP_CV
P
,
GetProjectFileParameters
()
);
}
}
cvpcb/class_DisplayFootprintsFrame.cpp
View file @
e7ea0480
...
@@ -490,7 +490,7 @@ MODULE* DISPLAY_FOOTPRINTS_FRAME::Get_Module( const wxString& aFootprintName )
...
@@ -490,7 +490,7 @@ MODULE* DISPLAY_FOOTPRINTS_FRAME::Get_Module( const wxString& aFootprintName )
footprint
=
FootprintLibs
()
->
FootprintLoad
(
FROM_UTF8
(
nickname
.
c_str
()
),
FROM_UTF8
(
fpname
.
c_str
()
)
);
footprint
=
FootprintLibs
()
->
FootprintLoad
(
FROM_UTF8
(
nickname
.
c_str
()
),
FROM_UTF8
(
fpname
.
c_str
()
)
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
DisplayError
(
this
,
ioe
.
errorText
);
DisplayError
(
this
,
ioe
.
errorText
);
return
NULL
;
return
NULL
;
...
...
cvpcb/cvframe.cpp
View file @
e7ea0480
...
@@ -301,13 +301,6 @@ void CVPCB_MAINFRAME::OnCloseWindow( wxCloseEvent& Event )
...
@@ -301,13 +301,6 @@ void CVPCB_MAINFRAME::OnCloseWindow( wxCloseEvent& Event )
}
}
}
}
// Close the help frame
if
(
Pgm
().
GetHtmlHelpController
()
)
{
if
(
Pgm
().
GetHtmlHelpController
()
->
GetFrame
()
)
// returns NULL if no help frame active
Pgm
().
GetHtmlHelpController
()
->
GetFrame
()
->
Close
(
true
);
}
if
(
m_NetlistFileName
.
IsOk
()
)
if
(
m_NetlistFileName
.
IsOk
()
)
{
{
UpdateFileHistory
(
m_NetlistFileName
.
GetFullPath
()
);
UpdateFileHistory
(
m_NetlistFileName
.
GetFullPath
()
);
...
@@ -846,7 +839,7 @@ int CVPCB_MAINFRAME::ReadSchematicNetlist()
...
@@ -846,7 +839,7 @@ int CVPCB_MAINFRAME::ReadSchematicNetlist()
else
else
wxMessageBox
(
_
(
"Unknown netlist format."
),
wxEmptyString
,
wxOK
|
wxICON_ERROR
);
wxMessageBox
(
_
(
"Unknown netlist format."
),
wxEmptyString
,
wxOK
|
wxICON_ERROR
);
}
}
catch
(
IO_ERROR
&
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
msg
=
wxString
::
Format
(
_
(
"Error loading netlist.
\n
%s"
),
ioe
.
errorText
.
GetData
()
);
msg
=
wxString
::
Format
(
_
(
"Error loading netlist.
\n
%s"
),
ioe
.
errorText
.
GetData
()
);
wxMessageBox
(
msg
,
_
(
"Netlist Load Error"
),
wxOK
|
wxICON_ERROR
);
wxMessageBox
(
msg
,
_
(
"Netlist Load Error"
),
wxOK
|
wxICON_ERROR
);
...
...
cvpcb/readwrite_dlgs.cpp
View file @
e7ea0480
This diff is collapsed.
Click to expand it.
eeschema/class_libentry.cpp
View file @
e7ea0480
...
@@ -136,7 +136,7 @@ bool LIB_ALIAS::SaveDoc( OUTPUTFORMATTER& aFormatter )
...
@@ -136,7 +136,7 @@ bool LIB_ALIAS::SaveDoc( OUTPUTFORMATTER& aFormatter )
aFormatter
.
Print
(
0
,
"$ENDCMP
\n
"
);
aFormatter
.
Print
(
0
,
"$ENDCMP
\n
"
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
return
false
;
return
false
;
}
}
...
...
eeschema/class_library.cpp
View file @
e7ea0480
...
@@ -731,7 +731,7 @@ bool CMP_LIBRARY::Save( OUTPUTFORMATTER& aFormatter )
...
@@ -731,7 +731,7 @@ bool CMP_LIBRARY::Save( OUTPUTFORMATTER& aFormatter )
aFormatter
.
Print
(
0
,
"#
\n
#End Library
\n
"
);
aFormatter
.
Print
(
0
,
"#
\n
#End Library
\n
"
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
success
=
false
;
success
=
false
;
}
}
...
@@ -756,7 +756,7 @@ bool CMP_LIBRARY::SaveDocs( OUTPUTFORMATTER& aFormatter )
...
@@ -756,7 +756,7 @@ bool CMP_LIBRARY::SaveDocs( OUTPUTFORMATTER& aFormatter )
aFormatter
.
Print
(
0
,
"#
\n
#End Doc Library
\n
"
);
aFormatter
.
Print
(
0
,
"#
\n
#End Doc Library
\n
"
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
success
=
false
;
success
=
false
;
}
}
...
...
eeschema/dialogs/dialog_bom.cpp
View file @
e7ea0480
...
@@ -249,7 +249,7 @@ void DIALOG_BOM::installPluginsList()
...
@@ -249,7 +249,7 @@ void DIALOG_BOM::installPluginsList()
{
{
cfg_parser
.
Parse
();
cfg_parser
.
Parse
();
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
// wxLogMessage( ioe.errorText );
// wxLogMessage( ioe.errorText );
}
}
...
...
eeschema/eelibs_read_libraryfiles.cpp
View file @
e7ea0480
...
@@ -62,7 +62,7 @@ void SCH_EDIT_FRAME::LoadLibraries()
...
@@ -62,7 +62,7 @@ void SCH_EDIT_FRAME::LoadLibraries()
if
(
!
fn
.
FileExists
()
)
if
(
!
fn
.
FileExists
()
)
{
{
tmp
=
lib_search
.
FindValidPath
(
fn
);
tmp
=
lib_search
.
FindValidPath
(
fn
.
GetFullPath
()
);
if
(
!
tmp
)
if
(
!
tmp
)
{
{
...
...
eeschema/eeschema_config.cpp
View file @
e7ea0480
...
@@ -368,7 +368,7 @@ PARAM_CFG_ARRAY& SCH_EDIT_FRAME::GetProjectFileParametersList()
...
@@ -368,7 +368,7 @@ PARAM_CFG_ARRAY& SCH_EDIT_FRAME::GetProjectFileParametersList()
&
m_userLibraryPath
)
);
&
m_userLibraryPath
)
);
m_projectFileParams
.
push_back
(
new
PARAM_CFG_LIBNAME_LIST
(
wxT
(
"LibName"
),
m_projectFileParams
.
push_back
(
new
PARAM_CFG_LIBNAME_LIST
(
wxT
(
"LibName"
),
&
m_componentLibFiles
,
&
m_componentLibFiles
,
GROUP
LIB
)
);
GROUP
_SCH_LIBS
)
);
m_projectFileParams
.
push_back
(
new
PARAM_CFG_WXSTRING
(
wxT
(
"NetFmtName"
),
m_projectFileParams
.
push_back
(
new
PARAM_CFG_WXSTRING
(
wxT
(
"NetFmtName"
),
&
m_netListFormat
)
);
&
m_netListFormat
)
);
...
@@ -408,7 +408,7 @@ bool SCH_EDIT_FRAME::LoadProjectFile( const wxString& aFileName, bool aForceRere
...
@@ -408,7 +408,7 @@ bool SCH_EDIT_FRAME::LoadProjectFile( const wxString& aFileName, bool aForceRere
// extension (.pro).
// extension (.pro).
fn
.
SetExt
(
ProjectFileExtension
);
fn
.
SetExt
(
ProjectFileExtension
);
if
(
!
prj
.
ConfigLoad
(
Kiface
().
KifaceSearch
(),
fn
.
GetFullPath
(),
GROUP
,
if
(
!
prj
.
ConfigLoad
(
Kiface
().
KifaceSearch
(),
fn
.
GetFullPath
(),
GROUP
_SCH
,
GetProjectFileParametersList
(),
!
aForceReread
)
)
GetProjectFileParametersList
(),
!
aForceReread
)
)
{
{
m_componentLibFiles
=
liblist_tmp
;
m_componentLibFiles
=
liblist_tmp
;
...
@@ -427,7 +427,7 @@ bool SCH_EDIT_FRAME::LoadProjectFile( const wxString& aFileName, bool aForceRere
...
@@ -427,7 +427,7 @@ bool SCH_EDIT_FRAME::LoadProjectFile( const wxString& aFileName, bool aForceRere
pglayout
.
SetPageLayout
(
BASE_SCREEN
::
m_PageLayoutDescrFileName
);
pglayout
.
SetPageLayout
(
BASE_SCREEN
::
m_PageLayoutDescrFileName
);
// libraries in the *.pro file take precedence over standard library search paths,
// libraries in the *.pro file take precedence over standard library search paths,
// but not over the director of the project, which is at index 0.
// but not over the director
y
of the project, which is at index 0.
prj
.
SchSearchS
().
AddPaths
(
m_userLibraryPath
,
1
);
prj
.
SchSearchS
().
AddPaths
(
m_userLibraryPath
,
1
);
// If the list is empty, force loading the standard power symbol library.
// If the list is empty, force loading the standard power symbol library.
...
@@ -464,7 +464,7 @@ void SCH_EDIT_FRAME::SaveProjectSettings( bool aAskForSave )
...
@@ -464,7 +464,7 @@ void SCH_EDIT_FRAME::SaveProjectSettings( bool aAskForSave )
}
}
prj
.
ConfigSave
(
Kiface
().
KifaceSearch
(),
prj
.
ConfigSave
(
Kiface
().
KifaceSearch
(),
fn
.
GetFullPath
(),
GROUP
,
GetProjectFileParametersList
()
);
fn
.
GetFullPath
(),
GROUP
_SCH
,
GetProjectFileParametersList
()
);
}
}
...
@@ -666,7 +666,7 @@ void SCH_EDIT_FRAME::LoadSettings( wxConfigBase* aCfg )
...
@@ -666,7 +666,7 @@ void SCH_EDIT_FRAME::LoadSettings( wxConfigBase* aCfg )
{
{
m_TemplateFieldNames
.
Parse
(
&
lexer
);
m_TemplateFieldNames
.
Parse
(
&
lexer
);
}
}
catch
(
IO_ERROR
&
e
)
catch
(
const
IO_ERROR
&
e
)
{
{
// @todo show error msg
// @todo show error msg
DBG
(
printf
(
"templatefieldnames parsing error: '%s'
\n
"
,
DBG
(
printf
(
"templatefieldnames parsing error: '%s'
\n
"
,
...
...
eeschema/eeschema_config.h
View file @
e7ea0480
...
@@ -4,9 +4,6 @@
...
@@ -4,9 +4,6 @@
#include <config_params.h>
#include <config_params.h>
#define GROUP wxT( "/eeschema" )
#define GROUPCOMMON wxT( "/common" )
#define GROUPLIB wxT( "libraries" )
/* saving parameters option : */
/* saving parameters option : */
#define INSETUP true
/* used when the parameter is saved in general config
#define INSETUP true
/* used when the parameter is saved in general config
...
...
eeschema/netform.cpp
View file @
e7ea0480
...
@@ -1049,7 +1049,7 @@ bool NETLIST_EXPORT_TOOL::WriteKiCadNetList( const wxString& aOutFileName )
...
@@ -1049,7 +1049,7 @@ bool NETLIST_EXPORT_TOOL::WriteKiCadNetList( const wxString& aOutFileName )
xroot
->
Format
(
&
formatter
,
0
);
xroot
->
Format
(
&
formatter
,
0
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
DisplayError
(
NULL
,
ioe
.
errorText
);
DisplayError
(
NULL
,
ioe
.
errorText
);
return
false
;
return
false
;
...
...
eeschema/schframe.cpp
View file @
e7ea0480
...
@@ -868,7 +868,7 @@ void SCH_EDIT_FRAME::OnPrint( wxCommandEvent& event )
...
@@ -868,7 +868,7 @@ void SCH_EDIT_FRAME::OnPrint( wxCommandEvent& event )
// was: wxGetApp().WriteProjectConfig( fn.GetFullPath(), GROUP, GetProjectFileParametersList() );
// was: wxGetApp().WriteProjectConfig( fn.GetFullPath(), GROUP, GetProjectFileParametersList() );
Prj
().
ConfigSave
(
Kiface
().
KifaceSearch
(),
Prj
().
ConfigSave
(
Kiface
().
KifaceSearch
(),
fn
.
GetFullPath
(),
GROUP
,
GetProjectFileParametersList
()
);
fn
.
GetFullPath
(),
GROUP
_SCH
,
GetProjectFileParametersList
()
);
}
}
}
}
...
...
eeschema/symbedit.cpp
View file @
e7ea0480
...
@@ -225,14 +225,14 @@ void LIB_EDIT_FRAME::SaveOneSymbol()
...
@@ -225,14 +225,14 @@ void LIB_EDIT_FRAME::SaveOneSymbol()
formatter
.
Print
(
0
,
"ENDDRAW
\n
"
);
formatter
.
Print
(
0
,
"ENDDRAW
\n
"
);
formatter
.
Print
(
0
,
"ENDDEF
\n
"
);
formatter
.
Print
(
0
,
"ENDDEF
\n
"
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
msg
.
Printf
(
_
(
"An error occurred attempting to save symbol file '%s'"
),
msg
.
Printf
(
_
(
"An error occurred attempting to save symbol file '%s'"
),
GetChars
(
fn
.
GetFullPath
()
)
);
GetChars
(
fn
.
GetFullPath
()
)
);
DisplayError
(
this
,
msg
);
DisplayError
(
this
,
msg
);
}
}
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
DisplayError
(
this
,
ioe
.
errorText
);
DisplayError
(
this
,
ioe
.
errorText
);
return
;
return
;
...
...
include/bin_mod.h
View file @
e7ea0480
...
@@ -59,6 +59,8 @@ struct BIN_MOD
...
@@ -59,6 +59,8 @@ struct BIN_MOD
wxString
m_help_file
;
wxString
m_help_file
;
SEARCH_STACK
m_search
;
SEARCH_STACK
m_search
;
};
};
#endif // BIN_MOD_H_
#endif // BIN_MOD_H_
include/common.h
View file @
e7ea0480
...
@@ -589,4 +589,25 @@ wxString FormatDateLong( const wxDateTime &aDate );
...
@@ -589,4 +589,25 @@ wxString FormatDateLong( const wxDateTime &aDate );
*/
*/
void
SystemDirsAppend
(
SEARCH_STACK
*
aSearchStack
);
void
SystemDirsAppend
(
SEARCH_STACK
*
aSearchStack
);
/**
* Function SearchHelpFileFullPath
* returns the help file's full path.
* <p>
* Return the KiCad help file with path.
* If the help file for the current locale is not found, an attempt to find
* the English version of the help file is made.
* Help file is searched in directories in this order:
* help/\<canonical name\> like help/en_GB
* help/\<short name\> like help/en
* help/en
* </p>
* @param aSearchStack contains some possible base dirs that may be above the
* the one actually holding @a aBaseName. These are starting points for nested searches.
* @param aBaseName is the name of the help file to search for.
* @return wxEmptyString is returned if aBaseName is not found, else the full path & filename.
*/
wxString
SearchHelpFileFullPath
(
const
SEARCH_STACK
&
aSearchStack
,
const
wxString
&
aBaseName
);
#endif // INCLUDE__COMMON_H_
#endif // INCLUDE__COMMON_H_
include/config_params.h
View file @
e7ea0480
...
@@ -37,6 +37,17 @@
...
@@ -37,6 +37,17 @@
#include <limits>
#include <limits>
#define GROUP_PCB wxT( "/pcbnew" )
#define GROUP_SCH wxT( "/eeschema" )
#define GROUP_PCB_LIBS wxT( "/pcbnew/libraries" )
#define GROUP_SCH_LIBS wxT( "/eeschema/libraries" )
#define GROUP_COMMON wxT( "/common" )
#define GROUP_CVP wxT("/cvpcb")
//#define GROUP_CVP_LIBS wxT("/pcbnew/libraries")
#define GROUP_CVP_EQU wxT("/cvpcb/libraries")
#define CONFIG_VERSION 1
#define CONFIG_VERSION 1
#define FORCE_LOCAL_CONFIG true
#define FORCE_LOCAL_CONFIG true
...
...
include/fp_lib_table.h
View file @
e7ea0480
...
@@ -38,6 +38,7 @@ class wxFileName;
...
@@ -38,6 +38,7 @@ class wxFileName;
class
OUTPUTFORMATTER
;
class
OUTPUTFORMATTER
;
class
MODULE
;
class
MODULE
;
class
FP_LIB_TABLE_LEXER
;
class
FP_LIB_TABLE_LEXER
;
class
FPID
;
class
NETLIST
;
class
NETLIST
;
class
REPORTER
;
class
REPORTER
;
class
SEARCH_STACK
;
class
SEARCH_STACK
;
...
@@ -455,6 +456,21 @@ public:
...
@@ -455,6 +456,21 @@ public:
//-----</PLUGIN API SUBSET, REBASED ON aNickname>---------------------------
//-----</PLUGIN API SUBSET, REBASED ON aNickname>---------------------------
/**
* Function FootprintLoadWithOptionalNickname
* loads a footprint having @a aFootprintId with possibly an empty nickname.
*
* @param aFootprintId the [nickname] & fooprint name of the footprint to load.
*
* @return MODULE* - if found caller owns it, else NULL if not found.
*
* @throw IO_ERROR if the library cannot be found or read. No exception
* is thrown in the case where aFootprintName cannot be found.
* @throw PARSE_ERROR if @a aFootprintId is not parsed OK.
*/
MODULE
*
FootprintLoadWithOptionalNickname
(
const
FPID
&
aFootprintId
)
throw
(
IO_ERROR
,
PARSE_ERROR
);
/**
/**
* Function GetDescription
* Function GetDescription
* returns the library desicription from @a aNickname, or an empty string
* returns the library desicription from @a aNickname, or an empty string
...
@@ -499,19 +515,6 @@ public:
...
@@ -499,19 +515,6 @@ public:
*/
*/
bool
IsEmpty
(
bool
aIncludeFallback
=
true
);
bool
IsEmpty
(
bool
aIncludeFallback
=
true
);
/**
* Function ConvertFromLegacy
* converts the footprint names in \a aNetList from the legacy format to the #FPID format.
*
* @param aNetList is the #NETLIST object to convert.
* @param aLibNames is the list of legacy footprint library names from the currently loaded
* project.
* @param aReporter is the #REPORTER object to dump messages into.
* @return true if all footprint names were successfully converted to a valid FPID.
*/
bool
ConvertFromLegacy
(
SEARCH_STACK
&
aSStack
,
NETLIST
&
aNetList
,
const
wxArrayString
&
aLibNames
,
REPORTER
*
aReporter
=
NULL
)
throw
(
IO_ERROR
);
/**
/**
* Function ExpandSubstitutions
* Function ExpandSubstitutions
* replaces any environment variable references with their values and is
* replaces any environment variable references with their values and is
...
...
include/fpid.h
View file @
e7ea0480
...
@@ -153,7 +153,6 @@ public:
...
@@ -153,7 +153,6 @@ public:
*/
*/
bool
IsValid
()
const
{
return
!
nickname
.
empty
()
&&
!
footprint
.
empty
();
}
bool
IsValid
()
const
{
return
!
nickname
.
empty
()
&&
!
footprint
.
empty
();
}
/**
/**
* Function IsLegacy
* Function IsLegacy
* @return true if the #FPID only has the #footprint name defined.
* @return true if the #FPID only has the #footprint name defined.
...
...
include/gestfich.h
View file @
e7ea0480
...
@@ -89,28 +89,6 @@ int ExecuteFile( wxWindow* frame, const wxString& ExecFile,
...
@@ -89,28 +89,6 @@ int ExecuteFile( wxWindow* frame, const wxString& ExecFile,
*/
*/
void
AddDelimiterString
(
wxString
&
string
);
void
AddDelimiterString
(
wxString
&
string
);
/**
* Function FindKicadHelpPath
* finds the absolute path for KiCad "help" (or "help/<language>")
* Find path kicad/doc/help/xx/ or kicad/doc/help/:
* from BinDir
* else from environment variable KICAD
* else from one of s_HelpPathList
* typically c:/kicad/doc/help or /usr/share/kicad/help
* or /usr/local/share/kicad/help
* (must have kicad in path name)
*
* xx = iso639-1 language id (2 letters (generic) or 4 letters):
* fr = french (or fr_FR)
* en = English (or en_GB or en_US ...)
* de = deutch
* es = spanish
* pt = portuguese (or pt_BR ...)
*
* default = en (if not found = fr)
*/
wxString
FindKicadHelpPath
();
/**
/**
* Function KicadDatasPath
* Function KicadDatasPath
* returns the data path common to KiCad.
* returns the data path common to KiCad.
...
...
include/kiface_i.h
View file @
e7ea0480
...
@@ -100,33 +100,17 @@ public:
...
@@ -100,33 +100,17 @@ public:
wxConfigBase
*
KifaceSettings
()
const
{
return
m_bm
.
m_config
;
}
wxConfigBase
*
KifaceSettings
()
const
{
return
m_bm
.
m_config
;
}
const
wxString
&
GetHelpFileName
()
const
{
return
m_bm
.
m_help_file
;
}
void
SetHelpFileName
(
const
wxString
&
aFileName
)
{
m_bm
.
m_help_file
=
aFileName
;
}
/**
/**
* Function GetHelpFile
* Function GetHelpFileName
* gets the help file path.
* returns just the basename portion of the current help file.
* <p>
* Return the KiCad help file with path. The base paths defined in
* m_searchPaths are tested for a valid file. The path returned can
* be relative depending on the paths added to m_searchPaths. See the
* documentation for wxPathList for more information. If the help file
* for the current locale is not found, an attempt to find the English
* version of the help file is made.
* wxEmptyString is returned if help file not found.
* Help file is searched in directories in this order:
* help/\<canonical name\> like help/en_GB
* help/\<short name\> like help/en
* help/en
* </p>
*/
*/
wxString
GetHelpFile
();
const
wxString
&
GetHelpFileName
()
const
{
return
m_bm
.
m_help_file
;
}
wxFileHistory
&
GetFileHistory
()
{
return
m_bm
.
m_history
;
}
wxFileHistory
&
GetFileHistory
()
{
return
m_bm
.
m_history
;
}
/// Only for DSO specific 'non-library' files.
/// Only for DSO specific 'non-library' files.
/// (The library search path is in the PROJECT class.)
/// (The library search path is in the PROJECT class.)
SEARCH_STACK
&
KifaceSearch
()
{
return
m_bm
.
m_search
;
}
SEARCH_STACK
&
KifaceSearch
()
{
return
m_bm
.
m_search
;
}
private
:
private
:
KIWAY
::
FACE_T
m_id
;
KIWAY
::
FACE_T
m_id
;
...
...
include/pgm_base.h
View file @
e7ea0480
...
@@ -86,9 +86,7 @@ public:
...
@@ -86,9 +86,7 @@ public:
//----<Cross Module API>-----------------------------------------------------
//----<Cross Module API>-----------------------------------------------------
VTBL_ENTRY
wxHtmlHelpController
*
GetHtmlHelpController
()
{
return
m_html_ctrl
;
}
VTBL_ENTRY
wxHtmlHelpController
*
HtmlHelpController
();
VTBL_ENTRY
void
SetHtmlHelpController
(
wxHtmlHelpController
*
aController
);
VTBL_ENTRY
wxConfigBase
*
CommonSettings
()
const
{
return
m_common_settings
;
}
VTBL_ENTRY
wxConfigBase
*
CommonSettings
()
const
{
return
m_common_settings
;
}
...
@@ -161,12 +159,6 @@ public:
...
@@ -161,12 +159,6 @@ public:
VTBL_ENTRY
void
SetLanguagePath
();
VTBL_ENTRY
void
SetLanguagePath
();
/**
* Function InitOnLineHelp
* initializes KiCad's online help.
*/
VTBL_ENTRY
void
InitOnLineHelp
();
/**
/**
* Function ReadPdfBrowserInfos
* Function ReadPdfBrowserInfos
* reads the PDF browser choice from the common configuration.
* reads the PDF browser choice from the common configuration.
...
@@ -217,6 +209,8 @@ protected:
...
@@ -217,6 +209,8 @@ protected:
*/
*/
bool
initPgm
();
bool
initPgm
();
void
initHtmlHelpController
();
/**
/**
* Function loadCommonSettings
* Function loadCommonSettings
* loads the program (process) settings subset which are stored in .kicad_common
* loads the program (process) settings subset which are stored in .kicad_common
...
...
include/project.h
View file @
e7ea0480
...
@@ -131,15 +131,6 @@ public:
...
@@ -131,15 +131,6 @@ public:
/// Accessor for Eeschema search stack.
/// Accessor for Eeschema search stack.
VTBL_ENTRY
SEARCH_STACK
&
SchSearchS
()
{
return
m_sch_search
;
}
VTBL_ENTRY
SEARCH_STACK
&
SchSearchS
()
{
return
m_sch_search
;
}
/**
* Function PcbSearchS
* returns the obsolete footprint library search stack.
* Projects created before the FP_LIB_TABLE support will have footprint
* search paths in the *.pro files. Projects created after the FP_LIB_TABLE
* support will not. This stack is used for conversion from old to new only.
*/
VTBL_ENTRY
SEARCH_STACK
&
PcbSearchS
()
{
return
m_pcb_search
;
}
VTBL_ENTRY
wxString
GetModuleLibraryNickname
()
{
return
m_module_library_nickname
;
}
VTBL_ENTRY
wxString
GetModuleLibraryNickname
()
{
return
m_module_library_nickname
;
}
VTBL_ENTRY
void
SetModuleLibraryNickname
(
const
wxString
&
aNickName
)
{
m_module_library_nickname
=
aNickName
;
}
VTBL_ENTRY
void
SetModuleLibraryNickname
(
const
wxString
&
aNickName
)
{
m_module_library_nickname
=
aNickName
;
}
...
...
include/ptree.h
View file @
e7ea0480
...
@@ -78,7 +78,7 @@ typedef const PTREE CPTREE;
...
@@ -78,7 +78,7 @@ typedef const PTREE CPTREE;
* PTREE doc;
* PTREE doc;
* Scan( &doc, &lexer );
* Scan( &doc, &lexer );
* }
* }
* catch(
IO_ERROR
ioe )
* catch(
const IO_ERROR&
ioe )
* {
* {
* fprintf( stderr, "%s\n", TO_UTF8( ioe.errorText ) );
* fprintf( stderr, "%s\n", TO_UTF8( ioe.errorText ) );
* }
* }
...
...
include/search_stack.h
View file @
e7ea0480
...
@@ -39,21 +39,6 @@ public:
...
@@ -39,21 +39,6 @@ public:
return
wxPathList
::
FindValidPath
(
aFileName
);
return
wxPathList
::
FindValidPath
(
aFileName
);
}
}
/**
* Function FindValidPath
* KiCad saves user defined library files that are not in the standard
* library search path list with the full file path. Calling the library
* search path list with a user library file will fail. This helper method
* solves that problem.
* @param fileName
* @return a wxEmptyString if library file is not found.
*/
wxString
FindValidPath
(
const
wxFileName
&
aFileName
)
const
{
// call wxPathList::FindValidPath( const wxString& );
return
wxPathList
::
FindValidPath
(
aFileName
.
GetFullPath
()
);
}
/**
/**
* Function AddPaths
* Function AddPaths
* insert or append path(s)
* insert or append path(s)
...
@@ -72,15 +57,6 @@ public:
...
@@ -72,15 +57,6 @@ public:
* ";" on windows, or ":" | ";" on unix.
* ";" on windows, or ":" | ";" on unix.
*/
*/
void
RemovePaths
(
const
wxString
&
aPaths
);
void
RemovePaths
(
const
wxString
&
aPaths
);
/**
* Function FindFileInSearchPaths
* looks in "this" for \a aFilename, but first modifies every search
* path by appending a list of path fragments from aSubdirs. That modification
* is not rentative.
*/
wxString
FindFileInSearchPaths
(
const
wxString
&
aFilename
,
const
wxArrayString
*
aSubdirs
=
NULL
);
};
};
...
...
include/wxstruct.h
View file @
e7ea0480
...
@@ -186,6 +186,15 @@ protected:
...
@@ -186,6 +186,15 @@ protected:
*/
*/
virtual
wxConfigBase
*
config
();
virtual
wxConfigBase
*
config
();
/**
* Function sys_search
* returns a SEARCH_STACK pertaining to entire program, and is overloaded in
* KICAD_MANAGER_FRAME
*/
virtual
const
SEARCH_STACK
&
sys_search
();
virtual
wxString
help_name
();
public
:
public
:
EDA_BASE_FRAME
(
wxWindow
*
aParent
,
ID_DRAWFRAME_TYPE
aFrameType
,
EDA_BASE_FRAME
(
wxWindow
*
aParent
,
ID_DRAWFRAME_TYPE
aFrameType
,
const
wxString
&
aTitle
,
const
wxPoint
&
aPos
,
const
wxSize
&
aSize
,
const
wxString
&
aTitle
,
const
wxPoint
&
aPos
,
const
wxSize
&
aSize
,
...
...
kicad/kicad.h
View file @
e7ea0480
...
@@ -123,6 +123,11 @@ class KICAD_MANAGER_FRAME : public EDA_BASE_FRAME
...
@@ -123,6 +123,11 @@ class KICAD_MANAGER_FRAME : public EDA_BASE_FRAME
protected
:
protected
:
wxConfigBase
*
config
();
// override EDA_BASE_FRAME virtual
wxConfigBase
*
config
();
// override EDA_BASE_FRAME virtual
const
SEARCH_STACK
&
sys_search
();
// override EDA_BASE_FRAME virtual
wxString
help_name
();
// override EDA_BASE_FRAME virtual
public
:
public
:
TREE_PROJECT_FRAME
*
m_LeftWin
;
TREE_PROJECT_FRAME
*
m_LeftWin
;
LAUNCHER_PANEL
*
m_Launcher
;
LAUNCHER_PANEL
*
m_Launcher
;
...
...
kicad/mainframe.cpp
View file @
e7ea0480
...
@@ -123,6 +123,18 @@ wxConfigBase* KICAD_MANAGER_FRAME::config()
...
@@ -123,6 +123,18 @@ wxConfigBase* KICAD_MANAGER_FRAME::config()
}
}
const
SEARCH_STACK
&
KICAD_MANAGER_FRAME
::
sys_search
()
{
return
Pgm
().
SysSearch
();
}
wxString
KICAD_MANAGER_FRAME
::
help_name
()
{
return
Pgm
().
GetHelpFileName
();
}
void
KICAD_MANAGER_FRAME
::
PrintMsg
(
const
wxString
&
aText
)
void
KICAD_MANAGER_FRAME
::
PrintMsg
(
const
wxString
&
aText
)
{
{
m_MessagesBox
->
AppendText
(
aText
);
m_MessagesBox
->
AppendText
(
aText
);
...
@@ -157,15 +169,6 @@ void KICAD_MANAGER_FRAME::OnCloseWindow( wxCloseEvent& Event )
...
@@ -157,15 +169,6 @@ void KICAD_MANAGER_FRAME::OnCloseWindow( wxCloseEvent& Event )
Event
.
SetCanVeto
(
true
);
Event
.
SetCanVeto
(
true
);
// Close the help frame
if
(
Pgm
().
GetHtmlHelpController
()
)
{
if
(
Pgm
().
GetHtmlHelpController
()
->
GetFrame
()
)
// returns NULL if no help frame active
Pgm
().
GetHtmlHelpController
()
->
GetFrame
()
->
Close
(
true
);
Pgm
().
SetHtmlHelpController
(
NULL
);
}
m_LeftWin
->
Show
(
false
);
m_LeftWin
->
Show
(
false
);
Destroy
();
Destroy
();
...
...
kicad/pgm_kicad.h
View file @
e7ea0480
...
@@ -58,6 +58,8 @@ public:
...
@@ -58,6 +58,8 @@ public:
SEARCH_STACK
&
SysSearch
()
{
return
m_bm
.
m_search
;
}
SEARCH_STACK
&
SysSearch
()
{
return
m_bm
.
m_search
;
}
wxString
GetHelpFileName
()
{
return
m_bm
.
m_help_file
;
}
protected
:
protected
:
// The PGM_* classes can have difficulties at termination if they
// The PGM_* classes can have difficulties at termination if they
...
...
kicad/tree_project_frame.cpp
View file @
e7ea0480
...
@@ -94,10 +94,10 @@ static const wxChar* s_allowedExtensionsToList[] =
...
@@ -94,10 +94,10 @@ static const wxChar* s_allowedExtensionsToList[] =
*/
*/
/* File extension definitions. */
/* File extension definitions. */
const
wx
String
TextFileExtension
(
wxT
(
"txt"
)
);
const
wx
Char
TextFileExtension
[]
=
wxT
(
"txt"
);
/* File wildcard definitions. */
/* File wildcard definitions. */
const
wx
String
TextFileWildcard
(
wxT
(
"Text files (*.txt)|*.txt"
)
);
const
wx
Char
TextFileWildcard
[]
=
wxT
(
"Text files (*.txt)|*.txt"
);
/**
/**
...
@@ -177,7 +177,6 @@ void TREE_PROJECT_FRAME::RemoveFilter( const wxString& filter )
...
@@ -177,7 +177,6 @@ void TREE_PROJECT_FRAME::RemoveFilter( const wxString& filter )
}
}
/**
/**
* Called by the popup menu in the tree frame
* Called by the popup menu in the tree frame
* Creates a new subdirectory inside the current kicad project directory
* Creates a new subdirectory inside the current kicad project directory
...
...
new/sch_dir_lib_source.cpp
View file @
e7ea0480
...
@@ -716,7 +716,7 @@ void DIR_LIB_SOURCE::Test( int argc, char** argv )
...
@@ -716,7 +716,7 @@ void DIR_LIB_SOURCE::Test( int argc, char** argv )
printf( "std::exception\n" );
printf( "std::exception\n" );
}
}
catch( IO_ERROR& ioe )
catch(
const
IO_ERROR& ioe )
{
{
printf( "exception: %s\n", (const char*) ioe.errorText.ToUTF8() ) );
printf( "exception: %s\n", (const char*) ioe.errorText.ToUTF8() ) );
}
}
...
...
new/test_sch_lib_table.cpp
View file @
e7ea0480
...
@@ -118,7 +118,7 @@ int main( int argc, char** argv )
...
@@ -118,7 +118,7 @@ int main( int argc, char** argv )
printf
(
"%*s^
\n
"
,
ioe
.
byteIndex
>=
1
?
ioe
.
byteIndex
-
1
:
0
,
""
);
printf
(
"%*s^
\n
"
,
ioe
.
byteIndex
>=
1
?
ioe
.
byteIndex
-
1
:
0
,
""
);
}
}
catch
(
IO_ERROR
&
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
printf
(
"%s
\n
"
,
(
const
char
*
)
ioe
.
errorText
.
ToUTF8
()
);
printf
(
"%s
\n
"
,
(
const
char
*
)
ioe
.
errorText
.
ToUTF8
()
);
}
}
...
...
pagelayout_editor/page_layout_writer.cpp
View file @
e7ea0480
...
@@ -98,7 +98,7 @@ public:
...
@@ -98,7 +98,7 @@ public:
m_fileout
=
new
FILE_OUTPUTFORMATTER
(
aFilename
);
m_fileout
=
new
FILE_OUTPUTFORMATTER
(
aFilename
);
m_out
=
m_fileout
;
m_out
=
m_fileout
;
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
wxMessageBox
(
ioe
.
errorText
,
_
(
"Error writing page layout descr file"
)
);
wxMessageBox
(
ioe
.
errorText
,
_
(
"Error writing page layout descr file"
)
);
}
}
...
@@ -125,7 +125,7 @@ public:
...
@@ -125,7 +125,7 @@ public:
m_writer
=
new
STRING_FORMATTER
();
m_writer
=
new
STRING_FORMATTER
();
m_out
=
m_writer
;
m_out
=
m_writer
;
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
wxMessageBox
(
ioe
.
errorText
,
_
(
"Error writing page layout descr file"
)
);
wxMessageBox
(
ioe
.
errorText
,
_
(
"Error writing page layout descr file"
)
);
}
}
...
...
pcb_calculator/datafile_read_write.cpp
View file @
e7ea0480
...
@@ -66,13 +66,16 @@ bool PCB_CALCULATOR_FRAME::ReadDataFile()
...
@@ -66,13 +66,16 @@ bool PCB_CALCULATOR_FRAME::ReadDataFile()
{
{
datafile_parser
.
Parse
(
datafile
);
datafile_parser
.
Parse
(
datafile
);
}
}
catch
(
IO_ERROR
&
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
delete
datafile
;
delete
datafile
;
ioe
.
errorText
+=
'\n'
;
ioe
.
errorText
+=
_
(
"Data file error."
);
wxMessageBox
(
ioe
.
errorText
);
wxString
msg
=
ioe
.
errorText
;
msg
+=
wxChar
(
'\n'
);
msg
+=
_
(
"Data file error."
);
wxMessageBox
(
msg
);
return
false
;
return
false
;
}
}
...
@@ -99,7 +102,7 @@ bool PCB_CALCULATOR_FRAME::WriteDataFile()
...
@@ -99,7 +102,7 @@ bool PCB_CALCULATOR_FRAME::WriteDataFile()
while
(
nestlevel
--
)
while
(
nestlevel
--
)
formatter
.
Print
(
nestlevel
,
")
\n
"
);
formatter
.
Print
(
nestlevel
,
")
\n
"
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
return
false
;
return
false
;
}
}
...
...
pcbnew/CMakeLists.txt
View file @
e7ea0480
...
@@ -346,13 +346,10 @@ if( KICAD_SCRIPTING )
...
@@ -346,13 +346,10 @@ if( KICAD_SCRIPTING )
COMMAND
${
SWIG_EXECUTABLE
}
${
SWIG_OPTS
}
-o
${
CMAKE_CURRENT_BINARY_DIR
}
/pcbnew_wrap.cxx scripting/pcbnew.i
COMMAND
${
SWIG_EXECUTABLE
}
${
SWIG_OPTS
}
-o
${
CMAKE_CURRENT_BINARY_DIR
}
/pcbnew_wrap.cxx scripting/pcbnew.i
COMMAND
${
PYTHON_EXECUTABLE
}
${
CMAKE_SOURCE_DIR
}
/scripting/build_tools/fix_swig_imports.py
${
CMAKE_CURRENT_BINARY_DIR
}
/pcbnew.py
COMMAND
${
PYTHON_EXECUTABLE
}
${
CMAKE_SOURCE_DIR
}
/scripting/build_tools/fix_swig_imports.py
${
CMAKE_CURRENT_BINARY_DIR
}
/pcbnew.py
WORKING_DIRECTORY
${
CMAKE_CURRENT_SOURCE_DIR
}
WORKING_DIRECTORY
${
CMAKE_CURRENT_SOURCE_DIR
}
)
)
endif
()
endif
()
###
# _pcbnew DLL/DSO file creation
###
if
(
BUILD_GITHUB_PLUGIN
)
if
(
BUILD_GITHUB_PLUGIN
)
set
(
GITHUB_PLUGIN_LIBRARIES github_plugin
)
set
(
GITHUB_PLUGIN_LIBRARIES github_plugin
)
...
@@ -401,9 +398,14 @@ if( KICAD_SCRIPTING_MODULES )
...
@@ -401,9 +398,14 @@ if( KICAD_SCRIPTING_MODULES )
if
(
MAKE_LINK_MAPS
)
if
(
MAKE_LINK_MAPS
)
set_target_properties
(
_pcbnew PROPERTIES
set_target_properties
(
_pcbnew PROPERTIES
LINK_FLAGS
"
${
TO_LINKER
}
,-cref
${
TO_LINKER
}
,-Map=pcbnew.so.map"
)
LINK_FLAGS
"
${
TO_LINKER
}
,-cref
${
TO_LINKER
}
,-Map=pcbnew.so.map"
)
endif
()
endif
()
if
(
${
OPENMP_FOUND
}
)
set_property
(
TARGET _pcbnew APPEND_STRING
PROPERTY LINK_FLAGS
"
${
OpenMP_CXX_FLAGS
}
"
)
endif
()
endif
()
endif
()
...
@@ -422,14 +424,13 @@ if( DOXYGEN_FOUND )
...
@@ -422,14 +424,13 @@ if( DOXYGEN_FOUND )
WORKING_DIRECTORY
${
CMAKE_CURRENT_BINARY_DIR
}
WORKING_DIRECTORY
${
CMAKE_CURRENT_BINARY_DIR
}
DEPENDS Doxyfile_xml
DEPENDS Doxyfile_xml
COMMENT
"building doxygen docs into directory doxygen-python/html"
COMMENT
"building doxygen docs into directory doxygen-python/html"
)
)
# create .i files from XML doxygen parsing, docstrings.i will include all of them
# create .i files from XML doxygen parsing, docstrings.i will include all of them
add_custom_target
(
xml-to-docstrings
add_custom_target
(
xml-to-docstrings
COMMAND
${
CMAKE_COMMAND
}
-E remove_directory docstrings
COMMAND
${
CMAKE_COMMAND
}
-E remove_directory docstrings
COMMAND
${
CMAKE_COMMAND
}
-E make_directory docstrings
COMMAND
${
CMAKE_COMMAND
}
-E make_directory docstrings
COMMAND
${
PYTHON_EXECUTABLE
}
${
CMAKE_SOURCE_DIR
}
/scripting/build_tools/extract_docstrings.py pcbnew.py doxygen-xml/xml docstrings
COMMAND
${
PYTHON_EXECUTABLE
}
${
CMAKE_SOURCE_DIR
}
/scripting/build_tools/extract_docstrings.py pcbnew.py doxygen-xml/xml docstrings
COMMAND
${
CMAKE_COMMAND
}
-E remove pcbnew.py
# force removal so it will be recreated later with the new docstrings
COMMAND
${
CMAKE_COMMAND
}
-E remove pcbnew.py
# force removal so it will be recreated later with the new docstrings
COMMENT
"building docstring files"
COMMENT
"building docstring files"
WORKING_DIRECTORY
${
CMAKE_CURRENT_BINARY_DIR
}
WORKING_DIRECTORY
${
CMAKE_CURRENT_BINARY_DIR
}
...
@@ -445,16 +446,14 @@ if( DOXYGEN_FOUND )
...
@@ -445,16 +446,14 @@ if( DOXYGEN_FOUND )
DEPENDS Doxyfile_python
DEPENDS Doxyfile_python
DEPENDS xml-to-docstrings
DEPENDS xml-to-docstrings
DEPENDS pcbnew.py
DEPENDS pcbnew.py
COMMENT
"building doxygen docs into directory doxygen-python/html"
COMMENT
"building doxygen docs into directory doxygen-python/html"
)
)
endif
()
endif
()
else
()
else
()
message
(
STATUS
"WARNING: Doxygen not found - doxygen-docs (Source Docs) target not created"
)
message
(
STATUS
"WARNING: Doxygen not found - doxygen-docs (Source Docs) target not created"
)
endif
()
endif
()
if
(
MINGW
)
if
(
MINGW
)
# PCBNEW_RESOURCES variable is set by the macro.
# PCBNEW_RESOURCES variable is set by the macro.
mingw_resource_compiler
(
pcbnew
)
mingw_resource_compiler
(
pcbnew
)
...
@@ -485,9 +484,8 @@ add_custom_command(
...
@@ -485,9 +484,8 @@ add_custom_command(
from
${
CMAKE_CURRENT_SOURCE_DIR
}
/dialogs/dialog_freeroute_exchange_help.html"
from
${
CMAKE_CURRENT_SOURCE_DIR
}
/dialogs/dialog_freeroute_exchange_help.html"
)
)
set_source_files_properties
(
dialogs/dialog_freeroute_exchange.cpp
set_source_files_properties
(
dialogs/dialog_freeroute_exchange.cpp PROPERTIES
PROPERTIES
OBJECT_DEPENDS
${
CMAKE_CURRENT_SOURCE_DIR
}
/dialogs/dialog_freeroute_exchange_help_html.h
OBJECT_DEPENDS
${
CMAKE_CURRENT_SOURCE_DIR
}
/dialogs/dialog_freeroute_exchange_help_html.h
)
)
...
@@ -511,14 +509,14 @@ endif()
...
@@ -511,14 +509,14 @@ endif()
if
(
USE_KIWAY_DLLS
)
if
(
USE_KIWAY_DLLS
)
#if( false )
# a very small program launcher for pcbnew_kiface
# a very small program launcher for pcbnew_kiface
add_executable
(
pcbnew WIN32 MACOSX_BUNDLE
add_executable
(
pcbnew WIN32 MACOSX_BUNDLE
../common/single_top.cpp
../common/single_top.cpp
../common/pgm_base.cpp
${
PCBNEW_RESOURCES
}
${
PCBNEW_RESOURCES
}
)
)
set_source_files_properties
(
../common/single_top.cpp PROPERTIES
set_source_files_properties
(
../common/single_top.cpp
pcbnew.cpp
PROPERTIES
COMPILE_DEFINITIONS
"TOP_FRAME=PCB_FRAME_TYPE;PGM_DATA_FILE_EXT=
\"
kicad_pcb
\"
;BUILD_KIWAY_DLL"
COMPILE_DEFINITIONS
"TOP_FRAME=PCB_FRAME_TYPE;PGM_DATA_FILE_EXT=
\"
kicad_pcb
\"
;BUILD_KIWAY_DLL"
)
)
target_link_libraries
(
pcbnew
target_link_libraries
(
pcbnew
...
@@ -539,9 +537,7 @@ if( USE_KIWAY_DLLS )
...
@@ -539,9 +537,7 @@ if( USE_KIWAY_DLLS )
${
PCBNEW_SRCS
}
${
PCBNEW_SRCS
}
${
PCBNEW_COMMON_SRCS
}
${
PCBNEW_COMMON_SRCS
}
${
PCBNEW_SCRIPTING_SRCS
}
${
PCBNEW_SCRIPTING_SRCS
}
# ${PCBNEW_RESOURCES}
)
)
set_target_properties
(
pcbnew_kiface PROPERTIES
set_target_properties
(
pcbnew_kiface PROPERTIES
# Decorate OUTPUT_NAME with PREFIX and SUFFIX, creating something like
# Decorate OUTPUT_NAME with PREFIX and SUFFIX, creating something like
# _pcbnew.so, _pcbnew.dll, or _pcbnew.kiface
# _pcbnew.so, _pcbnew.dll, or _pcbnew.kiface
...
@@ -552,7 +548,7 @@ if( USE_KIWAY_DLLS )
...
@@ -552,7 +548,7 @@ if( USE_KIWAY_DLLS )
if
(
${
OPENMP_FOUND
}
)
if
(
${
OPENMP_FOUND
}
)
set_target_properties
(
pcbnew_kiface PROPERTIES
set_target_properties
(
pcbnew_kiface PROPERTIES
COMPILE_FLAGS
${
OpenMP_CXX_FLAGS
}
COMPILE_FLAGS
${
OpenMP_CXX_FLAGS
}
)
)
endif
()
endif
()
target_link_libraries
(
pcbnew_kiface
target_link_libraries
(
pcbnew_kiface
...
@@ -583,7 +579,11 @@ if( USE_KIWAY_DLLS )
...
@@ -583,7 +579,11 @@ if( USE_KIWAY_DLLS )
)
)
if
(
MAKE_LINK_MAPS
)
if
(
MAKE_LINK_MAPS
)
set_target_properties
(
pcbnew_kiface PROPERTIES
set_target_properties
(
pcbnew_kiface PROPERTIES
LINK_FLAGS
"
${
TO_LINKER
}
,-cref
${
TO_LINKER
}
,-Map=_pcbnew.kiface.map"
)
LINK_FLAGS
"
${
TO_LINKER
}
,-cref
${
TO_LINKER
}
,-Map=_pcbnew.kiface.map"
)
set_target_properties
(
pcbnew PROPERTIES
LINK_FLAGS
"
${
TO_LINKER
}
,-cref
${
TO_LINKER
}
,-Map=pcbnew.map"
)
endif
()
endif
()
# if building pcbnew, then also build pcbnew_kiface if out of date.
# if building pcbnew, then also build pcbnew_kiface if out of date.
...
@@ -605,18 +605,22 @@ if( USE_KIWAY_DLLS )
...
@@ -605,18 +605,22 @@ if( USE_KIWAY_DLLS )
COMMAND
${
CMAKE_COMMAND
}
-E copy
${
CMAKE_BINARY_DIR
}
/pcbnew/_pcbnew.kiface
"
${
CMAKE_BINARY_DIR
}
/pcbnew/pcbnew.app/Contents/MacOS/"
COMMAND
${
CMAKE_COMMAND
}
-E copy
${
CMAKE_BINARY_DIR
}
/pcbnew/_pcbnew.kiface
"
${
CMAKE_BINARY_DIR
}
/pcbnew/pcbnew.app/Contents/MacOS/"
DEPENDS pcbnew_kiface
DEPENDS pcbnew_kiface
COMMENT
"Copying kiface into pcbnew"
COMMENT
"Copying kiface into pcbnew"
)
)
endif
()
endif
()
else
()
# milestone A) kills this off:
else
()
# milestone A) kills this off:
add_executable
(
pcbnew WIN32 MACOSX_BUNDLE
add_executable
(
pcbnew WIN32 MACOSX_BUNDLE
../common/single_top.cpp
pcbnew.cpp
pcbnew.cpp
${
PCBNEW_SRCS
}
${
PCBNEW_SRCS
}
${
PCBNEW_COMMON_SRCS
}
${
PCBNEW_COMMON_SRCS
}
${
PCBNEW_SCRIPTING_SRCS
}
${
PCBNEW_SCRIPTING_SRCS
}
${
PCBNEW_RESOURCES
}
${
PCBNEW_RESOURCES
}
)
)
set_source_files_properties
(
../common/single_top.cpp PROPERTIES
COMPILE_DEFINITIONS
"TOP_FRAME=PCB_FRAME_TYPE;PGM_DATA_FILE_EXT=
\"
kicad_pcb
\"
"
)
target_link_libraries
(
pcbnew
target_link_libraries
(
pcbnew
3d-viewer
3d-viewer
pcbcommon
pcbcommon
...
@@ -651,28 +655,25 @@ else() # milestone A) kills this off:
...
@@ -651,28 +655,25 @@ else() # milestone A) kills this off:
)
)
endif
()
endif
()
if
(
MAKE_LINK_MAPS
)
# generate a link map with cross reference
set_target_properties
(
pcbnew PROPERTIES
LINK_FLAGS
"
${
TO_LINKER
}
,-cref
${
TO_LINKER
}
,-Map=pcbnew.map"
)
endif
()
install
(
TARGETS pcbnew
install
(
TARGETS pcbnew
DESTINATION
${
KICAD_BIN
}
DESTINATION
${
KICAD_BIN
}
COMPONENT binary
COMPONENT binary
)
)
endif
()
endif
()
add_dependencies
(
pcbnew lib-dependencies
)
add_dependencies
(
pcbnew lib-dependencies
)
###
# Set properties for APPLE on pcbnew target
###
if
(
APPLE
)
if
(
APPLE
)
set_target_properties
(
pcbnew PROPERTIES
set_target_properties
(
pcbnew PROPERTIES
MACOSX_BUNDLE_INFO_PLIST
${
CMAKE_CURRENT_SOURCE_DIR
}
/Info.plist
)
MACOSX_BUNDLE_INFO_PLIST
${
CMAKE_CURRENT_SOURCE_DIR
}
/Info.plist
endif
()
)
if
(
MAKE_LINK_MAPS
)
# generate a link map with cross reference
set_target_properties
(
pcbnew PROPERTIES
LINK_FLAGS
"
${
TO_LINKER
}
,-cref
${
TO_LINKER
}
,-Map=pcbnew.map"
)
endif
()
endif
()
...
@@ -691,19 +692,19 @@ if( KICAD_SCRIPTING )
...
@@ -691,19 +692,19 @@ if( KICAD_SCRIPTING )
COMMAND
${
CMAKE_COMMAND
}
-E copy
${
CMAKE_BINARY_DIR
}
/pcbnew/pcbnew.py
"
${
PYTHON_DEST
}
/wx-3.0-osx_cocoa/"
COMMAND
${
CMAKE_COMMAND
}
-E copy
${
CMAKE_BINARY_DIR
}
/pcbnew/pcbnew.py
"
${
PYTHON_DEST
}
/wx-3.0-osx_cocoa/"
DEPENDS FixSwigImportsScripting
DEPENDS FixSwigImportsScripting
COMMENT
"Copying pcbnew.py into PYTHON_DEST/wx-3.0-osx_cocoa/"
COMMENT
"Copying pcbnew.py into PYTHON_DEST/wx-3.0-osx_cocoa/"
)
)
add_custom_target
(
pcbnew_copy_wxpython_scripting ALL
add_custom_target
(
pcbnew_copy_wxpython_scripting ALL
COMMAND
${
CMAKE_COMMAND
}
-E copy_directory
${
LIBWXPYTHON_ROOT
}
/wxPython/
${
CMAKE_SOURCE_DIR
}
/pcbnew/pcbnew.app/Contents/Frameworks/wxPython/
COMMAND
${
CMAKE_COMMAND
}
-E copy_directory
${
LIBWXPYTHON_ROOT
}
/wxPython/
${
CMAKE_SOURCE_DIR
}
/pcbnew/pcbnew.app/Contents/Frameworks/wxPython/
DEPENDS FixSwigImportsScripting _pcbnew_py_copy
DEPENDS FixSwigImportsScripting _pcbnew_py_copy
COMMENT
"Copying wxPython into pcbnew.app Framework"
COMMENT
"Copying wxPython into pcbnew.app Framework"
)
)
add_custom_target
(
pcbnew_copy_plugins ALL
add_custom_target
(
pcbnew_copy_plugins ALL
COMMAND
${
CMAKE_COMMAND
}
-E copy_directory
${
PROJECT_SOURCE_DIR
}
/pcbnew/scripting/plugins
${
PROJECT_SOURCE_DIR
}
/pcbnew/pcbnew.app/Contents/PlugIns/scripting/plugins
COMMAND
${
CMAKE_COMMAND
}
-E copy_directory
${
PROJECT_SOURCE_DIR
}
/pcbnew/scripting/plugins
${
PROJECT_SOURCE_DIR
}
/pcbnew/pcbnew.app/Contents/PlugIns/scripting/plugins
DEPENDS pcbnew_copy_wxpython_scripting
DEPENDS pcbnew_copy_wxpython_scripting
COMMENT
"Copying plugins into bundle"
COMMENT
"Copying plugins into bundle"
)
)
# fix bundle after copying wxpython, fixing and copying
# fix bundle after copying wxpython, fixing and copying
add_dependencies
(
osx_fix_bundles pcbnew_copy_wxpython_scripting
)
add_dependencies
(
osx_fix_bundles pcbnew_copy_wxpython_scripting
)
...
@@ -738,13 +739,13 @@ if( KICAD_SCRIPTING_MODULES )
...
@@ -738,13 +739,13 @@ if( KICAD_SCRIPTING_MODULES )
COMMAND
${
CMAKE_COMMAND
}
-E copy
${
CMAKE_BINARY_DIR
}
/pcbnew/_pcbnew.so
"
${
PYTHON_DEST
}
"
COMMAND
${
CMAKE_COMMAND
}
-E copy
${
CMAKE_BINARY_DIR
}
/pcbnew/_pcbnew.so
"
${
PYTHON_DEST
}
"
DEPENDS _pcbnew FixSwigImportsModuleScripting
DEPENDS _pcbnew FixSwigImportsModuleScripting
COMMENT
"Copying _pcbnew.so into PYTHON_DEST"
COMMENT
"Copying _pcbnew.so into PYTHON_DEST"
)
)
add_custom_target
(
pcbnew_copy_wxpython_module ALL
add_custom_target
(
pcbnew_copy_wxpython_module ALL
COMMAND
${
CMAKE_COMMAND
}
-E copy_directory
${
LIBWXPYTHON_ROOT
}
/wxPython/
${
PROJECT_SOURCE_DIR
}
/pcbnew/pcbnew.app/Contents/Frameworks/wxPython/
COMMAND
${
CMAKE_COMMAND
}
-E copy_directory
${
LIBWXPYTHON_ROOT
}
/wxPython/
${
PROJECT_SOURCE_DIR
}
/pcbnew/pcbnew.app/Contents/Frameworks/wxPython/
DEPENDS FixSwigImportsModuleScripting _pcbnew_so_copy
DEPENDS FixSwigImportsModuleScripting _pcbnew_so_copy
COMMENT
"Copying wxPython into pcbnew.app Frameworks"
COMMENT
"Copying wxPython into pcbnew.app Frameworks"
)
)
if
(
KICAD_BUILD_DYNAMIC
)
if
(
KICAD_BUILD_DYNAMIC
)
# Tell that we have to run osx_fix_bundles fix after building _pcbnew and migrating wxPython
# Tell that we have to run osx_fix_bundles fix after building _pcbnew and migrating wxPython
...
@@ -755,14 +756,15 @@ if( KICAD_SCRIPTING_MODULES )
...
@@ -755,14 +756,15 @@ if( KICAD_SCRIPTING_MODULES )
endif
()
endif
()
# This one gets made only when testing
.
if
(
false
)
# haven't been used in years
.
add_executable
(
specctra_test EXCLUDE_FROM_ALL specctra_test.cpp specctra.cpp
)
# This one gets made only when testing.
target_link_libraries
(
specctra_test common
${
wxWidgets_LIBRARIES
}
)
add_executable
(
specctra_test EXCLUDE_FROM_ALL specctra_test.cpp specctra.cpp
)
target_link_libraries
(
specctra_test common
${
wxWidgets_LIBRARIES
}
)
# This one gets made only when testing.
add_executable
(
layer_widget_test WIN32 EXCLUDE_FROM_ALL
layer_widget.cpp
)
target_link_libraries
(
layer_widget_test common
${
wxWidgets_LIBRARIES
}
)
# This one gets made only when testing.
add_executable
(
layer_widget_test WIN32 EXCLUDE_FROM_ALL
layer_widget.cpp
)
target_link_libraries
(
layer_widget_test common
${
wxWidgets_LIBRARIES
}
)
endif
()
pcbnew/class_netclass.cpp
View file @
e7ea0480
...
@@ -36,7 +36,7 @@
...
@@ -36,7 +36,7 @@
// This will get mapped to "kicad_default" in the specctra_export.
// This will get mapped to "kicad_default" in the specctra_export.
const
wx
String
NETCLASS
::
Default
=
wxT
(
"Default"
);
const
wx
Char
NETCLASS
::
Default
[]
=
wxT
(
"Default"
);
// Initial values for netclass initialization
// Initial values for netclass initialization
int
NETCLASS
::
DEFAULT_CLEARANCE
=
DMils2iu
(
100
);
// track to track and track to pads clearance
int
NETCLASS
::
DEFAULT_CLEARANCE
=
DMils2iu
(
100
);
// track to track and track to pads clearance
...
...
pcbnew/class_netclass.h
View file @
e7ea0480
...
@@ -80,7 +80,7 @@ protected:
...
@@ -80,7 +80,7 @@ protected:
public
:
public
:
static
const
wx
String
Default
;
///< the name of the default NETCLASS
static
const
wx
Char
Default
[]
;
///< the name of the default NETCLASS
/**
/**
* Constructor
* Constructor
...
...
pcbnew/clean.cpp
View file @
e7ea0480
...
@@ -41,37 +41,20 @@
...
@@ -41,37 +41,20 @@
#include <ratsnest_data.h>
#include <ratsnest_data.h>
// Helper class used to clean tracks and vias
// Helper class used to clean tracks and vias
class
TRACKS_CLEANER
:
CONNECTIONS
class
TRACKS_CLEANER
:
CONNECTIONS
{
{
private
:
private
:
BOARD
*
m_Brd
;
BOARD
*
m_Brd
;
bool
m_deleteUnconnectedTracks
;
bool
m_mergeSegments
;
bool
m_cleanVias
;
public
:
public
:
TRACKS_CLEANER
(
BOARD
*
aPcb
);
TRACKS_CLEANER
(
BOARD
*
aPcb
);
/**
/**
* the cleanup function.
* the cleanup function.
* return true if some item was modified
* return true if some item was modified
*/
*/
bool
CleanupBoard
();
bool
CleanupBoard
(
PCB_EDIT_FRAME
*
aFrame
,
bool
aCleanVias
,
bool
aMergeSegments
,
bool
aDeleteUnconnected
);
void
SetdeleteUnconnectedTracksOpt
(
bool
aDelete
)
{
m_deleteUnconnectedTracks
=
aDelete
;
}
void
SetMergeSegmentsOpt
(
bool
aMerge
)
{
m_mergeSegments
=
aMerge
;
}
void
SetCleanViasOpt
(
bool
aClean
)
{
m_cleanVias
=
aClean
;
}
private
:
private
:
...
@@ -89,7 +72,7 @@ private:
...
@@ -89,7 +72,7 @@ private:
/**
/**
* Merge colinear segments and remove null len segments
* Merge colinear segments and remove null len segments
*/
*/
bool
clean_segments
();
bool
clean_segments
();
/**
/**
* helper function
* helper function
...
@@ -103,7 +86,8 @@ private:
...
@@ -103,7 +86,8 @@ private:
* merge aTrackRef and aCandidate, when possible,
* merge aTrackRef and aCandidate, when possible,
* i.e. when they are colinear, same width, and obviously same layer
* i.e. when they are colinear, same width, and obviously same layer
*/
*/
TRACK
*
mergeCollinearSegmentIfPossible
(
TRACK
*
aTrackRef
,
TRACK
*
aCandidate
,
int
aEndType
);
TRACK
*
mergeCollinearSegmentIfPossible
(
TRACK
*
aTrackRef
,
TRACK
*
aCandidate
,
int
aEndType
);
};
};
/* Install the cleanup dialog frame to know what should be cleaned
/* Install the cleanup dialog frame to know what should be cleaned
...
@@ -117,19 +101,9 @@ void PCB_EDIT_FRAME::Clean_Pcb()
...
@@ -117,19 +101,9 @@ void PCB_EDIT_FRAME::Clean_Pcb()
wxBusyCursor
(
dummy
);
wxBusyCursor
(
dummy
);
TRACKS_CLEANER
cleaner
(
GetBoard
()
);
TRACKS_CLEANER
cleaner
(
GetBoard
()
);
cleaner
.
SetdeleteUnconnectedTracksOpt
(
dlg
.
m_deleteUnconnectedSegm
);
cleaner
.
SetMergeSegmentsOpt
(
dlg
.
m_mergeSegments
);
cleaner
.
SetCleanViasOpt
(
dlg
.
m_cleanVias
);
if
(
cleaner
.
CleanupBoard
()
)
{
// Clear undo and redo lists to avoid inconsistencies between lists
GetScreen
()
->
ClearUndoRedoList
();
SetCurItem
(
NULL
);
Compile_Ratsnest
(
NULL
,
true
);
OnModify
();
}
cleaner
.
CleanupBoard
(
this
,
dlg
.
m_cleanVias
,
dlg
.
m_mergeSegments
,
dlg
.
m_deleteUnconnectedSegm
);
m_canvas
->
Refresh
(
true
);
m_canvas
->
Refresh
(
true
);
}
}
...
@@ -142,30 +116,38 @@ void PCB_EDIT_FRAME::Clean_Pcb()
...
@@ -142,30 +116,38 @@ void PCB_EDIT_FRAME::Clean_Pcb()
* Create segments when track ends are incorrectly connected:
* Create segments when track ends are incorrectly connected:
* i.e. when a track end covers a pad or a via but is not exactly on the pad or the via center
* i.e. when a track end covers a pad or a via but is not exactly on the pad or the via center
*/
*/
bool
TRACKS_CLEANER
::
CleanupBoard
()
bool
TRACKS_CLEANER
::
CleanupBoard
(
PCB_EDIT_FRAME
*
aFrame
,
bool
aCleanVias
,
bool
aMergeSegments
,
bool
aDeleteUnconnected
)
{
{
bool
modified
=
false
;
bool
modified
=
false
;
// delete redundant vias
// delete redundant vias
if
(
m_cleanVias
&&
clean_vias
()
)
modified
|=
(
aCleanVias
&&
clean_vias
());
modified
=
true
;
// Remove null segments and intermediate points on aligned segments
// Remove null segments and intermediate points on aligned segments
if
(
m_mergeSegments
&&
clean_segments
()
)
modified
|=
(
aMergeSegments
&&
clean_segments
());
modified
=
true
;
// Delete dangling tracks
// Delete dangling tracks
if
(
m_deleteUnconnectedTracks
&&
deleteUnconnectedTracks
()
)
modified
|=
(
aDeleteUnconnected
&&
deleteUnconnectedTracks
());
modified
=
true
;
if
(
modified
)
{
// Clear undo and redo lists to avoid inconsistencies between lists
// XXX This is very involved... maybe a member in PCB_EDIT_FRAME
// would be better?
aFrame
->
GetScreen
()
->
ClearUndoRedoList
();
aFrame
->
SetCurItem
(
NULL
);
aFrame
->
Compile_Ratsnest
(
NULL
,
true
);
aFrame
->
OnModify
();
}
return
modified
;
return
modified
;
}
}
TRACKS_CLEANER
::
TRACKS_CLEANER
(
BOARD
*
aPcb
)
:
CONNECTIONS
(
aPcb
)
TRACKS_CLEANER
::
TRACKS_CLEANER
(
BOARD
*
aPcb
)
:
CONNECTIONS
(
aPcb
)
{
{
m_Brd
=
aPcb
;
m_Brd
=
aPcb
;
m_deleteUnconnectedTracks
=
false
;
m_mergeSegments
=
false
;
// Build connections info
// Build connections info
BuildPadsList
();
BuildPadsList
();
...
@@ -177,22 +159,22 @@ void TRACKS_CLEANER::buildTrackConnectionInfo()
...
@@ -177,22 +159,22 @@ void TRACKS_CLEANER::buildTrackConnectionInfo()
BuildTracksCandidatesList
(
m_Brd
->
m_Track
,
NULL
);
BuildTracksCandidatesList
(
m_Brd
->
m_Track
,
NULL
);
// clear flags and variables used in cleanup
// clear flags and variables used in cleanup
for
(
TRACK
*
track
=
m_Brd
->
m_Track
;
track
;
track
=
track
->
Next
()
)
for
(
TRACK
*
track
=
m_Brd
->
m_Track
;
track
;
track
=
track
->
Next
()
)
{
{
track
->
start
=
NULL
;
track
->
start
=
NULL
;
track
->
end
=
NULL
;
track
->
end
=
NULL
;
track
->
m_PadsConnected
.
clear
();
track
->
m_PadsConnected
.
clear
();
track
->
SetState
(
START_ON_PAD
|
END_ON_PAD
|
BUSY
,
false
);
track
->
SetState
(
START_ON_PAD
|
END_ON_PAD
|
BUSY
,
false
);
}
}
// Build connections info tracks to pads
// Build connections info tracks to pads
SearchTracksConnectedToPads
();
SearchTracksConnectedToPads
();
for
(
TRACK
*
track
=
m_Brd
->
m_Track
;
track
;
track
=
track
->
Next
()
)
for
(
TRACK
*
track
=
m_Brd
->
m_Track
;
track
;
track
=
track
->
Next
()
)
{
{
// Mark track if connected to pads
// Mark track if connected to pads
for
(
unsigned
jj
=
0
;
jj
<
track
->
m_PadsConnected
.
size
();
jj
++
)
for
(
unsigned
jj
=
0
;
jj
<
track
->
m_PadsConnected
.
size
();
jj
++
)
{
{
D_PAD
*
pad
=
track
->
m_PadsConnected
[
jj
];
D_PAD
*
pad
=
track
->
m_PadsConnected
[
jj
];
if
(
pad
->
HitTest
(
track
->
GetStart
()
)
)
if
(
pad
->
HitTest
(
track
->
GetStart
()
)
)
{
{
...
@@ -211,7 +193,6 @@ void TRACKS_CLEANER::buildTrackConnectionInfo()
...
@@ -211,7 +193,6 @@ void TRACKS_CLEANER::buildTrackConnectionInfo()
bool
TRACKS_CLEANER
::
clean_vias
()
bool
TRACKS_CLEANER
::
clean_vias
()
{
{
TRACK
*
next_track
;
bool
modified
=
false
;
bool
modified
=
false
;
for
(
TRACK
*
track
=
m_Brd
->
m_Track
;
track
;
track
=
track
->
Next
()
)
for
(
TRACK
*
track
=
m_Brd
->
m_Track
;
track
;
track
=
track
->
Next
()
)
...
@@ -229,6 +210,7 @@ bool TRACKS_CLEANER::clean_vias()
...
@@ -229,6 +210,7 @@ bool TRACKS_CLEANER::clean_vias()
// Search and delete others vias at same location
// Search and delete others vias at same location
TRACK
*
alt_track
=
track
->
Next
();
TRACK
*
alt_track
=
track
->
Next
();
TRACK
*
next_track
;
for
(
;
alt_track
!=
NULL
;
alt_track
=
next_track
)
for
(
;
alt_track
!=
NULL
;
alt_track
=
next_track
)
{
{
next_track
=
alt_track
->
Next
();
next_track
=
alt_track
->
Next
();
...
@@ -249,6 +231,7 @@ bool TRACKS_CLEANER::clean_vias()
...
@@ -249,6 +231,7 @@ bool TRACKS_CLEANER::clean_vias()
}
}
// Delete Via on pads at same location
// Delete Via on pads at same location
TRACK
*
next_track
;
for
(
TRACK
*
track
=
m_Brd
->
m_Track
;
track
!=
NULL
;
track
=
next_track
)
for
(
TRACK
*
track
=
m_Brd
->
m_Track
;
track
!=
NULL
;
track
=
next_track
)
{
{
next_track
=
track
->
Next
();
next_track
=
track
->
Next
();
...
@@ -260,9 +243,9 @@ bool TRACKS_CLEANER::clean_vias()
...
@@ -260,9 +243,9 @@ bool TRACKS_CLEANER::clean_vias()
// if one pad through is found, the via can be removed
// if one pad through is found, the via can be removed
for
(
unsigned
ii
=
0
;
ii
<
track
->
m_PadsConnected
.
size
();
ii
++
)
for
(
unsigned
ii
=
0
;
ii
<
track
->
m_PadsConnected
.
size
();
ii
++
)
{
{
D_PAD
*
pad
=
track
->
m_PadsConnected
[
ii
];
D_PAD
*
pad
=
track
->
m_PadsConnected
[
ii
];
if
(
(
pad
->
GetLayerMask
()
&
ALL_CU_LAYERS
)
==
ALL_CU_LAYERS
)
if
(
(
pad
->
GetLayerMask
()
&
ALL_CU_LAYERS
)
==
ALL_CU_LAYERS
)
{
{
// redundant: via delete it
// redundant: via delete it
m_Brd
->
GetRatsnest
()
->
Remove
(
track
);
m_Brd
->
GetRatsnest
()
->
Remove
(
track
);
...
@@ -295,8 +278,7 @@ bool TRACKS_CLEANER::deleteUnconnectedTracks()
...
@@ -295,8 +278,7 @@ bool TRACKS_CLEANER::deleteUnconnectedTracks()
{
{
item_erased
=
false
;
item_erased
=
false
;
TRACK
*
next_track
;
TRACK
*
next_track
;
for
(
TRACK
*
track
=
m_Brd
->
m_Track
;
track
;
track
=
next_track
)
for
(
TRACK
*
track
=
m_Brd
->
m_Track
;
track
;
track
=
next_track
)
{
{
next_track
=
track
->
Next
();
next_track
=
track
->
Next
();
...
@@ -317,7 +299,7 @@ bool TRACKS_CLEANER::deleteUnconnectedTracks()
...
@@ -317,7 +299,7 @@ bool TRACKS_CLEANER::deleteUnconnectedTracks()
LAYER_NUM
top_layer
,
bottom_layer
;
LAYER_NUM
top_layer
,
bottom_layer
;
ZONE_CONTAINER
*
zone
;
ZONE_CONTAINER
*
zone
;
if
(
(
type_end
&
START_ON_PAD
)
==
0
)
if
(
(
type_end
&
START_ON_PAD
)
==
0
)
{
{
TRACK
*
other
=
track
->
GetTrace
(
m_Brd
->
m_Track
,
NULL
,
FLG_START
);
TRACK
*
other
=
track
->
GetTrace
(
m_Brd
->
m_Track
,
NULL
,
FLG_START
);
...
@@ -339,7 +321,7 @@ bool TRACKS_CLEANER::deleteUnconnectedTracks()
...
@@ -339,7 +321,7 @@ bool TRACKS_CLEANER::deleteUnconnectedTracks()
}
}
}
}
if
(
(
other
==
NULL
)
&&
(
zone
==
NULL
)
)
if
(
(
other
==
NULL
)
&&
(
zone
==
NULL
)
)
{
{
flag_erase
|=
1
;
flag_erase
|=
1
;
}
}
...
@@ -427,7 +409,7 @@ bool TRACKS_CLEANER::deleteUnconnectedTracks()
...
@@ -427,7 +409,7 @@ bool TRACKS_CLEANER::deleteUnconnectedTracks()
via
->
GetNetCode
()
);
via
->
GetNetCode
()
);
}
}
if
(
(
other
==
NULL
)
&&
(
zone
==
NULL
)
)
if
(
(
other
==
NULL
)
&&
(
zone
==
NULL
)
)
flag_erase
|=
0x20
;
flag_erase
|=
0x20
;
track
->
SetState
(
BUSY
,
false
);
track
->
SetState
(
BUSY
,
false
);
...
@@ -459,8 +441,6 @@ bool TRACKS_CLEANER::clean_segments()
...
@@ -459,8 +441,6 @@ bool TRACKS_CLEANER::clean_segments()
bool
modified
=
false
;
bool
modified
=
false
;
TRACK
*
segment
,
*
nextsegment
;
TRACK
*
segment
,
*
nextsegment
;
TRACK
*
other
;
TRACK
*
other
;
int
flag
,
no_inc
;
// Delete null segments
// Delete null segments
for
(
segment
=
m_Brd
->
m_Track
;
segment
;
segment
=
nextsegment
)
for
(
segment
=
m_Brd
->
m_Track
;
segment
;
segment
=
nextsegment
)
...
@@ -472,6 +452,7 @@ bool TRACKS_CLEANER::clean_segments()
...
@@ -472,6 +452,7 @@ bool TRACKS_CLEANER::clean_segments()
m_Brd
->
GetRatsnest
()
->
Remove
(
segment
);
m_Brd
->
GetRatsnest
()
->
Remove
(
segment
);
segment
->
ViewRelease
();
segment
->
ViewRelease
();
segment
->
DeleteStructure
();
segment
->
DeleteStructure
();
modified
=
true
;
}
}
}
}
...
@@ -524,7 +505,8 @@ bool TRACKS_CLEANER::clean_segments()
...
@@ -524,7 +505,8 @@ bool TRACKS_CLEANER::clean_segments()
if
(
segment
->
Type
()
!=
PCB_TRACE_T
)
if
(
segment
->
Type
()
!=
PCB_TRACE_T
)
continue
;
continue
;
flag
=
no_inc
=
0
;
unsigned
flag
=
0
;
bool
no_inc
=
false
;
// search for a possible point connected to the START point of the current segment
// search for a possible point connected to the START point of the current segment
for
(
segStart
=
segment
->
Next
();
;
)
for
(
segStart
=
segment
->
Next
();
;
)
...
@@ -603,7 +585,7 @@ bool TRACKS_CLEANER::clean_segments()
...
@@ -603,7 +585,7 @@ bool TRACKS_CLEANER::clean_segments()
if
(
segDelete
)
if
(
segDelete
)
{
{
no_inc
=
1
;
no_inc
=
true
;
m_Brd
->
GetRatsnest
()
->
Remove
(
segDelete
);
m_Brd
->
GetRatsnest
()
->
Remove
(
segDelete
);
segDelete
->
ViewRelease
();
segDelete
->
ViewRelease
();
segDelete
->
DeleteStructure
();
segDelete
->
DeleteStructure
();
...
...
pcbnew/dialogs/dialog_netlist.cpp
View file @
e7ea0480
...
@@ -91,7 +91,7 @@ void PCB_EDIT_FRAME::InstallNetlistFrame( wxDC* DC )
...
@@ -91,7 +91,7 @@ void PCB_EDIT_FRAME::InstallNetlistFrame( wxDC* DC )
// was: wxGetApp().WriteProjectConfig( fn.GetFullPath(), GROUP, GetProjectFileParameters() );
// was: wxGetApp().WriteProjectConfig( fn.GetFullPath(), GROUP, GetProjectFileParameters() );
Prj
().
ConfigSave
(
Kiface
().
KifaceSearch
(),
fn
.
GetFullPath
(),
Prj
().
ConfigSave
(
Kiface
().
KifaceSearch
(),
fn
.
GetFullPath
(),
GROUP
,
GetProjectFileParameters
()
);
GROUP
_PCB
,
GetProjectFileParameters
()
);
}
}
}
}
...
@@ -426,7 +426,7 @@ bool DIALOG_NETLIST::verifyFootprints( const wxString& aNetlistFilename,
...
@@ -426,7 +426,7 @@ bool DIALOG_NETLIST::verifyFootprints( const wxString& aNetlistFilename,
std
::
auto_ptr
<
NETLIST_READER
>
nlr
(
netlistReader
);
std
::
auto_ptr
<
NETLIST_READER
>
nlr
(
netlistReader
);
netlistReader
->
LoadNetlist
();
netlistReader
->
LoadNetlist
();
}
}
catch
(
IO_ERROR
&
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
msg
.
Printf
(
_
(
"Error loading netlist file:
\n
%s"
),
ioe
.
errorText
.
GetData
()
);
msg
.
Printf
(
_
(
"Error loading netlist file:
\n
%s"
),
ioe
.
errorText
.
GetData
()
);
wxMessageBox
(
msg
,
_
(
"Netlist Load Error"
),
wxOK
|
wxICON_ERROR
);
wxMessageBox
(
msg
,
_
(
"Netlist Load Error"
),
wxOK
|
wxICON_ERROR
);
...
...
pcbnew/exporters/export_idf.cpp
View file @
e7ea0480
...
@@ -403,7 +403,7 @@ bool Export_IDF3( BOARD* aPcb, const wxString& aFullFileName, double aUseThou )
...
@@ -403,7 +403,7 @@ bool Export_IDF3( BOARD* aPcb, const wxString& aFullFileName, double aUseThou )
idfBoard
.
Finish
();
idfBoard
.
Finish
();
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
wxLogDebug
(
wxT
(
"An error occurred attemping export to IDFv3.
\n\n
Error: %s"
),
wxLogDebug
(
wxT
(
"An error occurred attemping export to IDFv3.
\n\n
Error: %s"
),
GetChars
(
ioe
.
errorText
)
);
GetChars
(
ioe
.
errorText
)
);
...
...
pcbnew/exporters/gen_modules_placefile.cpp
View file @
e7ea0480
...
@@ -713,7 +713,7 @@ bool PCB_EDIT_FRAME::DoGenFootprintsReport( const wxString& aFullFilename, bool
...
@@ -713,7 +713,7 @@ bool PCB_EDIT_FRAME::DoGenFootprintsReport( const wxString& aFullFilename, bool
fprintf
(
rptfile
,
"$EndMODULE %s
\n\n
"
,
TO_UTF8
(
Module
->
GetReference
()
)
);
fprintf
(
rptfile
,
"$EndMODULE %s
\n\n
"
,
TO_UTF8
(
Module
->
GetReference
()
)
);
}
}
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
DisplayError
(
NULL
,
ioe
.
errorText
);
DisplayError
(
NULL
,
ioe
.
errorText
);
}
}
...
...
pcbnew/files.cpp
View file @
e7ea0480
...
@@ -404,7 +404,7 @@ bool PCB_EDIT_FRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, in
...
@@ -404,7 +404,7 @@ bool PCB_EDIT_FRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, in
SetBoard
(
loadedBoard
);
SetBoard
(
loadedBoard
);
}
}
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
wxString
msg
=
wxString
::
Format
(
_
(
"Error loading board.
\n
%s"
),
wxString
msg
=
wxString
::
Format
(
_
(
"Error loading board.
\n
%s"
),
ioe
.
errorText
.
GetData
()
);
ioe
.
errorText
.
GetData
()
);
...
@@ -692,7 +692,7 @@ bool PCB_EDIT_FRAME::SavePcbFile( const wxString& aFileName, bool aCreateBackupF
...
@@ -692,7 +692,7 @@ bool PCB_EDIT_FRAME::SavePcbFile( const wxString& aFileName, bool aCreateBackupF
pi
->
Save
(
pcbFileName
.
GetFullPath
(),
GetBoard
(),
NULL
);
pi
->
Save
(
pcbFileName
.
GetFullPath
(),
GetBoard
(),
NULL
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
wxString
msg
=
wxString
::
Format
(
_
(
"Error saving board.
\n
%s"
),
wxString
msg
=
wxString
::
Format
(
_
(
"Error saving board.
\n
%s"
),
ioe
.
errorText
.
GetData
()
);
ioe
.
errorText
.
GetData
()
);
...
...
pcbnew/github/github_plugin.cpp
View file @
e7ea0480
...
@@ -570,7 +570,7 @@ int main( int argc, char** argv )
...
@@ -570,7 +570,7 @@ int main( int argc, char** argv )
printf("[%d]:%s\n", i, TO_UTF8( fps[i] ) );
printf("[%d]:%s\n", i, TO_UTF8( fps[i] ) );
}
}
}
}
catch(
IO_ERROR
ioe )
catch(
const IO_ERROR&
ioe )
{
{
printf( "%s\n", TO_UTF8(ioe.errorText) );
printf( "%s\n", TO_UTF8(ioe.errorText) );
}
}
...
...
pcbnew/io_mgr.h
View file @
e7ea0480
...
@@ -204,7 +204,7 @@ public:
...
@@ -204,7 +204,7 @@ public:
* or
* or
* IO_MGR::Save(...);
* IO_MGR::Save(...);
* }
* }
* catch(
IO_ERROR
ioe )
* catch(
const IO_ERROR&
ioe )
* {
* {
* // grab text from ioe, show in error window.
* // grab text from ioe, show in error window.
* }
* }
...
...
pcbnew/ioascii.cpp.notused
deleted
100644 → 0
View file @
bff37e50
This diff is collapsed.
Click to expand it.
pcbnew/item_io.cpp.notused
deleted
100644 → 0
View file @
bff37e50
This diff is collapsed.
Click to expand it.
pcbnew/librairi.cpp
View file @
e7ea0480
...
@@ -199,7 +199,7 @@ MODULE* FOOTPRINT_EDIT_FRAME::Import_Module()
...
@@ -199,7 +199,7 @@ MODULE* FOOTPRINT_EDIT_FRAME::Import_Module()
return
NULL
;
return
NULL
;
}
}
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
DisplayError
(
this
,
ioe
.
errorText
);
DisplayError
(
this
,
ioe
.
errorText
);
return
NULL
;
return
NULL
;
...
@@ -222,7 +222,7 @@ MODULE* FOOTPRINT_EDIT_FRAME::Import_Module()
...
@@ -222,7 +222,7 @@ MODULE* FOOTPRINT_EDIT_FRAME::Import_Module()
return
NULL
;
return
NULL
;
}
}
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
DisplayError
(
this
,
ioe
.
errorText
);
DisplayError
(
this
,
ioe
.
errorText
);
return
NULL
;
return
NULL
;
...
@@ -259,7 +259,7 @@ MODULE* FOOTPRINT_EDIT_FRAME::Import_Module()
...
@@ -259,7 +259,7 @@ MODULE* FOOTPRINT_EDIT_FRAME::Import_Module()
return
NULL
;
return
NULL
;
}
}
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
DisplayError
(
this
,
ioe
.
errorText
);
DisplayError
(
this
,
ioe
.
errorText
);
return
NULL
;
return
NULL
;
...
@@ -334,7 +334,7 @@ void FOOTPRINT_EDIT_FRAME::Export_Module( MODULE* aModule )
...
@@ -334,7 +334,7 @@ void FOOTPRINT_EDIT_FRAME::Export_Module( MODULE* aModule )
fprintf
(
fp
,
"%s"
,
pcb_io
.
GetStringOutput
(
false
).
c_str
()
);
fprintf
(
fp
,
"%s"
,
pcb_io
.
GetStringOutput
(
false
).
c_str
()
);
fclose
(
fp
);
fclose
(
fp
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
DisplayError
(
this
,
ioe
.
errorText
);
DisplayError
(
this
,
ioe
.
errorText
);
return
;
return
;
...
@@ -357,7 +357,7 @@ bool FOOTPRINT_EDIT_FRAME::SaveCurrentModule( const wxString* aLibPath )
...
@@ -357,7 +357,7 @@ bool FOOTPRINT_EDIT_FRAME::SaveCurrentModule( const wxString* aLibPath )
pi
->
FootprintSave
(
libPath
,
GetBoard
()
->
m_Modules
);
pi
->
FootprintSave
(
libPath
,
GetBoard
()
->
m_Modules
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
DisplayError
(
this
,
ioe
.
errorText
);
DisplayError
(
this
,
ioe
.
errorText
);
return
false
;
return
false
;
...
@@ -429,7 +429,7 @@ wxString FOOTPRINT_EDIT_FRAME::CreateNewLibrary()
...
@@ -429,7 +429,7 @@ wxString FOOTPRINT_EDIT_FRAME::CreateNewLibrary()
writable
=
pi
->
IsFootprintLibWritable
(
libPath
);
writable
=
pi
->
IsFootprintLibWritable
(
libPath
);
exists
=
true
;
// no exception was thrown, lib must exist.
exists
=
true
;
// no exception was thrown, lib must exist.
}
}
catch
(
IO_ERROR
)
catch
(
const
IO_ERROR
&
)
{
{
// ignore, original values of 'writable' and 'exists' are accurate.
// ignore, original values of 'writable' and 'exists' are accurate.
}
}
...
@@ -455,7 +455,7 @@ wxString FOOTPRINT_EDIT_FRAME::CreateNewLibrary()
...
@@ -455,7 +455,7 @@ wxString FOOTPRINT_EDIT_FRAME::CreateNewLibrary()
pi
->
FootprintLibCreate
(
libPath
);
pi
->
FootprintLibCreate
(
libPath
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
DisplayError
(
this
,
ioe
.
errorText
);
DisplayError
(
this
,
ioe
.
errorText
);
return
wxEmptyString
;
return
wxEmptyString
;
...
@@ -499,7 +499,7 @@ bool FOOTPRINT_EDIT_FRAME::DeleteModuleFromCurrentLibrary()
...
@@ -499,7 +499,7 @@ bool FOOTPRINT_EDIT_FRAME::DeleteModuleFromCurrentLibrary()
{
{
FootprintLibs
()
->
FootprintDelete
(
nickname
,
fpname
);
FootprintLibs
()
->
FootprintDelete
(
nickname
,
fpname
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
DisplayError
(
this
,
ioe
.
errorText
);
DisplayError
(
this
,
ioe
.
errorText
);
return
false
;
return
false
;
...
@@ -568,7 +568,7 @@ void PCB_EDIT_FRAME::ArchiveModulesOnBoard( bool aNewModulesOnly )
...
@@ -568,7 +568,7 @@ void PCB_EDIT_FRAME::ArchiveModulesOnBoard( bool aNewModulesOnly )
}
}
}
}
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
DisplayError
(
this
,
ioe
.
errorText
);
DisplayError
(
this
,
ioe
.
errorText
);
}
}
...
@@ -655,7 +655,7 @@ bool PCB_BASE_FRAME::Save_Module_In_Library( const wxString& aLibrary,
...
@@ -655,7 +655,7 @@ bool PCB_BASE_FRAME::Save_Module_In_Library( const wxString& aLibrary,
// own if the library or footprint is not writable.
// own if the library or footprint is not writable.
FootprintLibs
()
->
FootprintSave
(
aLibrary
,
aModule
);
FootprintLibs
()
->
FootprintSave
(
aLibrary
,
aModule
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
DisplayError
(
this
,
ioe
.
errorText
);
DisplayError
(
this
,
ioe
.
errorText
);
return
false
;
return
false
;
...
...
pcbnew/loadcmp.cpp
View file @
e7ea0480
...
@@ -220,7 +220,7 @@ MODULE* PCB_BASE_FRAME::LoadModuleFromLibrary( const wxString& aLibrary,
...
@@ -220,7 +220,7 @@ MODULE* PCB_BASE_FRAME::LoadModuleFromLibrary( const wxString& aLibrary,
{
{
module
=
loadFootprint
(
fpid
);
module
=
loadFootprint
(
fpid
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
wxLogDebug
(
wxT
(
"An error occurred attemping to load footprint '%s'.
\n\n
Error: %s"
),
wxLogDebug
(
wxT
(
"An error occurred attemping to load footprint '%s'.
\n\n
Error: %s"
),
fpid
.
Format
().
c_str
(),
GetChars
(
ioe
.
errorText
)
);
fpid
.
Format
().
c_str
(),
GetChars
(
ioe
.
errorText
)
);
...
@@ -252,7 +252,7 @@ MODULE* PCB_BASE_FRAME::LoadModuleFromLibrary( const wxString& aLibrary,
...
@@ -252,7 +252,7 @@ MODULE* PCB_BASE_FRAME::LoadModuleFromLibrary( const wxString& aLibrary,
{
{
module
=
loadFootprint
(
fpid
);
module
=
loadFootprint
(
fpid
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
wxLogDebug
(
wxT
(
"An error occurred attemping to load footprint '%s'.
\n\n
Error: %s"
),
wxLogDebug
(
wxT
(
"An error occurred attemping to load footprint '%s'.
\n\n
Error: %s"
),
fpid
.
Format
().
c_str
(),
GetChars
(
ioe
.
errorText
)
);
fpid
.
Format
().
c_str
(),
GetChars
(
ioe
.
errorText
)
);
...
@@ -304,7 +304,7 @@ MODULE* PCB_BASE_FRAME::LoadFootprint( const FPID& aFootprintId )
...
@@ -304,7 +304,7 @@ MODULE* PCB_BASE_FRAME::LoadFootprint( const FPID& aFootprintId )
{
{
module
=
loadFootprint
(
aFootprintId
);
module
=
loadFootprint
(
aFootprintId
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
wxLogDebug
(
wxT
(
"An error occurred attemping to load footprint '%s'.
\n\n
Error: %s"
),
wxLogDebug
(
wxT
(
"An error occurred attemping to load footprint '%s'.
\n\n
Error: %s"
),
aFootprintId
.
Format
().
c_str
(),
GetChars
(
ioe
.
errorText
)
);
aFootprintId
.
Format
().
c_str
(),
GetChars
(
ioe
.
errorText
)
);
...
@@ -321,31 +321,7 @@ MODULE* PCB_BASE_FRAME::loadFootprint( const FPID& aFootprintId )
...
@@ -321,31 +321,7 @@ MODULE* PCB_BASE_FRAME::loadFootprint( const FPID& aFootprintId )
wxCHECK_MSG
(
fptbl
,
NULL
,
wxT
(
"Cannot look up FPID in NULL FP_LIB_TABLE."
)
);
wxCHECK_MSG
(
fptbl
,
NULL
,
wxT
(
"Cannot look up FPID in NULL FP_LIB_TABLE."
)
);
wxString
nickname
=
aFootprintId
.
GetLibNickname
();
return
fptbl
->
FootprintLoadWithOptionalNickname
(
aFootprintId
);
wxString
fpname
=
aFootprintId
.
GetFootprintName
();
if
(
nickname
.
size
()
)
{
return
fptbl
->
FootprintLoad
(
nickname
,
fpname
);
}
// user did not enter a nickname, just a footprint name, help him out a little:
else
{
std
::
vector
<
wxString
>
nicks
=
fptbl
->
GetLogicalLibs
();
// Search each library going through libraries alphabetically.
for
(
unsigned
i
=
0
;
i
<
nicks
.
size
();
++
i
)
{
// FootprintLoad() returns NULL on not found, does not throw exception
// unless there's an IO_ERROR.
MODULE
*
ret
=
fptbl
->
FootprintLoad
(
nicks
[
i
],
fpname
);
if
(
ret
)
return
ret
;
}
return
NULL
;
}
}
}
...
@@ -557,7 +533,7 @@ void FOOTPRINT_EDIT_FRAME::OnSaveLibraryAs( wxCommandEvent& aEvent )
...
@@ -557,7 +533,7 @@ void FOOTPRINT_EDIT_FRAME::OnSaveLibraryAs( wxCommandEvent& aEvent )
// m is deleted here by auto_ptr.
// m is deleted here by auto_ptr.
}
}
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
DisplayError
(
this
,
ioe
.
errorText
);
DisplayError
(
this
,
ioe
.
errorText
);
return
;
return
;
...
...
pcbnew/moduleframe.cpp
View file @
e7ea0480
...
@@ -279,7 +279,7 @@ wxString FOOTPRINT_EDIT_FRAME::getLibPath()
...
@@ -279,7 +279,7 @@ wxString FOOTPRINT_EDIT_FRAME::getLibPath()
return
row
->
GetFullURI
(
true
);
return
row
->
GetFullURI
(
true
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
return
wxEmptyString
;
return
wxEmptyString
;
}
}
...
@@ -639,7 +639,7 @@ void FOOTPRINT_EDIT_FRAME::updateTitle()
...
@@ -639,7 +639,7 @@ void FOOTPRINT_EDIT_FRAME::updateTitle()
if
(
!
writable
)
if
(
!
writable
)
title
+=
_
(
" [Read Only]"
);
title
+=
_
(
" [Read Only]"
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
// user may be bewildered as to why after selecting a library it is not showing up
// user may be bewildered as to why after selecting a library it is not showing up
// in the title, we could show an error message, but that should have been done at time
// in the title, we could show an error message, but that should have been done at time
...
...
pcbnew/netlist.cpp
View file @
e7ea0480
...
@@ -85,7 +85,7 @@ void PCB_EDIT_FRAME::ReadPcbNetlist( const wxString& aNetlistFileName,
...
@@ -85,7 +85,7 @@ void PCB_EDIT_FRAME::ReadPcbNetlist( const wxString& aNetlistFileName,
netlistReader
->
LoadNetlist
();
netlistReader
->
LoadNetlist
();
loadFootprints
(
netlist
,
aReporter
);
loadFootprints
(
netlist
,
aReporter
);
}
}
catch
(
IO_ERROR
&
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
msg
.
Printf
(
_
(
"Error loading netlist.
\n
%s"
),
ioe
.
errorText
.
GetData
()
);
msg
.
Printf
(
_
(
"Error loading netlist.
\n
%s"
),
ioe
.
errorText
.
GetData
()
);
wxMessageBox
(
msg
,
_
(
"Netlist Load Error"
),
wxOK
|
wxICON_ERROR
);
wxMessageBox
(
msg
,
_
(
"Netlist Load Error"
),
wxOK
|
wxICON_ERROR
);
...
...
pcbnew/pcbnew.cpp
View file @
e7ea0480
...
@@ -208,13 +208,13 @@ MY_API( KIFACE* ) KIFACE_GETTER( int* aKIFACEversion, int aKiwayVersion, PGM_BA
...
@@ -208,13 +208,13 @@ MY_API( KIFACE* ) KIFACE_GETTER( int* aKIFACEversion, int aKiwayVersion, PGM_BA
return
&
kiface
;
return
&
kiface
;
}
}
#if defined(BUILD_KIWAY_DLL)
PGM_BASE
&
Pgm
()
PGM_BASE
&
Pgm
()
{
{
wxASSERT
(
process
);
// KIFACE_GETTER has already been called.
wxASSERT
(
process
);
// KIFACE_GETTER has already been called.
return
*
process
;
return
*
process
;
}
}
#endif
/**
/**
* Function set3DShapesPath
* Function set3DShapesPath
...
@@ -484,6 +484,5 @@ void IFACE::OnKifaceEnd()
...
@@ -484,6 +484,5 @@ void IFACE::OnKifaceEnd()
// This should only be called if python was setup correctly.
// This should only be called if python was setup correctly.
pcbnewFinishPythonScripting
();
pcbnewFinishPythonScripting
();
#endif
#endif
}
}
pcbnew/pcbnew_config.cpp
View file @
e7ea0480
...
@@ -29,7 +29,6 @@
...
@@ -29,7 +29,6 @@
*/
*/
#include <fctsys.h>
#include <fctsys.h>
//#include <pgm_base.h>
#include <kiface_i.h>
#include <kiface_i.h>
#include <project.h>
#include <project.h>
#include <class_drawpanel.h>
#include <class_drawpanel.h>
...
@@ -239,7 +238,7 @@ bool PCB_EDIT_FRAME::LoadProjectSettings( const wxString& aProjectFileName )
...
@@ -239,7 +238,7 @@ bool PCB_EDIT_FRAME::LoadProjectSettings( const wxString& aProjectFileName )
fn
.
SetExt
(
ProjectFileExtension
);
fn
.
SetExt
(
ProjectFileExtension
);
// was: wxGetApp().ReadProjectConfig( fn.GetFullPath(), GROUP, GetProjectFileParameters(), false );
// was: wxGetApp().ReadProjectConfig( fn.GetFullPath(), GROUP, GetProjectFileParameters(), false );
Prj
().
ConfigLoad
(
Kiface
().
KifaceSearch
(),
fn
.
GetFullPath
(),
GROUP
,
GetProjectFileParameters
(),
false
);
Prj
().
ConfigLoad
(
Kiface
().
KifaceSearch
(),
fn
.
GetFullPath
(),
GROUP
_PCB
,
GetProjectFileParameters
(),
false
);
// Dick 5-Feb-2012: I don't agree with this, the BOARD contents should dictate
// Dick 5-Feb-2012: I don't agree with this, the BOARD contents should dictate
// what is visible or not, even initially. And since PCB_EDIT_FRAME projects settings
// what is visible or not, even initially. And since PCB_EDIT_FRAME projects settings
...
@@ -302,9 +301,7 @@ void PCB_EDIT_FRAME::SaveProjectSettings( bool aAskForSave )
...
@@ -302,9 +301,7 @@ void PCB_EDIT_FRAME::SaveProjectSettings( bool aAskForSave )
fn
=
dlg
.
GetPath
();
fn
=
dlg
.
GetPath
();
}
}
SEARCH_STACK
&
search
=
Kiface
().
KifaceSearch
();
Prj
().
ConfigSave
(
Kiface
().
KifaceSearch
(),
fn
.
GetFullPath
(),
GROUP_PCB
,
GetProjectFileParameters
()
);
Prj
().
ConfigSave
(
search
,
fn
.
GetFullPath
(),
GROUP
,
GetProjectFileParameters
()
);
}
}
...
@@ -315,7 +312,7 @@ PARAM_CFG_ARRAY PCB_EDIT_FRAME::GetProjectFileParameters()
...
@@ -315,7 +312,7 @@ PARAM_CFG_ARRAY PCB_EDIT_FRAME::GetProjectFileParameters()
pca
.
push_back
(
new
PARAM_CFG_FILENAME
(
wxT
(
"PageLayoutDescrFile"
),
pca
.
push_back
(
new
PARAM_CFG_FILENAME
(
wxT
(
"PageLayoutDescrFile"
),
&
BASE_SCREEN
::
m_PageLayoutDescrFileName
)
);
&
BASE_SCREEN
::
m_PageLayoutDescrFileName
)
);
pca
.
push_back
(
new
PARAM_CFG_FILENAME
(
wxT
(
"LibDir"
),
&
g_UserLibDirBuffer
,
GROUP
LIB
)
);
pca
.
push_back
(
new
PARAM_CFG_FILENAME
(
wxT
(
"LibDir"
),
&
g_UserLibDirBuffer
,
GROUP
_PCB_LIBS
)
);
pca
.
push_back
(
new
PARAM_CFG_FILENAME
(
wxT
(
"LastNetListRead"
),
&
m_lastNetListRead
)
);
pca
.
push_back
(
new
PARAM_CFG_FILENAME
(
wxT
(
"LastNetListRead"
),
&
m_lastNetListRead
)
);
...
...
pcbnew/pcbnew_config.h
View file @
e7ea0480
/**
/**
* @file pcbnew_config.h
* @file pcbnew_config.h
* @brief C
c
onfiguration parameters for Pcbnew.
* @brief Configuration parameters for Pcbnew.
*/
*/
#ifndef _PCBNEW_CONFIG_H_
#ifndef _PCBNEW_CONFIG_H_
...
@@ -9,10 +9,6 @@
...
@@ -9,10 +9,6 @@
#include <config_params.h>
#include <config_params.h>
#include <colors_selection.h>
#include <colors_selection.h>
#define GROUP wxT( "/pcbnew" )
#define GROUPLIB wxT( "/pcbnew/libraries" )
#define GROUPCOMMON wxT( "/common" )
/* Useful macro : */
/* Useful macro : */
#define LOC_COLOR(layer) &g_ColorsSettings.m_LayersColors[layer]
#define LOC_COLOR(layer) &g_ColorsSettings.m_LayersColors[layer]
#define ITEM_COLOR(item_visible) &g_ColorsSettings.m_ItemsColors[item_visible]
#define ITEM_COLOR(item_visible) &g_ColorsSettings.m_ItemsColors[item_visible]
...
...
pcbnew/specctra_export.cpp
View file @
e7ea0480
...
@@ -162,7 +162,7 @@ bool PCB_EDIT_FRAME::ExportSpecctraFile( const wxString& aFullFilename )
...
@@ -162,7 +162,7 @@ bool PCB_EDIT_FRAME::ExportSpecctraFile( const wxString& aFullFilename )
// if an exception is thrown by FromBOARD or ExportPCB(), then
// if an exception is thrown by FromBOARD or ExportPCB(), then
// ~SPECCTRA_DB() will close the file.
// ~SPECCTRA_DB() will close the file.
}
}
catch
(
IO_ERROR
&
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
ok
=
false
;
ok
=
false
;
...
@@ -1322,7 +1322,7 @@ bool SPECCTRA_DB::GetBoardPolygonOutlines( BOARD* aBoard,
...
@@ -1322,7 +1322,7 @@ bool SPECCTRA_DB::GetBoardPolygonOutlines( BOARD* aBoard,
aHoles
.
CloseLastContour
();
aHoles
.
CloseLastContour
();
}
}
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
// Creates a valid polygon outline is not possible.
// Creates a valid polygon outline is not possible.
// So uses the board edge cuts bounding box to create a
// So uses the board edge cuts bounding box to create a
...
...
pcbnew/specctra_import.cpp
View file @
e7ea0480
...
@@ -102,14 +102,15 @@ void PCB_EDIT_FRAME::ImportSpecctraSession( wxCommandEvent& event )
...
@@ -102,14 +102,15 @@ void PCB_EDIT_FRAME::ImportSpecctraSession( wxCommandEvent& event )
db
.
LoadSESSION
(
fullFileName
);
db
.
LoadSESSION
(
fullFileName
);
db
.
FromSESSION
(
GetBoard
()
);
db
.
FromSESSION
(
GetBoard
()
);
}
}
catch
(
IO_ERROR
&
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
ioe
.
errorText
+=
'\n'
;
wxString
msg
=
ioe
.
errorText
;
ioe
.
errorText
+=
_
(
"BOARD may be corrupted, do not save it."
);
msg
+=
'\n'
;
ioe
.
errorText
+=
'\n'
;
msg
+=
_
(
"BOARD may be corrupted, do not save it."
);
ioe
.
errorText
+=
_
(
"Fix problem and try again."
);
msg
+=
'\n'
;
msg
+=
_
(
"Fix problem and try again."
);
DisplayError
(
this
,
ioe
.
errorText
);
DisplayError
(
this
,
msg
);
return
;
return
;
}
}
...
...
pcbnew/specctra_test.cpp
View file @
e7ea0480
...
@@ -63,7 +63,7 @@ int main( int argc, char** argv )
...
@@ -63,7 +63,7 @@ int main( int argc, char** argv )
// db.LoadPCB( filename );
// db.LoadPCB( filename );
db
.
LoadSESSION
(
filename
);
db
.
LoadSESSION
(
filename
);
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
fprintf
(
stderr
,
"%s
\n
"
,
TO_UTF8
(
ioe
.
errorText
)
);
fprintf
(
stderr
,
"%s
\n
"
,
TO_UTF8
(
ioe
.
errorText
)
);
failed
=
true
;
failed
=
true
;
...
...
scripts/kicad-install.sh
View file @
e7ea0480
...
@@ -125,7 +125,10 @@ install_prerequisites()
...
@@ -125,7 +125,10 @@ install_prerequisites()
fi
fi
# ensure bzr name and email are set. No message since bzr prints an excellent diagnostic.
# ensure bzr name and email are set. No message since bzr prints an excellent diagnostic.
bzr
whoami
||
exit
2
bzr
whoami
||
{
echo
"WARNING: You have not set bzr whoami, so I will set a dummy."
export
BZR_EMAIL
=
"Kicad Build <nobody@foo>"
}
}
}
...
@@ -270,10 +273,12 @@ install_or_update()
...
@@ -270,10 +273,12 @@ install_or_update()
echo
" kicad-lib.bzr installed."
echo
" kicad-lib.bzr installed."
echo
"step 9) as non-root, install
user configuration files
..."
echo
"step 9) as non-root, install
global fp-lib-table if none already installed
..."
# install ~/fp-lib-table
# install ~/fp-lib-table
make install_github_fp-lib-table
if
[
!
-e
~/fp-lib-table
]
;
then
echo
" kicad user-configuration files installed."
make install_github_fp-lib-table
echo
" global fp-lib-table installed."
fi
echo
"step 10) installing documentation..."
echo
"step 10) installing documentation..."
...
...
tools/property_tree.cpp
View file @
e7ea0480
...
@@ -83,7 +83,7 @@ int main( int argc, char** argv )
...
@@ -83,7 +83,7 @@ int main( int argc, char** argv )
#endif
#endif
}
}
catch
(
IO_ERROR
ioe
)
catch
(
const
IO_ERROR
&
ioe
)
{
{
fprintf
(
stderr
,
"%s
\n
"
,
TO_UTF8
(
ioe
.
errorText
)
);
fprintf
(
stderr
,
"%s
\n
"
,
TO_UTF8
(
ioe
.
errorText
)
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment