When the italic or bold nature is changed, text using outline fonts may
need to change its font. Add this to the SetItalic/SetBold functions.
Also add a counterpart SetItalicFlag function (following SetBoldFlag)
when you only need to set the flag (e.g. when importing or changing
everything in the text properties dialog).
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18592
This allows to see what the current snap point is, which is useful when
zoomed in, or the point is like the corner of a rounded pad where it's
"in free space" and might not be immediately obvious.
First, ensure that we calculate the bbox of the imported elements.
If the total BBOX is outside our allowed value, refused to import. This
needs to be scaled or addressed in an external editor
If the bbox fits, then make sure that we clamp it such that the largest
element is still within our bounds
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18523
TOOL_MENU::m_menu was unconditionally created by the TOOL_INTERACTIVE constructor, resulting in crashes if
we wanted to run the TOOLs in headless mode, e.g. in unit tests. This commits makes
the creation of the menu object dependent on Pgm::IsGui().
The separates it from the LAYER_SELECTOR class - deciding
what color a layer is (say) is separate to managing the
actual selection of the layer. For example, sel_layer.cpp
only needs the presentation logic. This also makes it eaiser
to compose rather than inherit.
Additonally, break out the layer pair swatch function
to this class.
This will also be needed by the layer pair manager UI.
Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/15227
This moves a fiddly little bit of logic used by a few UI
classes into a central location.
Also means that the paths dialog learns to expand the
first cell when it needs to (like the text variable
panel).