Sometimes, you don't want those 45° corners in your nice, clean zones.
This adds an additional mode that can be selected, cycling through
free-angle, 45° angle and 90° angle constraints
It was marked "TODO: This does not work" and indeed it crashed when
trying to use it on some items. When it did not crash, it did not show
a menu, so the TODO was in fact accurate
This also removes the GROUP/UNGROUP-specific undo actions.
This also fixes a bunch of undo bugs when duplicating
group members, creating pins, etc.
This also fixes some undo bugs when dividing wires etc.
This also fixes some bugs with new sch items not
being created within an entered group.
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
This resolves several issues:
* Interative position of a single pad did nothing, now it moves the
parent footprint (in non-free-pad mode)
* Non-interactive would move the footprint n times if you selected
n pads, now it just move once.
* Neither tool would prompt for lock overrides
Use the proper free pad collector filter to make this work and keep
behaviour consistent with other tools.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19430
On reflection, the forward vector makes more sense, because
the value in the edit box is then the same as the vector the
user just drew with the ruler.
This moves the interactive pick point/item tool action to
PCB_PICKER_TOOL, and add a parameter to allow it to be useful for other
tools that want to pick a point from the canvas.
(It's still leaking into BOARD_COMMIT and some other places, but at
least it no longer leaks into all the edit tools.)
Also fixes some bugs when moving/copying/pasting multiple selections
containing length-tuning patterns.
Using a boolean argument just leads to a lot of trailing booleans in the
function calls and is not user friendly. Instead, introduce PostAction()
to send an action that runs after the coroutine (equivalent to passing
false or the default argument), and leave RunAction as the immediate
execution function.
Autoscroll wasn't working on Mac because the status popup's panel
has the focus. This *may* also fix a problem on MSW of the auto-scroll
not being cancel-able.
Fixes https://gitlab.com/kicad/code/kicad/issues/11425
Also removes EditToolSelectionFilter which was misused in more places
than it was used correctly. The original point of the client filter
was to move the logic to the point of use, which the
EditToolSelectionFilter sort of obviated anyway.
Fixes https://gitlab.com/kicad/code/kicad/issues/6751
This unifies everything under a single architecture with a "don't
show again" dialog. Since everything now goes through the same
path it should be reasonably easy to make it do whatever we want
in the future.
Right now it presents 3 options: modify only unlocked items, override
locks and modify all items, or cancel command.
The Wait() function will return a null TOOL_EVENT when the tool
stack is shutting down, so we can't just always pass the event,
instead we must check for null and end the looping if a null
event appears.
ADDED memberOf() function for DRC rule expressions.
Also fixes a bug in several of the pickers where the event wasn't
being correctly passed.
Fixes https://gitlab.com/kicad/code/kicad/issues/5647
CHANGED: The reset buttons now set the X or Y offset to the current
offset from the reference position. Selecting individual pads as the reference item is now also possible.
This update replaces the existing uses of unique pointer creation with
the C++14 std::make_unique call that provides proper memory release in
event of an exception.