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
44bb2e6d
Commit
44bb2e6d
authored
Nov 20, 2013
by
jean-pierre charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pcbnew: Code cleaning and some minor fixes.
parent
d0c50d56
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
53 additions
and
66 deletions
+53
-66
class_board_item.h
include/class_board_item.h
+11
-0
board_undo_redo.cpp
pcbnew/board_undo_redo.cpp
+28
-25
class_drawsegment.cpp
pcbnew/class_drawsegment.cpp
+0
-1
class_mire.cpp
pcbnew/class_mire.cpp
+0
-1
class_pad.cpp
pcbnew/class_pad.cpp
+0
-1
class_zone.cpp
pcbnew/class_zone.cpp
+0
-1
edit_pcb_text.cpp
pcbnew/edit_pcb_text.cpp
+4
-6
printout_controler.cpp
pcbnew/printout_controler.cpp
+1
-1
protos.h
pcbnew/protos.h
+7
-27
target_edit.cpp
pcbnew/target_edit.cpp
+2
-3
No files found.
include/class_board_item.h
View file @
44bb2e6d
...
...
@@ -130,6 +130,17 @@ public:
virtual
void
Draw
(
EDA_DRAW_PANEL
*
panel
,
wxDC
*
DC
,
GR_DRAWMODE
aDrawMode
,
const
wxPoint
&
offset
=
ZeroOffset
)
=
0
;
/**
* Swap data between aItem and aImage.
* aItem and aImage should have the same type
* Used in undo redo command to swap values between an item and its copy
* Only values like layer, size .. which are modified by edition are swapped,
* not the pointers like
* Pnext and Pback because aItem is not changed in the linked list
* @param aImage = the item image which contains data to swap
*/
void
SwapData
(
BOARD_ITEM
*
aImage
);
/**
* Function IsOnLayer
* tests to see if this object is on the given layer. Is virtual so
...
...
pcbnew/board_undo_redo.cpp
View file @
44bb2e6d
...
...
@@ -174,32 +174,23 @@ static bool TestForExistingItem( BOARD* aPcb, BOARD_ITEM* aItem )
}
void
SwapData
(
BOARD_ITEM
*
aItem
,
BOARD_ITEM
*
aImage
)
void
BOARD_ITEM
::
SwapData
(
BOARD_ITEM
*
aImage
)
{
if
(
aI
tem
==
NULL
||
aI
mage
==
NULL
)
if
(
aImage
==
NULL
)
{
wxMessageBox
(
wxT
(
"SwapData error: NULL pointer"
)
);
return
;
}
// Swap layers:
if
(
aItem
->
Type
()
!=
PCB_MODULE_T
&&
aItem
->
Type
()
!=
PCB_ZONE_AREA_T
)
{
// These items have a global swap function.
LAYER_NUM
layer
,
layerimg
;
layer
=
aItem
->
GetLayer
();
layerimg
=
aImage
->
GetLayer
();
aItem
->
SetLayer
(
layerimg
);
aImage
->
SetLayer
(
layer
);
}
EDA_ITEM
*
pnext
=
Next
();
EDA_ITEM
*
pback
=
Back
();
switch
(
aItem
->
Type
()
)
switch
(
Type
()
)
{
case
PCB_MODULE_T
:
{
MODULE
*
tmp
=
(
MODULE
*
)
aImage
->
Clone
();
(
(
MODULE
*
)
aImage
)
->
Copy
(
(
MODULE
*
)
aItem
);
(
(
MODULE
*
)
aItem
)
->
Copy
(
tmp
);
(
(
MODULE
*
)
aImage
)
->
Copy
(
(
MODULE
*
)
this
);
(
(
MODULE
*
)
this
)
->
Copy
(
tmp
);
delete
tmp
;
}
break
;
...
...
@@ -207,22 +198,24 @@ void SwapData( BOARD_ITEM* aItem, BOARD_ITEM* aImage )
case
PCB_ZONE_AREA_T
:
{
ZONE_CONTAINER
*
tmp
=
(
ZONE_CONTAINER
*
)
aImage
->
Clone
();
(
(
ZONE_CONTAINER
*
)
aImage
)
->
Copy
(
(
ZONE_CONTAINER
*
)
aItem
);
(
(
ZONE_CONTAINER
*
)
aItem
)
->
Copy
(
tmp
);
(
(
ZONE_CONTAINER
*
)
aImage
)
->
Copy
(
(
ZONE_CONTAINER
*
)
this
);
(
(
ZONE_CONTAINER
*
)
this
)
->
Copy
(
tmp
);
delete
tmp
;
}
break
;
case
PCB_LINE_T
:
std
::
swap
(
*
((
DRAWSEGMENT
*
)
aItem
),
*
((
DRAWSEGMENT
*
)
aImage
)
);
std
::
swap
(
*
((
DRAWSEGMENT
*
)
this
),
*
((
DRAWSEGMENT
*
)
aImage
)
);
break
;
case
PCB_TRACE_T
:
case
PCB_VIA_T
:
{
TRACK
*
track
=
(
TRACK
*
)
aItem
;
TRACK
*
track
=
(
TRACK
*
)
this
;
TRACK
*
image
=
(
TRACK
*
)
aImage
;
EXCHG
(
track
->
m_Layer
,
image
->
m_Layer
);
// swap start, end, width and shape for track and image.
wxPoint
exchp
=
track
->
GetStart
();
track
->
SetStart
(
image
->
GetStart
()
);
...
...
@@ -263,22 +256,32 @@ void SwapData( BOARD_ITEM* aItem, BOARD_ITEM* aImage )
break
;
case
PCB_TEXT_T
:
std
::
swap
(
*
((
TEXTE_PCB
*
)
aItem
),
*
((
TEXTE_PCB
*
)
aImage
)
);
std
::
swap
(
*
((
TEXTE_PCB
*
)
this
),
*
((
TEXTE_PCB
*
)
aImage
)
);
break
;
case
PCB_TARGET_T
:
std
::
swap
(
*
((
PCB_TARGET
*
)
aItem
),
*
((
PCB_TARGET
*
)
aImage
)
);
std
::
swap
(
*
((
PCB_TARGET
*
)
this
),
*
((
PCB_TARGET
*
)
aImage
)
);
break
;
case
PCB_DIMENSION_T
:
std
::
swap
(
*
((
DIMENSION
*
)
aItem
),
*
((
DIMENSION
*
)
aImage
)
);
std
::
swap
(
*
((
DIMENSION
*
)
this
),
*
((
DIMENSION
*
)
aImage
)
);
break
;
case
PCB_ZONE_T
:
default
:
wx
MessageBox
(
wxT
(
"SwapData() error: unexpected type"
)
);
wx
LogMessage
(
wxT
(
"SwapData() error: unexpected type %d"
),
Type
(
)
);
break
;
}
if
(
pnext
!=
Next
()
||
pback
!=
Back
()
)
{
Pnext
=
pnext
;
Pback
=
pback
;
#ifdef DEBUG
wxLogMessage
(
wxT
(
"SwapData Error: %s Pnext or Pback pointers modified"
),
GetClass
().
GetData
()
);
#endif
}
}
...
...
@@ -481,7 +484,7 @@ void PCB_EDIT_FRAME::PutDataInPreviousState( PICKED_ITEMS_LIST* aList, bool aRed
case
UR_CHANGED
:
/* Exchange old and new data for each item */
{
BOARD_ITEM
*
image
=
(
BOARD_ITEM
*
)
aList
->
GetPickedItemLink
(
ii
);
SwapData
(
item
,
image
);
item
->
SwapData
(
image
);
}
break
;
...
...
pcbnew/class_drawsegment.cpp
View file @
44bb2e6d
...
...
@@ -44,7 +44,6 @@
#include <msgpanel.h>
#include <pcbnew.h>
#include <protos.h>
#include <math_for_graphics.h>
#include <class_board.h>
...
...
pcbnew/class_mire.cpp
View file @
44bb2e6d
...
...
@@ -38,7 +38,6 @@
#include <colors_selection.h>
#include <trigo.h>
#include <macros.h>
#include <protos.h>
#include <richio.h>
#include <class_board.h>
...
...
pcbnew/class_pad.cpp
View file @
44bb2e6d
...
...
@@ -34,7 +34,6 @@
#include <confirm.h>
#include <kicad_string.h>
#include <trigo.h>
#include <protos.h>
#include <richio.h>
#include <wxstruct.h>
#include <macros.h>
...
...
pcbnew/class_zone.cpp
View file @
44bb2e6d
...
...
@@ -41,7 +41,6 @@
#include <wxBasePcbFrame.h>
#include <msgpanel.h>
#include <protos.h>
#include <class_board.h>
#include <class_zone.h>
...
...
pcbnew/edit_pcb_text.cpp
View file @
44bb2e6d
...
...
@@ -37,8 +37,7 @@
#include <class_board.h>
#include <class_pcb_text.h>
#include <protos.h>
#include <class_board_item.h>
static
void
Move_Texte_Pcb
(
EDA_DRAW_PANEL
*
aPanel
,
wxDC
*
aDC
,
const
wxPoint
&
aPosition
,
...
...
@@ -54,7 +53,6 @@ static TEXTE_PCB s_TextCopy( (BOARD_ITEM*) NULL ); /* copy of the edited text
/*
* Abort current text edit progress.
*
* If a text is selected, its initial coord are regenerated
*/
void
Abort_Edit_Pcb_Text
(
EDA_DRAW_PANEL
*
Panel
,
wxDC
*
DC
)
...
...
@@ -78,7 +76,7 @@ void Abort_Edit_Pcb_Text( EDA_DRAW_PANEL* Panel, wxDC* DC )
}
SwapData
(
TextePcb
,
&
s_TextCopy
);
TextePcb
->
SwapData
(
&
s_TextCopy
);
TextePcb
->
ClearFlags
();
#ifndef USE_WX_OVERLAY
TextePcb
->
Draw
(
Panel
,
DC
,
GR_OR
);
...
...
@@ -117,11 +115,11 @@ void PCB_EDIT_FRAME::Place_Texte_Pcb( TEXTE_PCB* TextePcb, wxDC* DC )
else
{
// Restore initial params
SwapData
(
TextePcb
,
&
s_TextCopy
);
TextePcb
->
SwapData
(
&
s_TextCopy
);
// Prepare undo command
SaveCopyInUndoList
(
TextePcb
,
UR_CHANGED
);
SwapData
(
TextePcb
,
&
s_TextCopy
);
// Restore current params
TextePcb
->
SwapData
(
&
s_TextCopy
);
}
TextePcb
->
ClearFlags
();
...
...
pcbnew/printout_controler.cpp
View file @
44bb2e6d
...
...
@@ -327,7 +327,7 @@ void BOARD_PRINTOUT_CONTROLLER::DrawPage()
wxLogTrace
(
tracePrinting
,
wxT
(
"Logical origin: x=%d, y=%d"
),
offset
.
x
,
offset
.
y
);
#if defined(wxUSE_LOG_TRACE)
#if defined(wxUSE_LOG_TRACE)
&& defined( DEBUG )
wxRect
paperRect
=
GetPaperRectPixels
();
wxLogTrace
(
tracePrinting
,
wxT
(
"Paper rectangle: left=%d, top=%d, "
"right=%d, bottom=%d"
),
...
...
pcbnew/protos.h
View file @
44bb2e6d
...
...
@@ -37,18 +37,6 @@ class BOARD_ITEM;
class
TRACK
;
class
MODULE
;
/**
* Function SwapData
* Used in undo / redo command:
* swap data between Item and a copy
* swapped data is data modified by edition, mainly sizes and texts
* so ONLY FEW values are swapped
* @param aItem = the item
* @param aImage = a copy of the item
*/
void
SwapData
(
BOARD_ITEM
*
aItem
,
BOARD_ITEM
*
aImage
);
/***************/
/* TRPISTE.CPP */
...
...
@@ -72,19 +60,8 @@ void DrawTraces( EDA_DRAW_PANEL* panel,
int
nbsegment
,
GR_DRAWMODE
mode_color
);
/*************/
/* MODULES.C */
/*************/
void
DrawModuleOutlines
(
EDA_DRAW_PANEL
*
panel
,
wxDC
*
DC
,
MODULE
*
module
);
/****************/
/* EDITRACK.C : */
/****************/
TRACK
*
LocateIntrusion
(
TRACK
*
listStart
,
TRACK
*
aTrack
,
LAYER_NUM
aLayer
,
const
wxPoint
&
aRef
);
void
ShowNewTrackWhenMovingCursor
(
EDA_DRAW_PANEL
*
aPanel
,
wxDC
*
aDC
,
const
wxPoint
&
aPosition
,
bool
aErase
);
...
...
@@ -94,12 +71,15 @@ void ShowNewTrackWhenMovingCursor( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPo
*/
void
CalculateSegmentEndPoint
(
const
wxPoint
&
aPosition
,
int
ox
,
int
oy
,
int
*
fx
,
int
*
fy
);
/****************/
/* CONTROLE.CPP */
/****************/
void
RemoteCommand
(
const
char
*
cmdline
);
/**
* Finds the projection of a grid point on a track. This is the point
* from where we want to draw new orthogonal tracks when starting on a track.
*/
bool
Project
(
wxPoint
*
res
,
wxPoint
on_grid
,
const
TRACK
*
track
);
TRACK
*
LocateIntrusion
(
TRACK
*
listStart
,
TRACK
*
aTrack
,
LAYER_NUM
aLayer
,
const
wxPoint
&
aRef
);
#endif
/* #define PROTO_H */
pcbnew/target_edit.cpp
View file @
44bb2e6d
...
...
@@ -34,7 +34,6 @@
#include <dialog_helpers.h>
#include <base_units.h>
#include <gr_basic.h>
#include <protos.h>
#include <class_board.h>
#include <class_mire.h>
...
...
@@ -258,9 +257,9 @@ void PCB_EDIT_FRAME::PlaceTarget( PCB_TARGET* aTarget, wxDC* DC )
if
(
(
aTarget
->
GetFlags
()
&
IN_EDIT
)
)
{
SwapData
(
aTarget
,
&
s_TargetCopy
);
aTarget
->
SwapData
(
&
s_TargetCopy
);
SaveCopyInUndoList
(
aTarget
,
UR_CHANGED
);
SwapData
(
aTarget
,
&
s_TargetCopy
);
aTarget
->
SwapData
(
&
s_TargetCopy
);
}
aTarget
->
ClearFlags
();
...
...
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