QT can't be made to draw monospaced text (if the font does not cooperate),
so avoid combining characters, using a QPainter::drawText() call for each
character.
For bidi text support this change requires konsole to reorder and reshape
the characters. This is done using the ICU library (which QT also uses).
This change allows for some improvements related to text rendering:
- More precise bidi reordering, which is no longer changed by characters'
attributes and selection.
- underlines drawn separately from the text, allowing for differing
underline modes (double, curly, dashed, dotted, colored).
- Overriding font for emoji characters.
This commit fixes a few bugs and addresses a lot more:
Feature requests: More standard conforming RTL and various underlines:
BUG: 403729
BUG: 387811
Using non-monospace font:
BUG: 416508
BUG: 452087
BUG: 425973
BUG: 430822
BUG: 442742
BUG: 441037
BUG: 430822
Emoji:
BUG: 440070
CCBUG: 450017
CCBUG: 445846
CCBUG: 453086
Regression: devanagari rendering
CCBUG: 381593
CCBUG: 451716
Also in save() just clear _previewedProperties; logically it wouldn't be
holding any properties that weren't set on _tempProfile, since all those
properties have been saved by the changeProfile() call, clear() makes
sense.
The difference is the preview isn't triggered on hover, you now have to
select a color scheme in the model to trigger a preview.
The font selection dialog works the same way (i.e. select to preview, not
just hover), and that seems to work quite well.
We want to be able to build without X11 support even if some of the used
libraries may not work w/o X11 themselves yet or need to be built with
X11 support for other reverse dependencies.
HAVE_X11 already exists and is set automagically so far, but using
-DCMAKE_DISABLE_FIND_PACKAGE_X11 will break if any dependencies list X11
as required in their cmake config.
Introducing this option means there is no behavior change by default,
cmake will just skip finding X11 or adding unwanted features if the
option is enabled.
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
For clarity, the VT state machine has some comments where it differs
from the diagram from vt100.net. Add comments for some transitions on
String Terminator (ST / 0x9C) which appear on the diagram, but which
were already handled in the "anywhere" state.