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
29ed370a
Commit
29ed370a
authored
Feb 28, 2008
by
CHARRAS
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed: problem which could crash eeschema when a schematic file in a hierarchy was not found
parent
879e1b5b
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
99 additions
and
68 deletions
+99
-68
sheet.cpp
eeschema/sheet.cpp
+99
-68
No files found.
eeschema/sheet.cpp
View file @
29ed370a
...
...
@@ -68,9 +68,9 @@ IMPLEMENT_DYNAMIC_CLASS( WinEDA_SheetPropertiesFrame, wxDialog )
BEGIN_EVENT_TABLE
(
WinEDA_SheetPropertiesFrame
,
wxDialog
)
////@begin WinEDA_SheetPropertiesFrame event table entries
EVT_BUTTON
(
wxID_CANCEL
,
WinEDA_SheetPropertiesFrame
::
OnCancelClick
)
EVT_BUTTON
(
wxID_CANCEL
,
WinEDA_SheetPropertiesFrame
::
OnCancelClick
)
EVT_BUTTON
(
wxID_OK
,
WinEDA_SheetPropertiesFrame
::
OnOkClick
)
EVT_BUTTON
(
wxID_OK
,
WinEDA_SheetPropertiesFrame
::
OnOkClick
)
////@end WinEDA_SheetPropertiesFrame event table entries
...
...
@@ -121,18 +121,20 @@ bool WinEDA_SheetPropertiesFrame::Create( wxWindow* parent, wxWindowID id, const
m_FileNameSize
=
NULL
;
m_SheetNameTextSize
=
NULL
;
m_SheetNameSize
=
NULL
;
////@end WinEDA_SheetPropertiesFrame member initialisation
////@begin WinEDA_SheetPropertiesFrame creation
SetExtraStyle
(
wxWS_EX_BLOCK_EVENTS
);
SetExtraStyle
(
wxWS_EX_BLOCK_EVENTS
);
wxDialog
::
Create
(
parent
,
id
,
caption
,
pos
,
size
,
style
);
CreateControls
();
if
(
GetSizer
()
)
if
(
GetSizer
()
)
{
GetSizer
()
->
SetSizeHints
(
this
);
GetSizer
()
->
SetSizeHints
(
this
);
}
Centre
();
////@end WinEDA_SheetPropertiesFrame creation
return
true
;
}
...
...
@@ -151,60 +153,85 @@ void WinEDA_SheetPropertiesFrame::CreateControls()
WinEDA_SheetPropertiesFrame
*
itemDialog1
=
this
;
wxBoxSizer
*
itemBoxSizer2
=
new
wxBoxSizer
(
wxVERTICAL
);
itemDialog1
->
SetSizer
(
itemBoxSizer2
);
wxBoxSizer
*
itemBoxSizer3
=
new
wxBoxSizer
(
wxHORIZONTAL
);
itemBoxSizer2
->
Add
(
itemBoxSizer3
,
0
,
wxGROW
|
wxALL
,
5
);
wxBoxSizer
*
itemBoxSizer4
=
new
wxBoxSizer
(
wxVERTICAL
);
itemBoxSizer3
->
Add
(
itemBoxSizer4
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxALL
,
5
);
wxStaticText
*
itemStaticText5
=
new
wxStaticText
(
itemDialog1
,
wxID_STATIC
,
_
(
"Filename:"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
itemBoxSizer4
->
Add
(
itemStaticText5
,
0
,
wxALIGN_LEFT
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
m_FileNameWin
=
new
wxTextCtrl
(
itemDialog1
,
ID_TEXTCTRL1
,
_T
(
""
),
wxDefaultPosition
,
wxSize
(
300
,
-
1
),
wxTE_PROCESS_ENTER
);
itemBoxSizer4
->
Add
(
m_FileNameWin
,
0
,
wxALIGN_LEFT
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
wxStaticText
*
itemStaticText7
=
new
wxStaticText
(
itemDialog1
,
wxID_STATIC
,
_
(
"Sheetname:"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
itemBoxSizer4
->
Add
(
itemStaticText7
,
0
,
wxALIGN_LEFT
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
m_SheetNameWin
=
new
wxTextCtrl
(
itemDialog1
,
ID_TEXTCTRL
,
_T
(
""
),
wxDefaultPosition
,
wxSize
(
300
,
-
1
),
0
);
itemBoxSizer4
->
Add
(
m_SheetNameWin
,
0
,
wxALIGN_LEFT
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
wxBoxSizer
*
itemBoxSizer9
=
new
wxBoxSizer
(
wxVERTICAL
);
itemBoxSizer3
->
Add
(
itemBoxSizer9
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxALL
,
5
);
m_FileNameTextSize
=
new
wxStaticText
(
itemDialog1
,
wxID_STATIC
,
_
(
"Size"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
itemBoxSizer9
->
Add
(
m_FileNameTextSize
,
0
,
wxALIGN_LEFT
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
m_FileNameSize
=
new
wxTextCtrl
(
itemDialog1
,
ID_TEXTCTRL2
,
_T
(
""
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
itemBoxSizer9
->
Add
(
m_FileNameSize
,
0
,
wxALIGN_LEFT
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
m_SheetNameTextSize
=
new
wxStaticText
(
itemDialog1
,
wxID_STATIC
,
_
(
"Size"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
itemBoxSizer9
->
Add
(
m_SheetNameTextSize
,
0
,
wxALIGN_LEFT
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
m_SheetNameSize
=
new
wxTextCtrl
(
itemDialog1
,
ID_TEXTCTRL3
,
_T
(
""
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
itemBoxSizer9
->
Add
(
m_SheetNameSize
,
0
,
wxALIGN_LEFT
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
itemBoxSizer2
->
Add
(
5
,
5
,
1
,
wxGROW
|
wxALL
,
5
);
wxBoxSizer
*
itemBoxSizer15
=
new
wxBoxSizer
(
wxHORIZONTAL
);
itemBoxSizer2
->
Add
(
itemBoxSizer15
,
0
,
wxALIGN_CENTER_HORIZONTAL
|
wxALL
,
5
);
wxButton
*
itemButton16
=
new
wxButton
(
itemDialog1
,
wxID_CANCEL
,
_
(
"&Cancel"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
itemButton16
->
SetForegroundColour
(
wxColour
(
0
,
0
,
255
));
itemBoxSizer15
->
Add
(
itemButton16
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxALL
,
5
);
wxButton
*
itemButton17
=
new
wxButton
(
itemDialog1
,
wxID_OK
,
_
(
"&OK"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
itemButton17
->
SetForegroundColour
(
wxColour
(
196
,
0
,
0
));
itemBoxSizer15
->
Add
(
itemButton17
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxALL
,
5
);
wxBoxSizer
*
itemBoxSizer2
=
new
wxBoxSizer
(
wxVERTICAL
);
itemDialog1
->
SetSizer
(
itemBoxSizer2
);
wxBoxSizer
*
itemBoxSizer3
=
new
wxBoxSizer
(
wxHORIZONTAL
);
itemBoxSizer2
->
Add
(
itemBoxSizer3
,
0
,
wxGROW
|
wxALL
,
5
);
wxBoxSizer
*
itemBoxSizer4
=
new
wxBoxSizer
(
wxVERTICAL
);
itemBoxSizer3
->
Add
(
itemBoxSizer4
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxALL
,
5
);
wxStaticText
*
itemStaticText5
=
new
wxStaticText
(
itemDialog1
,
wxID_STATIC
,
_
(
"Filename:"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
itemBoxSizer4
->
Add
(
itemStaticText5
,
0
,
wxALIGN_LEFT
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
m_FileNameWin
=
new
wxTextCtrl
(
itemDialog1
,
ID_TEXTCTRL1
,
_T
(
""
),
wxDefaultPosition
,
wxSize
(
300
,
-
1
),
wxTE_PROCESS_ENTER
);
itemBoxSizer4
->
Add
(
m_FileNameWin
,
0
,
wxALIGN_LEFT
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
wxStaticText
*
itemStaticText7
=
new
wxStaticText
(
itemDialog1
,
wxID_STATIC
,
_
(
"Sheetname:"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
itemBoxSizer4
->
Add
(
itemStaticText7
,
0
,
wxALIGN_LEFT
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
m_SheetNameWin
=
new
wxTextCtrl
(
itemDialog1
,
ID_TEXTCTRL
,
_T
(
""
),
wxDefaultPosition
,
wxSize
(
300
,
-
1
),
0
);
itemBoxSizer4
->
Add
(
m_SheetNameWin
,
0
,
wxALIGN_LEFT
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
wxBoxSizer
*
itemBoxSizer9
=
new
wxBoxSizer
(
wxVERTICAL
);
itemBoxSizer3
->
Add
(
itemBoxSizer9
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxALL
,
5
);
m_FileNameTextSize
=
new
wxStaticText
(
itemDialog1
,
wxID_STATIC
,
_
(
"Size"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
itemBoxSizer9
->
Add
(
m_FileNameTextSize
,
0
,
wxALIGN_LEFT
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
m_FileNameSize
=
new
wxTextCtrl
(
itemDialog1
,
ID_TEXTCTRL2
,
_T
(
""
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
itemBoxSizer9
->
Add
(
m_FileNameSize
,
0
,
wxALIGN_LEFT
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
m_SheetNameTextSize
=
new
wxStaticText
(
itemDialog1
,
wxID_STATIC
,
_
(
"Size"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
itemBoxSizer9
->
Add
(
m_SheetNameTextSize
,
0
,
wxALIGN_LEFT
|
wxLEFT
|
wxRIGHT
|
wxTOP
|
wxADJUST_MINSIZE
,
5
);
m_SheetNameSize
=
new
wxTextCtrl
(
itemDialog1
,
ID_TEXTCTRL3
,
_T
(
""
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
itemBoxSizer9
->
Add
(
m_SheetNameSize
,
0
,
wxALIGN_LEFT
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
itemBoxSizer2
->
Add
(
5
,
5
,
1
,
wxGROW
|
wxALL
,
5
);
wxBoxSizer
*
itemBoxSizer15
=
new
wxBoxSizer
(
wxHORIZONTAL
);
itemBoxSizer2
->
Add
(
itemBoxSizer15
,
0
,
wxALIGN_CENTER_HORIZONTAL
|
wxALL
,
5
);
wxButton
*
itemButton16
=
new
wxButton
(
itemDialog1
,
wxID_CANCEL
,
_
(
"&Cancel"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
itemButton16
->
SetForegroundColour
(
wxColour
(
0
,
0
,
255
)
);
itemBoxSizer15
->
Add
(
itemButton16
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxALL
,
5
);
wxButton
*
itemButton17
=
new
wxButton
(
itemDialog1
,
wxID_OK
,
_
(
"&OK"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
itemButton17
->
SetForegroundColour
(
wxColour
(
196
,
0
,
0
)
);
itemBoxSizer15
->
Add
(
itemButton17
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxALL
,
5
);
// Set validators
m_SheetNameWin
->
SetValidator
(
wxTextValidator
(
wxFILTER_NONE
,
&
m_CurrentSheet
->
m_SheetName
)
);
m_SheetNameWin
->
SetValidator
(
wxTextValidator
(
wxFILTER_NONE
,
&
m_CurrentSheet
->
m_SheetName
)
);
////@end WinEDA_SheetPropertiesFrame content construction
m_FileNameWin
->
SetValue
(
m_CurrentSheet
->
GetFileName
()
);
m_FileNameWin
->
SetValue
(
m_CurrentSheet
->
GetFileName
()
);
}
...
...
@@ -226,8 +253,9 @@ wxBitmap WinEDA_SheetPropertiesFrame::GetBitmapResource( const wxString& name )
{
// Bitmap retrieval
////@begin WinEDA_SheetPropertiesFrame bitmap retrieval
wxUnusedVar
(
name
);
wxUnusedVar
(
name
);
return
wxNullBitmap
;
////@end WinEDA_SheetPropertiesFrame bitmap retrieval
}
...
...
@@ -240,8 +268,9 @@ wxIcon WinEDA_SheetPropertiesFrame::GetIconResource( const wxString& name )
{
// Icon retrieval
////@begin WinEDA_SheetPropertiesFrame icon retrieval
wxUnusedVar
(
name
);
wxUnusedVar
(
name
);
return
wxNullIcon
;
////@end WinEDA_SheetPropertiesFrame icon retrieval
}
...
...
@@ -264,9 +293,11 @@ void WinEDA_SheetPropertiesFrame::SheetPropertiesAccept( wxCommandEvent& event )
ChangeFileNameExt
(
FileName
,
g_SchExtBuffer
);
if
(
m_CurrentSheet
->
GetFileName
()
!=
FileName
)
if
(
(
m_CurrentSheet
->
GetFileName
()
!=
FileName
)
||
(
m_CurrentSheet
->
m_Flags
&
IS_NEW
)
||
!
m_CurrentSheet
->
m_AssociatedScreen
)
{
m_CurrentSheet
->
SetFileName
(
FileName
);
m_CurrentSheet
->
SetFileName
(
FileName
);
if
(
wxFileExists
(
FileName
)
)
//do we reload the data from the existing file
{
...
...
@@ -310,7 +341,7 @@ void WinEDA_SheetPropertiesFrame::SheetPropertiesAccept( wxCommandEvent& event )
if
(
(
m_CurrentSheet
->
m_SheetName
.
IsEmpty
()
)
)
{
m_CurrentSheet
->
m_SheetName
.
Printf
(
wxT
(
"Sheet%8.8lX"
),
GetTimeStamp
()
);
m_CurrentSheet
->
m_SheetName
.
Printf
(
wxT
(
"Sheet%8.8lX"
),
GetTimeStamp
()
);
}
...
...
@@ -362,7 +393,7 @@ DrawSheetStruct* WinEDA_SchematicFrame::CreateSheet( wxDC* DC )
s_SheetMindy
=
SHEET_MIN_HEIGHT
;
//need to check if this is being added to the EEDrawList.
//also need to update the h
ei
rarchy, if we are adding
//also need to update the h
ie
rarchy, if we are adding
// a sheet to a screen that already has multiple instances (!)
GetScreen
()
->
SetCurItem
(
Sheet
);
...
...
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