Move most of the update firing to the file system watcher (except for
windows network shares that still need timed updated). Gate the repo
status for sync
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20133
Push the git checks from the main thread into child threads to prevent
resource contention in some cases where Windows machines might have many
files in git that are _also_ being managed by Google Drive
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20078
The big grey X and dimming the component made it look like the component
was no longer a part of the circuit, rather than just being excluded for
a single purpose.
The changes the display to make a more subtle grey outline with an icon
in the corner to indicate that this refers to simulation.
Previously, if multiple error markers were placed at the same location,
the selected marker was not visually differentiated from the unselected
ones, even if one was at the top of the stack. To fix this, Need to pass
overlapping markers to the FocusOnItems() function instead of calling
FocusOnItem() with only the selected marker.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9778
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo. Avoids needing to
repeatly update.
Also updates AUTHORS.txt from current repo with contributor names
The Cairo printing system is already used to print to printer, it can be
now used to print to clipboard and fixes the issue with opacity < 1.
However to use it in clipboard, the advanced config needs to set the new
EnableEeschemaExportClipboardCairo = 1 (for now)
The default is false.
When two arcs only barely overlapped, we cannot predict the actual point
ends as they exist in the error margins. Since arc tracks have
different radii by definition, rounding errors in calculating the
overlap angle led to some mistaken identification of parallel segments.
This adds an advanced config flag to set the preferred cutoff point
(currently 0.001°) for whether two arcs actually overlap in shared angle
space
This makes it easier to control what snap points you are aiming for
without accidentally activating objects just by mousing near them
on the way to somewhere else.
ADDED: Add support in Pcbnew for exporting ODB++ files under Fabrication
Outputs, base on ODB++Design Format Specification (Release v8.1
Update 3 February 2021).
Note: There is still a lot of work to do if we will make the feature as
complete as the ODB++ spec. However, the current functionality's
completeness is already sufficient to cover general production
scenarios. I have compared the output results with Gerber files by
DFM tool and the accuracy at the graphic level should be able to
cover most usage scenarios. Additionally, I am very grateful to
the great open-source project Horizon EDA for giving me a lot of
inspiration in terms of ideas.
The feature can be enabled by adding "EnableODB=1" to the kicad_advanced
configuration file.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2019
When working near snap anchors, which come and go
rapidly, it's often useful to see what snaps have been
calculated. Add an advanced config to show these
(EnableSnapAnchorsDebug) on an overlay layer.
With more polish this could be a hotkey or something.
Previously, fills could end up just barely touching, leading to DRC
errors even if there was enough room to fill the remaining space. This
was due to how we shrink/expand the zones to remove small features. By
adding a zero-width line between points that should be connected, we
expand back to the correct width.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14130
At 10, a strict recursion shows a noticable lag in schematics with
larger numbers of fields. 2 may be a sweet spot unless we find a
schematic where this does not work
Add direct handling of quadratic beziers to save compute time and number
of points. Update cubic interpolation to reduce number of points
generated for a given smoothness
Cache data on open and used cached data to avoid multiple re-calcs
Remove minimum line length and number of segments and replace with
standard max error level. Allows us to specify the tolerance of bezier
interpolation
Library watches only need a single directory or immediate children. The
project watcher should have a sensible limit to the total number of
files it tries to track.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15717
Refactors `SHAPE_POLY_SET::fractureSingle()` to be more efficient, while
not changing the actual algorithm:
* increase cache locality by using contiguous arrays instead of what was
effectively a linked list
* reduce latency and jitter by replacing per-edge allocator calls with
ahead-of-time std::vector reserves
* increase cache efficiency by making the vertex struct smaller
* replace O(n^2) leftmost edge search with O(n log n) std::sort
* sort the polygons instead of the edges
* cut iteration count in half in the remaining O(polygons * edges) part