Commit Graph

16550 Commits

Author SHA1 Message Date
Alex Shvartzkop c5a6409c35 Fix a crash when opening PCB. 2023-11-29 22:50:52 +03:00
Jeff Young a5454cd7c2 Remove group from view when ungrouping.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16197
2023-11-29 18:21:18 +00:00
Jon Evans 19cfc18cf8 Quote base64 data in PCB 2023-11-29 16:17:41 +00:00
Jon Evans ae13a46ace Fix display of footprint parse errors at load 2023-11-29 16:17:41 +00:00
Jon Evans 4ff127b452 Parse generator_version and improve error output on mismatch
Also bump symbol format version for generator_version
2023-11-29 16:17:41 +00:00
Marek Roszko d1ecf3790c Add generator version 2023-11-29 16:17:41 +00:00
Jon Evans f1f8981395 Automatic whitespace and indentation prettification for sexpr formats 2023-11-29 16:17:41 +00:00
Jon Evans 55ba667bcb Retire tstamp keyword in favor of uuid 2023-11-29 16:17:41 +00:00
Jon Evans 55bca5e7ac Normalize formatting of booleans in the PCB file format 2023-11-29 16:17:41 +00:00
Jeff Young 2545999b3d Delete shapes re-combined into a pad.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16193
2023-11-29 16:15:31 +00:00
Mike Williams f993e45325 Variables: make consistent across editors
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16180
2023-11-29 09:55:17 -05:00
Ian McInerney 188b9f4dd5 Fix append board dialog
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16214
2023-11-29 14:01:13 +00:00
Graham Keeth 4f36f669dc Use Title Case for property names 2023-11-29 01:23:35 +00:00
Alex Shvartzkop f84bab00b4 Fix build; renaming. 2023-11-28 22:18:37 +03:00
Alex Shvartzkop 7eb98a9863 Fixes for tuning patterns and router.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16160
2023-11-28 20:55:39 +03:00
Seth Hillbrand 619c9bb0e4 Don't include hidden layers when selecting tuning
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16188
2023-11-28 09:41:09 -08:00
Seth Hillbrand e1b428609d Rewrite followTrivialPath as iterative
Remove the recursion that causes stack crash and add an
additional check for if we have already seen either the
current link or the last link before adding them to the line

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16185
2023-11-28 06:57:50 -08:00
Jeff Young 86edba9eb8 Make teardrop images international, and unify terminology.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16154
2023-11-28 13:56:41 +00:00
Seth Hillbrand 1a2f2d418c Basic handling for slotted holes in IPC2581 2023-11-27 11:57:31 -08:00
Seth Hillbrand 5e9b56b431 Don't set the dirty flag when saving 2023-11-27 11:57:31 -08:00
Seth Hillbrand f64349b292 Coverity fixes 2023-11-27 11:57:31 -08:00
jean-pierre charras f6bbf49800 Pcbnew, Excellon export: remove an useless line at end of file 2023-11-27 14:08:21 +01:00
jean-pierre charras 15c7f224b3 Protect against null pointer
Fixes #16172
https://gitlab.com/kicad/code/kicad/-/issues/16172
2023-11-27 09:52:18 +01:00
Seth Hillbrand 4fe755854f Remove GCC extension syntax 2023-11-26 16:46:56 -08:00
Seth Hillbrand 75c6b0ab28 Added IPC2581 support
IPC2581 is a modern production file exchange system.  It provides
single-file data output for an entire board including BOM and netlist
information.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/1954
2023-11-26 15:30:58 -08:00
Jeff Young aa3b4ee6d6 Make another attempt to fix compile button size.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16167
2023-11-26 18:24:34 +00:00
Jeff Young efaa131bc4 Position dummy tuning pattern before trying to get length out of it.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16165
2023-11-26 18:18:49 +00:00
jean-pierre charras aa760406ba Fix old python examples and a compatibility issue in pcb_shape.i.
Fixes #16158
https://gitlab.com/kicad/code/kicad/-/issues/16158
2023-11-26 13:44:31 +01:00
Graham Keeth 5e01ddb18a Delete deprecated expression funcs from DRC rules 2023-11-26 00:30:55 +00:00
Graham Keeth 1fbdbabd08 add getField() and memberOfSheet() to DRC syntax help 2023-11-26 00:30:55 +00:00
Graham Keeth 4e796206f9 fix DRC syntax help example clearance-to-1mm-slot 2023-11-26 00:30:55 +00:00
Graham Keeth 136bc1dbb4 Adjust spacing between example DRC rules 2023-11-26 00:30:55 +00:00
Graham Keeth 13a2c6b017 Hide some irrelevant properties from DRC rule editor
- Fill_Color
- Line_Color
- Thermal_Spoke_Template
- Number_Box
2023-11-26 00:29:16 +00:00
Jon Evans 2b27337778 Clamp ratio properties
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16153
2023-11-25 18:40:14 -05:00
Alex Shvartzkop c307e284e0 Altium PCB: fixup GetRemainingSubrecordBytes usage. 2023-11-26 00:30:22 +03:00
Alex Shvartzkop a8795711a0 Altium PCB: import hatched polygon pour fills. 2023-11-26 00:23:37 +03:00
Jon Evans 37d9b7fac0 Prevent crash if generator exists but has no items
See https://gitlab.com/kicad/code/kicad/-/issues/15366
2023-11-25 16:01:12 -05:00
Jon Evans 1cb1fd3516 Partial revert "Fix commit/view handling when dragging arcs"
Revert unintended formatting changes

This reverts commit f0988c3c5d.
2023-11-25 15:16:57 -05:00
Jon Evans f0988c3c5d Fix commit/view handling when dragging arcs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16145
2023-11-25 14:55:47 -05:00
Jeff Young df83e24eb7 Cleanup.
It's been a long time since line style was specific to plotting.
2023-11-25 13:12:45 +00:00
jean-pierre charras d4ce2c8982 Fix a few Coverity warnings. 2023-11-25 11:44:01 +01:00
Jeff Young 2a198e22e2 Draw tuning pattern border when placing. 2023-11-23 23:25:49 +00:00
Jeff Young b6501ce632 Report current length on roll-over. 2023-11-23 23:25:49 +00:00
Ian McInerney 1194a91be4 Prompt if overwriting the net inspector CSV report 2023-11-23 11:49:40 +00:00
Ian McInerney 0508a9ce83 Don't write units to every field in net inspector CSV
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16147
2023-11-23 11:46:24 +00:00
Jeff Young d437d872ab Re-enable corner radius of DP meanders.
It appears whatever bugs it had have been addressed.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15257
2023-11-22 19:45:56 +00:00
Jeff Young 85f760fc66 Run IsElementVisible() test on all markers, not just their shadows.
The view item doesn't always get its layers updated early enough for
the paint.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16138
2023-11-22 14:37:45 +00:00
Yang Hongbo f324b1b88d Merge remote-tracking branch 'origin/master' into last_net_inspector_settings 2023-11-22 07:21:03 +08:00
Yang Hongbo 5a1b30ea42 save and restore last used net inspector settings 2023-11-22 07:13:08 +08:00
Alex Shvartzkop 5de55b8c4a STEP export: fix a Bnd_BoundSortBox usage bug. 2023-11-21 14:21:12 +03:00
Alex Shvartzkop 58b9d68084 STEP export: make use of footprint names instead of "SOLID".
Should help when importing into software that does deduplication
based on label names (e.g. SolidWorks).
2023-11-21 14:11:16 +03:00
Alex Shvartzkop f3fdfa73e6 STEP export: Do not set BRepBuilderAPI precision.
This caused issues when loading some STEP models.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15485
2023-11-21 00:47:38 +03:00
Jon Evans 87ba1f7ea0 Fix expand selection for graphic shapes on graphic layers 2023-11-20 16:14:56 -05:00
Jeff Young d382a11c2a Apply new on-canvas-item marking to footprint editor tree. 2023-11-20 19:46:03 +00:00
jean-pierre charras ed1924b975 Pcbnew, place menu: some enhancements:
- move place dimensions to a sub menu (they are not frequently used, and it
reduce the size of the place menu
- add reset drill origin, similar to reset grid origin.
2023-11-20 13:23:16 +01:00
snhobbs 5cf244dd90 Added a ImportSpecctraSession overload that doesn't require a PCB_EDIT_FRAME 2023-11-20 03:06:27 +00:00
Alex Shvartzkop 8dfad68d69 ADDED: option to optimize exported STEP files (disable pcurves) 2023-11-19 15:23:17 +03:00
Alex Shvartzkop 1321c8c6af STEP export: fix an issue when cutting circular holes in zones. 2023-11-19 14:04:31 +03:00
jean-pierre charras 7fd9226bec Fix issue in CalcArcCenter( VECTOR2D& aStart, VECTOR2D& aMid, VECTOR2D& aEnd )
It happens when the segment (aStart, aMid) is horizontal
Probably also when the segment (aEnd, aMid) is horizontal
Slopes with value 0.0 are set to double:: epsilon(), but it was a too small values
generating broken calculations.
Now set to 1e-10 (it seems working).
Fixes #16089
https://gitlab.com/kicad/code/kicad/-/issues/16089
2023-11-18 20:08:26 +01:00
Wayne Stambaugh 930b695b9f Board editor array dialog fixes. 2023-11-18 13:21:13 -05:00
Wayne Stambaugh 9e1caa0d39 Fix crash when creating an array of footprint fields in board editor.
Attempting to create an array of footprint child objects other than a pad
causes the crash due to the fact that only pads where checked.  The change
now checks if any object has a footprint as a parent.  This should prevent
any future issues when new footprint child objects are added.

There was also another subtle bug fixed when more than one child object of
a footprint were selected, the array feature would make as many copies of
the footprint as selected child items.

https://gitlab.com/kicad/code/kicad/-/issues/16088
2023-11-18 11:18:18 -05:00
Jeff Young 21d53d0b86 Make sure Use-Netclasses checkbox gets set when loading dialog.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16110
2023-11-18 12:18:45 +00:00
Wayne Stambaugh a5c34c50d7 Use natural sorting for net inspector when sorting by net name.
wxString sorting doesn't work when sorting strings with numbers which
results in 1,10,11...2 instead of 1,2,...9,10,11.

https://gitlab.com/kicad/code/kicad/-/issues/16100
2023-11-17 15:25:07 -05:00
Jeff Young a4a946ab75 Clearer naming. 2023-11-17 18:36:33 +00:00
Jeff Young 78c46e5f4e Improved clarity and comments. 2023-11-17 18:36:33 +00:00
Alex Shvartzkop 76352234e5 ADDED: Support Altium .IntLib (Integrated Library) in fp/sym library tables. 2023-11-17 07:20:18 +03:00
Jon Evans 6cb046a4eb macOS: add a few more known file types
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14206
2023-11-16 12:11:42 -05:00
jean-pierre charras ed9dd55fde DRAWING_TOOL::PlaceImportedGraphics() do not add twice items when adding to new group. 2023-11-16 12:53:00 +01:00
jean-pierre charras 83ee2ffdab Pcbnew, dialog import graphics: add tool-tips and minor cosmetic enhancements. 2023-11-16 12:50:45 +01:00
Jeff Young b218617469 Honour bounding-hull setting on closed shapes and chained segments.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16092
2023-11-16 09:07:54 +00:00
jean-pierre charras a663dd7ec4 Pcbnew, import graphics: fixes and enhancements:
- fix regression: allow grouping or not imported items
- store more settings in Pcbnew settings: all options are now stored.
- default tolerance to connect items is now 0.01 mm. 1 mm is a too big value,
and can create serious artifacts in imported outlines.
2023-11-15 20:26:05 +01:00
Jeff Young 9bb6b11c1d Separate fields from text items in FPEdit's Defaults panel.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15135
2023-11-15 10:56:14 +00:00
Jan Wichmann b1a044e22a pcbnew: ADDED new feature "Center on FP" in the dialog "Edit Text and Graphic Properties" 2023-11-14 16:35:01 +00:00
Jeff Young ca8cb5a206 Fix typo.
We want recursion into descendants here.  Alternatively we could
change the caller to RunOnDescendents(), but it seemed cleaner to
omit the scoping of the Stage() call....

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16077
2023-11-14 14:23:23 +00:00
jean-pierre charras e3bbe32793 drc_test_provider_library_parity: Better algo to compare footprint graphics
Instead of changing the footprint in test to have a non flipped, non rotated
fp, change the footprint template from library to have the same transform.
It reduce problems like rounding and graphic shape convert for rectangles.
Fixes #16075
https://gitlab.com/kicad/code/kicad/-/issues/16075
2023-11-13 18:38:30 +01:00
jean-pierre charras f6314e6401 FOOTPRINT::cmp_drawings(): fix a incorrect sort criteria for polygons:
for polygons, GetStart() and GetEnd() have no meaning and cannotbe used
for sorting.
2023-11-13 18:36:00 +01:00
jean-pierre charras d5a5d25623 rework on commit b564d0713c50e50282a0545ee23bb3ec51906cfd: better fix 2023-11-13 11:16:21 +01:00
Ian McInerney e5f688e865 Plot footprint edgecuts in PDF drill map file
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15247
2023-11-12 23:21:46 +00:00
Zhuang Jiezhi 9b8fa85b32 feat:Add python API GetKicadCurrentLanguage 2023-11-12 22:52:54 +00:00
jean-pierre charras b564d0713c DRC: fix one of some things that can create false positive.
in bool shapeNeedsUpdate(), if a shape is a rectangle and the other is a polygon,
we need to try to convert the polygon to a rectangle for comparison, because some
transforms ( and especially PCB_SHAPE::Normalize() ) can convert a polygon to a rectangle
So a poly and a rectangle can be in fact the same shape

Partial fix of bug 16075.
2023-11-12 20:19:09 +01:00
Alex Shvartzkop 05e954ad5d Fixes for length tuning patterns. 2023-11-12 12:17:08 +03:00
Alex Shvartzkop 78c7dc85f0 Fix moving tuning patterns, disable rotation. 2023-11-12 02:24:35 +03:00
jean-pierre charras 0904231000 Partial revert of commit d8498b62e0, due to
comments in PCB_TEXTBOX::TransformShapeToPolygon()
2023-11-11 17:01:01 +01:00
jean-pierre charras d8498b62e0 PCB_TEXTBOX::TransformShapeToPolygon(): fix incorrect transform: when it
is a polygon (rotated rect by a non cardinal angle) the polygon is not
filled, so the shape is just a set of thick segments.
Fixes #16072
https://gitlab.com/kicad/code/kicad/-/issues/16072
2023-11-11 16:44:04 +01:00
Jeff Young 7e46e85c7d Update copyrights. 2023-11-11 15:29:34 +00:00
jean-pierre charras 75e0bf0cba Python fp wizards: Add a text ("${REFERENCE}") on fab layer to a few wizards. 2023-11-11 11:19:21 +01:00
Jeff Young 3e58425671 Flip rotation angle when board view is flipped.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15954
2023-11-10 22:30:06 +00:00
Jeff Young 9ef05fb762 Don't store document values in global PROPERTY_MANAGER.
At best it leads to the wrong units being used if they're different
between (for instance) PCB Editor and Footprint Editor.  (And this
will only get worse if we ever to to a single binary.)

At worst it causes crashes when accessing freed ORIGIN_TRANSFORMS.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16062
2023-11-10 18:37:29 +00:00
Jeff Young d41f4ec842 Only disable unflashed layers when they're conditionally flashed.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16061
2023-11-10 13:57:56 +00:00
Jeff Young e6081cf31a Use position of isolotaed spoke when reporting it.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16058
2023-11-10 12:49:19 +00:00
jean-pierre charras 2f594e441b Fix a compil warning (shadowed variable). 2023-11-10 10:31:40 +01:00
Jeff Young 6ecfc89a4a Honour originTransforms in search panels.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15031
2023-11-09 18:41:18 +00:00
Alex Shvartzkop 7589de6120 Optimize footprint/symbol library hover previews. 2023-11-09 19:02:10 +03:00
Jeff Young cc721c4907 Improve encapsulation of group internals.
(It's still leaking into BOARD_COMMIT and some other places, but at
least it no longer leaks into all the edit tools.)

Also fixes some bugs when moving/copying/pasting multiple selections
containing length-tuning patterns.
2023-11-09 14:05:35 +00:00
Jeff Young 78e00ade7a Clearer naming. 2023-11-09 14:05:35 +00:00
Ian McInerney dd933b7d0e Update CERN copyrights 2023-11-08 21:34:14 +00:00
Jeff Young a003515ee7 Enable drill/place file origin for plotting PDF.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15834
2023-11-08 16:40:28 +00:00
Jeff Young 72c985bc07 Rewrite scoring algo again. (Third time's the charm?)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16042
2023-11-08 12:33:09 +00:00
Alex Shvartzkop 7abe2e3ea0 Restore clearance cache usage in PNS::NODE::NearestObstacle.
This (and the other commit) restores router performance to pre-7.0.3 levels.

(cherry-picked from commit 5e93814283)
2023-11-07 23:25:53 +03:00
Seneral 55c44966d9 Added a temporary item cache to improve router performance
Some items only used within algorithms were never cached
Because they are hard to manually clean up
But caching them does help the algorithms a lot
So this solution is the best I can think of

(cherry picked from commit d29c07a663)
2023-11-07 23:23:52 +03:00
Jeff Young 6d43ef5678 Don't specify sizes when we don't need to.
However, in some places we *do* have to because otherwise wxWidgets
will pick a minimum size for us (and it's rather large).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16039
2023-11-07 14:53:41 +00:00
Jeff Young abda3c0d33 Handle various keepout flags independently.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16037
2023-11-07 11:57:23 +00:00
Marek Roszko 23676eb988 Ensure output directory exists for drill files cli export 2023-11-06 21:11:35 -05:00
Jeff Young 5f6dab931a Save order of all-layers in Plot Dialog.
Also adds an all-layers-specific context menu which includes an item
to sort in board-stackup order.
2023-11-06 19:56:42 +00:00
Jeff Young 7788c8f21c Fix textbox mirroring and rotation (again).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15576

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14159

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14912

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14178
2023-11-06 14:03:58 +00:00
Alex Shvartzkop 6c21e0607b Use wxFileName::Mkdir instead of wxMkDir.
wxMkDir is a CRT wrapper that doesn't actually return bool.
2023-11-06 17:02:34 +03:00
Jeff Young c5520b3eef Save state of as-item-checkboxes checkbox.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13749
2023-11-05 16:22:20 +00:00
jean-pierre charras d90981d981 Pcbnew: fix Swap command that improperly rotates footprints when flipping.
Fixes #16025
https://gitlab.com/kicad/code/kicad/-/issues/16025
2023-11-05 15:09:48 +01:00
Jeff Young f83d60a48f Clean up autosave files when reverting.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15998
2023-11-05 12:20:31 +00:00
Jeff Young 1df5d9c48c Make sure to add enough wiggle room when MaxError is very large.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16024
2023-11-04 23:11:51 +00:00
Alex Shvartzkop 8752f75ef9 EasyEDA Std: COPPERAREA parsing failsafe.
Fixes KICAD-41Q
2023-11-04 13:55:29 +03:00
Jeff Young ac172b944a Don't get stuck cycling through invisible layers.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16019
2023-11-03 18:17:36 +00:00
Jeff Young bc99b42c08 ADDED: put Renumber Pads in the edit menu.
Context-menu-only is too hidden.
2023-11-03 12:36:30 +00:00
Jeff Young 141b953d12 Show selection before opening menu.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15922
2023-11-03 12:36:30 +00:00
Jeff Young 92ae0f4793 Save Footprint chooser size and location.
(We're using a FRAME to mimic a dialog, so we need some of the
DIALOG_SHIM logic inside it.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15807
2023-11-03 10:34:27 +00:00
Jeff Young 50ff5e616f Don't delete text when cancelling changes.
Also changes margins of compile button so it correctly lines up at
the top of the error window.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16002
2023-11-02 18:37:55 +00:00
Wayne Stambaugh 91b503f875 Minor dialog layout fixes. 2023-11-02 09:37:44 -04:00
Jon Evans 1b4e77d53c Fix another gcc 11 compile error 2023-11-01 20:49:08 -04:00
Jeff Young 7f8e397dfb Behave (or assert) when source or target are null or dirty. 2023-11-01 17:11:42 +00:00
Jeff Young 2ce4adc739 Check physical_clearance rules in the router.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16007
2023-11-01 14:13:16 +00:00
Jeff Young fb59f83683 Clean up references in RN_NETs when garbage collecting CN_ITEMs. 2023-11-01 13:53:30 +00:00
Jeff Young d93bb464bf When garbage collecting locally we also need to clear global references. 2023-11-01 12:47:54 +00:00
Jeff Young 67d8b13b02 And Font to properties manager for EDA_TEXT items.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16004
2023-11-01 00:39:42 +00:00
jean-pierre charras d8be69c3c1 PAGE_INFO: use double instead of int to store the page size.
For historical reasons, they are stored in mils, but using int create rounding
issues when converting to/from mils to IU in dialogs.
This is a minor but annoying issue.
Fixes #16000
https://gitlab.com/kicad/code/kicad/-/issues/16000
2023-10-31 13:47:32 +01:00
Jeff Young e7fca68384 Don't double-delete unused nets (or anything else, for that matter).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15979
2023-10-31 12:10:21 +00:00
Alex Shvartzkop 3d5721a217 Fix some warnings. 2023-10-31 04:25:19 +03:00
Alex Shvartzkop e24c8de4b8 EasyEDA Std: Fix open polygon shapes in symbols. 2023-10-31 02:21:32 +03:00
Alex Shvartzkop f48a248db4 EasyEDA Std: Handle HTML escape characters in text. 2023-10-31 02:21:32 +03:00
Jeff Young b5d904b45d Ignore VVIAs when assembling length-tuning line.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15995
2023-10-30 19:55:51 +00:00
Jeff Young 42d9bc4a98 Hook up Import Settings to tuning patterns and custom rules.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15980
2023-10-30 18:12:42 +00:00
Jeff Young 87571ed8b8 Not all font sizes, fill properties or color properties are the same. 2023-10-30 17:30:15 +00:00
Wayne Stambaugh 6183a1e4de Coverity warning fixes. 2023-10-30 09:16:24 -04:00
Alex Shvartzkop 847ab093c8 ADDED: Project chooser dialog for EasyEDA Pro import. 2023-10-30 09:35:27 +03:00
Seth Hillbrand 6d957e9d65 Don't use KiROUND when we should trunc
When calculating the viewport extents, we only need the maximum size
that can be represented.  Anything larger should be truncated.  We do
this in many other places (wx_view_controls, ruler_item,
ds_proxy_view_item, etc) and this brings pcb_selection_tool into
alignment with this, avoiding an unneeded warning message

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15529
2023-10-29 10:42:33 -07:00
Jeff Young fc0017fc95 Normalize rects higher up.
We don't want to normalize footprint children to their board-relative
coordinates.
2023-10-29 11:45:16 +00:00
jean-pierre charras acda18465c DIALOG_EXPORT_STEP: fix missing init of m_outputFileName widget at opening.
Add also a validity test for the filename.
2023-10-29 10:20:51 +01:00
Jeff Young 0747d35228 Minor formatting fixes. 2023-10-28 17:58:33 +01:00
Jeff Young a2f19ea6bb Push m_forceMarkObstaclesMode down into the DRAGGER.
The existing flag was never read anyway, and it's only the DRAGGER
that knows that the starting state is already colliding and that we
need to force mark-obstacles mode.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8641
2023-10-28 17:52:15 +01:00
Jeff Young c1f01877a8 Improve length calculation for vias.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10690
2023-10-28 13:14:21 +01:00
Jeff Young 4df5f9969a Remove unnecessarily restrictive IsCopper() checks.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/11588
2023-10-28 12:12:34 +01:00
Jeff Young 6c6a7cf862 Provide a callback for supplying file filters just-in-time.
This allows us to make them dependent on the current plugin type in
the fp lib table.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13959
2023-10-28 11:18:17 +01:00
Ian McInerney 171458a27b Introduce action friendly names
Friendly names can be used to display action information that is clearer
in non-hierarchical contexts (e.g. not in menus).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8075
2023-10-27 23:58:29 +01:00
Ian McInerney 9f21d0d719 Don't hardcode units for length/height/width in properties dialog
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15967
2023-10-27 23:58:29 +01:00
Wayne Stambaugh 6269453416 Coverity warning fixes. 2023-10-27 16:48:14 -04:00
Seth Hillbrand 8b3ac31646 Update GenCAD export to handle arbitrary outline
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15961
2023-10-27 12:46:37 -07:00
jean-pierre charras 0345e0f75c export gencad: clean and update old code. Should not really change the export.
- code refactory.
- allows export to be done from kicad-cli (kicad-cli code is not yet updated)
Need more work.
2023-10-27 20:03:12 +02:00
Wayne Stambaugh 98cae68ea5 Fix pad properties dialog control updating.
This fixes an issue (at least on GTK builds) where the hidden controls
that change when selecting a different pad type and or pad shape get
shown are not laid out correctly.
2023-10-26 13:36:32 -04:00
jean-pierre charras 93b5038382 FOOTPRINT_EDIT_FRAME: ensure the canvas type comes from the FOOTPRINT_EDITOR_SETTINGS config
Previously, although the fp editor preferences has an option to select the canvas type,
it was read from the the PCBNEW_SETTINGS config, using Kiface().KifaceSettings().
2023-10-26 17:58:33 +02:00
Jeff Young 8d3a3419f8 Honour 90-degree router mode in a few more places.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10421
2023-10-26 14:18:28 +01:00
Jeff Young f7420bc820 Separate Footprint Editor's sketch modes from PCB Editor's.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15345
2023-10-26 10:59:26 +01:00
Jeff Young 7bd6c9d623 Fix sloppy coding. 2023-10-26 10:43:21 +01:00
Jeff Young 2746626de0 Differentiate plane and signal clearances based on layer type.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15597
2023-10-25 22:24:19 +01:00
Jeff Young 38e5e27a50 Import Eagle arc tracks as arcs.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14539
2023-10-25 21:55:09 +01:00
Jeff Young 6a2aeeeae2 Import a few more rules from Altium board files.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15585
2023-10-25 16:06:40 +01:00
Jeff Young fc4bc10d27 Separate out axes definitions between ModEdit and PCBNew.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5711
2023-10-25 15:01:36 +01:00
jean-pierre charras 85210e5136 Pcbnew, export component placement: better string in menu (.gbr added).
(Was missing in my commit 5bf241a5)
2023-10-25 13:38:07 +02:00
jean-pierre charras 71475a4b56 Gerber place files: do not quote strings (fields, pad name, pad function ...)
Double quotes have no special meaning, so adding them modify the texts
2023-10-25 08:59:37 +02:00
Jeff Young fca1ad5285 Ask user if they want to delete original items after conversion.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15938
2023-10-25 00:11:08 +01:00
Jeff Young 791aa64950 Functionally it's a "reference image".
The implementation happens to be a "bitmap".

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15932
2023-10-24 15:44:21 +01:00
Alex Shvartzkop e6cf5e5e01 Don't draw PCB bitmaps on layers not visible in high-contrast mode. 2023-10-24 03:39:48 +03:00
Seth Hillbrand cb8dd9e9a2 Don't leave deleted items in group
We filter out ref/value text in copies so we need to remove them from
the copied group (if any) as well

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15930

(cherry picked from commit fb387a2c09)
2023-10-23 13:34:53 -07:00
Alex Shvartzkop c8b2e2aa07 closestDist_sq should be ECOORD_MAX initially. 2023-10-23 22:18:45 +03:00
jean-pierre charras 4ffa013467 Fix minor compil and Coverity warnings (not initialized vars) 2023-10-23 20:13:46 +02:00
Jeff Young 435e3fab8d Support text variables in STEP export filename.
Also fixes some other file browser titles to match Kicad's overall style.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15927
2023-10-23 18:01:47 +01:00
jean-pierre charras dd166ce835 Pcbnew, legacy plugin: fix a minor issue about file version number.
Some .brd files have a version number = 7, very similar to version 2.
So force version = 2 to import these files.
2023-10-23 18:43:26 +02:00
Mike Williams 91b6bb8088 Grid helpers: remove view items on destruction 2023-10-23 09:39:08 -04:00
Jeff Young bf4529c1b5 Remember last tab for Pad Properties.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15925
2023-10-23 14:13:49 +01:00
Jeff Young f4b872226b Fix wxFormBuilder switching the default tab.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15925
2023-10-23 13:44:05 +01:00
jean-pierre charras 504b3cd174 FP editor: allows FOOTPRINT field to be editable.
Although it had no meaning in FP editor, it needs to be edited in some cases,
as it is a member of a library footprint.
2023-10-23 12:53:25 +02:00
Alex Shvartzkop 97901c9ac5 Fix footprints being difficult to select in high-contrast modes.
(regression)
2023-10-23 06:09:13 +03:00
Jeff Young fb84f4592b Check vias before holes as we assume any hole is non-pushable.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15840
2023-10-22 22:46:19 +01:00
Jeff Young 7c08aa09d5 Don't generate virtual vias when editing a tuning pattern. 2023-10-22 20:35:15 +01:00
Jeff Young f1efae1e05 We don't want to do collision testing against virtual vias.
(Which means they had better not have a hole.)
2023-10-22 20:35:15 +01:00
Jeff Young ad676e22b8 Don't push a commit we don't own. 2023-10-22 20:35:14 +01:00
Jeff Young 5da35d7750 Don't modify dp-tuning when doing skew tuning.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15901
2023-10-22 20:35:14 +01:00
Jeff Young 09e92fc3fc Cap self-intersecting outline violations. 2023-10-22 20:35:14 +01:00
Jon Evans 06a4bdbf4c Upgrade BITMAP_TOGGLE and GRID_BITMAP_TOGGLE to wxBitmapBundle 2023-10-22 14:02:06 -04:00
Jon Evans 50fe585827 REMOVED: manual icon scale preference
This is now handled properly by wxWidgets on all platforms

See https://gitlab.com/kicad/code/kicad/-/issues/14119
2023-10-22 14:02:06 -04:00
Jon Evans eb5b3db063 Add bitmap bundle support to BITMAP_SCALE
Change a bunch of buttons and toolbars to use it

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14119
2023-10-22 14:02:06 -04:00
Alex Shvartzkop 08e8e13f46 performance: Cache zone fill triangulation at draw. 2023-10-22 14:21:54 +03:00
Jeff Young 24a9245f81 Hook up via size & drill constraints to editors. 2023-10-21 19:10:38 +01:00
Jeff Young df46521b25 Don't separate netclass values from custom rule values.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15912
2023-10-21 18:23:48 +01:00
Jeff Young b97d8ddef4 Make offset-zone check multi-layer aware.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15916
2023-10-21 15:08:36 +01:00
Jeff Young f18ce8c6de Fix layer handling for create similar zone. 2023-10-20 22:20:30 +01:00
Jeff Young fc22e602e2 Coverity fixes. 2023-10-20 16:38:21 +01:00
Jeff Young f5e99338a9 Generators should respond to the selection filter that controls their children.
(Tuning patterns to the track checkbox, stitching patterns to the
vias checkbox, etc.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15905
2023-10-20 16:28:05 +01:00
Jeff Young 00fb542146 nullptr safety
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15906
2023-10-20 16:28:05 +01:00
Jon Evans 32ee3bdabd Remove errant git2 link command 2023-10-20 11:26:22 -04:00
Jeff Young 1b04d8972e Missing update from last commit. 2023-10-20 14:09:21 +01:00
Seth Hillbrand d99641be40 ADDED: Git integration support
Adds support for project-based git integration, branch support, commit,
revert and updates

Fixes https://gitlab.com/kicad/code/kicad/issues/10441
2023-10-20 12:51:47 +00:00
Jeff Young 8f96009fe5 Hints and fixes for separate checking of milling cutter size and drill size.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15886
2023-10-20 12:13:09 +01:00
Jeff Young 68a5753c80 Repair Rotate on PCB_GENERATOR items. 2023-10-19 23:34:52 +01:00
Wayne Stambaugh c4a9703f81 Minor dialog layout fixes. 2023-10-19 11:59:35 -04:00
Jeff Young 134685bc32 Optical alignment for capital 'T's. 2023-10-19 15:02:38 +01:00
Jeff Young 059a95a2f2 Lock generated tracks when routing.
Otherwise they lose their group status when being replaced by the
router (even if they weren't otherwise modified).
2023-10-19 11:39:01 +01:00
Jeff Young 24ddc728e8 Add PCB_ACTIONS::regenerateAllTuning....
... and move GENERATOR_TOOL to RegenerateAllOfType().
2023-10-19 11:20:09 +01:00
Jeff Young 7447700735 Fix typo. 2023-10-19 11:20:09 +01:00
Jeff Young 16ec0faa7a Reduce line-breaking.
Also simplifies handling of generator properties dialogs.
2023-10-19 11:19:57 +01:00
Jeff Young 67f0f6e3b9 Rename class to match current terminology. 2023-10-19 01:31:13 +01:00
Jeff Young b089630b4c Simplify Import Graphics.
Removed no-longer-required differentiation between importing
footprint vs board objects.

Renamed files to match the dialog.

Made Position At and Set Layer optional checkboxes.
Removed Group Items checkbox.  (In the unlikely event that you don't
want a group, do an UnGroup after importing.)

Flattened out labelled-sizers in the dialog.

Removed importers blacklist, which hasn't been active for at least 4
years.

Fixed undo/redo bug that caused items to be no-longer-grouped after
a redo.
2023-10-19 01:31:13 +01:00
Mike Williams 70917a14e7 Route from end: fix crash and snapping bug
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13992
2023-10-18 12:32:32 -04:00
Mike Williams 5cd5194e89 SCH/PCB: warn before deleting footprint-only fields on sync
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15342
2023-10-18 11:33:17 -04:00
jean-pierre charras 599a8304a6 Pcbnew, ConnectBoardShapes(): do not add 0 size segments to outlines.
Add also our standard copyright text.
2023-10-18 11:14:43 +02:00
jean-pierre charras db9734923c DIALOG_CLEANUP_GRAPHICS: fix incorrect parameter passed to cleaner.CleanupBoard().
The fix board outlines was in fact always activated.
2023-10-18 09:40:26 +02:00
Seth Hillbrand 4ed8b14c12 Fix Mac build
Clang requires tighter forward declaration of derived enums
2023-10-17 09:26:00 -07:00
Jeff Young e793e30360 Fix typo.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15881
2023-10-17 13:34:58 +01:00
Jeff Young e5225abb62 Tuning mode is invariant.
Don't show target skew for length tuning, and don't show
target length for skew tuning.
2023-10-17 13:30:58 +01:00
Jeff Young 89011e888c More modern look & feel for tuning status popup.
(Also includes min and max info, and move string processing out
of router.)
2023-10-17 13:30:58 +01:00
Jeff Young 390bd44f18 Cleanup. 2023-10-17 13:30:58 +01:00
Jeff Young 9ed802e951 Support min/max rules in diff pair placer and skew placer. 2023-10-17 13:30:58 +01:00
Jeff Young 9c4bb464ac Improve tuning status popup colours. 2023-10-17 13:30:58 +01:00
Wayne Stambaugh f629898c8b Coding policy fixes. 2023-10-17 08:07:15 -04:00
Alex Shvartzkop be1008cbd8 ADDED: Heal Shapes; Fix discontinuities in gfx import and Cleanup dialog. 2023-10-17 10:29:43 +03:00
Marek Roszko bee6e6be01 AddMenuLanguageList should live in EDA_BASE_FRAME, its only user 2023-10-16 19:49:52 -04:00
Marek Roszko 584757f2df Move the menu helpers to ui_common instead of sitting in bitmap for some reason 2023-10-16 19:40:46 -04:00
Marek Roszko ba83e84b91 Move SaveCanvasImageToFile to EDA_DRAW_FRAME rather than leaking things to bitmaps 2023-10-16 18:33:11 -04:00
SYSUeric66 9d4e0ba439 add python api FocusOnItem 2023-10-16 22:28:47 +00:00
Wayne Stambaugh b5eee9dd7e Coverity warning fixes. 2023-10-16 17:04:14 -04:00
Jeff Young a2e35aabae Trim meander group items to just the tuning pattern. 2023-10-16 13:44:05 +01:00
Jeff Young 2c9d43474d Formatting. 2023-10-16 13:44:05 +01:00
Jeff Young 64cc8dd6aa Adjust dashed-box and edit-point locations to be outside meanders. 2023-10-16 13:44:05 +01:00
Jeff Young d51e058e24 Move diff-pair netname resolution to BOARD.
Also adds reporting of dp gap constaints and max uncoupled to track
selections, and max uncoupled during routing.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13748
2023-10-15 22:46:23 +01:00
Jeff Young 2c02c26af4 Centralize min/opt/max printing. 2023-10-15 22:46:23 +01:00
Jeff Young ccc20348bf Don't start with MEANDER_SIDE_DEFAULT.
It means we get a different default for left-to-right-drawn than we
do when going the other way.

Also fixes bug in PNS::DP_MEANDER_PLACER so that it honours side
specified in settings.
2023-10-15 17:59:11 +01:00
Jeff Young 2450250ae7 Use "tuning pattern" in the GUI. 2023-10-15 17:59:11 +01:00
Jeff Young 6baac175c5 Status bar messages for meanders. 2023-10-15 17:59:11 +01:00
Jeff Young 2b28580f0c Comments. 2023-10-15 17:59:11 +01:00
jean-pierre charras 7efd414519 Fix minor Coverity and compil warnings 2023-10-15 15:55:31 +02:00
Alex Shvartzkop fd887ba929 Altium: support importing a single footprint. 2023-10-15 06:31:00 +03:00
Alex Shvartzkop 254c8accc2 Remove some debugging messages. 2023-10-15 03:28:25 +03:00
Jeff Young d5d07e64c9 Use IsShownOnScreen(), not IsShown(), if you really want to know if its visible. 2023-10-14 23:51:37 +01:00
Alex Shvartzkop a16bdb7288 ADDED: Support EAGLE libraries directly in Symbol Library Table.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2214
2023-10-15 01:45:39 +03:00
Alex Shvartzkop 9ed19192de Improve editing values with {return} in text fields; Add hyperlink detection. 2023-10-15 01:45:39 +03:00
Jeff Young 14d5a404b2 Don't leave deleted items in a group.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15797
2023-10-14 18:23:51 +01:00
Jeff Young 504652b972 Regularize RunOnChildren() at the BOARD_ITEM level.
BOARD_ITEM sub-classes which don't have children simply don't
overrid it.
2023-10-14 15:04:18 +01:00
Jeff Young 8028ea893f Reduce public API of PCB_GENERATOR_MEANDERS.
It doesn't make a huge difference because the class is declared in
the .cpp file, but it still makes it easier to understand what is
conceptually public and what is not.
2023-10-14 15:04:18 +01:00
Jeff Young 5f5113c80a Pick up current rule values when editing meanders. 2023-10-14 15:04:18 +01:00
Alex Shvartzkop 61bdee027b Fix a crash when using length tuning tools.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15874
2023-10-14 16:53:28 +03:00
Alex Shvartzkop f7ed9cc5c7 Fix loading thru-hole pads when drill token is missing. 2023-10-14 15:42:13 +03:00
Alex Shvartzkop 83af481688 Improve EAGLE file header detection. 2023-10-14 15:42:13 +03:00
jean-pierre charras 805f1dfbc5 Pcbnew: when adding layers, do not change via layers.
Via layers are not defined by a LSET, and the code that used the new LSET
broke the Via start and/or end layers (for blind/buried vias)
Fixes #15856
https://gitlab.com/kicad/code/kicad/-/issues/15856
2023-10-14 08:48:22 +02:00
Jeff Young 0a111e9fbb Hook up layer-toggle command to router.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15812
2023-10-13 21:33:27 +01:00
Jeff Young 2bc273f8bc Don't fire event-parameter asserts when looking for a click event.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/KICAD-2CK
2023-10-13 20:31:01 +01:00
Jeff Young 8d3047d6eb Clear selection before deleting board layers.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15866
2023-10-13 18:20:33 +01:00
Jeff Young a69869f72a Simplify undo/redo for pad edit mode.
Also simplifies high-contrast-mode handling to fix a bug when exiting
pad edit mode via an undo.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15845
2023-10-13 13:59:31 +01:00
Jeff Young 62d959ed0e Don't assume an error location for PAD::GetEffectivePolygon().
While ERROR_INSIDE was good for plotting, 3D generation, etc., it's
not good for generating router hulls.

Also reverts part of the change to always use polygons for PNS::SOLIDs.  A single shape in a SHAPE_COMPOUND will be faster (and
more accurate).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14898
2023-10-13 13:59:26 +01:00
jean-pierre charras 38c7fa6db9 Pcbnew: do not display the outlines of a very special zone used by DRC
to show layer mask bridges created by DRC to show these bridges.
This is not a real ZONE, just a container to displays these filled areas.
2023-10-13 14:25:49 +02:00
jean-pierre charras 57efde1bbb Pcbnew: rename ZONE* m_SolderMask to m_SolderMaskBridges
(It is a container to build bridges on solder mask layers by DRC, not real zone)
Disable also this special zone selection by adding it in
PCB_SELECTION_TOOL::itemPassesFilter
2023-10-13 09:57:21 +02:00
Jon Evans 96f9f2c658 PNS: Allow for approximation error in hull clearance
Also revert to using exact hulls for non-compound shapes

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14898
2023-10-12 22:55:34 -04:00
Jon Evans 660c407095 ADDED: Control of multi-layer plot order from plot dialog
Enabled by 0b136ae0
2023-10-12 21:52:37 -04:00
Thomas Pointhuber 7cb198e021 fix SEGV in pcb_generator_meanders 2023-10-12 21:47:34 +02:00
jean-pierre charras 79a45c4803 TestBoardOutlinesGraphicItems(): handle small arcs. 2023-10-12 19:59:11 +02:00
Jeff Young af020f4f9a Fixes for diff-pair meander rectangle & edit points. 2023-10-12 17:54:34 +01:00
Jeff Young 78ee6f2e42 Fix a couple of undo bugs.
The first caused items coming back from undo to be hidden.

The second caused them to be ungrouped from the parent meander.
2023-10-12 17:54:34 +01:00
Jeff Young cdc9c2e409 Fix undo bug where items come back hidden. 2023-10-12 17:54:34 +01:00
Jeff Young 16d904d47e Add support for diff-pair meanders. 2023-10-12 17:54:34 +01:00
Jeff Young d4b8b550f3 Go back to using VIEW::Hide() instead of ForcedTransparency().
(The issue was that the selection VIEW_GROUP drawing ignores the
HIDDEN flag so we need to make sure the PCB_GENERATOR_MEANDERS isn't
in the selection VIEW_GROUP while we're editing it.)
2023-10-12 17:54:34 +01:00
Jeff Young 1b676985f6 Retire length tuning tool in favour of first-class meanders. 2023-10-12 17:54:34 +01:00
Jeff Young 1ca477aeee Unroll from PICKER_TOOL so we can handle amplitude/spacing events.
Also fixes a bug where we didn't clear the router on an <ESC>.
2023-10-12 17:54:34 +01:00
Jeff Young d6c2ad7503 Unroll from PICKER_TOOL so we can handle amplitude/spacing events.
Also fixes a bug where we didn't clear the router on an <ESC>.
2023-10-12 17:54:34 +01:00
Jeff Young 1aeccc5895 Unroll from PICKER_TOOL so we can handle amplitude/spacing events. 2023-10-12 17:54:34 +01:00
Jeff Young a57c9967f3 Draw meander borders while placing. 2023-10-12 17:54:34 +01:00
Jeff Young 4da3e0ff93 Make meander dashed-line borders constant size. 2023-10-12 17:54:34 +01:00
Jeff Young d04641c868 ADDED: support for editing target length in Meander Properties dialog.
Also supports overriding the custom rules.
2023-10-12 17:54:34 +01:00
Wayne Stambaugh e3c491424b Coding policy, Doxygen comment, and spelling fixes. 2023-10-12 12:27:30 -04:00
jean-pierre charras a7d540ce94 TestBoardOutlinesGraphicItems(): add missing case.
DRC_TEST_PROVIDER_MISC::testOutline(): use a smaller size to dectedt small items.
2023-10-12 15:53:21 +02:00
jean-pierre charras 499f3ca95b DRC_TEST_PROVIDER_MISC::testOutline(): add test to detect questionable items.
Graphic items (segments, rects, circles) on Edge.Cuts can create issues when
building board outlines, when they are very small (a few nm in size), because
they are not easily handled when trying to search connected graphics.
Also protect RC_ITEM::SetItems() against null pointer.
Fixes #15865
https://gitlab.com/kicad/code/kicad/-/issues/15865
2023-10-12 14:48:24 +02:00
Alex Shvartzkop 0ea85ec9f5 Restore fill polygons on proper layers when flipping zones. 2023-10-12 02:21:47 +03:00
Jon Evans 0b136ae0df CLI: Allow controlling layer order for multilayer plots 2023-10-11 00:18:58 +00:00
Jeff Young d8f35633d4 Modify interactive delete tool to respect groups & selection filter. 2023-10-10 16:04:54 +01:00
Jeff Young 8c017be24a Clearer naming. 2023-10-10 15:43:45 +01:00
Jeff Young 0683313ecb Fix ghosted image while moving meander.
Also cleans up some undo description strings.  (They go in the menu
so they should be title-caps.)
2023-10-10 15:24:58 +01:00
Jeff Young d3b50f0607 Cleanup (no functional changes). 2023-10-10 13:42:42 +01:00
Jeff Young 04e23bf5e3 Fix build. 2023-10-10 12:58:12 +01:00
Jeff Young d916e650f1 Tuning status popup for point editor. 2023-10-10 11:55:57 +01:00
Jeff Young bb74445dda Code clarity. 2023-10-10 11:14:47 +01:00
Jeff Young 4226839586 Switch to diff-pair mode if startItem is a diff-pair member. 2023-10-10 11:08:53 +01:00
Jeff Young 099e5dd9e7 More undo bugs. 2023-10-09 22:32:32 +01:00
Jeff Young 994f9f8823 Cleanup & compiler warnings. 2023-10-09 22:32:32 +01:00
Jeff Young 642938455e Add status popup for meander placer. 2023-10-09 22:32:32 +01:00
Jeff Young 1afa6ddbd5 Rename getLineBetweenPoints() to getLine().
While it uses the first point to find the line, it in fact returns
the entire connection, not just the part between the two points.
2023-10-09 22:32:32 +01:00
Jeff Young 44e0821e13 Fix some issues with undo.
Also fixes the baseline being visible while placing the meander.
2023-10-09 22:32:32 +01:00
Jeff Young d10b0b053e Move meander placer picker tool from item highlighting to net highlighting. 2023-10-09 22:32:32 +01:00
Jeff Young b662ff4956 Improve graphical feedback while placing a meander. 2023-10-09 15:22:41 +01:00
Jeff Young 60a2439a53 Better spacing in the meander properties dialog. 2023-10-09 15:22:41 +01:00
Jeff Young 35d8635a6b Default skew tuning lenght to diff between N/P, but allow override. 2023-10-09 15:22:41 +01:00
Alex Shvartzkop 21adc0aac5 ADDED: Import vector graphics into Schematic editor (SVG, DXF). 2023-10-09 07:04:50 +03:00
Alex Shvartzkop 60d069757a ADDED: Import vector graphics into Symbol editor (SVG, DXF). 2023-10-09 07:04:50 +03:00
Alex Shvartzkop f4f8523c59 Rename pcbnew DIALOG_IMPORT_GFX -> DIALOG_IMPORT_GFX_PCB 2023-10-09 07:04:50 +03:00
jean-pierre charras c9d6e79d2d Fix minor compil warnings. 2023-10-08 15:04:45 +02:00
Alex Shvartzkop b77df1eea4 Use advanced_config key EnableGenerators to enable menu entries for generators. 2023-10-08 02:41:17 +00:00
Alex Shvartzkop f11339f1f5 Add actions for generators to Tools menu. 2023-10-08 02:41:17 +00:00
Alex Shvartzkop af3bd15469 Avoid crash when length tuning+closing window. 2023-10-08 02:41:17 +00:00
Alex Shvartzkop 08e0d8d98a ADDED: Manager dialog for generative objects. 2023-10-08 02:41:17 +00:00
Alex Shvartzkop a4832dd3c8 ADDED: Interactive meander objects for length tuning. 2023-10-08 02:41:17 +00:00
Alex Shvartzkop 455268f45e Allow to specify meander initial side via meander settings. 2023-10-08 02:41:17 +00:00
Alex Shvartzkop ce8849f8bc Skip move in meander placers if points match. 2023-10-08 02:41:17 +00:00
Alex Shvartzkop 8b21a260c9 Refactor MEANDER_PLACER_BASE::cutTunedLine to SHAPE_LINE_CHAIN::Split. 2023-10-08 02:41:17 +00:00
Alex Shvartzkop 6cfb05b4a3 Save/load generative objects in PCB file. 2023-10-08 02:41:17 +00:00
Alex Shvartzkop 7b645aa541 Introduce GENERATORS_MGR. 2023-10-08 02:41:17 +00:00
Alex Shvartzkop 546c7ed218 Introduce GENERATOR_TOOL. 2023-10-08 02:41:17 +00:00
Alex Shvartzkop be72e07e61 Introduce PCB_GENERATOR. 2023-10-08 02:41:17 +00:00
Alex Shvartzkop 0fcb36bc2e Add reselectItem action. 2023-10-08 02:41:17 +00:00
Jeff Young b4986030da Include solder mask in STEP export stackup height.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15632
2023-10-07 10:28:38 +01:00
Alex Shvartzkop 36853b0df4 Allow translation of "Open cancelled by user." in pcb_parser.cpp 2023-10-07 09:09:30 +03:00
Alex Shvartzkop 280fe976c4 Add a re-entrancy guard to PCB_POINT_EDITOR. 2023-10-07 03:51:52 +03:00
Alex Shvartzkop 74075fe4d6 Fix target skew not working properly in meander skew placer. 2023-10-07 03:51:26 +03:00
Alex Shvartzkop e4e769493c Skip very short segments in MEANDER_SHAPE::forward. 2023-10-07 03:51:18 +03:00
Jeff Young da5f5536c8 Honour custom layer names for Layer_Top and Layer_Bottom.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15835
2023-10-06 21:55:57 +01:00
Jeff Young 3f0067cbaa Adjust colours in appropriate direction depending on background.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15841
2023-10-06 21:27:02 +01:00
Jeff Young 83d896951a Apply epsilon more uniformly to footprint checks.
Rotation can cause round-off errors even in ints.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15838
2023-10-06 21:04:23 +01:00
Jeff Young 420cadab34 Separate meander settings from target length/skew.
Settings move to Board Setup, while target length is sourced from
the custom rules (or a text-entry dialog if no rules are active for
the track).

Target skew is sourced from the coupled-trace-length minus the
trace-to-be-tuned length.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12075

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15826
2023-10-06 19:46:55 +01:00
Jeff Young b9e1908ffe Try to find a happier medium for text entry box widths.
Most dialogs have units outside the text entry, and the likelihood
of 14 significant digits & units is low enough to allow scrolling
in that case.
2023-10-06 19:46:55 +01:00
Alex Shvartzkop d7863b09c5 Move CORNER_STRATEGY out of SHAPE_POLY_SET. 2023-10-06 15:42:50 +03:00
Alex Shvartzkop bf29b25190 EAGLE PCB: fix a regression causing polygons not being imported.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15829
2023-10-06 01:13:58 +03:00
Ian McInerney 0876fb0985 Re-implement direct layer switching in the router tool
Also add a new framework to allow grouping actions that are similar into
a single context that can then be used for mass comparisons.
2023-10-05 13:34:25 +01:00
Jeff Young 31c488bc23 NETINFO_ITEMs are owned by BOARD.
Lifecylce management must go through BOARD_COMMIT (or at least
the frame's undo/redo lists).
2023-10-04 21:01:33 +01:00
Mike Williams c2d7b26ebd PCBNew: don't grab the wrong parameter type when placing vias 2023-10-04 12:17:15 -04:00
Hasan Jaafar c45ebfcccd Add hot key column on layer select dialog 2023-10-04 12:17:15 -04:00
jean-pierre charras 37df47a3e7 genDrillMapFile: reduce the pen width used to plot oval shapes (better look) 2023-10-04 15:47:47 +02:00
Jeff Young 9f5e583ced Readability. 2023-10-03 17:14:03 +01:00
Jeff Young 9b60e99660 Use wxSTAY_ON_TOP instead of wxFRAME_FLOAT_ON_PARENT for choosers.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15808
2023-10-03 14:49:50 +01:00
Jeff Young a3d83cdb6d Pass symbol netlist from Field Properties dialog.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15806
2023-10-02 23:41:06 +01:00
Jeff Young 987e382f96 Add missing member variable initialization. 2023-10-02 22:18:31 +01:00
Jeff Young e242f54816 Fix crash trying to create a new board. 2023-10-02 22:12:07 +01:00
Jeff Young 8760bd8c80 Reconcile "apply defaults to new footprints" with DRC lib checks.
Moves apply defaults settings to Board Setup (where they were
duplicated anyway due to an earlier botched merge).

Modifies the apply-to-graphics algorithm to skip copper shapes.

Modifies DRC library check to skip STROKE_PARAMS for non-copper
shapes.
2023-10-02 22:10:13 +01:00
Jeff Young 2d3a8ee4c9 Readability and comments. 2023-10-02 20:56:16 +01:00
Jeff Young 9d678e96cd Improve spacing. 2023-10-02 16:33:26 +01:00
Jeff Young 06446bb80e Only expand lib tree when filtering. 2023-10-02 16:24:53 +01:00
Mike Williams 7c8e74c156 Fields: fix redundant update messages
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15801
2023-10-02 11:02:10 -04:00
Marek Roszko 6d3b846eb5 Add more missing destructor event cleanups 2023-10-02 07:22:00 -04:00
Jeff Young eaa3ee43e9 Tighten terminology consistency in clearance & constraint reports.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15800
2023-10-02 11:12:18 +01:00
Jeff Young 609dedda3c Insert lazily-created-rows at right position in grid sizer.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15652
2023-10-02 11:12:18 +01:00
Jeff Young cf02bb171f Expose exclusion flags in search pane.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15776
2023-10-01 22:46:34 +01:00
Jeff Young 904bdc3c66 Use netclass values when reaching netclass entry.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15774
2023-10-01 21:01:46 +01:00
Jeff Young 9214e47367 Only allow switching to enabled layers.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15779
2023-10-01 15:27:55 +01:00
Marek Roszko bfbba632df Guard GetModificationTime with IsValid otherwise it'll return based on INT64_MIN.
Fixes KICAD-3Z0
2023-10-01 09:43:09 -04:00
Marek Roszko f1c5581802 Don't continue with a null board in board import
Some plugin is failing and returning a null-board when the usual convention was exceptions

Fixes KICAD-3ZJ
2023-10-01 09:38:44 -04:00
Alex Shvartzkop 25cca5adfe EasyEDA Std: fix polygon pad orientation. 2023-10-01 16:21:26 +03:00
Alex Shvartzkop 9cca8e5970 EasyEDA Std: assign nets to PCB circles and rects. 2023-10-01 16:21:17 +03:00
Thomas Pointhuber 7005dd7c48 altium: make special string parsing on pcb a bit more generic
Only special strings starting with a dot are supported. Parsing of concatenated special strings using quotes needs to be implemented, but at least a few test-cases are already there now.
2023-10-01 15:10:50 +02:00
Thomas Pointhuber 3b3e4fd34a Move duplicated code of plugin.cpp and sch_plugin.cpp into a new plugin_utils located in commons 2023-10-01 13:58:38 +02:00
jean-pierre charras 629081af65 fix FOOTPRINT::GetLikelyAttribute() to follow the comments of
FOOTPRINT::CheckFootprintAttributes(): at least one through hole pad
means most probably a footprint through hole attribute.
2023-10-01 11:21:11 +02:00
John Beard 311f041421 ADDED: Polygon boolean operations in PCB editor
This allows common operations like merging a pin courtyard
into the body courtyard in the fooprint editor, taking a
"bite" out of a polygon and so on,

For now, this only supports polygons made of straight lines.

There are some wierd cases when the operations result in nothing
(e.g. wen a big polygon is substracted from a smaller one that
it contains entirely). I have tried to do something senisble in
these cases, but there may be more optimal ways to handle it.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/13025
2023-10-01 00:10:10 +01:00
John Beard b6cd7e3b4a Make ITEM_MODIFICATION_ROUTINE status messages more general and easier to call 2023-10-01 00:10:10 +01:00
Jeff Young b18fd12694 Improve clarity. 2023-09-30 23:59:25 +01:00
Jeff Young efd004b042 Fix typo. 2023-09-30 23:37:36 +01:00
Marek Roszko 02bbfc8f57 Fixes EDIT_TOOL::Move parameter assert
SENTRY KICAD-2CK
2023-09-30 16:00:15 -04:00
Marek Roszko 2bb811555b Guess at fixing the InlineDrag action missing param
Fixes KICAD-41T
2023-09-30 15:53:35 -04:00
Jeff Young 9805aca5a0 Handle backslash-escaped quotes in libeval.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15786
2023-09-30 17:38:44 +01:00
jean-pierre charras 7bc2d69ab7 Fix a typo and a Coverity warning 2023-09-30 18:17:09 +02:00
Jeff Young 31e30a5f56 Fix typo in arguments list to EvalRules().
Also fixes a bug where we weren't clearing the previous tabs from
the notebook.
2023-09-30 13:14:27 +01:00
Marek Roszko a347aa7647 StartPlot can fail and leave a broken file handle
Related https://gitlab.com/kicad/code/kicad/-/issues/15782
2023-09-29 19:52:21 -04:00
Jeff Young e1c51ed192 A few performance improvements from profiling.
Most of them are very small; the removal of the Fracture() in
DRC_TEST_PROVIDER_COPPER_CLEARANCE::testZonesToZones() is the only
significant one.
2023-09-29 21:54:59 +01:00
Jeff Young fa11e9138d ADDED support for pin and fp filtering in FOOTPRINT_CHOOSER.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7176
2023-09-29 17:03:50 +01:00
Marek Roszko 98685b37ff Don't search when board is null (during board changes) 2023-09-29 07:08:56 -04:00
Alex Shvartzkop 3b28ba83c6 EasyEDA Pro: don't fail on attributes for dimensions. 2023-09-29 12:17:30 +03:00
Alex Shvartzkop e34d95bb45 EasyEDA Pro: deduplicate footprint 3D model fields. 2023-09-29 12:16:44 +03:00
Jeff Young b592a6634e Cleanup. 2023-09-29 00:13:13 +01:00
Jeff Young 974da4ea7c Push most of DIALOG_CHOOSE_SYMBOL down into PANEL_SYMBOL_CHOOSER.
Includes a dialog wrapper (DIALOG_SYMBOL_CHOOSER) and a frame
wrapper (SYMBOL_CHOOSER_FRAME).
2023-09-29 00:13:12 +01:00
Jeff Young 23033451b1 Cleanup. 2023-09-29 00:13:12 +01:00
Jon Evans 077159ac13 Plotting: use theme color for worksheets 2023-09-28 16:58:02 -04:00
Marek Roszko 6b12a12b3e On second thought rename PROJECT_PCBNEW to PROJECT_PCB 2023-09-27 23:15:54 -04:00
Seth Hillbrand c772d116b2 Ensure that layer names are unique when importing
Altium allows duplicate layer names but KiCad prefers to have unique
names for each layer.  This enforces a unique name for each layer when
importing

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15583
2023-09-27 18:05:21 -07:00
Marek Roszko 7e8b18035f Eliminate the conditional pcbnew/cvpcb definition of PROJECT 2023-09-27 20:53:46 -04:00
Jeff Young 1047130046 Push most of footprint chooser into PANEL_FOOTPRINT_CHOOSER.
Create 2 wrappers for it: DIALOG_FOOTPRINT_CHOOSER and
FOOTPRINT_CHOOSER_FRAME.  The first now gets called from wxGrid
editors, text button editors (such as Change Footprints), etc.

Retire FOOTPRINT_VIEWER_FRAME_MODAL.  FOOTPRINT_VIEWER_FRAME still
exists, but has very few uses at this point.
2023-09-27 16:02:13 +01:00
jean-pierre charras 4e77c9089e Fix typos 2023-09-27 17:01:21 +02:00
Zhuang Jiezhi 618c2be380 Pcbnew: Adding net pop-up menu for placing via
ADDED: Add feature showing a pop-up menu of possible nets when it's ambiguous in Pcbnew

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15003
2023-09-26 19:42:55 +00:00
Jeff Young 54171ec030 Add action for switching to Project Manager.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15740
2023-09-26 17:25:57 +01:00
Marek Roszko 37e8a008ab Remove obsolete config_params.h includes 2023-09-25 20:40:29 -04:00
Jeff Young be532e96d6 Fix errors in calculating tuning length.
Fix mismatched parameter passing in TOPOLOGY::followTrivialPath()
and TOPOLOGY::AssembleTrivialPath().
Fix logic error in PNS::JOINT::IsLineCorner().
Handle VVIAs in PNS::JOINT::IsNonFanoutVia().

Fixes https://gitlab.com/kicad/code/kicad/-/issues/10614
2023-09-25 15:50:44 +00:00
jean-pierre charras 58d52df97c Fix missing header on wxMSW 2023-09-25 15:19:27 +02:00
Jeff Young bf493f32f5 Nullptr safety for various panels.
Also moves preference saving out to parent as different parents
save different settings.
2023-09-25 12:35:54 +01:00
Jeff Young 7835b8ddc7 Bring various appearance managers into line over preset editing.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15726
2023-09-25 12:35:54 +01:00
Seth Hillbrand 91450c22cc Allow disambiguation menu configurability
Adds an advanced config flag to all testing different values for
different users.

Related to https://gitlab.com/kicad/code/kicad/-/issues/15128
2023-09-24 16:33:05 -07:00
Jeff Young 63558d4b09 Don't double-code the format of unconnected netnames.
It's owned by SCH_PIN::GetDefaultNetName().

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15723
2023-09-24 22:54:10 +01:00
Jeff Young e962615407 Use original event position if it's available.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15623
2023-09-24 19:01:53 +01:00
Jeff Young aef0f44b8e Smarten up double-click handing in PCBNew drawing tool.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15700
2023-09-24 18:49:41 +01:00
Jeff Young c2c71facb1 Tidy up shutdown of APPEARANCE_CONTROLS.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15024
2023-09-24 18:27:06 +01:00
Jeff Young d428b0e20e Improve SameLogicalPadAs() shorting nets test.
This is required to support 4cd26ab6bc.
2023-09-24 16:19:26 +01:00
Marek Roszko f8e33be07f Break out the boundary violating parts of gal into common through subclassing 2023-09-23 09:37:47 -04:00
jean-pierre charras e7233a8dc6 DIALOG_CREATE_ARRAY, minor changes: better look, and added a few tool tips. 2023-09-23 10:08:37 +02:00
Seth Hillbrand 4cd26ab6bc Ensure NC nets are not connected in board
Even when a pin connects to multiple pads, placing an NC indicator on
the pin type or the connected net means that all pads for that pin
should be independent and not ratsnest with each other

We accomplish this by assigning a unique id "unconnected-(REFDES-PAD#_#)" to each
pad with the pintype "no_connect".  The pad numbers and uniquely
incremented per footprint based on UUID ordering

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15692
2023-09-21 21:36:19 +00:00
Jeff Young 9e2fc9b07c Footprint item positions are relative.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15477
2023-09-21 14:28:25 +01:00
jean-pierre charras e152f97f35 Fix minor Coverity warnings. Small code cleaning in pcb_parser.cpp 2023-09-21 11:33:29 +02:00
Seth Hillbrand f4afd7e363 Thread testTrackClearances
We are frequently testing thousands of track segments.  They can each be
uniquely tested in parallel with reporting and marking guarded by
mutexes.  This speeds up the DRC tests substantially

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15466
2023-09-20 19:51:33 -07:00
Seth Hillbrand 88cbbbcdae Add error message when we cannot form a polygon
Explains to the user why the polygon creation failed

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15704
2023-09-20 13:42:31 -07:00
Jon Evans d781d70a09 PNS fix dragging a single footprint
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15693
2023-09-20 11:53:43 -04:00
Jon Evans d371bb06ae New macOS installation scripts
Replaces BundleUtilities that got broken by recent updates
and is basically unmaintained by cmake.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15376
2023-09-19 17:23:30 -04:00
Jeff Young 58889f8120 Improve shape properties dialog layout.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15683
2023-09-19 17:04:05 +01:00
jean-pierre charras 0a26ab1cae PANEL_SETUP_BOARD_STACKUP: save the m_HasDielectricConstrains BOARD_STACKUP member.
This member was not saved in the board stackup data.
Fixes #15690
https://gitlab.com/kicad/code/kicad/-/issues/15690
2023-09-19 17:47:29 +02:00
jean-pierre charras e24c6d04ff DIALOG_CREATE_ARRAY: enhancement to commit f775637d: ensure last selection
(Set center by radius / Set center by position) has the right widgets enabled
when reopen the dialog.
2023-09-19 16:22:38 +02:00
Josue Huaroto f775637da8 Add Radius and Angle parameters to set center in Circular Array 2023-09-19 14:02:17 +00:00
Jon Evans 5a9c028e85 PNS: Allow dragging more than one footprint
Fixes https://gitlab.com/kicad/code/kicad/-/issues/11312
2023-09-18 22:37:11 -04:00
Marek Roszko 22b733209d Fail GAL on its header leaking audit
Maybe we should rethink directly accessing GAL so much, but at least 600 files didn't need GAL leaked into them due to view_overlay.h
2023-09-18 19:52:27 -04:00
Alex Shvartzkop 1decd31baf Vertically center wxGrid cells by default. 2023-09-18 17:15:34 +03:00
Jeff Young 469a94db8c Fix mirroring of TextBox.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15576
2023-09-18 14:49:38 +01:00
Alex Shvartzkop 06463fd35a Fixes for Wayland cursor warping:
- Emulate the mouse position, since no motion events are sent after warp
- Do not call wl_surface_commit to prevent an assert
- Re-organize code a bit
2023-09-18 12:56:54 +00:00
jean-pierre charras b59910a749 catch exception thrown by LIB_TABLE::FindRow().
Previously, was not handled, and crashes Pcbnew.
2023-09-18 14:30:47 +02:00
Jeff Young ec97ac189c Fix typos in FOOTPRINT_EDIT_FRAME::SaveFootprintAs().
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15678
2023-09-18 13:12:13 +01:00
Jeff Young ef92429ac2 Implement changed notifiers for textvar, netclasses and severities.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15440
2023-09-17 17:35:15 +01:00
Jeff Young c80eb44900 Disentangle IBIS model controls from built-in model controls.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13855
2023-09-17 12:42:06 +01:00
Jon Evans 467c672bcd Fix all-layer snapping for footprint editor
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15538
2023-09-16 22:55:40 -04:00
Jeff Young 9114578004 Improve custom rules syntax help (based on info in docs).
Also turns on table processing in ConvertMarkdown2Html().

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15609
2023-09-16 14:41:43 +01:00
Jeff Young ed292e180d Don't assert on 0-width tracks. Just don't inherit from them.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14558
2023-09-15 19:09:58 +01:00
Jeff Young 408f505b75 Formatting. 2023-09-15 19:09:58 +01:00
Jeff Young 68111a1682 Handle redraws from any tent-vias changes in plot settings.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15254
2023-09-15 18:32:33 +01:00
Jeff Young 5842e9c57e Smarten the UpdateAllItemsConditionally() tests in SetActiveLayer().
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15329
2023-09-15 17:44:43 +01:00
Jeff Young 28e16fbdb9 Don't do layer trimming when importing Altium footprint libraries.
It's unclear (to me) what the long-term solution should be here --
Kicad can't currently show any FP layers other than F.Cu, B.Cu, and
In1.Cu -- but that might change.
2023-09-15 14:54:05 +01:00
Jeff Young c7f69503c0 Do full high-contrast update of vias & pads if netnames are shown.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15657
2023-09-15 14:54:05 +01:00
jean-pierre charras 581cc0de5c Pcbnew, apparence control: add missing control of layer footprint confict
the selection of color and visibility of LAYER_CONFLICTS_SHADOW was missing.
2023-09-15 10:31:25 +02:00
Marek Roszko cb7d7b09e3 config_params doesnt need color4d 2023-09-14 19:21:55 -04:00
Jeff Young 962f79334f Don't import Altium objects to disabled layers.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15586
2023-09-14 17:17:07 +01:00
Alex Shvartzkop ff49d5ada9 Fix ambiguous overloads on wx 3.3 2023-09-14 19:05:46 +03:00
Jeff Young cc0facdd4e ADDED: Convert Pad to Polygon 2023-09-14 16:36:37 +01:00
jean-pierre charras a7b1448ccd Fix a compil warning.
Fix also an incorrect comment.
2023-09-14 15:19:46 +02:00
Jeff Young c7e865e4a2 Safety for negative pen widths. 2023-09-14 13:39:35 +01:00
jean-pierre charras 51456d973b Better detection of degenerated PCB_ARC. 2023-09-14 11:40:20 +02:00
jean-pierre charras 931401b5be Fix a compil issue (missing header) and a minor compil warning 2023-09-14 08:44:09 +02:00
Jeff Young e492efe3c5 Finish up custom-shaped pad spoke templates.
Also fixes a bug in number box for rotated pads.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13962
2023-09-13 23:34:25 +01:00
Jeff Young d6b75c64e1 ADDED: custom-shaped pad spoke templates. 2023-09-13 23:34:25 +01:00
Jeff Young 31c88d1bcb Don't show cursor or grid axes in pad preview; do show the pad anchor axes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15631
2023-09-13 23:34:25 +01:00
jean-pierre charras 2c10d5e3a0 Pcbnew: fix some issues with very small arcs (size a few internal units)
these very small arcs do not allow to calculate a reliable center position,
and therefore a reliable radius.
So seeing them as a very small segment fix plotting/drawing issues.
Fixes #15639
https://gitlab.com/kicad/code/kicad/-/issues/15639
2023-09-13 17:54:57 +02:00
Jeff Young 375a4af478 Don't throw the number box baby out with the bathwater.... 2023-09-12 23:49:08 +01:00
Josue Huaroto 2d54bc42cb Save flip board status in custom preset 2023-09-12 17:10:41 +00:00
Tomasz Wlostowski a7ae4d8e9a router: orphaned net is not the same as null net handle 2023-09-12 16:03:55 +02:00
Jeff Young 93f004ff65 Formatting, and a fix for a shadowed variable. 2023-09-12 13:45:28 +01:00
jean-pierre charras 7bc0e138fb DIALOG_NET_INSPECTOR: add a close button to allow closing the dlg by ESC.
Fixes #15624
https://gitlab.com/kicad/code/kicad/-/issues/15624
2023-09-12 09:28:17 +02:00
Jeff Young 3fcbde00c9 Clean up dead code. 2023-09-11 22:05:24 +01:00
Jeff Young 9f5a268f15 Don't go through a middle man when reading pad shape primitives.
They're both PCB_SHAPEs.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15073
2023-09-11 22:05:24 +01:00
Jeff Young 0315adc646 Dim other SMD pads when in Pad Edit Mode. 2023-09-11 22:05:24 +01:00
Jeff Young 84a9f6f665 Set padEntered when entering pad edit mode with a non-custom shaped pad. 2023-09-11 22:05:24 +01:00
Jeff Young 899fe8be17 Fix change footprints dialog to use correct selection state. 2023-09-11 22:05:20 +01:00
jean-pierre charras c66d4bab9c SEXPR_BOARD_FILE_VERSION: fix a typo in commit 0e382669: the date is incorrect.
was set to 20230606 instead of 20230906. it creates some issues when reading
files having a 20230606 as file version.
Fixes #15617
https://gitlab.com/kicad/code/kicad/-/issues/15617
2023-09-11 10:40:07 +02:00
Alex Shvartzkop 7eb4b0710d Fix reading/writing thermal spoke angles for custom pads.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15518

7.0 commit: 86ec36d183
2023-09-10 19:02:16 +03:00
jean-pierre charras 45e83541cd Try to make DIALOG_CREATE_ARRAY more understandable for circular arrays.
Added toop-tips and info texts.
No actual code change.
2023-09-09 11:06:36 +02:00
jean-pierre charras f2f572c370 drc_test_provider_text_dims.cpp: ensure glyphs to test are OUTLINE_GLYPH.
For non Kicad font texts with a overbar, the overbar is not a OUTLINE_GLYPH.
Fixes #15604
https://gitlab.com/kicad/code/kicad/-/issues/15604
2023-09-09 10:28:28 +02:00
Marek Roszko 11de95778b Unwrap the FROM_UTF8 macro in favor of direct function
The extern just gets annoying to try to export the func later. We also yeet TO_UTF8 to string_utils.h for parity.
2023-09-09 00:10:57 -04:00
Marek Roszko bd3aca2887 Cleanup the kiface dll export declaration slightly
Why in the bloody world would you pass in the return type as part of the macro for export/import preprocessing
2023-09-08 20:44:08 -04:00
Marek Roszko 3bbf3a61b5 Remove PNS APIEXPORT that never made sense
It can't work because all base classes must be APIEXPORTed
2023-09-08 18:44:46 -04:00
Marek Roszko ab1a6651a9 send multivector.h and sync_queue.h to core 2023-09-08 07:14:34 -04:00
Marek Roszko 5da88d1d0e Move UTF8 to core 2023-09-07 20:55:16 -04:00
jean-pierre charras 8aa408f0c9 fix a minor compil warning
fix a typo in translatable string.
2023-09-07 20:00:29 +02:00
Jeff Young d3e255a383 Allow context-menu update/change footprint for multiple footprints.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15595
2023-09-07 17:51:18 +01:00
Marek Roszko 7505fd0f37 Profile can live in core 2023-09-07 07:47:01 -04:00
jean-pierre charras 3e6f7ab3e5 Fix compil issues (especially easyeda_parser_base.xx) and compil warnings
Compil issues can be gcc13/msys2 specific.
2023-09-07 13:41:25 +02:00
Alex Shvartzkop 21ee65aa9c ADDED: Importers for EasyEDA (JLCEDA) Standard / Professional. 2023-09-07 11:02:40 +03:00
Alex Shvartzkop 892761920a FOOTPRINT::AutoPositionFields: reset justification and angle as well. 2023-09-07 10:57:02 +03:00
Alex Shvartzkop f211b2cdd0 Remove unused method from router_tool.h 2023-09-07 10:57:02 +03:00
Alex Shvartzkop 1b8abdfde7 ADDED: Basic STEP manipulation utils available to Python. 2023-09-07 10:57:02 +03:00
Marek Roszko 67b031adab Painter base class should just live in gal instead of being in denial 2023-09-06 20:23:19 -04:00
Josue Huaroto cef0f176d3
Add Unselect all in menu 2023-09-06 23:44:39 +00:00
Marek Roszko 4d77fd48ef Shove thread_pool to core 2023-09-06 17:50:12 -04:00
John Beard 3c5052c1ac Add snaps to pad hole edges
This is often useful when measuring the distance from an
object to a pad hole edge, and also when dimensioning
holes.
2023-09-06 21:34:17 +01:00
John Beard 78c8de9b08 Fix oval pad snapping
Previously the snap points computed for oval pads didn't get all the
points correct. This breaks out the "find snap points for ovals"
into a function, reworks the logic, adds some tests.

Also adds "extremum points" when the oval isn't exactly H/V.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15594
2023-09-06 21:33:45 +01:00
Seth Hillbrand 1662f6aad6 Speed up footprint loading by caching
Store the COMPOUND_FILEs in a map referenced to the library name.  This
keeps the COMPOUND_FILE cache in memory rather than regenerating it each
time
2023-09-06 19:15:35 +00:00
Seth Hillbrand 1b63d11adf Speed up Altium compound file reader
Just read the footprint list once and store the cache for later use.
2023-09-06 19:15:35 +00:00
Seth Hillbrand b8b2498e0c Add support for fp cutouts in Altium libs 2023-09-06 19:15:35 +00:00
Seth Hillbrand cb3c712a9c ADDED: memberOfSheet() design rule function
Footprints that are a member of a specific sheet may be assigned
distinct rules, allowing users to group their rules based on sheet
layout
2023-09-06 19:14:00 +00:00
Seth Hillbrand f9b745f3d2 Allow multiple format image saving
- Keep original image data.  When loading JPEG, this avoid recompression
  that changes file data and decreases image quality
- Allow schematic and page layout editors to store non-PNG data as well
- Move page layout editor to store base64 instead of hex-coded data
2023-09-06 12:12:32 -07:00
Seth Hillbrand 0e382669d0 ADDED: Support for saving JPEG files in kicad_pcb
When users add an image to the board, this change keeps the original
file format when saving instead of converting the files into PNG-format,
which had the effect of making some board files much larger and slower

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14892
2023-09-06 12:12:32 -07:00
Jeff Young c07e9c834f Validate new footprint / save as footprint info before exiting dialog.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13923
2023-09-06 12:49:37 +01:00
Alex Shvartzkop e09a15ae4c Altium PCB import: fix rectangular keepout fills. 2023-09-06 09:02:54 +03:00
Alex Shvartzkop 4f303a8dc2 Altium PCB import: Polygon Cutout only cuts copper fill.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15587
2023-09-06 08:43:12 +03:00
jean-pierre charras cbcaaa001c fix some Coverity and compil warnings. 2023-09-05 20:30:08 +02:00
Marek Roszko f894f7ec4c Use the right path for loading drawing sheet in pcbnew cli 2023-09-05 11:01:57 -04:00
Alex Shvartzkop a5a93f808e Populate symbol library type choices from SCH_IO_MGR list. 2023-09-05 07:19:15 +03:00
Marek Roszko b566f994bb
Flip the RegisterSettings order to avoid legacy import crashes
(cherry picked from commit 32c2135047)
2023-09-05 03:23:07 +00:00
Marek Roszko a2522a2230 Don't call .Load() and cause settings to reload from disk
RegisterSettings can load the new settings json as added by not turning off the load now parameter
2023-09-04 22:42:00 -04:00
Jeff Young ea6d64e996 Set line width when changing annotation proxy flag.
(This prevents rectangle from not getting combined into pad if
proxy flag is turned off as Clipper collapses the polygon union
because it's too small.)
2023-09-04 20:49:52 +01:00
Jeff Young 7c718db5d2 Remove dialog-based primitive editing in favour of Pad Edit Mode.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13561
2023-09-04 20:49:52 +01:00
Jeff Young 0e26f3ab30 Allow pad number box creation in pad edit mode.
(Also fixes a bug where we'd include pad number box in pad shape.)
2023-09-04 20:49:52 +01:00
Alex Shvartzkop 3215223ee2 Move fix_board_shape.cpp to pcbcommon. 2023-09-04 22:26:47 +03:00
jean-pierre charras 2bf8602912 DIALOG_EXPORT_STEP_LOG: print the command line sent to kicad-cli in report window.
It can be useful in case of problems.
2023-09-04 19:03:04 +02:00
Jeff Young 0cde8cff1d Don't include plating thickness when drawing hole clearance lines.
We don't include it in the router, and the code didn't
differentiate between plated and non-plated holes, and it confuses
users.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15575
2023-09-04 16:06:09 +01:00
Matus Pavelek d57c5d3ad9
QFN footprint wizard - Allow different number of pads in x and y directions 2023-09-04 13:39:28 +00:00
Marek Roszko 63824487d0 Hide the unsupported Visible prop for textbox text 2023-09-04 09:28:59 -04:00
Marek Roszko 4b31de61b3 Rename txtbox props to border props 2023-09-04 09:28:59 -04:00
Jeff Young fe0fb92441 Reduce visual clutter in GAL display options. 2023-09-04 13:06:46 +01:00
Jeff Young c9fd03202a Generate an immediate refresh when loading new footprint. 2023-09-04 11:12:34 +01:00
Alex Shvartzkop 2bb457d477 Remove unused variable. 2023-09-04 07:00:23 +03:00
Alex Shvartzkop ab6a049b90 Add a routine for joining PCB shapes. 2023-09-04 06:46:24 +03:00
Alex Shvartzkop 24e0a9455e Fix a string in step exporter. 2023-09-04 06:45:25 +03:00
Alex Shvartzkop b2a0d85c84 Hide std::abs for EDA_ANGLE from Python. 2023-09-04 06:45:12 +03:00
Jeff Young 9bba8e5956 Don't allow duplication of footprint items outside of footprint editor.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15487
2023-09-03 22:04:50 +01:00
Jeff Young d27413a032 Remove up/down buttons until we implement layer ordering.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14574
2023-09-03 21:31:46 +01:00
Jeff Young 60419f542a Bug fixes for paste margins on custom-shaped pads.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15125
2023-09-03 20:43:48 +01:00
Jeff Young a24a8aaca7 Don't start a pack&move when already in an EDIT_TOOL drag or move.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15545
2023-09-03 14:03:52 +01:00
Jeff Young 624203f2e1 Don't start a router drag when already in an EDIT_TOOL drag or move.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15312
2023-09-03 14:03:52 +01:00
Josue Huaroto a8e18e2d8c
Flip Viewport when Flip board is enabled 2023-09-03 12:30:32 +00:00
aris-kimi 38748cce84
Small order change for three View menu items v2 2023-09-03 12:29:06 +00:00
Jeff Young 43862d767e Don't return separate shapes from a custom-shaped pad.
It just confuses the hull generator.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15553
2023-09-03 13:23:53 +01:00
Jeff Young 61bcf46ffe Don't show preview for lib-item loaded on to canvas. 2023-09-03 12:07:09 +01:00
Jeff Young e6b0a6abca ADDED: lib tree previews.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2418
2023-09-02 23:30:22 +01:00
Jeff Young 891583f616 Fix nullptr error. 2023-09-02 12:08:37 +01:00
Jeff Young 41e274684c Make sure pads with no net get assigned Default netclass on board open.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15562
2023-09-02 10:11:38 +01:00
Jeff Young 2d762acc7d Remove accidentally-checked-in debugging code. 2023-09-02 10:11:38 +01:00
Alex Shvartzkop 90eb59cf9f Fix saving a new footprint library.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15563
2023-09-01 23:30:27 +03:00
Jeff Young 69a1b30b8a Implement undo/redo around Pad Edit Mode changes. 2023-09-01 18:48:46 +01:00
Jeff Young aacb85bdab Make sure enum gets initialized. 2023-09-01 18:48:46 +01:00