Jeff Young
04f61fb1f2
Rebuild groups as a separate pass (required for nested groups).
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5858
2020-10-13 17:58:24 +01:00
jean-pierre charras
57da733f56
Avoid loss of data when saving a board having duplicate UUID
...
Some (old) boards used for panelisation can have duplicate UUID
(timestamp). duplicate timestamps create loss of data when saving these boards.
Fixes #5969
https://gitlab.com/kicad/code/kicad/issues/5969
2020-10-11 19:07:28 +02:00
Jeff Young
37906511f5
Class renaming.
...
DRAWSEGMENT -> PCB_SHAPE
EDGE_MODULE -> FP_SHAPE
TEXTE_PCB -> PCB_TEXT
TEXTE_MODULE -> FP_TEXT
2020-10-05 11:55:33 +01:00
Mark Roszko
a28a0e14ba
Fix conversion warnings
2020-10-05 10:41:14 +00:00
Jeff Young
7a4900b8dc
PCB_LINE_T -> PCB_SHAPE_T and PCB_MODULE_EDGE_T -> PCB_FP_SHAPE_T
...
Also updated footprint text and zone types for consistencey.
2020-10-04 16:49:04 +01:00
Jeff Young
ba26e056ec
Implement groups for modedit.
...
This uncovered a memory corruption bug in MODULE's move operator,
several bugs in MODULE's move and copy constructors, and a bug in
BOARD's GetItem() call.
It also bumps the file format for saving/restoring groups inside
footprints.
2020-10-03 12:19:50 +01:00
jean-pierre charras
87a220b8e2
more cleanup about removing useless include
2020-10-02 14:51:11 +02:00
Seth Hillbrand
bf3cb0b1d0
Standardize pad type enums
2020-09-30 08:38:35 -07:00
jean-pierre charras
456735f803
VIEW::ViewGetLOD() returns double now instead of int.
...
ViewGetLOD() returns the minimal value of a zoom to show an item.
However a zoom is a double, and using int as minimal value does not
allows setting a correct value in some cases.
2020-09-21 17:55:24 +02:00
jean-pierre charras
4db4a0a46f
Pcbnew, PCB_PAINTER: very minor enhancement for commit 2751c677
2020-09-21 08:56:53 +02:00
Jeff Young
64fa400b19
Ease translation a bit.
...
Also improves the SNR and consistency of the menu item text. For
instance, a position is rarely useful, while relative sizes can be.
Also removes some unnecessary repitition, such as "Graphic Rectangle"
when "Rectangle" communicates the necessary information.
2020-09-19 18:49:06 +01:00
jean-pierre charras
121ccc3a10
Fix broken MODULE::HitTest()
...
HitTest was using a rotated bounding box, but the bounding box
is already right.
2020-09-19 19:37:58 +02:00
PJM
f3586ccd45
Pcbnew: Make 'GetBoundingBox' return correct answer when passed false
...
CHANGED: 'GetBoundingBox' has a variant that accepts a boolean that
determines if invisible text is included in the Bbox calculations. The
'IsVisible' function for the value and reference strings doesn't
factor in if the layer it's on is visible or even in the PCB stackup,
so 'GetBoundingBox' returns a bbox that factors in invisible text
regardless of what it's passed. This MR fixes that problem.
CHANGED: Refactored the original 'GetBoundingBox' function that doesn't
take a parameter. It now just calls the variant that does take a
parameter and passes it 'true'. The two versions had a lot of
duplicate code and this eliminates it.
Note: Issue 5629 might be better solved at the PCB module level, but this
does fix the known problems caused by it which were discovered in
'GetBoundingBox'.
Fixes https://gitlab.com/kicad/code/kicad/issues/5629
2020-09-17 00:59:07 +00:00
Marek Roszko
a82edb60fe
Rotate the bounding box for hit tests on the fly
2020-09-16 23:29:21 +00:00
Marek Roszko
721c30e464
Make SetPosition and SetOrientation simply adjust the bounding box rather than continously recalculate it.
...
SetPosition is called on every pixel of a move operation which could be performance impacting on some systems.
2020-09-16 23:29:21 +00:00
Tomasz Wlostowski
2c1bd645b2
pcbnew: initial support for GetEffectiveShape() for zones and modules
2020-09-08 01:31:42 +02:00
Jeff Young
e782794f96
Flesh out object properties and DRC Rule syntax help.
2020-09-05 17:44:59 +01:00
Jeff Young
88635ee5b6
Clean up error messages.
...
Convert a lot of nags to InfoBar errors/warnings/messages, and some
that never should have been exposed to wxFAIL_MSGs.
2020-08-31 14:19:57 +01:00
Jeff Young
14a9c8dc42
Fix printing for introduction of zone layers and meta items.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5298
2020-08-30 22:49:27 +01:00
Jeff Young
beb370a3e5
Another typo.
2020-08-28 14:42:30 +01:00
Jeff Young
e7db43285f
ADDED new footprint fabrication attributes.
...
This commit also adds mapping of the new symbol properties
"exclude from BOM" and "exclude from board" to be correctly
handled in Update Board from Schematic.
Fixes https://gitlab.com/kicad/code/kicad/issues/2399
Fixes https://gitlab.com/kicad/code/kicad/issues/4643
Fixes https://gitlab.com/kicad/code/kicad/issues/2233
2020-08-28 11:05:58 +01:00
Seth Hillbrand
35eda030a2
pcbnew: Ensure we are cloning pads
...
When calling MODULE::Clone() we need to clone the pads as well or we
will end up with scm churn when running undo/redo operations
2020-08-24 19:40:08 -07:00
Jeff Young
5589cdf921
Copy properties in module operator= and copy constructors.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5256
2020-08-19 22:45:40 +01:00
Ian McInerney
8bca145b75
Initialize the PCB_LAYER_T enum in the property manager
...
Since all the property descriptions are static initialization, each instance
should contain the code to initially populate the enum if it is empty,
otherwise an assert is thrown warning the enum may be empty.
2020-08-18 22:42:56 +01:00
Jeff Young
7342532276
Remove auto.
2020-08-15 17:32:13 +01:00
Jeff Young
692aeff334
Fix a bunch of usages of copy ctor that really meant duplicate.
...
In particular, "duplicate" means "with a new KIID".
Fixes https://gitlab.com/kicad/code/kicad/issues/5127
2020-08-10 14:23:11 +01:00
Jeff Young
6b7503be8e
ADDED properties passed between eescema and pcbnew.
...
And referencable from textVars.
Fixes https://gitlab.com/kicad/code/kicad/issues/5079
2020-08-08 22:49:04 +01:00
Seth Hillbrand
0a5f11fb37
Keep item ordering as much as possible
...
The ordering goes first by type and then by uuid. In the case of
DRAWSEGMENT and EDGE_MODULE, we also sort by shape type before UUID.
Fixes https://gitlab.com/kicad/code/kicad/issues/4068
2020-07-25 12:56:19 -07:00
Jeff Young
095937563b
Hook libeval compiler up to rule parser
...
- convert expression string tokens to single-quote-delimited
- fix bug where netclass assignments weren't getting updated after
board setup dialog
- move property manager rebuild to lazy evaluation
- improve performance with wider use of const&
- retire DRC_SELECTOR stuff
- use wxString for GUI stuff (particularly translated stuff)
- fix EqualTo() to return false instead of asserting when op types
don't match
- fix buffer overruns with fixed-size string buffers
- make expression function calls case-insensitive
- integrate expression errors into rule parser
- produce more and better error messages
- keep BOARD_ITEM ptrs const as long as possible
- fix a couple of uninitialized variables
2020-07-20 22:11:53 +01:00
Ian McInerney
5ba0855c36
Add move operators to MODULE
...
This fixes a memory leak in the std:: containers in MODULE
that is noticable when moving a module on the board and cancelling
the operation.
2020-07-16 02:11:51 +01:00
jean-pierre charras
0ff866895a
module and pad display info: add rotation angle.
...
This is a useful parameter, so it must be displayed on the pmessage panel.
2020-07-06 15:00:36 +02:00
Tomasz Wlostowski
539984229d
Temporarily disable D_PAD/MODULE GetLocalClearance property in introspection engine
2020-07-05 22:44:38 +02:00
Maciej Suminski
04728278c0
Updated classes meta-data to take advantage of property replacement
2020-07-05 22:44:38 +02:00
Maciej Suminski
a289056a9e
Properties meta-data for pcbnew classes
2020-07-05 22:44:38 +02:00
Jeff Young
304328ca13
Fix Linux compile error.
2020-06-27 22:27:49 +01:00
Jeff Young
6acd35c981
Cleanup.
2020-06-27 20:07:26 +01:00
Jeff Young
8b084c373e
Autocomplete for text variables.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4190
2020-05-27 23:29:51 +01:00
Jeff Young
69f121d907
Another attempt to get DRC and status bar to share message content.
2020-05-22 14:12:56 +01:00
Jeff Young
56946f4db1
Fix pad name increment to use last edited pad.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/1882
2020-05-03 08:59:51 +01:00
Ian McInerney
99dcadf7e6
Introduce new KI_FALLTHROUGH macro
...
Annotate purposeful fallthroughs in switch statements with the
KI_FALLTHROUGH macro.
2020-04-25 00:44:09 +01:00
Jeff Young
1535c83b88
Lay some groundwork for adding distances to DRC errors.
...
modified: eeschema/lib_rectangle.cpp
2020-04-24 14:46:22 +01:00
Jeff Young
7f1b409305
Remove dead legacy print code.
2020-04-20 17:03:38 +01:00
Jeff Young
aba0fa7bf8
Allow cross-referencing text substitutions.
2020-04-07 17:29:58 +01:00
Jeff Young
4990d1e7b2
Variable substitution framework.
...
This implements editing of variables and moving SCH_FIELDs,
TEXTE_MODULEs, TEXTE_PCB and worksheet items over to the new
framework.
2020-03-30 14:15:59 +01:00
Jeff Young
204f2cd580
Reference -> reference designator.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4012
2020-03-17 16:09:25 +00:00
Seth Hillbrand
8c19b4b6ae
pcbnew: Adding arcs to PNS
...
This is allows ARCs in tracks to be synchronized with
the PNS router. Note this does not yet include the UI components
to route curved traces
2020-02-21 16:11:41 -08:00
Jeff Young
129042f8a6
Convert timestamps to UUIDs.
2020-02-20 21:29:52 +00:00
Jeff Young
2286652abe
Handle duplication of footprint ref and value.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/3828
2020-02-03 15:08:01 +00:00
Jeff Young
d24bd5c832
Fix a couple of Coverity issues.
2020-01-12 21:07:41 +00:00
Ian McInerney
f896043067
Fix comments for switch statement fall throughs
...
This cleans up all GCC warnings (-Wimplicit-fallthrough=2) about
implicitly falling through switch cases.
2020-01-11 19:16:32 +00:00