For legacy boards, the setting is picked up from the board outline
thickness. If the board outline has mixed thicknesses, then the
max is used and a warning is displayed.
Fixes: lp:1797787
* https://bugs.launchpad.net/kicad/+bug/1797787
There is a circular dependency between the GRAPHICS_IMPORTER object and
the GRAPHICS_IMPORT_PLUGIN object which makes sharing the settings in
the GRAPHICS_IMPORTER unwieldy. This fix is a ugly hack that resolves
the issue. The underlying issue will require some major refactoring.
Fixes lp:1821234
https://bugs.launchpad.net/kicad/+bug/1821234
Improve padding, spacing and alignment of dialog layout.
Fix title capitalization.
Make file dialog wildcard string translatable.
Remove fixed initial dialog size to allow sizers to work their magic.
Replace OK button event handler with TransferDataFromWindow.
Remember last line width units between dialog instances and sessions.
Save configuration file settings in a separate group and remove GfxImport
prefix from the entry names.
Add fencing to dialog header file to prevent nested includes.
Fixes lp:1822568
https://bugs.launchpad.net/kicad/+bug/1822568
Reverting changes causes the item to become invalid. This can cause
issues when we have dangling pointers for the VIEW routines left over.
Until we implement a method of passing the reverted element back up to
the calling routine, we need to remove the selection for each Revert()
call.
Fixes: lp:1821909
* https://bugs.launchpad.net/kicad/+bug/1821909
When removing a point from the polygon, the vertex is removed before it
is tested for validity. If it fails validation, the edit is reverted
and the point count doesn't change, so the view update only modifies the
existing points. But the revert may also have changed the shared
pointer to the point array, invalidating the view's copy.
Fixes: lp:1821909
* https://bugs.launchpad.net/kicad/+bug/1821909
This inserts a translation map in the layer names so that the old stable
files with Italian/French layer names get updated to the standard
English layer names (instead of not opening).
Fixes: lp:1370575
* https://bugs.launchpad.net/kicad/+bug/1370575
Save/restore default netclass.
Read layers back in with correct syntax ('.' between keyword and layer name).
Write layers to project file.
Read/write layer enablement bits.
Don't set solder paste margin min to 0 (most of them are negative).
Fixes: lp:1811990
* https://bugs.launchpad.net/kicad/+bug/1811990
the filled areas can use a hatch pattern (crossing lines) using square holes.
The zone filler removes too small holes (truncated holes) from hatch pattern.
It avoid to create small holes when a hole pattern is truncated by the filled area base shape.
Tab through the grid vertically, then horizontally, as the fields
are laid out with "related" fields (like the co-ords) vertically.
Also neaten headers.
Fixes: lp:1821887
* https://bugs.launchpad.net/kicad/+bug/1821887
Commit 6006703798 fixed a crash but broke the filled zones changes detection.
Filled zones were always seen as not up to date due to the fact the filled areas were cleared too early.
The up to date detection is also optimized: the old filled polygons are no longer stored.
Instead of, the MD5_HASH is calculated and stored before clearing the filled polygons.
Autosave was not working correctly, partly due to different
implementations in eeschema and pcbnew and partly due to a mistaken
refactor at some point during v5 development. This unifies the expected
autosave prefix to _autosave- for both pcbnew and eeschema. It also
unifies the expected suffix for the backup files to -bak.
Fixes: lp:1820433
* https://bugs.launchpad.net/kicad/+bug/1820433
A zone refill display progress bar is shown when deselecting the zone after geometry changes.
However, on Linux, there are some artifact between the progress bar refresh and the board view refresh:
the filled areas are incorrectly shown: the insulated islands remain displayed,
although they are removed from the actual filled areas list
So it is disabled until a fix is found.
When dragging, you will seldom want to snap to the original item. This
commit prevents the "size of track" snap to the original item and
replaces it with an auxilary grid origin for the snap. This means
effectively that the snap will happen to grid for the original item
unless the cursor is closer to the original item line than it is to the
grid crossing.
Fixes: lp:1820248
* https://bugs.launchpad.net/kicad/+bug/1820248
Previously, in many cases the selected zone was refilled on exit selection, even if the zone was not modified.
This is annoying, because the zone fill can be really time consuming, and cannot be called without a good reason.
Now the refilling is made only if a zone parameter is actually modified.
The bounding box calculation needs to be fast and is threaded in many
places in pcbnew. We cannot invalidate items (the function is const but
this wasn't caught at compile-time for some reason) when getting the
bbox. This shouldn't be an issue as the m_BezierPoints is rebuilt each
time the curve is updated, so rebuilding during the bbox seems extra.
Fixes: lp:1819984
* https://bugs.launchpad.net/kicad/+bug/1819984
Removing existing fills will prevent re-drawing invalid polygons before
they are ready. This seems to happen on Macs more easily due to redraw
timing.
Fixes: lp:1819553
* https://bugs.launchpad.net/kicad/+bug/1819553
Allows 0 to 4 chamfered corners, not only one.
A custom shape allow this kind of shape. However because it is a primitive,
it is easier to edit and it support thermal reliefs.
This was due to the stub removal tests if a stub end is outside a solid area to remove it.
There is a corner case: is the stub end is exactly on a solid area outline extra segment
created by Fracture() used in calculations.
The stub removal tests are now made before fracturing.
Fixes: lp:1819317
https://bugs.launchpad.net/kicad/+bug/1819317
The module refdes always increment by one. This is problematic
for two reasons:
* It doesn't work when more than one FP is selected (say you have
C1 and C2, you get C1, C2, C2, C3)
* It messes with simple panellisations
The 5.0.x behaviour is to not renumber in Pcbnew, so revert to
that behaviour.
Better refdes incrementation can come post 5.1, as this will need
new strings and UI.
Fixes: lp:1819106
* https://bugs.launchpad.net/kicad/+bug/1819106
Disable the text update event for the orientation cutom value field before
updating it when the radio buttons are selected. This allows to use the
conventional EVT_TEXT handler, rather than KEYDOWN, which has two effects:
* Tabbing though the dialog no longer sets custom orientation
* Click-driven clipboard actions trigger the update correctly.
Introduce a helper function in validators.h to assist in updating
validated fields without triggering further events.
Fixes: lp:1819006
* https://bugs.launchpad.net/kicad/+bug/1819006
When checking for closed outlines, we generate a board area using the
pcb structure. We now also check for overlapping outlines due to
lp:1818163 However, the DRC maintained its previous outline before
generating the new one, causing an overlap error.
This regenerates the board outline from zero for each DRC run.
Fixes: lp:1819012
* https://bugs.launchpad.net/kicad/+bug/1819012
pcbnew refreshes the viewItem for the worksheet multiple times. This
requires setting the filename to get parameters displayed on the
worksheet correctly.
Fixes: lp:1819000
* https://bugs.launchpad.net/kicad/+bug/1819000
Depending on thermal reliefs size, the polygons could be self intersecting,
and these self intersecting polygons are unexpected in zone calculations.
Other fix: the width of thermal stubs is clamped to the size of pads.
Previously, a bug in clamping calculations prevents constraining thermal stubs width.
Fixes: lp:1818752
https://bugs.launchpad.net/kicad/+bug/1818752
Set the focus to some control in the copper zone, non-copper zone, and
keep out zone dialogs required for the default button action to work
properly. This only seem to affect windows dialogs.
Fixes lp:1818397
https://bugs.launchpad.net/kicad/+bug/1818397
wxWidgets has several bugs that result in cell editors being closed
right after they're opened. There are two wxWidgets hacks to
partially address this: the SetInSetFocus() hack, and a slow-click
hack. We used to try and work-around these bugs ourselves for
single-click access, but this changelist moves those over to
wxWidget's slow-click hack.
Fixes: lp:1817965
* https://bugs.launchpad.net/kicad/+bug/1817965
Added checks to StrCmpNum() function in common/sting.cpp to prevent
iterating past the end of the sting. Also removed length of string
parameter since it did not seem to be used anywhere.
Fixes lp:1818157
https://bugs.launchpad.net/kicad/+bug/1818157
* fp editor: ensure axis are drawn after switching the backend
* DIALOG_PNS_SETTINGS: ensure violate DRC option is correctly enabled/disable when opening the dialog.
Violating the DRC cannot happen in shove or walk around mode as we use
the DRC to calculate these actions. The tooltip explains this as well
but we need to explicitly disable the checkbox to prevent users from
thinking that they can complete DRC violating tracks in other modes.
Introduce a shortcut method to set tab ordering and use it in
the dialogs that override the tab traversal orders:
* Eeschema sheet properties
* Pcbnew Move exact
* Pcbnew Move relative
Also set some initial focus fields in the same dialogs.
Tidy a few includes.
Fixes: lp:1816009
* https://bugs.launchpad.net/kicad/+bug/1816009
Includes Edit Text and Graphics Properties and Edit Track and Via
Properties. It's also no longer board-specific as it turns out the
board timestamp is always 0 anyway.
When moving user user units out of the global, we missed that Python
calls were using it. This re-adds a function to retrieve user units
allowing the python scripts to show users dialogs in their preferred
units.
The default hot key definition for toggle high contrast mode was 'H'.
On windows, the menu accelerator handler code was grabbing the character
so it would not appear in the filter text control. This is expected
because the windows wxWidgets code hooks this at the application level
so that once a menu accelerator key is found, all further event handling
for that key stops. Changing the hot key definition to 'Ctrl+H' resolves
the issue.
Fixes lp:1803556
https://bugs.launchpad.net/kicad/+bug/1803556
The best size was calculated from a default size.
This default size (calculated by wxWidgets) was fully broken with some texts in a few languages.
So now this best size does not use this default size.
Fixes: lp:1816315
https://bugs.launchpad.net/kicad/+bug/1816315