Ian McInerney
75cdf9df4e
Don't say the board must be empty to be modified
...
It is possible to empty a full board and have modifications that
should be saved.
Fixes https://gitlab.com/kicad/code/kicad/issues/3739
2020-08-16 19:10:26 +00:00
Ian McInerney
e8b11c911e
Migrate Pcbnew/footprint viewer/footprint editor to the new UI update system
2020-08-16 19:10:26 +00:00
Ian McInerney
d19ff3e595
Unify the UI IDs for actions between the menus and toolbars
...
By unifying the IDs so that an action only has one UI ID,
it will receive only one update event that will work for
all controls using the action.
2020-08-16 19:10:24 +00:00
Jeff Young
15edac4738
Implement a more flexible layout for the objects tab of appearances.
2020-08-16 19:51:26 +01:00
Jon Evans
54682d39ff
Remember width of right AUI panel in PcbNew
2020-08-16 14:33:40 -04:00
Jon Evans
92174d414c
Ensure pads and zones come up visible by default
...
These visibility layers didn't exist until now
2020-08-16 10:17:20 -04:00
Jon Evans
6bfb32245b
Show the Default netclass in the appearance panel
2020-08-16 09:57:21 -04:00
Jon Evans
7da5419a2c
Reduce flicker on layout change in MSW
2020-08-16 09:38:12 -04:00
Jon Evans
1f5a3c57a0
Fix net color radio buttons
2020-08-16 09:32:03 -04:00
Ian McInerney
453976be5e
Add cleanup to the new appearance widget
...
It really should be cleaning up the heap-allocated objects
it owns.
2020-08-16 12:37:51 +01:00
Ian McInerney
25f2a13157
Fix pcbnew/fpedit editing options panel
...
The panel was incorrectly saving the preferences for the footprint
editor.
2020-08-16 12:37:50 +01:00
Ian McInerney
ade7f529b8
Switch shared_ptr creation to using make_shared
2020-08-16 12:37:50 +01:00
Jeff Young
198d9a4243
Fix merge conflicts.
2020-08-16 12:26:15 +01:00
Jeff Young
92322667d6
Fix asserts on later wxWidgets versions.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5197
2020-08-16 11:49:36 +01:00
Jeff Young
e5f2015a9c
More spacing adjustments for appearance manager.
2020-08-16 01:55:09 +01:00
Jeff Young
5938528a16
Move to conditional compilation for appearance palette spacing.
2020-08-16 00:43:19 +01:00
Jon Evans
103443f496
Back out some spacing changes for MacOS
...
These were too aggressive on other platforms
2020-08-15 19:20:49 -04:00
Jon Evans
c124934831
Improve tooltips
2020-08-15 19:07:26 -04:00
Jon Evans
0db00046d1
Fix rendering of net colors on items
2020-08-15 18:50:44 -04:00
Jon Evans
beab35472b
Fix wrong style for slider
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5197
2020-08-15 18:50:44 -04:00
Jeff Young
f83a9c0a22
Clean up some OSX issues in new appearance panel.
2020-08-15 23:26:58 +01:00
Jon Evans
2f604b4494
Add selection filter to footprint editor
2020-08-15 16:42:19 -04:00
Jeff Young
57c3d8e8d8
Make sure preview group gets added to view after a clear.
2020-08-15 21:13:44 +01:00
Jon Evans
bd14f8a82a
ADDED: New appearance control widget for PcbNew
...
Featuring:
- Layer view presets
- Per-type opacity for tracks, vias, pads, zones
- Net and netclass color and visibility controls
CHANGED: Simplified object visibilty controls
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1951
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1981
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2003
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2173
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2254
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4325
2020-08-15 15:24:28 -04:00
Jeff Young
b42395ec8d
Attempt to fix locale issue with decimal separator in rules.
2020-08-15 17:32:13 +01:00
Jeff Young
6c74658a98
Finish arc implementation of m_ThirdPoint for EDGE_MODULEs.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5191
2020-08-15 17:32:13 +01:00
Jeff Young
7342532276
Remove auto.
2020-08-15 17:32:13 +01:00
Jeff Young
4410df50a8
Remove layer check that prevents synthetic layer drawing.
...
In this particular case it was LAYER_PAD_FR.
Fixes https://gitlab.com/kicad/code/kicad/issues/5190
2020-08-15 17:32:13 +01:00
Jeff Young
dbb7859b7c
Move Eagle routing layer to Dwgs.User (instead of Edge.Cuts).
...
Fixes https://gitlab.com/kicad/code/kicad/issues/1899
2020-08-15 17:32:13 +01:00
jean-pierre charras
e4021a9ffa
Fix some I18n issues.
...
Strings used for debug and strings containing only a print format like "%i"
are not translated
2020-08-15 17:56:32 +02:00
Seth Hillbrand
a0c54951db
pcbnew: Clean up group move
...
SetPosition() only changes the base position of tracks, we need to use
Move() to move the whole element.
This also cleans up white space and group handling in ratsnest
Fixes https://gitlab.com/kicad/code/kicad/issues/5188
2020-08-14 19:47:03 -07:00
Seth Hillbrand
b8b3d5c16d
pcbnew: Remove all threading from dynamic ratsnest
...
The last remaining threaded operation in dynamic ratsnest was the
recalculation of the dynamic connectivity map. Because we do not
require any of the extra features of the connectivity map, we can get
away with a lightweight move of the anchors to update the ratsnest. The
resulting connectivity tree is not valid but it is not needed for the
ratsnest, which only needs a list of nets/anchors.
2020-08-14 17:48:33 -07:00
Jeff Young
ec5040aff5
Fix missing 'else' and EOF processing, both of which cause crashes.
2020-08-14 22:11:04 +01:00
Jeff Young
94ef2781bf
Allow case-insensitive filtering and filter on keystrokes.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5177
2020-08-14 22:11:04 +01:00
Peter Montgomery
672224106c
Pcbnew: Adjust soldermask dialog panel to scale properly
...
Added the wxExpand flag to all wxStatic Text widgets to prevent
text from being wrapped awkwardly under Linux (and possibly other
operating systems).
Made sure all sentences ended with a period.
Corrected some spelling mistakes.
Simplified tooltips to read and display better.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5168
~Also in this commit:
~Rephrased main warning note at top to emphasize get clearance
~settings from your board house.
~Moved two notes at top into tooltips for entry fields
~Removed note that solder mask and paste only apply to copper pads.
2020-08-14 19:51:57 +00:00
Tomasz Wlostowski
9cdada9eb4
PCB_EXPR_EVALUATOR: another string fix for wx 3.0
2020-08-14 14:36:27 +02:00
Seth Hillbrand
027b6c8cf9
Account for via width in connectivity
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5176
2020-08-13 20:31:17 -07:00
Seth Hillbrand
b351bec0d7
Handle blind/buried vias in connectivity
2020-08-13 20:14:23 -07:00
Jeff Young
7a6a6c2272
Reset active layer if it gets deleted in board setup.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5118
2020-08-13 20:39:08 +01:00
Jeff Young
519bc80394
Replace error reporting in DRC rule compiler.
2020-08-13 18:47:41 +01:00
Jeff Young
0b17dbd123
Fix nesting issues in the DRC rule expression code generator.
...
We were executing function calls multiple times because we were
processing them at a depth the traversal algorithm wasn't expecting.
2020-08-13 18:36:10 +01:00
Jeff Young
2c60c4778e
Do a layer-specific test only if the zone has the layer we're on.
...
Otherwise do a outline test (ie: for a keepout which isn't
layer-specific).
2020-08-13 16:16:36 +01:00
Tomasz Wlostowski
518a659185
Post-rebase fixes
2020-08-13 14:50:59 +02:00
Tomasz Wlostowski
47919cdc54
pcbnew/dialogs: use shared_ptr for RC_ITEM
2020-08-13 14:50:59 +02:00
Tomasz Wlostowski
ae5eab1d85
TRACKS_CLEANER: post-rebase fixes
2020-08-13 14:50:59 +02:00
Tomasz Wlostowski
c607a60e3b
PCB_EXPR_EVALUATOR: post-rebase fixes
2020-08-13 14:50:59 +02:00
Tomasz Wlostowski
e907e43bd9
pcbnew/drc: post-rebase fixes
2020-08-13 14:50:59 +02:00
Tomasz Wlostowski
d937fadd6f
Migrate RC_ITEM to use shared_ptr
2020-08-13 14:50:59 +02:00
Tomasz Wlostowski
f6ea753968
pcbnew: implement GetEffectiveShape() for tracks/vias/arcs/texts
2020-08-13 14:50:59 +02:00
Tomasz Wlostowski
59303adaca
BOARD_ITEM: assert on unimplemented GetEffectiveShape()
2020-08-13 14:50:59 +02:00
jean-pierre charras
e0351b4e4c
Zone filler: make new algo (no thickness for filled outlines) the default
...
Add also a message info to the pcbnew constraints panel for arc to segment
approx min error value.
2020-08-13 10:01:23 +02:00
Jeff Young
a407befa4c
Fix breakage from layer change.
...
We have to be careful about processing edges on the Edge_Cuts even
when we're talking about a zone on some other layer.
2020-08-13 00:18:09 +01:00
Jeff Young
0c9d08249f
Fix crash where dummy edge doesn't have a valid parent.
2020-08-13 00:07:59 +01:00
Jeff Young
e05cd0e914
Raise limit to prevent zooming on cross-probing.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5149
2020-08-12 22:28:18 +01:00
Jeff Young
393bb0fd83
Fix assert where geometry routine wasn't ready to handle layers.
...
This introduces layer handling to a lot of the geometry routines.
Many of them don't do much with it now, but it does help multi-layer
zones and will help when padstacks are implemented.
2020-08-12 22:20:08 +01:00
Jeff Young
463100d67f
Remove a long-standing hack to keep divots out of adjacent zones.
...
The new algorithm unions any adjacent zones before doing the
chamfer/fillet and then subtracts the other zones back out afterwards.
Fixes https://gitlab.com/kicad/code/kicad/issues/3812
2020-08-12 22:20:08 +01:00
Jeff Young
a6d44676b3
Move commit handling outside of ZoneFiller.
...
This allows us to rever the commit on a cancel.
Fixes https://gitlab.com/kicad/code/kicad/issues/5107
2020-08-12 22:20:07 +01:00
Jeff Young
fad18dccd5
Make sure board design settings get updated when switching boards.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5129
2020-08-12 22:20:07 +01:00
Jeff Young
84425f5a40
Fix crash bug from bad static_cast.
2020-08-12 22:20:07 +01:00
Graham Keeth
9057a46a20
circular pad array wizard: pin 1 optionally square
...
Add option to make pin 1 rectangular to Circular Pad Array wizard.
Default behavior is unchanged (oval pin 1).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4614
2020-08-12 20:49:55 +00:00
Seth Hillbrand
c4de3c8f1a
Move mutual capacitance wizard to correct folder
2020-08-12 11:26:01 -07:00
Qbort
b41892e4da
Rename class GROUP in pcbnew to PCB_GROUP
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5156
2020-08-12 15:36:08 +01:00
Seth Hillbrand
d8d8f4f670
Removing extra parameters to super() calls
...
The extra parameters seem to cause problems for some Python
configurations and are not needed.
Fixes https://gitlab.com/kicad/code/kicad/issues/4896
2020-08-12 06:22:45 -07:00
Blake Smith
9614f6d0d9
Fix PadGridArray super call
2020-08-12 06:22:45 -07:00
Seth Hillbrand
ab58b67842
Adding triangulation viewing to AC
...
This adds a helper routine to visualize the quality of our
triangulation. It also renames an excessively long variable name for
the arc editor
2020-08-12 06:22:45 -07:00
jean-pierre charras
eae739d98e
ZONE_CONTAINER::TransformSolidAreasShapesToPolygonSet(): for polygons with outline
...
thickness, use another algo to create shapes mainly used in 3D viewer.
For the 3D viewer, the calculation time to build zones is significantly faster.
2020-08-12 10:13:54 +02:00
Ian McInerney
47f7c616f8
Fix Python environment variable handling
...
The variables in the common settings struct are only updated on
save, so Python must use the ones from Pgm to get its values.
This does lead to the observation that Python's changes to the
variables do affect KiCad (they can break resolvers). So apparently
it can mess with us but we can't mess with it easily.
Also, improve the environment variable tracing infrastructure to capture
more changes.
2020-08-12 00:14:19 +01:00
Jeff Young
d97e519036
Fix typo in regex.
...
Had to get rid of the regex as Search actually changes the user's
selection, which is not what we want. (It wasn't earlier because
the search would always fail due to the typo.)
It's much faster now that we're not scanning from the beginning every
time.
2020-08-11 22:04:38 +01:00
Jeff Young
bc9723340a
Add support for print-as-per-items-tab.
...
ADDED a print mode which allows the Layers Manager's Items tab to
control the visiblity of various items.
Fixes https://gitlab.com/kicad/code/kicad/issues/3894
2020-08-11 20:42:08 +01:00
Jeff Young
7f65b31cb6
Beautify the PCBNew print dialog.
...
Mostly fix some uneven spacing, but also indent the color theme
selection under the checkbox which controls it.
2020-08-11 20:42:08 +01:00
Joshua Redstone
ee428876ec
ADDED: Group/Ungroup function
...
This implements the group/ungroup functions to mark a set of EDA_ITEMs as a unit, allowing them to be moved and rotated as a unit
2020-08-11 19:37:07 +00:00
Jeff Young
f65a0037dc
Display violation layer (and select it) for DRC errors.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5123
2020-08-11 17:47:39 +01:00
Jeff Young
8b67d5185a
Update keepout rule syntax example to something with less "magic".
2020-08-11 15:22:48 +01:00
Jeff Young
a0f95855d1
ADDED board repair tool.
...
Currently it just fixes duplicate UUIDs.
2020-08-11 15:02:27 +01:00
Jeff Young
5ab39b7c06
Clean up reannotation UI.
2020-08-11 15:02:27 +01:00
jean-pierre charras
9c817638d9
ZONE_CONTAINER::TransformSolidAreasShapesToPolygonSet(): fix incorrect transform
...
For zones filled using the new algo (filled areas without thickness), a outline
with thickness was added, that is incorrect.
Used only in 3D viewer.
2020-08-11 11:49:08 +02:00
jean-pierre charras
29d6fe88f0
3D viewer: do not show via/pad shapes of pads not connected on copper layers.
...
Show the same vias/pad shapes as plot functions.
2020-08-11 11:26:00 +02:00
PJM
a06a0c1236
Fix Pcbnew tree order in "Preferences" tree
...
Eeschema and Pcbnew display the same dialog panels in a different order
in the 'Preferences' tree. This code make Pcbnew match the order of
Eeschema.
Fixes issue: https://gitlab.com/kicad/code/kicad/-/issues/5147
2020-08-10 19:01:04 -07:00
Ian McInerney
e03f6a3b49
Pcbnew: Route all display options updates through the frame
...
The frame contains the main option set that is used for setting the UI
state, so it must be updated. The frame also updates the view when set,
so calling the view separately to update the options isn't needed.
Fixes https://gitlab.com/kicad/code/kicad/issues/5069
2020-08-11 01:20:11 +01:00
Ian McInerney
0a0ed9e064
Escape all env var strings sent to the Python interpreter
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5130
2020-08-11 00:51:02 +01:00
Jeff Young
9716c62e32
Performance enhancements for PCBNew scrolling and zooming.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5136
2020-08-10 23:43:24 +01:00
Jeff Young
e1c449902d
Ask user before throwing away changes to DRC Rules.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5135
2020-08-10 23:43:24 +01:00
Jeff Young
de6314e3b5
Convert smart quotes and dashes to ASCII in DRC rules.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5135
2020-08-10 23:43:24 +01:00
Seth Hillbrand
f36c158696
Remove via contact minimum from connectivity check
...
Connectivity takes an absolute approach to whether elements are
connected. DRC will be adjusted to check to illegal necks that are less
than the board minimum width
2020-08-10 14:47:49 -07:00
Seth Hillbrand
e5ab97994d
pcbnew: Fix error in proximity calc for zones
...
Zone ContainsPoint() accuracy should be calculating the radial distance
and so does not need to be halved.
2020-08-10 14:46:34 -07:00
Seth Hillbrand
5096deeb3b
pcbnew: Handle module ratsnest
...
Ensure we display the module ratsnest appropriately
2020-08-10 12:09:32 -07:00
Seth Hillbrand
211cbadc24
pcbnew: MODULEs are not BOARD_CONNECTED_ITEMS
...
Handling ratsnest requires first checking for modules, handling their
pads and then checking that the remaining elements derive from
BOARD_CONNECTED_ITEM
Fixes https://gitlab.com/kicad/code/kicad/issues/5131
2020-08-10 11:01:03 -07:00
jean-pierre charras
23a5b0ca5f
fix a few compil warnings and a Coverity warning.
2020-08-10 18:32:44 +02:00
Jeff Young
34705fd8b2
More clone vs duplicate bugs.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5120
2020-08-10 14:45:01 +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
Ian McInerney
dbede14ed2
Remove extra include accidentally added
2020-08-10 10:43:19 +01:00
jean-pierre charras
19602b0806
Pcbnew: do not include swig/python_scripting.h when compiling without python support.
...
Fixes #5132
https://gitlab.com/kicad/code/kicad/issues/5132
2020-08-10 11:35:52 +02:00
Seth Hillbrand
370bc89d5a
Lowercasing private variables in class_pad
2020-08-10 03:27:27 +00:00
Seth Hillbrand
2c8d20207e
Allow micro-via to begin/end in middle layers
...
Microvias can be drilled through adjacent layer pairs, not just F_Cu and
B_Cu
2020-08-10 03:27:27 +00:00
Seth Hillbrand
41edf5c5bf
Updating DRC to handle vias with differing layers
2020-08-10 03:27:27 +00:00
Seth Hillbrand
9a66a5acad
Cleanup code line endings
2020-08-10 03:27:27 +00:00
Seth Hillbrand
5fc6b74c89
ADDED: Remove unused pads
...
This option removes copper layers from pads and vias where they are not
connected to other board elements. This allows the inner layers to be
more closely routed if the via landing pad is not needed.
Fixes https://gitlab.com/kicad/code/kicad/issues/1835
2020-08-10 03:27:26 +00:00
Seth Hillbrand
2fc266ef02
Cleanup old defines/dead code
2020-08-10 03:27:26 +00:00
qu1ck
1bb6d4e22c
Fix pads python api compatibility
...
* Add GetCustomShapeAsPolygon() to swig wrapper
* Make shared_ptr<SHAPE_POLY_SET> usable for GetEffectivePolygon()
Fixes #4999
2020-08-10 03:22:24 +00:00
Ian McInerney
265c6fa3b7
Improve color theme support in the footprint preview widget
...
This ensures the colors used by the status text pane in the preview
widget are the same as the canvas, so there is a seemless transition
between the two.
Additionally, remove the scrollbars from the symbol preview widget
in the place symbol dialog - they are pointless.
2020-08-10 02:29:15 +01:00
Fabien Corona
133d082cc5
Pcbnew fix arc edition
2020-08-09 23:03:31 +00:00
Jon Evans
abc64f228b
Use wxAtoi instead of atoi
2020-08-09 18:26:54 -04:00
Jeff Young
78fb6a384d
Fix wxWidgets debug assert on GTK.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5121
2020-08-09 22:13:29 +01:00
Jon Evans
ec0d8dc5e5
Fix inadvertent change to license text
2020-08-09 16:09:26 -04:00
evils
cc6f582aa3
Pcbnew: Fix typo in drill file generation dialog
...
From https://gitlab.com/kicad/code/kicad/-/merge_requests/335
2020-08-09 19:56:12 +01:00
Ian McInerney
c458b50fd9
Ensure the environment variables are synchronized between KiCad and Python
...
Before this, the environment variables inside Python wouldn't reflect
the updates to them made after the interpreter was started in Pcbnew.
This will call into Python and set the variables when they are changed,
since Python can't synchronize itself when running in an embedded
interpreter.
Fixes https://gitlab.com/kicad/code/kicad/issues/5071
2020-08-09 19:56:12 +01:00
Ian McInerney
e57499fde9
Fix where the Python plugins are pointing to
...
This isn't truely correct, because it is pointing to the
main KiCad path, but it is more correct than pointing to
the system path. This should really be pointing to the
user path
(see https://gitlab.com/kicad/code/kicad/-/issues/5115 )
2020-08-09 19:56:12 +01:00
jean-pierre charras
9b3ff5af47
Fix a few I18N issues.
...
Especially keywords should not be included in translated strings.
2020-08-09 20:38:35 +02:00
Jon Evans
db811510af
Improve layout of reannotate dialog
2020-08-09 13:04:33 -04:00
Jon Evans
5abc85aa80
Cleanup re-annotation code style
2020-08-09 12:43:05 -04:00
bjpiccioni
d08bf90576
ADDED: Geographic Reannotation
2020-08-09 12:43:05 -04:00
Jon Evans
2d84092457
Fix build issue in c9925704
2020-08-09 12:43:05 -04:00
Jon Evans
43ab43ec9e
Fix a few issues with Close Project
...
A new empty project needs to be reopened for now
Footprint info cache write only works with a project for now
2020-08-09 11:13:50 -04:00
Jeff Young
c992570427
Add Open Python directory to menus.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5115
2020-08-09 15:39:51 +01:00
Jeff Young
3b280e4886
Keep properties across an Exchange_Module call.
...
This is also used when saving a footprint from the Footprint Editor
back to the board.
Fixes https://gitlab.com/kicad/code/kicad/issues/5114
Fixes https://gitlab.com/kicad/code/kicad/issues/5114
2020-08-09 15:39:51 +01:00
Jeff Young
4317881012
Improve delete-unused-layers to better handle multi-layer items.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5116
2020-08-09 15:39:51 +01:00
Jeff Young
f2d91862c7
Allow reading filled rectangles and circles from pcbnew files.
...
The internals have supported them for some time now.
2020-08-09 15:39:51 +01:00
Mark Roszko
c6e388db14
Implement an app progress indicator in the taskbar
...
ADDED: Progress indicator in the taskbar
This adds a progress indicator to the Windows and macOS taskbar
icons to display the progress of some operations.
Note, this requires wxWidgets 3.1+
2020-08-09 10:55:00 +00:00
Jeff Young
5c3fddffa6
Handle module keepout zones on internal layers.
...
Make sure the Keepout Zone dialog allows specifiying them and make
sure they're selectable.
Fixes https://gitlab.com/kicad/code/kicad/issues/5113
2020-08-09 00:24:53 +01:00
Ian McInerney
90a17427ee
Give the length tuning tool an inital end point that isn't the start point
...
Using the starting point as the end point means that the tool
initializes with 0 length traces and so nothing is visible.
Fixes https://gitlab.com/kicad/code/kicad/issues/1912
2020-08-08 23:41:48 +01:00
Jeff Young
492f7859e7
Make sure design settings get written back to board.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5109
2020-08-08 23:35:59 +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
Jon Evans
32a7d00256
Make sure projects are cleaned up nicely when frames close
...
PROJECT objects will be deleted by SETTINGS_MANAGER::UnloadProject
so we need to make sure that this is called at an early enough point
in the closing process that anything needed by the PROJECT dtor
is still around.
Also fix an issue where the schematic worksheet was depending on
the project existing after the schematic had been reset.
2020-08-08 16:52:57 -04:00
Jeff Young
ae404e6339
Update board markers from DRC changes before dialog is closed.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5110
2020-08-08 19:09:22 +01:00
Jeff Young
484643c5ed
Fix really bad bug where KIIDs always get reset when reading files.
...
Mea culpa.
Fixes https://gitlab.com/kicad/code/kicad/issues/5106
2020-08-08 16:25:30 +01:00
Jeff Young
02bf5d27df
Fix crash when a DRC rule specifies an empty zone as a keepout.
2020-08-08 16:25:30 +01:00
Jeff Young
7cd8f710b6
Clean up unused includes.
2020-08-08 16:25:30 +01:00
PJM
829316fad4
Pcbnew #4904 : Import settings from another board deleted internal layers
...
When importing settings from a board with more copper layers and applying it
to a board with less copper layers, if the user has ticked the checkbox
"Layer settings", then KiCad will delete the inner copper layers. Only
when the user clicks OK does it then warn that it found deleted items on inner
layers. The message is too generic and comes after the layers have already
been deleted.
This Merge Request tries to address this by warning them early. The changes are:
1 - Added code to check if user is trying to import settings from a
board with less copper layers than the current loaded board. This
results in KiCad deleting inner copper layers. Now it presents a
warning dialog that explains the current settings will result in deleted
inner layers, and lets the user stop the import process before making any changes.
2 - Made "Import Settings" dialog disable "Import Settings" button
until at least one import option checkbox is checked.
3 - Made "Select All" button on "Import Settings" dialog toggle
between "Select All" and "Deselect All" on each click.
Items 2&3 were added to improve the overall import settings usability
experience.
Fixes issue https://gitlab.com/kicad/code/kicad/-/issues/4904
2020-08-08 00:51:23 +00:00
Seth Hillbrand
f615b026d9
pcbnew: Account for zone expansion in conn
...
Connecting zone-to-zone, we need to allow for the stroke-width in
old-style polygons.
Also, speed up the calculation by skipping zone points that do not fall
inside the matching BBox
Fixes https://gitlab.com/kicad/code/kicad/issues/5043
2020-08-07 15:59:39 -07:00
Jon Evans
dcc484e114
CHANGED: Library editors are now usable with no project loaded
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/3688
2020-08-07 18:02:34 -04:00
Jeff Young
db501c2002
Fix issue with doing DRC on a multi-layer zone.
...
Testing for an intersection of layers between the zone and the
item (track in this case) isn't enough: we need to test for the
presence of the item on each layer of the zone.
Fixes https://gitlab.com/kicad/code/kicad/issues/5102
2020-08-07 22:40:18 +01:00
Jeff Young
1671c3356d
Fix typo where "continue" got put on wrong side of closing brace.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5100
2020-08-07 22:40:18 +01:00
Jeff Young
e5b50d90a7
Update DRC rules to new layer and disallow grammars.
...
Also adds support for hooking rules up to named zones.
Fixes https://gitlab.com/kicad/code/kicad/issues/2041
2020-08-07 21:49:36 +01:00
Seth Hillbrand
406de56964
pcbnew: Prevent use of non-connected item in ratsnest
...
We need to be careful in the connectivity system to always use
dyn_cast/dynamic_cast and check the return when dealing with board
items. Getting non-connected items will result in null nets when
propagated.
Fixes https://gitlab.com/kicad/code/kicad/issues/5082
2020-08-07 13:38:51 -07:00
Jeff Young
e14bbc7d83
Fix auto-added include.
2020-08-07 17:10:12 +01:00
Jeff Young
00e77d1ba4
Implement pad & via aprons for hatched zones.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/2519
2020-08-07 15:15:43 +01:00
Jon Evans
1a3b7828f8
Fix layer exclusions and worksheet in board color theme editor
2020-08-06 17:44:16 -04:00
Jeff Young
ea1be41ff0
Only clean up tracks completely inside pads.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5093
2020-08-06 21:53:28 +01:00
Jeff Young
76bd344730
Preview for PCBNew colour settings editor.
2020-08-06 19:38:06 +01:00
Jeff Young
f27661fa39
Be more flexible with user input; more multibyte safety.
2020-08-06 19:38:06 +01:00
jean-pierre charras
5a33772f41
Pcbnew: avoid crash when saving a board having "orphan" nets.
...
Sometimes tracks or zones can have "orphan" nets no longer existing
in schematic after updating the board from the schematic (no pad belonging this net).
The fix does not save these broken nets having no info (no netname, no valid netcode)
Fixes #5087
https://gitlab.com/kicad/code/kicad/issues/5087
2020-08-06 16:11:55 +02:00
Seth Hillbrand
c57c168753
PNS: Remove items from all layers
...
subIndices control which layers the items are inserted onto and removed
from. The iterator to remove items needs to be inclusive of the
first/last layers
Fixes https://gitlab.com/kicad/code/kicad/issues/5090
Fixes https://gitlab.com/kicad/code/kicad/issues/5075
Fixes https://gitlab.com/kicad/code/kicad/issues/5034
2020-08-05 19:39:55 -07:00
Jeff Young
4b51184678
Don't try and select if we don't have a location.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5088
2020-08-06 01:22:59 +01:00
Jeff Young
6a4f611e61
Special handling for connecting vias in hatched zones.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/2568
2020-08-06 00:03:00 +01:00
Seth Hillbrand
4a79d1be56
Track cleaner should not remove vias from pads
...
Vias are stored in the board tracks list, so we need to skip them when
testing if the start/end points are both in pads
Fixes https://gitlab.com/kicad/code/kicad/issues/5086
2020-08-05 13:24:14 -07:00
Seth Hillbrand
8a0be64ad4
Ensure dangling test takes track width into account
...
When running a hit test to check if the anchors are connected, we should
loosen the check for tracks to account for the width. Otherwise
connected anchors can be connected in the system but test positive for
IsDangling()
Fixes https://gitlab.com/kicad/code/kicad/issues/5027
2020-08-05 13:17:29 -07:00
Jeff Young
b26ced820c
Make sure plugins table has columns wide enough for headers.
...
Don't expect wxWidgets to return appropriate values for this. At
least not in the version we're using.
Fixes https://gitlab.com/kicad/code/kicad/issues/1916
2020-08-05 19:37:52 +01:00
Jeff Young
73832a9708
Work around an event processing failure.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4273
2020-08-05 19:36:58 +01:00
Jeff Young
04e57a31eb
Reset KIIDs when appending a board.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5081
2020-08-05 19:02:19 +01:00
Jeff Young
c30739dff3
Implement a more aggressive zone-fill-cancel.
...
We now unfill all zones so that the user can clearly see that
things are not in a "finished" state.
Fixes https://gitlab.com/kicad/code/kicad/issues/5035
2020-08-05 16:51:58 +01:00
Jeff Young
e2ec9d9f00
A more fail-safe way to disallow editing while routing.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4413
Fixes https://gitlab.com/kicad/code/kicad/issues/5067
2020-08-05 16:51:58 +01:00
Jeff Young
a6cdb6440a
Give the user a bit of help with board thickness.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/3807
2020-08-05 16:51:58 +01:00
Jeff Young
9fda8d58d0
Take user to Stackup Page when layers don't match.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/3807
2020-08-05 00:41:29 +01:00
Jeff Young
5d6c65509a
Adjust spacing in pcbnew edit options.
2020-08-05 00:20:37 +01:00
Jeff Young
0e9714fdba
Simplify fp-info-cache escaping mechanism.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4969
2020-08-04 23:54:12 +01:00
Jeff Young
9cc6a77cc0
Fix bug where preview wasn't getting re-added after view cleared.
2020-08-04 20:40:40 +01:00
Jeff Young
3cf5db3ce5
Allow cancelling of zone fills.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5035
2020-08-04 19:53:35 +01:00
Jeff Young
77fd384da5
Don't allow 45deg rotation to bloat pad numbers/netnames.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5064
2020-08-04 17:54:05 +01:00
Jeff Young
a5f5a20722
Repair formatting.
2020-08-04 15:57:57 +01:00
Jan Mrázek
1c9cae0b06
eagle: Interpret overline in texts
...
CHANGED: Overline in Eagle boards are correctly imported
2020-08-04 16:25:08 +02:00
Jeff Young
aa8fb38445
Bring panel_pcbnew_color_settings in line with eeschema equivalent.
...
Also fixes a bug where color changes weren't getting saved because
the set of valid layers didn't include the copper layers.
2020-08-04 15:08:20 +01:00
Jeff Young
59ba793096
Disable various combinations of router and editing commands.
...
They just confuse each other.
Fixes https://gitlab.com/kicad/code/kicad/issues/5067
2020-08-04 14:32:02 +01:00
Jeff Young
0f3d79245e
Tidy up delete-all-markers.
...
Fix a typo in the order of booleans, and move from 3 buttons to
2 buttons and a (remembered-for-session) checkbox.
2020-08-04 13:28:16 +01:00
Jeff Young
f67ba62c11
Don't stop when current item is reached: there might be more.
...
In particular, the two sub-items also count as "current" and need
to be deleted.
Fixes https://gitlab.com/kicad/code/kicad/issues/5057
2020-08-04 13:28:16 +01:00
Jeff Young
9c9fdb2569
More performant (and more correct) deletion of DRC markers.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5057
2020-08-04 11:45:07 +01:00
Jeff Young
74b9cce682
Try again at dragging module edges.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5037
2020-08-03 23:53:45 +01:00
Ian McInerney
acc3217a95
Renormalize line endings and enforce normalization for all contributors
2020-08-03 23:15:10 +01:00
Jeff Young
c56599ab07
Allow ERC/DRC markers to be deleted without deleting exclusions.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4953
2020-08-02 22:45:48 +01:00
jean-pierre charras
df4226f896
Settings management: try to fix full filename issues when using non ASCII7 chars.
...
The fix convert all std::string storing a path to wxString (unicode support)
wxString were already used at many place to store paths, but not all.
For internal calculations mixing char strings and wide char strings is a recipe
for bug: any missing conversion between UTF8 and wxString breaks paths.
2020-08-02 21:31:03 +02:00
Jeff Young
7108a25278
Fix issues flipping text.
...
This is a really hard problem to get right. This algorithm won't
look quite right if you assemble a paragraph from disjoint text
objects and flip them all top-to-bottom (as it will re-order the
text). But this is really the nature of the problem (and has to
stay that way to correctly flip disjoint graphic items or mixed
text and graphic items). The real fix here is to support text
wrapped in a single text box.
Fixes https://gitlab.com/kicad/code/kicad/issues/4480
2020-08-02 17:05:13 +01:00
Jeff Young
6d319e5bf7
Both pads must have nets to be shorting.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5047
2020-08-02 17:05:13 +01:00
Jeff Young
ef2388b5bb
Fix issue with dragging flipped MODULE.
2020-08-02 17:05:13 +01:00
Jeff Young
2320a67c30
Fix issues with DRAWSEGMENT undo.
2020-08-02 17:05:13 +01:00
Jon Evans
aae40148dc
Switch to ordered_json and enable ignore_comments parser option
2020-08-02 13:11:16 +00:00
Jeff Young
dae40d5c9f
Don't use std::set_difference which assumes sorted lists.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4968
2020-08-01 22:15:53 +01:00
Jeff Young
07085345e9
Flip chamfer corners.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5038
2020-08-01 21:32:45 +01:00
Jeff Young
8c16c60e42
Fix typo keeping aperture pads from working.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5036
2020-08-01 15:40:34 +01:00
Jeff Young
d586495c0a
Preview fp edges & text while dragging in router.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5037
2020-08-01 15:40:34 +01:00
Jeff Young
93e3268030
OnPixelInUI is meant to be a scaling factor, not a vector.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4669
2020-08-01 00:24:26 +01:00
Qbort
9977299340
Fix compile errors in drc_engine.cpp and panel_setup_rules.cpp
2020-07-31 21:47:01 +00:00
Jeff Young
5c479e150d
Tooltip and better icon for compile/check syntax button.
2020-07-31 22:29:05 +01:00
Jeff Young
ba537209ab
Make sure pasted items get their netclass updated along with their net.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4974
2020-07-31 16:47:36 +01:00
Jeff Young
1be39195ab
Remove UUIDs from the GUI.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5018
2020-07-31 16:06:54 +01:00
jean-pierre charras
4cf5662ea1
Fix incorrect shape of trapezoidal pad shapes. They were not the same as stable branch.
2020-07-31 14:37:21 +02:00
jean-pierre charras
87ebd34ea2
Optimize drawings for degenerated oval pads (in fact circle) and for round pad holes
2020-07-31 10:54:53 +02:00
Seth Hillbrand
d7a1a4f822
Try harder to merge colinear tracks
...
Each time we iterator through the tracks list to merge, we change the
connectivity system and can leave possible merges. By iterating, we
keep merging until we cannot anymore.
Fixes https://gitlab.com/kicad/code/kicad/issues/5020
2020-07-30 23:04:38 -07:00
Seth Hillbrand
51d7fea934
Separate Cleanup Via from Cleanup Track
...
There are cases where you will want to keep vias that only connect to
one layer but still want to cleanup tracks. As distinct entities, they
are given their own checkboxes and actions
Fixes https://gitlab.com/kicad/code/kicad/issues/5019
2020-07-30 21:22:33 -07:00
Ian McInerney
268dec5c19
Cleanup some build and Coverity warnings
2020-07-31 02:46:05 +01:00
Jeff Young
fdb23d1a2d
Add DRC check for items (pads for now) shorting two nets.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4955
2020-07-30 21:42:23 +01:00
Jeff Young
e88dda2c01
Handle wildcards and "other" item for insideCourtyard DRC function.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4519
2020-07-30 18:07:22 +01:00
Jeff Young
b2dc592bf1
Clear UUID and path when pasting board items.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4992
Fixes https://gitlab.com/kicad/code/kicad/issues/4041
2020-07-30 18:06:42 +01:00
Jeff Young
577c1be391
Report all DRC rule errors, not just the first.
2020-07-30 14:27:42 +01:00
Jeff Young
5a1b1c544a
Add layer to rule grammar.
2020-07-30 14:27:42 +01:00
Jeff Young
dda381befb
Add insideCourtyard DRC rule function.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4519
2020-07-30 14:27:42 +01:00
jean-pierre charras
0c774aa163
Pcbnew: fix a python interface issue ( a not defined constant in some modules).
...
Was due to incorrect order of definitions in board.i interface.
2020-07-30 10:42:23 +02:00
Michael Kavanagh
b3f638caaf
Pcbnew plugin: 3d models stop writing 'at' keyword
...
Previously it wrote 'at' if all values were zero to avoid file changes.
Now write 'offset' in mm in all cases. Still read 'at' values in inches.
Fixes https://gitlab.com/kicad/code/kicad/issues/4316
2020-07-30 02:29:44 +00:00
Seth Hillbrand
0a4ce183a4
ADDED: polygon newlines every point
...
By default KiCad will now print each polygon point on its own line.
This adds to the vertical distance for large polygons but makes revision
control much cleaner as single point addition to a polygon does not
propagate to a diff over the full polygon.
Users/developers who want to save the files using the 4-points per line
have the ADVANCED_CONFIG setting 'CompactSave' which will provide the
original save method
2020-07-30 01:18:44 +00:00
Tomasz Wlostowski
b0874c7b4e
pcbnew: forgot about GetEffectiveShape() declaration during rebase
2020-07-29 23:14:34 +02:00
Tomasz Wlostowski
216e587965
BOARD_CONNECTED_ITEM: added NetName property
2020-07-29 23:14:34 +02:00
Tomasz Wlostowski
b982ef6a48
PCB_EXPR_EVALUATOR: add destructor
2020-07-29 23:14:34 +02:00
Tomasz Wlostowski
89a953e039
Migrated GetEffectiveShape(s) to SHAPE_COMPOUND
2020-07-29 23:14:03 +02:00
Tomasz Wlostowski
85aecc15ee
router: fix mistake in 45/free-angle mode selection when dragging corners
2020-07-29 23:14:03 +02:00
Tomasz Wlostowski
c2b9db293f
router: prevent heap crash when initial walkaround line is empty
2020-07-29 23:14:03 +02:00
Tomasz Wlostowski
832a8c5bf7
pcbnew: implement SHAPE_COMPOUND-based GetEffectiveShape()
2020-07-29 23:14:03 +02:00
Seth Hillbrand
1f5fb979b9
Keep PNS item RTree on layer-by-layer
...
Rather than extra splitting of the RTree that we use for collision
detection on types and direction, we limit this to checks on
layer-by-layer basis. This also allows for layer expansion by using
deque of RTrees rather than fixed index
This fixes the missing layernumbers and keeps the layers in a deque to
prevent re-allocation on expansion.
Replaces ad94b6205
2020-07-29 11:21:00 -07:00
jean-pierre charras
f00c59c446
Fix a few Coverity warnings.
2020-07-29 09:26:57 +02:00
Seth Hillbrand
ad94b6205a
Revert "Keep PNS item RTree on layer-by-layer"
...
This reverts commit a34d33c460
.
The commit did not work properly for shove routing. Will revist in
later commit
2020-07-28 21:20:19 -07:00
Jeff Young
0fecb5f277
Be more explicit about string/character conversions.
...
This *may* fix the bug where a layer name isn't displayed correctly
in the error dialog. But probably not.
2020-07-28 20:44:40 +01:00
Marek Roszko
9278660b10
Add support for the windows application restart api
2020-07-28 14:32:39 -04:00
Seth Hillbrand
a34d33c460
Keep PNS item RTree on layer-by-layer
...
Rather than extra splitting of the RTree that we use for collision
detection on types and direction, we limit this to checks on
layer-by-layer basis. This also allows for layer expansion by using
vector of RTrees rather than fixed index
2020-07-28 10:17:56 -07:00
Seth Hillbrand
a5a56c46c3
Remove INTRUSIVE_LIST from CN_ITEM
...
Intrusive lists made the connectivity search not thread-safe. Using
iterators for item deletion provides the same order performance while
keeping the container thread-localized
2020-07-28 09:29:32 -07:00
Jeff Young
46602148dc
Fix overly aggressive assert.
2020-07-28 13:35:37 +01:00
Jeff Young
be957e0105
Convert parent-less module items to board items on paste.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4938
2020-07-27 19:53:42 +01:00
Jeff Young
1d8c71c617
Fix layout issues in net inspector dialog.
...
1) don't add 10 -and- include 'M's in the strings; they're both for
margins
2) take scroll bar width into account when sizing columns
3) make sure margins are added to temp variables that we're going to
use to size column 1
Fixes https://gitlab.com/kicad/code/kicad/issues/4981
2020-07-27 19:53:42 +01:00
Seth Hillbrand
6900f04ee0
Change Zone extra clearance magic number to AC
...
Rather than keeping a magic number in the code, we set the default in
the advanced config setting and allow users/developers to modify it.
2020-07-26 07:20:24 -07:00
jean-pierre charras
124afa5fc4
FOOTPRINT_PREVIEW_PANEL: Ensure we are never using the high contrast mode
...
to display the selected footprint
Fixes #4980
https://gitlab.com/kicad/code/kicad/issues/4980
2020-07-26 13:22:21 +02:00
Simon Richter
95c2b261e8
Don't mandate ownership semantics in API
...
This API doesn't transfer ownership, so no smart pointers are required --
this just needlessly tightens requirements on the user of the interface.
(Fixes five instances of MSVC C26410 warning)
2020-07-26 02:45:27 +00:00
Simon Richter
fdaaa0a704
Make PCB_EXPR_UCODE final
...
This avoids a warning about its non-virtual destructor during deletion, as
polymorphic classes are expected to be deleteable through any pointer.
Possibly not entirely correct -- might be problematic if UCODE objects are
deleted through a base pointer.
2020-07-25 19:41:16 -07:00
Jeff Young
4153309fba
Add defensive code.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4941
2020-07-25 23:54:04 +01:00
Seth Hillbrand
ad625d8d76
Add missing KIID to edge_module
...
In order to support grouping in the footprint editor, we need full KIIDs
stored with the footprint elements.
2020-07-25 14:10:53 -07: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
2af6d01fdf
Add some defensive code for empty polygons.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4947
2020-07-25 17:35:05 +01:00
jean-pierre charras
6f7d5f5e2b
Footprint editor: fix some issues in flip and mirror commands.
...
more about fixes #4958
https://gitlab.com/kicad/code/kicad/issues/4958
2020-07-25 18:10:24 +02:00
Jeff Young
bf445c1a95
Performance enhancements.
...
1) cache pad polygon outlines
huge improvement in connectivity performance and a decent
improvement in DRC performance
2) don't pre-allocate CONTEXT stack
significant improvement in DRC rule performance
2) don't keep re-encoding strings
decent improvement in DRC rule performance
2020-07-25 13:03:33 +01:00
Jeff Young
d1d7f5e7fa
Fix text size in Edit Footprint dialog.
2020-07-25 13:03:33 +01:00
jean-pierre charras
377da31fcc
D_PAD copy ctor and operator = : fix missing copy of pad name and pin function members.
2020-07-25 13:28:20 +02:00
jean-pierre charras
bebba1df61
D_PAD copy ctor and operator = : fix missing copy of m_LengthPadToDie member.
2020-07-25 08:29:33 +02:00
jean-pierre charras
b5960dfb40
class D_PAD: add Copy ctor and operator =.
...
Due to the fact basic primitives for custom pads are now managed by
a list of pointer, the default copy ctor and default operator = do not work
(the basic primitives list must be duplicated).
It fixes issues related to primitives list id pad edition, footprint edition
and undo/redo
Fixes #4958
https://gitlab.com/kicad/code/kicad/issues/4958
2020-07-24 18:02:56 +02:00
Jeff Young
f97c50bfde
Give excluded DRC items their own layer.
...
(And fix a bug with the new mulit-layer zones and rule-based keepouts
at the same time which prevented me from testing it.)
Fixes https://gitlab.com/kicad/code/kicad/issues/4954
2020-07-24 01:28:25 +01:00
Jeff Young
6529e339a9
Don't store context in the uCode. (It's not thread-safe.)
...
Although it does give some pretty funny results when filling zones.
2020-07-23 22:21:13 +01:00
Jeff Young
b60303efdb
Fix crash due to uninitialised variable.
2020-07-23 17:20:32 +01:00
Jeff Young
f2812773d4
Better handling of undefined values in Rule expressions.
...
This is particularly important to keep the user from having to
enter overly verbose statements such as:
A.Type == 'via' && A.Via_Type == 'buried'
when:
A.Via_Type == 'buried'
is perfectly clear.
2020-07-23 16:41:58 +01:00
jean-pierre charras
c254b331f3
Pcbnew: Activate pad fabrication property in pad properties dialog.
...
It was previously an option of advanced config since 6 months.
It is now not optional.
2020-07-23 14:33:24 +02:00
Jeff Young
86c9adbcba
Add auto-completion for DRC rule function calls.
2020-07-22 21:28:02 +01:00
Tomasz Wlostowski
70b98c3b49
router: dump entire event log + annotated PCB upon user request
2020-07-22 18:05:54 +02:00
Tomasz Wlostowski
379aa8f3b5
router: clearer distinction between LOGGER and DEBUG_DECORATOR classes.
...
The first one keeps a log of events (start routing, mouse motion, etc).
The second allows for adding temporary debug drawings and messages which are stored synchronously with the events in LOGGER.
The event stream together with the PCB design (now with UUIDs) can be used to deterministically replay routing bugs as the user sees them.
2020-07-22 18:05:54 +02:00
Tomasz Wlostowski
2a2e389a94
router: auto-guess track posture from mouse movements, experimental!
2020-07-22 18:05:50 +02:00
Tomasz Wlostowski
fd07e94760
router: abstract segment links into a LINK_HOLDER interface. DIFF_PAIRS are now also linkable
2020-07-22 17:04:42 +02:00
Jeff Young
a6b6084a60
Add preflighting for DRC rule function calls.
2020-07-22 14:33:32 +01:00
jean-pierre charras
a61ea1fb0c
Fix a compil warning
2020-07-22 09:02:30 +02:00
Ian McInerney
450107e453
Remove if statement with duplicated branches in router
2020-07-22 00:18:30 +01:00
Jeff Young
fd647a1fa9
Code completion hookup to property manager.
2020-07-21 23:43:10 +01:00
Jeff Young
c52df811ae
Add expression eval to constraint min/max/opt values.
...
Also adds error reporting for above.
2020-07-21 23:43:10 +01:00
Jeff Young
7cbd166df7
Don't complain about duplicate names when the name didn't change.
2020-07-21 23:43:10 +01:00
Jeff Young
beb5bad9b7
Initialize Scintilla with correct braces for sexpr grammar.
2020-07-21 23:43:10 +01:00
Ben Ellis
42a2f13464
Added a check that sexprs isn't empty before popping
...
This fixes a crash on malformed sexprs in the DRC rules panel
2020-07-21 14:52:48 +00:00
Jeff Young
1790c536ef
Allow user layer names to be used in DRC rules.
...
I imagine this will also fix the property inspector, once it
gets merged.
2020-07-20 23:28:54 +01: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
Mark Roszko
3b727b5d16
Make preference groups not selectable
2020-07-20 13:45:46 +00:00
Ian McInerney
20c1492b6a
Initialize pointers to nullptr in copy constructor
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4940
2020-07-20 11:31:34 +01:00
jean-pierre charras
ba90416096
Pcbnew, legacy plugin (for .brd files): remove non working code.
...
This code controls the visibility of items, is not useful and does not
make sense for some items in current Pcbnew version.
2020-07-19 09:32:53 +02:00
Ian McInerney
967587adcc
Guard against dynamic cast failure
2020-07-19 01:47:03 +01:00
Ian McInerney
50b2271f84
Fix missing variable initialization
2020-07-18 23:56:39 +01:00
Ian McInerney
2542d41481
Fix copy constructors for BOARD_DESIGN_SETTINGS and ZONE_CONTAINER
2020-07-18 23:55:06 +01:00
Seth Hillbrand
4aef369ca2
Remove accidentally committed test file
2020-07-18 13:03:22 -07:00
Ian McInerney
7b705af038
Refactor common QA components to create a single common library
...
This moves the program-specific code (e.g. BIU files) into
the program tests.
Also, create title_block.cpp to break a dependency that pulled
in eda_text.cpp when using the TITLE_BLOCK object.
2020-07-18 16:21:15 +01:00
jean-pierre charras
a25f7cc0a4
Pcbnew, footprint editor: make switching layers visibility on/off working.
...
In footprint editor the board is a dummy board not managed by project settings,
so using its settings to manage layers visibility does not work.
Fixes #4924
https://gitlab.com/kicad/code/kicad/issues/4024
2020-07-18 10:31:06 +02:00
Jeff Young
3fd0a3f842
Update text variables even when they're changed from other binary.
...
For instance, you might have PCBNew open but change the variable
value through EEschema > Schematic Setup.
Fixes https://gitlab.com/kicad/code/kicad/issues/4918
2020-07-17 21:05:11 +01:00
jean-pierre charras
e7e1d5140e
Pcbnew, DRAWSEGMENT plot function: add missing plot code for S_RECT shape.
...
Fixes #4905
https://gitlab.com/kicad/code/kicad/issues/4905
2020-07-17 11:26:35 +02:00
Jon Evans
5401f06fce
Don't nag when we can't save project settings
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4164
2020-07-16 22:56:02 -04:00
Jon Evans
5444a1b4b0
Only init display options after creating a canvas
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4909
2020-07-16 22:27:03 -04:00
Jeff Young
944c9eac7c
Allow Update Schematic from PCB to re-link based on refdes.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4306
2020-07-16 18:32:49 +01:00
Ian McInerney
da6d0c9de6
Add cancel to the selection context menu if a tool is running
...
The selection tool's context menu is displayed during the move tool,
so it should contain the ability to cancel the current action.
2020-07-16 15:12:58 +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
Ian McInerney
af729d578f
Unify settings reset buttons into one location
2020-07-16 00:08:16 +01:00
Ian McInerney
b428364a98
Fix memory leak in color settings panel
2020-07-16 00:04:17 +01:00
Seth Hillbrand
7f991ce855
Revert "Set DoubleBuffering to reduce flicker"
...
This reverts commit 106259f6e6
.
2020-07-13 20:23:12 -07:00
Seth Hillbrand
e19a7910f8
Revert "Revert "Set DoubleBuffering to reduce flicker""
...
This reverts commit c18cab6154
.
2020-07-13 20:19:10 -07:00
Jon Evans
d349b24f7a
Unlink board from project before close
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4876
2020-07-13 20:48:18 -04:00
Jeff Young
efc3f8c29d
Remove unused nets when updating PCB.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4247
2020-07-13 22:41:56 +01:00
Jeff Young
1cd2a51db2
Make undo/redo lists protected.
2020-07-13 15:53:36 +01:00
Jeff Young
7340c97ef9
Undo for schematic-wide operations.
...
Editing value/footprint fields of multi-unit components.
Find/Change.
Annotation.
Back annotation.
Fixes https://gitlab.com/kicad/code/kicad/issues/2122
Fixes https://gitlab.com/kicad/code/kicad/issues/4869
Fixes https://gitlab.com/kicad/code/kicad/issues/3933
Fixes https://gitlab.com/kicad/code/kicad/issues/4871
Fixes https://gitlab.com/kicad/code/kicad/issues/3899
2020-07-13 12:32:17 +01:00
Seth Hillbrand
9f09c3872f
Ensure file reads always use the C-locale variant
...
Str2Double assumes current locale. We usually switch the locale when
reading files but we should be using the function that explicitly gets
the C-locale conversion.
2020-07-12 20:03:50 -07:00
Jon Evans
a2041073ee
Skip project backup in standalone mode
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4867
2020-07-12 11:42:05 -04:00
Jon Evans
2ea42196ed
Ensure high contrast mode gets a proper default value
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4864
2020-07-12 11:34:58 -04:00
Jon Evans
2f31bf278b
Fix layer hotkey dispatch
...
Hotkeys received by more than one tool need AF_NOTIFY
2020-07-11 21:59:16 -04:00
Jon Evans
5d118b0700
More visibility settings infrastructure
...
ADDED: Three-state high contrast mode action
ADDED: Save contrast mode in local settings
Also some initial infrastructure for layer presets
2020-07-11 21:59:07 -04:00
Jeff Young
9b92b275de
Remove vestiages of old open-PCB-for-settings hack.
...
We used to have to open a PCB_EDIT_FRAME to get the settings for
the footprint editor and footprint viewer. This necessitated some
special processing when opening a PCB_EDIT_FRAME to actually edit
a board as it might already be open but unloaded.
Since the new settings architecture allows the footprint editor and
footprint viewer to init themselves we no longer need the special-
case code.
2020-07-11 21:19:49 +01:00
Jeff Young
e325d2e18f
Allow Net Inspector to create, rename and delete nets.
...
ADDED: create/edit/delete nets in PCBnew Net Inspector
ADDED: update from PCB now allows updating of changed nets
Fixes https://gitlab.com/kicad/code/kicad/issues/1996
2020-07-11 21:19:49 +01:00
Seth Hillbrand
c18cab6154
Revert "Set DoubleBuffering to reduce flicker"
...
This reverts commit 106259f6e6
.
In its place, we set double buffering to only menubars in an attempt to
find a soluton to #4785
Fixes https://gitlab.com/kicad/code/kicad/issues/4863
2020-07-11 09:43:30 -07:00
Ben Ellis
4486b0b6d6
Fixed bounds checking. Not the root cause but keeps things from crashing.
2020-07-11 02:24:48 +00:00
Jon Evans
d248736f08
Draw ratsnest with colors if color data is available
2020-07-10 21:37:53 -04:00
Jon Evans
72b08f2b18
ADDED: Hide ratsnest for specific nets
...
List of hidden nets stored in project local settings
Hide/Show actions in context menu only for now, will
add them to some more GUI places soon.
Ref https://gitlab.com/kicad/code/kicad/-/issues/1951
2020-07-10 21:06:17 -04:00
Seth Hillbrand
106259f6e6
Set DoubleBuffering to reduce flicker
...
This sets double buffering for GTK and MSW to minimize flicker when
redrawing window elements.
Fixes https://gitlab.com/kicad/code/kicad/issues/4785
2020-07-10 09:29:42 -07:00
jean-pierre charras
2675f69479
Hyperlynx export: use the board current stackup parameters instead of fixed prms
...
Fixes #4856
https://gitlab.com/kicad/code/kicad/issues/4856
2020-07-10 17:30:56 +02:00
Seth Hillbrand
7201e9d7eb
pcbnew: adjust component hash for GenCAD export
...
The previous hash was not unique for changes in integer/boolean values.
Generic hash_combine routines provide decent coverage for limited extra
cycles.
2020-07-09 17:40:30 -07:00
Jon Evans
bb596ac139
Add Move with Reference to Special Tools menu
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4838
2020-07-09 12:02:26 -04:00
Jeff Young
998c216487
Remove some nag tests which keep you from doing a DRC.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4845
2020-07-09 16:22:59 +01:00
Jon Evans
b1b9cef5fb
Full-project automatic backup system
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4763
2020-07-09 13:55:19 +00:00
jean-pierre charras
5226d6b4df
libcommon build: add NGSPICE_INCLUDE_DIR in include list (similar to Eeschema build).
...
Useful when ngspice is build by the developer in a specific folder.
Fix also an other minor compil warning.
Fixes #4851
https://gitlab.com/kicad/code/kicad/issues/4851
2020-07-09 08:46:59 +02:00
Jon Evans
afd432e687
Infrastructure for net hiding
...
LoadProjectSettings changed to take place after the board
has been loaded so that board-specific project settings can
be applied (such as net visibility and color overrides)
2020-07-08 21:59:34 -04:00
Jeff Young
741481591e
NetClass settings for Eeschema.
...
ADDED Eeschema-specific netclass settings including wire and bus
thickness, color, and line style.
Netclasses override individual wire & bus colors and line styles.
If that proves an issue we might look at something more sophisticated
with inheritance.
Fixes https://gitlab.com/kicad/code/kicad/issues/4581
2020-07-08 21:23:25 +01:00
Michael Kavanagh
841b08f9a6
Pcbnew: add Eeschema and Fp editor to tools menu
...
Unify with the Eeschema tools menu.
Fixes https://gitlab.com/kicad/code/kicad/issues/4840
2020-07-08 11:17:27 +01:00
Jon Evans
961fbadd23
Initial infrastructure for net/netclass colors in board
2020-07-07 22:21:45 -04:00
Ian McInerney
ccc0ceb32f
Remove deleted item global variables
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4819
2020-07-07 23:12:17 +01:00
Seth Hillbrand
7cea4b23f1
ADDED: Expand selection in context menu
...
Break out the context menu with heuristically limited choices being
appended to the main list rather than re-selecting
Fixes https://gitlab.com/kicad/code/kicad/issues/4799
2020-07-07 14:18:35 -07:00
Jeff Young
e66523586b
Add Assign Netclass... to context menu.
...
ADDED Assign Netclass feature to EEschema.
Netclass assignments also now shown in status bar.
Fixes https://gitlab.com/kicad/code/kicad/issues/4581
2020-07-07 14:23:39 +01:00
jean-pierre charras
eab98eee1d
3D viewer: use the full board bounding box to define the visible area.
...
Remove also a printf now useless, used for debug.
Fixes #4815
https://gitlab.com/kicad/code/kicad/issues/4815
2020-07-07 11:40:35 +02:00
Jon Evans
b084305b12
Clean up some pcbnew file handling bugs
2020-07-06 21:53:28 -04:00
Jon Evans
a3655225cd
Save selection filter state in project local settings
2020-07-06 21:53:12 -04:00