The code that checked for pin conflicts to determine if a symbol needed
rescued did not check either the pin convert setting so it was possible
for a pin from the other convert on symbols that do not have identical
units to appear to not have a pin conflict. Add tests for pin unit and
convert setting to prevent that from breaking the comparison. This must
have always been broken.
Fix the symbol preview widget to prevent drawing all symbols on top of
each other (if we need to do this the code will have to be revised) and
also show the convert if valid.
Fix broken symbol cache library when saving alias symbols.
Fixes https://gitlab.com/kicad/code/kicad/issues/3879
(cherry picked from commit e91f1f57dd)
The 3D viewer does not show the issue on solder paste layer having
negative clearance.
However the bug was here and not seen just because some draw code was different:
The code tried to draw outlines with segments having a negative thickness.
It happens mainly on solder paste layers.
For some obscure reason, on Windows, when killing Kicad from the Windows task manager
if a editor frame (schematic, library, board editor or fp editor) is open and has
some edition to save, OnCloseWindow is run twice *at the same time*, creating race
conditions between OnCloseWindow() code.
Fixes#4072https://gitlab.com/kicad/code/kicad/issues/4072
Previously, the region was a usual polygon with arc approximated by segment.
Using a region with arcs is a better way because it allows CAM tools to
identify this region as a round-rect pad.
Similar to master branch, commit 9cb3333d05.
The margin fix prevented some schematics from printing. Reverting in
favor of transitioning to the Cairo print base in eeschema
(cherry picked from commit 9de7547c25)
When the solder mask min size is > 0, pads are no longer flashed or regions items.
Good Gerber files need pads flashed or regions items.
Non 0 solder mask min size is reserved to special cases (home made PCBs for instance)
From master branch.
Previously, for historical reasons, they were added only if
Include Netlist Attributes option was on.
But Aperture Attributes have nothing to do with Netlist Attributes, and good
Gerber files must include them.
From master branch
Previously, to list changes, the Reference field was used in comparisons.
In complex hierarchies, this is incorrect: the Reference field contains
only the last displayed reference, not the reference of a given sheet.
The comparison uses now the sheet paths for ref and unit selection.
From a similar fix in master branch.
In the case where the footprint arc has a non-normal angle, we cannot
represent this in pcbnew and it corrupts the gerber output. Therefore
we drop the invalid arc and continue to load the footprint/board.
Fixes#3918 | https://gitlab.com/kicad/code/kicad/issues/3918
(cherry picked from commit 3e0ff72720)
The commit takes the module edit flag when resetting the tool. All
tools should reset this flag when we setup the Module editor.
This is slightly different in master and v5, so this is a rework of
7bdf71abc
Fixes#3973 | https://gitlab.com/kicad/code/kicad/issues/3973
The symbol check output the HTML message for each item. This is _very_
slow and can lock the system reponsiveness. Changing to a queue/flush
method is much faster
cherry-picked from 245b778454
Commit d7272b7f5e fixed the use of
the eagle DRC to change the library pad shapes. This was also
applied incorrectly to SMD stacks.
Remove the references to m_rules in packageSMD() and the code
that deals with them. eagle 7.7 does not have any SMD pad options
other than rectangle with rounding.
(cherry picked from commit 070c6b8ce0)
When drawing to a scaled DC, the window doesn't reflect the expected
size if scaled after. This causes elements drawn on the edge to reflect
back into the drawing area instead of being cut off.
We can simply scale our own values to avoid this issue.
Fixes#3849 | https://gitlab.com/kicad/code/kicad/issues/3849
(cherry picked from commit 5b6a4d794f)
The Gerber attribute deletion command (%TD,xxx) always cleared all attributes,
instead of clearing xxx attribute.
Therefore some attributes were not always displayed.
From master branch, commit 7206b567
When searching for fields, the code was sometimes comparing
translated and not translated names. This is an issue for mandatory fields,
in non English languages.
From master branch.
Previously we call only setlocale( xx, "C" ), but it was not enough on Windows.
Now we call wxLocale("C")
wxLocale calls setlocale, but also make some others initialization in wxWidgets.
It fixes some issues related to comma versus point as fp separator.
Especially wxWidgets warnings are no longer thrown, and a one case of incorrect
conversion is fixed.
However, wxLocale( "C" ) also switches the current translations to English, so
loading files can have a slightly different behavior
The preferred list isn't actually in use anymore at this point, so
it currently has no effect other than to mess things up since we
aren't keeping track of which modules have been rejected when we
check the module count.
Fixes https://gitlab.com/kicad/code/kicad/issues/3721
(cherry picked from commit d02c0da3ab)
(From master, commit 8f3e8cf)
Sometimes a dxf curve is a "degenerated" bezier curve having only 3 points.
(a control point is at same location as a end point)
This commit fix incorrect import of these curves.
Fixes#3845https://gitlab.com/kicad/code/kicad/issues/3845