Updating to PCB always resolves text variables from the schematic. This
means that back annotation will always start from resolved variables if
they exist in the schematic. So to avoid this, we prevent overwriting
any text variables that exist in the schematic.
This does prevent the user from updating a text variable in a pcbnew
field and backannotating this variable change into the schematic where
the schematic had a text variable already. Text variables are forward
annotation only until we add an additional property to each field to
include the unresolved text
Fixes https://gitlab.com/kicad/code/kicad/issues/21724
Interestingly, the majority of people in a KiCad training course wanted
to draw subsheets this way. There is no real reason to keep the
existing select behavior, so this greases some skids
Implement bracket notation for stacked pins ([1,2,3], [1-4], [1,3,5-7]).
Automatic net naming proceeds based on the smallest logical pin number
in stacked groups.
Provide explode/reform commands in symbol editor for conversion.
Supports arbitrary ranges including BGA alphanum ranges like
[AA1-AA3,CD14-CD22]
Adds some additional QA and trace logging
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2004
This removes inheritance from the symbol.
This doesn't play well with undo, but then again, neither does symbol
deletion, so that seems like a higher-level symbol editor issue.
Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/8895
Not all rectangles want/need the radius point, but we will only be able
to drag one point at a time. So we re-organize which point of an
overlapping set is selected
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21605
Don't wait for mouse to move before refreshing after a command.
Also fixes a crash bug deleting an item after an
Unstage() (the Unstage() has already deleted the item).
Also fixes a crash when changing label type during
creation of a label produces a mess.
Also Keep cursor aligned to grid when not warping
back to original point.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16828
If the selection filter has blocked all selections under the cursor,
show a subtle flash on which filter(s) did the blocking. Helpful for
people getting frustrated by not being able to select locked items.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20487
Sometimes you want to add these in the ctor of the child
class based on some logic and having to construct the vector
in the init-list is a bit ugly.
Theoretically allows to not require a vector too.
Always look for pre-existing undo/redo record. Checking for IsNew()
is less robust and should be avoided. Also moves the checking to a
location where it will be easier to ensure that it's uniform.
Push get-undo-level-item processing down a level so it is uniformly
called.
Make sure tables & labels are uniformly handled.
Remove incorrect usage of Get/SetGroupId() for storing lastPin
(which we don't use anyway).
Lists of deleted and changed items MUST include the screen pointer.
An item could be changed on one screen but not on another.
Also tightens handling of PCB_NETINFO_T items, which are not in the
view.
Also fixes a bug where there is no increment parameter if you assign
the base increment command to a hotkey.
(This was discovered while testing the above changes.)
Also fixes a bug where delete during a move in PCB Editor did an
undo instead of a delete.
(Again, found while testing above.)
An experiment was also run to collapse shared parts of SCH_EDIT_FRAME
and SYMBOL_EDITOR_FRAME into SCH_BASE_EDIT_FRAME. However, sharing the
undo code actually increased complexity, and there was very little else
of value in SCH_BASE_EDIT_FRAME (other than the Increment() routines).
We were a bit aggro with how we removed junctions after finishing. Now,
we can avoid this by removing moved junctions and re-adding when needed
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21480
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
The scope, recursion, reset options and message filters remain in the
user preferences. Others including numbering, sort order and reuse are
schematic preferences.
Also, the oddball subunit display remains here but it doesn't really
belong in annotation.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17942
There is only a simplistic multi-net pattern expression
generator here (A|B|...) with a single prefix detected
rather than anything too fancy.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/21451
Adds potential junctions to the preview overlay while drawing wires or
dragging. Also fixes an issue where junctions were created at old
splits
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18206