This involved adding some extra infrastructure to be able
to handle the case where a track that is sitting in the
router's commit waiting to be added to the board actually
needs to be deleted instead.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8419
Differentiates better between the EDA_ITEM IsModified(), referring to
items themselves changing and the EDA_SCREEN IsContentModified(),
referring to whether we have made any unsaved changes.
Depending of Window managers, some texts were truncated.
Also avoid to write a sentence with the beginning in one widget,
and the end in another widget: it makes the sentence not translatable
wx/wx.h includes all wxWidgets .h files, and sometimes creates collision
names in #define between kicad and windows headers
Moreover, blindly including a lot of useless files is compil time consuming
REMOVED: Update schematic option from geographical annotation dialog due
to potential issues with incomplete and/or broken updates. Use "Update
Schematic from PCB" tool to update reference designation changes.
Forcing the footprint reference designator changes back to the schematic
without checking any other board changes in the schematic could leave the
schematic in a undefined state. The update schematic from board tool is
the correct method to sync any changes from the board.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8042
Keeping them in base_units means that we can't introduce
any dependence on these functions to anything that needs to
compile without one of the unit defines (EESCHEMA, PCBNEW, etc)
VIEW::GetBoundary() returns the entire view area, not the visible area.
Surprisingly, we had no API for this, so I added one.
Also, changed the dragger behavior to toggle between optimizing just the
modified area and optimizing the visible area, i.e. we will now never
optimize off-screen portions of the dragged track.
CHANGED: The interactive router settings now include a switch to
enable or disable optimization of the entire dragged track,
which is now disabled by default. When enabled, the router
will reroute the entire track (from the dragged segment to
the closest pad/via in each direction) to be more optimal.
When disabled, only the area around the dragged segment
will be modified.
CHANGED: The "optimizer effort" slider is removed from the interactive
router settings dialog, as this setting did not have any
meaningful impact in most cases and was a source of confusion.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5918