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
539f041b
Commit
539f041b
authored
Jun 26, 2009
by
charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pcbnew: fixed bug in modedit: delete module in library not working
parent
cffe0cfc
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
52 additions
and
42 deletions
+52
-42
edit_label.cpp
eeschema/edit_label.cpp
+26
-21
librairi.cpp
pcbnew/librairi.cpp
+4
-4
loadcmp.cpp
pcbnew/loadcmp.cpp
+7
-4
xchgmod.cpp
pcbnew/xchgmod.cpp
+15
-13
No files found.
eeschema/edit_label.cpp
View file @
539f041b
/*********************************************************************/
/* EESchema
*/
/* EESchema
*/
/* edit_label.cpp: label, global label and text creation or edition */
/*********************************************************************/
...
...
@@ -30,8 +30,6 @@ static int s_DefaultShapeGLabel = (int) NET_INPUT;
static
int
s_DefaultOrientGLabel
=
0
;
/****************************************************************************/
void
DialogLabelEditor
::
TextPropertiesAccept
(
wxCommandEvent
&
event
)
/****************************************************************************/
...
...
@@ -57,19 +55,19 @@ void DialogLabelEditor::TextPropertiesAccept( wxCommandEvent& event )
m_CurrentText
->
m_Shape
=
m_TextShape
->
GetSelection
();
int
style
=
m_TextStyle
->
GetSelection
();
if
(
(
style
&
1
)
)
if
(
(
style
&
1
)
)
m_CurrentText
->
m_Italic
=
1
;
else
m_CurrentText
->
m_Italic
=
0
;
if
(
(
style
&
2
)
)
if
(
(
style
&
2
)
)
{
m_CurrentText
->
m_Bold
=
true
;
m_CurrentText
->
m_Bold
=
true
;
m_CurrentText
->
m_Width
=
GetPenSizeForBold
(
m_CurrentText
->
m_Size
.
x
);
}
else
{
m_CurrentText
->
m_Bold
=
false
;
m_CurrentText
->
m_Bold
=
false
;
m_CurrentText
->
m_Width
=
0
;
}
...
...
@@ -158,7 +156,7 @@ void WinEDA_SchematicFrame::ChangeTextOrient( SCH_TEXT* TextStruct, wxDC* DC )
{
if
(
TextStruct
==
NULL
)
TextStruct
=
(
SCH_TEXT
*
)
PickStruct
(
GetScreen
()
->
m_Curseur
,
GetScreen
(),
TEXTITEM
|
LABELITEM
);
GetScreen
(),
TEXTITEM
|
LABELITEM
);
if
(
TextStruct
==
NULL
)
return
;
...
...
@@ -172,13 +170,14 @@ void WinEDA_SchematicFrame::ChangeTextOrient( SCH_TEXT* TextStruct, wxDC* DC )
/* Rotation du texte */
int
orient
;
switch
(
TextStruct
->
Type
()
)
{
case
TYPE_SCH_LABEL
:
case
TYPE_SCH_GLOBALLABEL
:
case
TYPE_SCH_HIERLABEL
:
case
TYPE_SCH_TEXT
:
orient
=
TextStruct
->
GetSchematicTextOrientation
()
+
1
;
orient
=
TextStruct
->
GetSchematicTextOrientation
()
+
1
;
orient
&=
3
;
TextStruct
->
SetSchematicTextOrientation
(
orient
);
break
;
...
...
@@ -218,13 +217,13 @@ SCH_TEXT* WinEDA_SchematicFrame::CreateNewText( wxDC* DC, int type )
case
LAYER_HIERLABEL
:
NewText
=
new
SCH_HIERLABEL
(
GetScreen
()
->
m_Curseur
);
NewText
->
m_Shape
=
s_DefaultShapeGLabel
;
NewText
->
m_Shape
=
s_DefaultShapeGLabel
;
NewText
->
SetSchematicTextOrientation
(
s_DefaultOrientGLabel
);
break
;
case
LAYER_GLOBLABEL
:
NewText
=
new
SCH_GLOBALLABEL
(
GetScreen
()
->
m_Curseur
);
NewText
->
m_Shape
=
s_DefaultShapeGLabel
;
NewText
->
m_Shape
=
s_DefaultShapeGLabel
;
NewText
->
SetSchematicTextOrientation
(
s_DefaultOrientGLabel
);
break
;
...
...
@@ -295,8 +294,8 @@ static void ExitMoveTexte( WinEDA_DrawPanel* Panel, wxDC* DC )
/*************************************************************/
/* Abort function for the command move text */
{
BASE_SCREEN
*
screen
=
Panel
->
GetScreen
();
SCH_ITEM
*
Struct
=
(
SCH_ITEM
*
)
screen
->
GetCurItem
();
BASE_SCREEN
*
screen
=
Panel
->
GetScreen
();
SCH_ITEM
*
Struct
=
(
SCH_ITEM
*
)
screen
->
GetCurItem
();
g_ItemToRepeat
=
NULL
;
Panel
->
ManageCurseur
=
NULL
;
...
...
@@ -325,11 +324,11 @@ static void ExitMoveTexte( WinEDA_DrawPanel* Panel, wxDC* DC )
case
TYPE_SCH_TEXT
:
{
SCH_TEXT
*
Text
=
(
SCH_TEXT
*
)
Struct
;
Text
->
m_Pos
=
ItemInitialPosition
;
Text
->
m_Size
=
OldSize
;
Text
->
m_Pos
=
ItemInitialPosition
;
Text
->
m_Size
=
OldSize
;
Text
->
SetSchematicTextOrientation
(
OldOrient
);
}
break
;
break
;
default
:
break
;
...
...
@@ -380,12 +379,18 @@ void WinEDA_SchematicFrame::ConvertTextType( SCH_TEXT* Text,
return
;
}
/* copy the old text settings */
newtext
->
m_Shape
=
Text
->
m_Shape
;
/* copy the old text settings
* Justifications are not copied because they are not used in labels,
* and can be used in texts
* So they will be set to default in conversion.
*/
newtext
->
m_Shape
=
Text
->
m_Shape
;
newtext
->
SetSchematicTextOrientation
(
Text
->
GetSchematicTextOrientation
()
);
newtext
->
m_Size
=
Text
->
m_Size
;
newtext
->
m_Width
=
Text
->
m_Width
;
newtext
->
m_IsDangling
=
Text
->
m_IsDangling
;
newtext
->
m_Size
=
Text
->
m_Size
;
newtext
->
m_Width
=
Text
->
m_Width
;
newtext
->
m_Italic
=
Text
->
m_Italic
;
newtext
->
m_Bold
=
Text
->
m_Bold
;
// save current text flag:
int
flags
=
Text
->
m_Flags
;
...
...
pcbnew/librairi.cpp
View file @
539f041b
...
...
@@ -24,7 +24,7 @@
* $EndLIBRARY
*/
#define
OLD
_EXT wxT( "bak" )
#define
BACKUP
_EXT wxT( "bak" )
#define FILETMP_EXT wxT( "$$$" )
#define EXPORT_IMPORT_LASTPATH_KEY wxT( "import_last_path" )
...
...
@@ -359,12 +359,12 @@ void WinEDA_ModuleEditFrame::Delete_Module_In_Library( const
/* Le fichier ancienne librairie est renommee en .bak */
wxFileName
backupFileName
=
oldFileName
;
backupFileName
.
SetExt
(
OLD
_EXT
);
backupFileName
.
SetExt
(
BACKUP
_EXT
);
if
(
backupFileName
.
FileExists
()
)
wxRemoveFile
(
backupFileName
.
GetFullPath
()
);
if
(
!
wxRenameFile
(
new
FileName
.
GetFullPath
(),
if
(
!
wxRenameFile
(
old
FileName
.
GetFullPath
(),
backupFileName
.
GetFullPath
()
)
)
{
DisplayError
(
this
,
wxT
(
"Librairi.cpp: rename .bak err"
)
);
...
...
@@ -669,7 +669,7 @@ int WinEDA_BasePcbFrame::Save_Module_In_Library( const wxString& aLibName,
/* The old library file is renamed .bak */
oldFileName
=
aLibName
;
oldFileName
.
SetExt
(
OLD
_EXT
);
oldFileName
.
SetExt
(
BACKUP
_EXT
);
if
(
oldFileName
.
FileExists
()
)
wxRemoveFile
(
oldFileName
.
GetFullPath
()
);
...
...
pcbnew/loadcmp.cpp
View file @
539f041b
...
...
@@ -214,10 +214,13 @@ MODULE* WinEDA_BasePcbFrame::Get_Librairie_Module( const wxString& aLibraryFullF
if
(
!
tmp
)
{
msg
.
Printf
(
_
(
"PCB footprint library file <%s> not found in search paths."
),
fn
.
GetFullName
().
c_str
()
);
wxMessageBox
(
msg
,
_
(
"Library Load Error"
),
wxOK
|
wxICON_ERROR
,
this
);
if
(
aDisplayMessageError
)
{
msg
.
Printf
(
_
(
"PCB footprint library file <%s> not found in search paths."
),
fn
.
GetFullName
().
c_str
()
);
wxMessageBox
(
msg
,
_
(
"Library Load Error"
),
wxOK
|
wxICON_ERROR
,
this
);
}
continue
;
}
...
...
pcbnew/xchgmod.cpp
View file @
539f041b
...
...
@@ -124,10 +124,12 @@ void DIALOG_EXCHANGE_MODULE::OnSelectionClicked( wxCommandEvent& event )
case
1
:
case
2
:
m_NewModule
->
Enable
(
true
);
m_Browsebutton
->
Enable
(
true
);
break
;
case
3
:
m_NewModule
->
Enable
(
false
);
m_Browsebutton
->
Enable
(
false
);
break
;
}
}
...
...
@@ -202,7 +204,7 @@ int DIALOG_EXCHANGE_MODULE::Maj_ListeCmp( const wxString& reference,
strtok
(
buf
,
";
\n\r
"
);
if
(
stricmp
(
buf
,
CONV_TO_UTF8
(
reference
)
)
==
0
)
{
start_descr
=
TRUE
;
start_descr
=
true
;
}
}
...
...
@@ -247,7 +249,7 @@ void DIALOG_EXCHANGE_MODULE::Change_Module()
if
(
newmodulename
==
wxEmptyString
)
return
;
if
(
Change_1_Module
(
m_CurrentModule
,
newmodulename
,
TRUE
)
)
if
(
Change_1_Module
(
m_CurrentModule
,
newmodulename
,
true
)
)
{
m_Parent
->
Compile_Ratsnest
(
NULL
,
true
);
m_Parent
->
DrawPanel
->
Refresh
();
...
...
@@ -272,9 +274,9 @@ void DIALOG_EXCHANGE_MODULE::Change_ModuleId( bool aUseValue )
MODULE
*
Module
,
*
PtBack
;
bool
change
=
FALSE
;
wxString
newmodulename
=
m_NewModule
->
GetValue
();
wxString
value
,
lib_reference
;
// pour memo Reflib et value de reference
wxString
value
,
lib_reference
;
bool
check_module_value
=
FALSE
;
int
ShowErr
=
5
;
// Affiche 5
messages d'err maxi
int
ShowErr
=
3
;
// Affiche 3
messages d'err maxi
if
(
m_Parent
->
GetBoard
()
->
m_Modules
==
NULL
)
return
;
...
...
@@ -284,7 +286,7 @@ void DIALOG_EXCHANGE_MODULE::Change_ModuleId( bool aUseValue )
lib_reference
=
m_CurrentModule
->
m_LibRef
;
if
(
aUseValue
)
{
check_module_value
=
TRUE
;
check_module_value
=
true
;
value
=
m_CurrentModule
->
m_Value
->
m_Text
;
msg
.
Printf
(
_
(
"Change modules <%s> -> <%s> (val = %s)?"
),
m_CurrentModule
->
m_LibRef
.
GetData
(),
...
...
@@ -320,7 +322,7 @@ void DIALOG_EXCHANGE_MODULE::Change_ModuleId( bool aUseValue )
}
module
=
Change_1_Module
(
Module
,
newmodulename
.
GetData
(),
ShowErr
);
if
(
module
)
change
=
TRUE
;
change
=
true
;
else
if
(
ShowErr
)
ShowErr
--
;
}
...
...
@@ -345,7 +347,7 @@ void DIALOG_EXCHANGE_MODULE::Change_ModuleAll()
{
MODULE
*
Module
,
*
PtBack
;
bool
change
=
FALSE
;
int
ShowErr
=
5
;
// Affiche 5
messages d'err maxi
int
ShowErr
=
3
;
// Affiche 3
messages d'err maxi
if
(
m_Parent
->
GetBoard
()
->
m_Modules
==
NULL
)
return
;
...
...
@@ -364,7 +366,7 @@ void DIALOG_EXCHANGE_MODULE::Change_ModuleAll()
{
PtBack
=
Module
->
Back
();
if
(
Change_1_Module
(
Module
,
Module
->
m_LibRef
.
GetData
(),
ShowErr
)
)
change
=
TRUE
;
change
=
true
;
else
if
(
ShowErr
)
ShowErr
--
;
}
...
...
@@ -411,7 +413,7 @@ MODULE* DIALOG_EXCHANGE_MODULE::Change_1_Module( MODULE* Module,
Module
->
m_Reference
->
m_Text
.
GetData
(),
oldnamecmp
.
GetData
()
);
m_WinMessages
->
AppendText
(
Line
);
namecmp
.
Trim
(
TRUE
);
namecmp
.
Trim
(
true
);
namecmp
.
Trim
(
FALSE
);
NewModule
=
m_Parent
->
Get_Librairie_Module
(
wxEmptyString
,
namecmp
,
...
...
@@ -468,19 +470,19 @@ MODULE* WinEDA_BasePcbFrame::Exchange_Module( wxWindow* winaff,
Place_Module
(
NewModule
,
NULL
,
true
);
GetScreen
()
->
m_Curseur
=
oldpos
;
/*
Changement eventuel de couche
*/
/*
Flip footprint if needed
*/
if
(
OldModule
->
GetLayer
()
!=
NewModule
->
GetLayer
()
)
{
GetBoard
()
->
Change_Side_Module
(
NewModule
,
NULL
);
}
/* Rotat
ion eventuelle du module
*/
/* Rotat
e footprint if needed
*/
if
(
OldModule
->
m_Orient
!=
NewModule
->
m_Orient
)
{
Rotate_Module
(
NULL
,
NewModule
,
OldModule
->
m_Orient
,
FALSE
);
}
/*
Mise a jour des textes ref et val
*/
/*
Update reference and value
*/
NewModule
->
m_Reference
->
m_Text
=
OldModule
->
m_Reference
->
m_Text
;
NewModule
->
m_Value
->
m_Text
=
OldModule
->
m_Value
->
m_Text
;
...
...
@@ -488,7 +490,7 @@ MODULE* WinEDA_BasePcbFrame::Exchange_Module( wxWindow* winaff,
NewModule
->
m_TimeStamp
=
OldModule
->
m_TimeStamp
;
NewModule
->
m_Path
=
OldModule
->
m_Path
;
/*
mise a jour des netnames ( lorsque c'est
possible) */
/*
Update pad netnames ( when
possible) */
pad
=
NewModule
->
m_Pads
;
for
(
;
pad
!=
NULL
;
pad
=
pad
->
Next
()
)
{
...
...
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