CHANGED: When doing cross-probe zooming, KiCad zooms the selected
component to fill the screen. This makes it hard to understand the
part in context so users would have to always zoom out manually. This
commit uses the default text height in Eeschema and Pcbnew as a
constant to compare the height of selected parts or components against.
This lets the code determine how big the part is and scale the zoom
wider accordingly. Big parts get less scaling and small part get more.
NOTE: There is a little bit of debug code present. There are #ifdefs
to let developers easily swap in the original KiCad zoom for comparison.
There is also a bool added that can force each program to always perform
the new calculated zoom since KiCad ignores zooms that are close to the
current value. This debug code can be removed later as desired.
CHANGED: When Pcbnew has the view flipped, it causes cross-probe zooming
to go the wrong direction. Instead of zooming in to the selected part,
it zooms very wide. The problem is the x dimension of the screen size
becomes a negative value when the view is flipped, so "fabs()" is used
to correct it.
Fixes https://gitlab.com/kicad/code/kicad/issues/5157
Remove extraneous use of FLAG0 from tracks cleaner (it was checked but
never set).
Fix issue in expand connections where two parts of it couldn't agree
on the same flag (BUSY vs SKIP_STRUCT), and where the second part was
clearing the flag instead of setting it.
Remove obsolete HIGHLIGHT infrastructure (we now use selection).
Remove extraneous use of BUSY flag in several places (it was never
set).
Note: this is a basic implementation but it could be
improved once we include bus information in the netlist
and pcbnew can natively keep track of buses and nets
instead of just nets.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4158
The canvas size is not guaranteed to be strictly > 0, so we need to
enforce a minimum returned size before dividing by it or passing to GAL
initialization
ADDED: Back annotation algorithm,
eeschema back annotation dialog
CHANGED: added some minor helper methods to SCH_REFERENCE_LIST and SCH_REFERENCE,
split SCH_REFERENCE_LIST::CheckAnnotation on 2 parts to reuse code
This allows us to make the various netlist and pcb update routines
more atomic and less reliant on carefully sequenced asynchronous
messages.
This is also a prelude to adding support for footprint testing
without a netlist.
Shorten and improve informational content of messages, errors and
warnings.
Remove redundant info messages when they shadow an action, warning
or error message.
Improve title of "Update Footprints" to make it clear that it's
recreating footprints which have different assignments rather than
updating footprints from the library.
Don't perform the dryRun twice.
Don't use the old netlist method of loading footprints. We get
better error reporting if we do it ourselves.
Be more careful checking the last pad when checking for single-pad
nets. If the last pad has no net then pad != previouspad at the
end of the loop.
Fixes: lp:1787255
* https://bugs.launchpad.net/kicad/+bug/1787255
Board update KiWay request may now contain options in the message
payload:
- "no-annotate": do not enforce annotation
- "quiet-annotate": annotate without displaying a dialog
- "by-reference": update netlist by reference, no dialog displayed
- "by-timestamp": update netlist by timestamp, no dialog displayed