The parameter check was triggered by a grid clear event which was sent
after the current page number was changed, creating a mismatch between
the old and new parameter list lengths.
Fixes: lp:1754738
* https://bugs.launchpad.net/kicad/+bug/1754738
Eagle tracks can have curves. We approximate this using the
segments_per_360 define. This results in 32 segments for a 360-degree
curve. We could increase this value for curved tracks to get closer
tracking with the Eagle layout if needed.
Fixes: lp:1753289
* https://bugs.launchpad.net/kicad/+bug/1753289
This primarily keeps us from overriding "truth" with data that
might not have even been saved when closing ModEdit.
Fixes: lp:1752543
* https://bugs.launchpad.net/kicad/+bug/1752543
Build pcbnew_kiface files as object target that can then be linked in to pcbnew.kiface and _pcbnew.so
Only create _pcbnew.so target if scripting modules is enabled.
For linux builds only.
PCB_BASE_FRAME::PlaceModule() calls CN_CONNECTIVITY_ALGO::Update()
on the new footprint that does not have nets assigned. The Update()
method first removes the footprint (but it has not been added, so
nothing happens) and then adds it with all pads marked as not connected.
Later, when BOARD_COMMIT is pushed - it tries to add the same footprint
again with nets assigned, but the pads are already registered, therefore
they are discarded.
To prevent this, PlaceModule() does not call CN_CONNECTIVITY_ALGO::Update()
for the just created footprint, as it is handled by BOARD_COMMIT later.
There are a few steps to assign correct nets to zones/track/vias:
- create a net name to pad map
- perform 2 stage netlist update (fix timestamps and then references)
- compare new net names with the previously created net map, save the
differences as a old net to new net map
- remap zones/tracks/vias using the map created in the previous step
The main advantage here is it correctly handles unnamed nets (i.e. ones
without any net labels attached), which might be changed by KiCad
netlist generator.
It's too expensive to fetch the timestamps when the github
server is busy. See Dick Hollenbeck's comments at the top of
github_plugin.cpp for more info.
Also adds some safety to the other caching algorithms after
seeing github_plugin's wild-west usage of the kicad_plugin.
Fixes: lp:1753143
* https://bugs.launchpad.net/kicad/+bug/1753143
When aligning module centers, it can be hard to determine which item
will be chosen for the alignment target when it chooses based on the
median of the center values. Instead, this patch chooses the alignment
target as the top and left most items of the Y and X centering,
respectively
When aligning in pcbnew, check for pad/module locks before performing a
move and query the user.
When aligning on pads, don't move the pad without moving the footprint,
so we don't break footprints.
Fixes: lp:1751352
* https://bugs.launchpad.net/kicad/+bug/1751352
Remove a throw in the Eagle importer which just threw a wedge
in the works, and return a default modTime when the file hasn't
been set yet.
Give the gEDA importer the multi-file cache management performance
improvements from the kicad_plugin.
Fixes: lp:1752719
* https://bugs.launchpad.net/kicad/+bug/1752719
reimplement the centerpoint distribution and use it when the items to be
distributed overlap leaving no gap to use for spacing
Fixes: lp:1748763
* https://bugs.launchpad.net/kicad/+bug/1748763
Dispatches a TA_MODEL_CHANGE event when the design rules dialog is
closed, the intention being to cause the router tool to re-sync its
design rule information
Fixes: lp:1462929
* https://bugs.launchpad.net/kicad/+bug/1462929
Frame, dialog and config file couldn't agree on whether to use
internal units or not.
Frame now stores internal units, and they're now mapped on the
way in/out of the config file. Dialog was already assuming they
were stored in internal units (though they were previuosly not).
Fixes: lp:1751435
* https://bugs.launchpad.net/kicad/+bug/1751435
Too many external applications fail to touch the parent directory.
Also removes FP_CACHE_ITEM lastMod times and dirty flags as we've
always loaded libraries atomically anyway.
Claws back some of the performance lost by being more efficient
with cache management for sequential calls to Enumerate and then
Load.
Fixes: lp:1750936
* https://bugs.launchpad.net/kicad/+bug/1750936
Add a library selector to the save dialog. Initialize it to the
footprint's library. This way a straigh-up save will do what's
expected.
However, the user can still select the active library (or any
other library) if they really did want to move the footprint.
Fixes: lp:1750918
* https://bugs.launchpad.net/kicad/+bug/1750918