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
e6681f17
Commit
e6681f17
authored
Sep 27, 2011
by
Wayne Stambaugh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix PCBNew segfault when adding a module.
parent
b9b341dc
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
16 additions
and
18 deletions
+16
-18
wxPcbStruct.h
include/wxPcbStruct.h
+0
-3
dialog_pcbnew_config_libs_and_paths.cpp
pcbnew/dialogs/dialog_pcbnew_config_libs_and_paths.cpp
+3
-3
librairi.cpp
pcbnew/librairi.cpp
+2
-4
loadcmp.cpp
pcbnew/loadcmp.cpp
+5
-6
pcbnew.cpp
pcbnew/pcbnew.cpp
+3
-0
pcbnew.h
pcbnew/pcbnew.h
+1
-0
pcbnew_config.cpp
pcbnew/pcbnew_config.cpp
+2
-2
No files found.
include/wxPcbStruct.h
View file @
e6681f17
...
...
@@ -59,7 +59,6 @@ class PCB_EDIT_FRAME : public PCB_BASE_FRAME
int
m_saveInterval
;
///< Time interval in seconds for automatic saving.
int
m_lastSaveTime
;
///< Last save time.
wxArrayString
m_libraryNames
;
///< List of footprint library names to load.
protected
:
...
...
@@ -235,8 +234,6 @@ public:
void
SetAutoSaveTimeInterval
(
int
aInterval
)
{
m_saveInterval
=
aInterval
;
}
wxArrayString
&
GetFootprintLibraryNames
()
{
return
m_libraryNames
;
}
// Configurations:
void
InstallConfigFrame
();
void
Process_Config
(
wxCommandEvent
&
event
);
...
...
pcbnew/dialogs/dialog_pcbnew_config_libs_and_paths.cpp
View file @
e6681f17
...
...
@@ -55,7 +55,7 @@ void DIALOG_PCBNEW_CONFIG_LIBS::Init()
m_LibPathChanged
=
false
;
m_UserLibDirBufferImg
=
g_UserLibDirBuffer
;
// Save the original lib path
m_ListLibr
->
InsertItems
(
GetParent
()
->
GetFootprintLibraryNames
()
,
0
);
m_ListLibr
->
InsertItems
(
g_LibraryNames
,
0
);
// Display current modules doc file:
m_Config
->
Read
(
wxT
(
"module_doc_file"
),
g_DocModulesFileName
);
...
...
@@ -122,10 +122,10 @@ void DIALOG_PCBNEW_CONFIG_LIBS::OnOkClick( wxCommandEvent& event )
if
(
m_LibListChanged
||
m_LibPathChanged
)
{
// Recreate lib list
GetParent
()
->
GetFootprintLibraryNames
()
.
Clear
();
g_LibraryNames
.
Clear
();
for
(
unsigned
ii
=
0
;
ii
<
m_ListLibr
->
GetCount
();
ii
++
)
GetParent
()
->
GetFootprintLibraryNames
()
.
Add
(
m_ListLibr
->
GetString
(
ii
)
);
g_LibraryNames
.
Add
(
m_ListLibr
->
GetString
(
ii
)
);
}
GetParent
()
->
SaveProjectSettings
();
...
...
pcbnew/librairi.cpp
View file @
e6681f17
...
...
@@ -705,13 +705,11 @@ MODULE* PCB_BASE_FRAME::Create_1_Module( const wxString& aModuleName )
void
FOOTPRINT_EDIT_FRAME
::
Select_Active_Library
()
{
wxString
msg
;
PCB_EDIT_FRAME
*
parent
=
(
PCB_EDIT_FRAME
*
)
GetParent
();
if
(
parent
->
GetFootprintLibraryNames
().
GetCount
()
==
0
||
parent
==
NULL
)
if
(
g_LibraryNames
.
GetCount
()
==
0
)
return
;
EDA_LIST_DIALOG
dlg
(
this
,
_
(
"Select Active Library:"
),
parent
->
GetFootprintLibraryNames
(),
m_CurrentLib
);
EDA_LIST_DIALOG
dlg
(
this
,
_
(
"Select Active Library:"
),
g_LibraryNames
,
m_CurrentLib
);
if
(
dlg
.
ShowModal
()
!=
wxID_OK
)
return
;
...
...
pcbnew/loadcmp.cpp
View file @
e6681f17
...
...
@@ -195,13 +195,12 @@ MODULE* PCB_BASE_FRAME::GetModuleLibrary( const wxString& aLibraryFullFilename,
bool
one_lib
=
aLibraryFullFilename
.
IsEmpty
()
?
false
:
true
;
PCB_EDIT_FRAME
*
parent
=
(
PCB_EDIT_FRAME
*
)
GetParent
();
for
(
ii
=
0
;
ii
<
parent
->
GetFootprintLibraryNames
()
.
GetCount
();
ii
++
)
for
(
ii
=
0
;
ii
<
g_LibraryNames
.
GetCount
();
ii
++
)
{
if
(
one_lib
)
fn
=
aLibraryFullFilename
;
else
fn
=
wxFileName
(
wxEmptyString
,
parent
->
GetFootprintLibraryNames
()[
ii
],
ModuleFileExtension
);
fn
=
wxFileName
(
wxEmptyString
,
g_LibraryNames
[
ii
],
ModuleFileExtension
);
tmp
=
wxGetApp
().
FindLibraryPath
(
fn
);
...
...
@@ -252,6 +251,7 @@ MODULE* PCB_BASE_FRAME::GetModuleLibrary( const wxString& aLibraryFullFilename,
if
(
found
)
{
fileReader
.
Rewind
();
while
(
reader
.
ReadLine
()
)
{
char
*
line
=
reader
.
Line
();
...
...
@@ -302,10 +302,9 @@ wxString PCB_BASE_FRAME::Select_1_Module_From_List( EDA_DRAW_FRAME* aWindow,
wxString
CmpName
;
wxString
msg
;
wxArrayString
libnames_list
;
PCB_EDIT_FRAME
*
parent
=
(
PCB_EDIT_FRAME
*
)
GetParent
();
if
(
aLibraryFullFilename
.
IsEmpty
()
)
libnames_list
=
parent
->
GetFootprintLibraryNames
()
;
libnames_list
=
g_LibraryNames
;
else
libnames_list
.
Add
(
aLibraryFullFilename
);
...
...
@@ -351,7 +350,7 @@ wxString PCB_BASE_FRAME::Select_1_Module_From_List( EDA_DRAW_FRAME* aWindow,
}
else
{
DisplayError
(
aWindow
,
_
(
"No footprint found"
)
);
DisplayError
(
aWindow
,
_
(
"No footprint found"
)
);
CmpName
.
Empty
();
}
...
...
pcbnew/pcbnew.cpp
View file @
e6681f17
...
...
@@ -61,6 +61,9 @@ const wxString g_FootprintLibFileWildcard( wxT( "Kicad footprint library file (*
*/
wxString
g_DocModulesFileName
=
wxT
(
"footprints_doc/footprints.pdf"
);
wxArrayString
g_LibraryNames
;
IMPLEMENT_APP
(
EDA_APP
)
...
...
pcbnew/pcbnew.h
View file @
e6681f17
...
...
@@ -74,6 +74,7 @@ extern int g_MagneticTrackOption;
extern
wxPoint
g_Offset_Module
;
/* Offset trace when moving footprint. */
extern
wxArrayString
g_LibraryNames
;
///< List of footprint library file names to load.
enum
MagneticPadOptionValues
{
no_effect
,
...
...
pcbnew/pcbnew_config.cpp
View file @
e6681f17
...
...
@@ -145,7 +145,7 @@ bool PCB_EDIT_FRAME::LoadProjectSettings( const wxString& aProjectFileName )
wxGetApp
().
RemoveLibraryPath
(
g_UserLibDirBuffer
);
/* Initialize default values. */
m_l
ibraryNames
.
Clear
();
g_L
ibraryNames
.
Clear
();
wxGetApp
().
ReadProjectConfig
(
fn
.
GetFullPath
(),
GROUP
,
GetProjectFileParameters
(),
false
);
...
...
@@ -190,7 +190,7 @@ PARAM_CFG_ARRAY& PCB_EDIT_FRAME::GetProjectFileParameters()
m_projectFileParams
.
push_back
(
new
PARAM_CFG_FILENAME
(
wxT
(
"LibDir"
),
&
g_UserLibDirBuffer
,
GROUPLIB
)
);
m_projectFileParams
.
push_back
(
new
PARAM_CFG_LIBNAME_LIST
(
wxT
(
"LibName"
),
&
m_l
ibraryNames
,
&
g_L
ibraryNames
,
GROUPLIB
)
);
m_projectFileParams
.
push_back
(
new
PARAM_CFG_INT
(
wxT
(
"PadDrlX"
),
&
g_Pad_Master
.
m_Drill
.
x
,
320
,
0
,
0x7FFF
)
);
...
...
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