wxApp::DoIdle fires the full window-tree UI update sweep between
every Wait() iteration in interactive loops. With the somewhere around
150 bound handlers, SearchDynamicEventTable dominates CPU time at
interactive frame rates.
We fix this by setting the update interval to 200 ms for the duration
of performRouting, performDragging, and InlineDrag and update the default
global default from 0 to 50 ms (200Hz).
Clamp all imported object dimensions (pad size, track width, via
width/drill, circle radius) to a configurable minimum. Default is
1000nm (1um), enough to prevent zero-size objects that crash the
renderer or cause division-by-zero in DRC without affecting real
designs.
Applied at 10 creation points in the PADS ASC importer: pad shapes,
test point pads, fallback pads, track widths, via dimensions, copper
shape widths, footprint decal circles, and board graphic circles.
Add complete import support for PADS ASCII (.asc) files, covering both
PCB layouts and schematics. The importer handles board outlines, copper
pours, routing with via inference, footprint decals, net assignment,
design rules, and component placement for PCB files. For schematics, it
supports symbol building from CAEDECAL definitions, multi-gate and
multi-variant parts, power symbols, wire routing, net labeling, arc
graphics, title blocks, and hierarchical sheet connectivity.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19944
Right now, behind advanced config for testing. Zones that are lower
priority get a second bite at the apple after higher priority,
overlapping zones have their islands knocked out. Adds some additional
time to the zone fill, depending on the zone configuration
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14388
Uses lockfile to prevent overlapping commits
Ensure restore happens recursively
Remove files added after restore point
Prevent duplicate savers from overrunning each other
We have a number of potential snap points and we would prefer to snap to
identified snap points on objects in the view over ethereal points
created by intersections
LoadPerspective allows a easy way to store/load frame geometry.
Unfortunately it easy create broken geometry frame (missing or misplaced toolbars
for instance) when the number or the type of items has changed between last saved
geometry and the geometry frame in use when loading old Perspective. And the only
one way to fix a broken geometry is to delete the config json files.
So the saved Perspective is loaded only if EnableUseAuiPerspective advanced option
is set to 1, mainly for developers.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21828
Reverts most of the fix for 9778. Highlighting
multiple markers creates confusion in both the
status bar and how the associated clearance paths
are shown.
Also adds more clearance path graphics to make
the need for a fix to 9778 somewhat less acute.
Also makes clearance graphics scale with marker.
When multi multi-run data are created, the plot output should reflect
the available data combinatorics. This also adds an advanced config
flag limiting the total number of allowed plot lines. The advanced
config flag might be moved to a use config at some point or changed to a
time limit
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21871
Please do not attempt to use this yet as it is a work in progress. Given
large number of merge conflicts, I pushed this partial commit to save time
rebasing.
All of the user interface is hidden behind the "EnableVariantUI" advanced
configuration flag until variants are ready.
Creates a Type-3 representation of our stroke font, embeds it in the PDF
and then causes text to be represented in that font.
This prevents the need for over-stroking and keeps our PDFs searchable
and accessible
1) Always be explicit about what the delimiters are
2) If space is a delimiter, we probably want to skip
empty fields (wxTOKEN_STRTOK)
3) If space is not a delimiter, we often need to
trim the resultant tokens
4) Be more lenient about \t\r\n (and when they are
included, include them in the same order)
Makes it harder to enter and harder to exit a snap. ideally this should
help make snapping more intuitive and easier to use. Once you have a
snap, it is harder to lose it but it avoids being overly snappy in the
begining
We don't use wxWidget DPI (which is the screen DPI) for our on-screen
display. Instead, we use 91 (?!?). Make this configurable in advanced
config and use the set value in our scaling widget
How you ask? Plot first -> then read the PDF and print directly to the
platform-specific printers. Roundabout? Yes. Better than wx printing?
Darnbetcha.
Also allows multi-size page printing and proper margins and print
preview
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1831
If you set the env var KICAD_EDIT_ADVANCED_CFG=1, you get a new menu
option in the KiCad project window's Edit menu. Lets you modify the
settings for advanced config graphically without having to
remember/lookup the magic incantation
WALKAROUND::singlestep is used by both shove and walkaround modes and
can bog down when applied to clusters with many objects. In these
cases, we are unlikely to find a viable solution and it is beter to
allow the user to find a different ending position
(cherry picked from commit d9cfb94281)
* Manage the settings using the settings manager for better lifetimes
* Better architect the internals and JSON to make it easier to identify
the various tool types
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.
Now the updating is fixed in d90862b444,
the hover timeout is shorter because it's not mistakenly waiting a
random-ish time for the next mouse movement. So this adjustment is not
required. In fact, if anything, it may be better to go the other way.
This reverts commit 7080d99464.
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