Clang++ seems to be in left-field here as it processes a stringstream
1.0X1.0 >> double as a hexadecimal floating point ('X' character) and
throws an error rather than converting 1.0 and stopping when it reaches
a non-numeric character. This causes errors when exporting step on Mac,
which uses clang++ by default.
Adding spaces to the string is more explicit and doesn't break gcc. It
will be sufficient until we get rid of kicad2step as an external
utility.
Fixes: lp:1778564
* https://bugs.launchpad.net/kicad/+bug/1778564
The lock file code would reset the lock file every other time the same
board file was opened in Pcbnew in the stand alone mode. This created
the perfect toggle switch causing the board to be reloaded every other
time the same board was selected.
Fixes lp:1777599
https://bugs.launchpad.net/kicad/+bug/1777599
OpenMP is not available for macos, so moving to a std::threads
implementation brings platforms into shared code.
This also reduces the OpenMP overhead when computing connectivity and
ratsnests.
Fixes: lp:1780130
* https://bugs.launchpad.net/kicad/+bug/1780130
(cherry picked from commit c0f067bf90)
The CMake scripts calculate the install path for python scripts by
distutils.sysconfig.get_python_lib(
plat_specific=0,
standard_lib=0,
prefix=''
)
which generates a string in line with
lib/python2.7/site-packages
This string ends up in the CMake variable PYTHON_DEST and is used by the
install step as destination directory for pcbnew.py.
There has been a hard-coded assumption on the content of that string in
PcbNew which is not compatible with FreeBSD 11.1.
This commit eliminates the hard-coded assumption in PcbNew and reuses
the install path as known by CMake.
Fixes: lp:1777921
* https://bugs.launchpad.net/kicad/+bug/1777921
Commit 73c229714 was a bit of a sledgehammer for the associated problem
of degenerate points. This commit replaces that one by only performing
additional simplification of the zone polygons on those polygons that
fail our initial triangulation attempt.
(cherry picked from commit 3ebba6cbe1)
Calls the simplify/fracture polygon code on any polygon prior to
tesselation. This avoids issues with degenerate polygons where the
degenerate points are not sequential.
Fixes: lp:1790534
* https://bugs.launchpad.net/kicad/+bug/1790534
(cherry picked from commit 73c2297144)
Triangulation of zones can be time consuming for large boards. This
adds a std::thread implementation of parallel zone loading to speed this
process on multi-core machines.
(cherry picked from commit a04ef37d67)
Replaces Poly2Tri with updated code to process polygons faster and more
robustly. Notably, we can now handle overlapping holes in the polygons,
allowing us to cache the triangulation of complex boards
(cherry picked from commit a6325aab29)
When running GAL, the connectivity is built when the board loads, so the
extra call to rebuild connectivity is not needed.
(cherry picked from commit 13b96799ea)
This prevents non-copper layers from being included in the connectivity
search. It also limits the layer search in the connectivity RTree to
just the copper layer range.
(cherry picked from commit f87cb64d65)
Previous commit mistakenly included the full clearance for the rounded
rectangle circle. The CFILLEDCIRCLE2d takes the radius rather than the
diameter.
( cherry-picked from d139a4969 )
Apply same logic of using a filled circle to represent a zero-length
element as a filled circle with radius of the line.
(cherry-picked from 8efcf81cf)
Fixes: lp:1785823
* https://bugs.launchpad.net/kicad/+bug/1785823
Under certain conditions, it was possible for the block handler to be
entered with no mouse capture callback which would raise a rather
cryptic error message to the user. This should have always been an
assertion so users will not see this issue in release builds.
Fixes lp:1791839
https://bugs.launchpad.net/kicad/+bug/1791839
Repeating find with the same search string would result in a not found
error for absolute search strings. Don't clear the found item if the
search string did not change from the previous search..
Fix another minor bug where the do not warp mouse pointer option was
always checked when the find dialog was called from one of the gal
canvases.
Fixes lp:1793300
https://bugs.launchpad.net/kicad/+bug/1793300
Zones can be explicitly merged even if they do not have the same
parameters. Automatic merging should only occur when all of the zone
parameters are exactly identical to allow for area-specific zone
parameters.
Fixes: lp:1695761
* https://bugs.launchpad.net/kicad/+bug/1695761
Keepout zones can have different layer sets and different restrictions
that should not be combined unless they are identical.
Fixes: lp:1789062
* https://bugs.launchpad.net/kicad/+bug/1789062
We had been deselecting items after calling edits to be safe in case the
item was deleted/exchanged by the edit. The item pointer itself remains
valid even when deleting as it is assigned to the undo stack. But it
should not remain visible or selected on the schematic if it is removed.
This tests for removed items by checking whether it (in the case of
first-level BOARD_ITEMS) or its parent (in the case of footprint item
components) remain in the view list after editing. If they are still in
the view list, then we re-select them.
Fixes: lp:1765774
* https://bugs.launchpad.net/kicad/+bug/1765774
Fixes: lp:1775946
* https://bugs.launchpad.net/kicad/+bug/1775946
Snapping while dragging depends on the current net being assigned during
dragging. This initializes the placer to hold the current net while
performing inline dragging. The placer is reset along with the dragger
in StopRouting(). This fixes the difference in snap between drag and
create new route.
Allow corner adding to polygons in both module editor and board editor.
The board editor was already allowed but only through special types.
The module editor is now sychronized to the same process and both
recognize standard context menus
Fixes: lp:1782966
* https://bugs.launchpad.net/kicad/+bug/1782966
When constraining moves, the cursor snaps to grid but does not
represent the position of the final edited point. The point is rotated
to the nearest snap angle, while the vector length remains unchanged
resulting in a line longer than intended and off-grid.
This adds a grid-snap after the constraint is applied.
Fixes: lp:1792655
* https://bugs.launchpad.net/kicad/+bug/1792655
The symbol library table rescue candidate was only using the item name
of the library ID object which was being compared to the fully formatted
library ID causing a comparison failure so no instances of any rescued
symbols was shown in the dialog.
Fixes lp:1791805
https://bugs.launchpad.net/kicad/+bug/1791805
Even though slash is a valid character in symbol names, it is a revision
separator, but is not the case with Eagle symbol names.
Fixes: lp:1791653
* https://bugs.launchpad.net/kicad/+bug/1791653
(cherry-picked from commit 2c217499)
Spice may include a list of directives that are wrapped with
.control and .endc. Such directives do not have a dot prefix, so
they need to be handled in a special way.
Fixes: lp:1787902
* https://bugs.launchpad.net/kicad/+bug/1787902
(cherry-picked from commit 36f2eb11)
Normally working at a zoom level when a footprint is not fully displayed
indicates that the user modifies other components. Selection Tool used
to discard footprints that had area larger than the viewport area, but
it may make sense to select them if there are no other candidates.
Fixes: lp:1789578
* https://bugs.launchpad.net/kicad/+bug/1789578
(cherry-picked from commit 5993b330)
Certain distribution does not handle GLVND well, as the result the
accelerated canvas is not enabled. For the time being it is better to
keep using the legacy preference.
Thanks to Aurelio Lucchesi for investigating the cause.
Fixes: lp:1781581
* https://bugs.launchpad.net/kicad/+bug/1781581
(cherry-picked from commit 01925fd6)
Previously, when creating a new instance of a sheet, the full set of references
was cleared.
Moreover, if this sheet has sub-sheets, the annotation was incorrectly handled
Now only (and all) new sheet path(s) created have a reference cleared, as expected.
(new sheet paths can be more than one, if the new instance of the sheet has sub-sheets)
Fixes: lp:1789048
https://bugs.launchpad.net/kicad/+bug/1789048