320 Commits

Author SHA1 Message Date
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
Mark Roszko
19ceb11ae7 Change more enums over to scoped enums 2019-12-28 00:55:11 +00:00
Mark Roszko
11ff16be4e Switch to scoped enums 2019-12-20 14:11:39 +00:00
Seth Hillbrand
9b7d4e2742 Recleaning DLIST from pcbnew
This was re-introduced by 5d3e6e3d444c87f17641057fe17f3c7c54a0b8fb

The crash happened b/c we have to manage list containers in each element
and minor adjustments cause the rest of the list to be lost.  This
commit re-implements it using std::iterators and deque

Fixes #2623 | https://gitlab.com/kicad/code/kicad/issues/2623
2019-12-10 09:52:07 -08:00
jean-pierre charras
65bf669387 Refinements in gerber placefile writer: allows adding board edge cuts in file.
Use a pad bounding box for footprints having no valid courtyard defined.
Refinement also in Gerber files when plotting oval pads.
2019-11-01 18:12:26 +01:00
Seth Hillbrand
43768b71c0 Unify string lists of forbidden footprint chars
We have forbidden lists maintained in 3 separate locations.  This causes
a bit of confusion as to which is correct.

This makes the list uniform but remains to place the character set in a
single location.
2019-10-29 13:31:11 -07:00
jean-pierre charras
04bae776a7 Keepout in footprints: fix issues related to netclass management. Keepout do not actually use netclasses, but the netclass info must be valid. Especially when editing a fp in the fp editor, the netclass info is related to the dummy board managed by the fp editor. But when saved to the board editor the netclass info must be related to the main board 2019-10-29 11:24:57 +01:00
jean-pierre charras
bc5dcf182f keepout in footprint: fix some crashes and issues. Create a specific type (PCB_MODULE_ZONE_AREA_T) for zones in footprint. The new class (MODULE_ZONE_CONTAINER) is the same as ZONE_CONTAINER, but the type ID is PCB_MODULE_ZONE_AREA_T instead of PCB_ZONE_AREA_T.
This is mandatory because these zones must be handled differently in many functions.
2019-10-29 11:24:57 +01:00
Ross Schlaikjer
64a42ffa35 Add keepout in footprints: Starting point. 2019-10-29 11:24:30 +01:00
jean-pierre charras
9d617502d5 Gerbview: fix missing grid initialization at starting. 2019-10-03 18:33:16 +02:00
jean-pierre charras
115e1e33da dialog edit footprint: display fp orientation between -180 and + 180 instead of 0 ... 360 deg.
Previously, the wxTextCtrl was using 0 ... 360 but the predefined values are -90 to 180 deg.
2019-09-19 20:29:39 +02:00
jean-pierre charras
a52dc57887 Pcbnew: Fix incorrect footprint angle rotation after flipping around Y axis (left to right)
The angle rotation was always negated. But this is incorrect:
The angle rotation must be negated when flipping around X axis
The angle rotation must be 180 - initial rotation when flipping around Y axis

This bug can break position files and footprint updates,
especially when mixing flipping around Y axis and flipping around X axis.
2019-09-17 18:51:27 +02:00
jean-pierre charras
64b5e8bee2 Minor fix and enhancement code. 2019-09-15 11:10:53 +02:00
Jeff Young
375e8a2f97 Only add ref & value to boundingBox if they're visible.
Fixes: lp:1746911
* https://bugs.launchpad.net/kicad/+bug/1746911
2019-08-20 16:39:40 +01:00
Ian McInerney
d170243d61 Fix some memory leaks
Some elements of modules and boards were not deleted, so memory
was being leaked on some library loads and single-instance
pcbnew usage.
2019-08-12 15:03:25 -04:00
Jeff Young
ab283174df Make sure edit flags get cleared after drawing footprint items.
Fixes: lp:1839518
* https://bugs.launchpad.net/kicad/+bug/1839518
2019-08-08 20:51:07 +01:00
jean-pierre charras
3d9c04ecaf Pcbnew: Fix bug in MODULE::FindPadByName( const wxString& aPadName ).
This method was using a case insensitive comparison to find the pad matching aPadName.
But in netlist we are using case sensitive comparisons to attribute a net to a pad.
So if in the netlist there is a pad name that does not match any footprint pad name using case sensitive comparison but if it matches some pads using case insensitive comparison, the net is not set, but the test to detect non existing pads fails.
2019-07-25 17:37:25 +02:00
Jeff Young
1a7cef2950 Improve performance, commenting and API of some polygon classes. 2019-07-14 10:39:38 +01:00
Jeff Young
37af3adffb Add preference for flip axis.
Fixes: lp:1836267
* https://bugs.launchpad.net/kicad/+bug/1836267
2019-07-14 10:36:48 +01:00
Seth Hillbrand
32052d953f pcbnew: Fix STL blunder when deleting
Deleting objects from a container will invalidate the iterator that
contains the object.  Correct deleting requires capturing the iterator
returned by the erase function.

Fixes: lp:1832331
* https://bugs.launchpad.net/kicad/+bug/1832331
2019-06-11 10:12:00 -07:00
Seth Hillbrand
6a45446496 pcbnew: Remove the last dlist from modules/pcbnew 2019-06-01 20:55:32 -07:00
Seth Hillbrand
9163ac543a pcbnew: Move pads to std::deque 2019-06-01 16:23:54 -07:00
Jeff Young
c2662b0e11 Retire EDA_DRAW_PANEL and legacy_wx/EDA_DRAW_FRAME. 2019-05-31 21:55:30 +01:00
Jeff Young
d6e9bdf07b Convert remaining legacy drawing code to print code. 2019-05-31 21:54:22 +01:00
Jeff Young
fd546da640 Homogenize hit testing and selection return types.
Prep work for sharing SCH_SELECTION_TOOL with LibEdit.
2019-05-05 17:14:30 +01:00
Jeff Young
a81512ca96 Adjust justified text for rotation.
Fixes: lp:1823090
* https://bugs.launchpad.net/kicad/+bug/1823090
2019-04-07 22:17:59 +01:00
John Beard
88f9f6f072 Break out ref-des-centric functions to own header
This breaks the following functions out to a general-purposed refdes utils
header:

* MODULE::GetReferencePrefix()
* kicad_string.h RefDesStringCompare()

This acheives:

* Slimming of MODULE interface
* Placement of refdes code in common rather than pcbnew
** Testing of this code in qa_common
* Tighter and smaller includes for code that only needed refdes functions

Note: there are failing tests commited (as expected failures). These
are the cause of lp:1813669 and will be fixed as a follow-up commit.
2019-01-30 15:41:36 -08:00
John Beard
dc20521cb9 Break out getTrailingInt from MODULE
This is not logic specific to MODULE. Breaking it out to
kicad_string.h acheives:

* Slimming of the MODULE interface
* Enables reuse of the function
* Enables testing of the function

Also add a test under qa_common for this function.
2019-01-30 15:41:36 -08:00
Seth Hillbrand
5433423377 pcbnew: Don't update coords on add
When adding an element to a module, we don't need to update the relative
coordinates.  Doing so can cause changes when writing to file depending
on rotation and position.

Fixes: lp:1810870
* https://bugs.launchpad.net/kicad/+bug/1810870
2019-01-15 12:14:02 -08:00
Seth Hillbrand
26765161c1 drc: Add board outline and edge crossing
This adds a check for contiguous board outlines to the DRC.  It also
uses the calculated outline to ensure that traces are not crossing the
outlines.

Fixes: lp:1648055
* https://bugs.launchpad.net/kicad/+bug/1648055
2018-12-02 07:54:52 -08:00
Maciej Suminski
8d73cfef2a Adjusted level-of-detail thresholds for BOARD_ITEMs visibility
Fixes: lp:1801056
* https://bugs.launchpad.net/kicad/+bug/1801056
2018-11-03 00:34:27 +01:00
Jeff Young
d9bf1550e4 Improve slightly confusing error message. 2018-10-11 18:53:00 +01:00
Jeff Young
0f9ded9563 Space out placed footprints with some padding.
Fixes: lp:1788917
* https://bugs.launchpad.net/kicad/+bug/1788917
2018-09-14 10:21:45 +01:00
Jeff Young
43e99e6df0 Inflate footprint bounding box to include texts.
This makes zoom automatique work much better in the footprint
editor, and should improve other things which probably assumed
the bounding box included everything (such as refresh code).

Callers which still want just the module outline should call
GetFootprintRect() instead of GetBoundingBox().
2018-08-11 17:14:27 +01:00
Jeff Young
e55bb9e748 Increment references when creating an array.
While it's not always correct, not doing so is pretty much always
incorrect.

Fixes: lp:1625964
* https://bugs.launchpad.net/kicad/+bug/1625964
2018-07-25 14:41:20 +01:00
Jeff Young
2d4ba56ac0 Promote aperture pads to first-class citizens.
Well, almost anyway.  We can't use a pad attribute for them as
that would change the file format.  So they're currently
defined as a CONN pad with no copper layers.

However, when figuring out of existing pads should be *treated*
as aperture pads, we just check for no copper layers.

Fixes: lp:1781760
* https://bugs.launchpad.net/kicad/+bug/1781760
2018-07-24 14:57:45 +01:00
jean-pierre charras
4cac974420 Add Bezier curve (S_CURVE shape) support in DIALOG_GRAPHIC_ITEM_PROPERTIES.
Fix some issues related to S_CURVE shape support.
2018-07-22 18:39:48 +02:00