Text Settings Widget
This is about editing stuff like font-size, family, bold, italic, etc.
- Properties can be vaguely divided into character(inline) and paragraph(block) level properties.
- Some properties that people expect to be paragraph level are actually character level. Text direction and white-space handling are examples of this.
- Text properties are inheritable, so not every property needs to be visible at the same time, but we might need to find a good way to communicate inherited properties.
-Similarly, changing these properties internally, would also need to have it check any child’s text properties to ensure they inherit correctly.
There should be a text-property resource in the Canvas-resources, so this may be edited via a docker or the like. The following mockups only contain a docker, but I'm not decided there yet.
As well, there was a request for on-canvas hovering menu, like many touch-enabled applications have, but I am unsure if this is feasible with how IME support is implemented (that is, the android and iOS text selection bar may interfere and I am unsure if we can have any control over that without patching Qt and having a ton of custom code for these OS'). So I am currently prioritising just raw editing of items.
Widgets
Text properties needs the following widgets:
- Sliders without units (font-weight, stretch).
- Sliders with units (font-size, letter-spacing, etc).
- Here again the resolved units are a little scary because someone might type in 15 px, and then Krita would resolve that to pt, and depending on the document resolution, this could be very different values.
- checkboxes (kerning)
- Radio buttons (text-underline/overline etc. Font-variant settings)
- dropdowns/comboboxes (white space, word break, line break, Font style selection)
- color selection buttons (text-decoration-color)
- Font-family and Font Feature Settings are special.
- Font-family needs a dynamic list of fall back fonts, but it also is troublesome, because it is a primary setting and putting the fallback fonts front and center might be confusing.
- Font feature settings will proly need a strongly modified list/table view that people can manually add items they want to activate to.
We don’t have our spinbox sliders in QML, so that makes QML somewhat hard here.
Folks have indicated that they’d like to have the most common properties front and center:
- Text color (we can reuse the active foreground color here)
- Font family
- Font size
- Font style (This means the instance or subfamily, people have indicated they prefer selecting the subfamily, which means that we should not group things like width/weight/other variation sliders with these important properties)
- Line and letter spacing
- Text alignment
- Anti-aliasing (font-hinting) properties.