We still conflate the fieldID, the position in the
array of fields, and whether or not that means the
field is mandatory. But this attempts to clean up
*some* of that, without introducing too much risk.
(The GUI can create separate files for front and
back, or one file for both. A job always creates
a single file, though it can have front, back, or
both in it.)
Otherwise, when you change the axis numbering type, and don't update
the start offset string, you get an error on dialog save. Instead,
if the number isn't valid, change it to a valid one.
There are two netclass name methods, which previously were not
obvious in their uses. These have been renamed to now have:
GetName() : Used for internal or tooling (e.g. netlist export) usage
GetHumanReadableName() : Used for display to users (e.g. in infobars)
Fixing the previous unclear naming will result in fewer bugs
when users start using the multiple netclass functionality, as
the incorrect usage had started creeping in to new code. Also this
will help authors of new code select the correct name method.
Previously, if multiple error markers were placed at the same location,
the selected marker was not visually differentiated from the unselected
ones, even if one was at the top of the stack. To fix this, Need to pass
overlapping markers to the FocusOnItems() function instead of calling
FocusOnItem() with only the selected marker.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9778
Each deletion of a marker adjusts the tree model and comes with a
possibility of a repaint, which can trigger a full screen repaint.
Keeping the dialog frozen prevents these updates
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19531
Having thread pool as its own singleton in the library meant that each
kiface had its own threadpool, leading to many multiples of the threads
being started. Placing a singleton class in PGM_BASE ensures that all
kifaces use the same thread pool.
The singleton class can be extended to provide single instance
guarantee for any element across kifaces
* Don't hide the annular rings control - makes confusing UI
* Always show annular rings control - all boards must have >2 layers
anyway
* Move into single column of choice boxes to be cleaner and take less
monitor space
https://gitlab.com/kicad/code/kicad/-/issues/19457
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 means when you switch a pad to be roundable (round rect or
chamfered-with-round), you get the same behaviour as in the dialog
(and an IPC-compliant pad by default).
Also fixes the radius visibility in the properties panel for
chamfered pads (which can have radii).
Also removes Open Directory button as in a job the filepath
will be relative to whichever Output it is placed in.
Also removes the Run DRC button when called from a job.
This prevents the dialog growing too much and going off a
smaller screen. It's also more consistent split to match
Pcbnew, which has the same graphical items settings and
allows more granular resetting and avoids confusing settings
that only apply to new footprints with settings that apply
to items with in a footprint.
Resetting is also then more granular, so you can reset text item
defaults without, say, also resetting your default line widths.
This resolves an inconsistency between Pcbnew and FP editor that means
default dimension properties cannot be set in the FP editor, but the
dimension line widths and text sizes _can_, which can lead to mismatches
between different parts of the same dimension that can't be prevented
except retroactively using the properties tools.
To represent KiCad's internal units (1 nm), it's enough to have:
- 6 decimal digits in mm;
- 8 decimal digits in inches.
There's not much point in reducing the precision.
Up to 10 digits allowed just in case.
Also changes precision to 6 decimal digits by default.
Having Gerber Plot outputs in mm and drill outputs in inches was
causing tiny misalignments. This change switches Excellon output
units to mm by default.
- "Fill all vias" option disables the cut in copper layers which is
important to speed up EM simulations.
- "Cut vias in board body" enables cutting even if copper layer export
is disabled, which is useful if you're using vias as mounting holes.
Related: https://gitlab.com/kicad/code/kicad/-/issues/18735
Fixing this required disabling the footprint/3D viewer canvas drawing
before destroying the canvas in the dialog dtor. This in turn required
adding a virtual method to DIALOG_SHIM that can be overridden by the
derived object to allow performing actions during dialog shutdown that
can be problematic when performed in the dialog dtor. Please note that
this only works for quasi-modal dialogs. Modal and modeless dialogs
should use close window events.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18107
Also adds a cancel confirmation dialog.
Also fixes an issue where a thread termination error message is shown
when calling Delete(), because the thread has already exited after
Wait().
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19279
This field was redundant (was generally set to the footprint's LIB_ID)
but also buggy (not guaranteed to contain the footprint's LIB_ID)
and confusing (not a way to change the footprint's LIB_ID).
Technically, any endpoint is equivalent for the
geometry that you get out. But "endpoint" sounds like
it means the point that is not the start point.
So change the tool to explicitly take the start and
midpoint as inputs.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19221
The display in the properties manager for arc tracks
was wrong. Implement a set of Get/SetStartX/Y functions
for the traces, to match the End functions.
This is needed because PCB_ARC overrides GetPosition
to return the arc center, not the start position (whereas
PCB_TRACK does return the start for GetPosition)
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19215
Because it's confusing when the dialog shows last target value, but it
doesn't apply when you start tuning.
Also the last values are remembered in DRAWING_TOOL::PlaceTuningPattern
now, instead of global variables.
Related: https://gitlab.com/kicad/code/kicad/-/issues/18979
(cherry picked from commit a950d55cb2)
- Use board filename in compressed output
- Don't generate uncompressed output next to compressed
- Make clear that the path in the dialog is a folder, not a file
- Handle existing output files gracefully