Improve built-in line/block characters drawing
Summary: * Fix bold lines (BUG 402415). * Make drawing pixel-perfect. * Make line width proportional to font size. * Move relevant code to separate file and namespace. * Remove code for checking supported line characters from Character class. Information about what is supported is now in one place together width drawing code. * Remove fontembedder/LineFont files (no longer used). * Add test script for displaying supported characters table. * Add triple and quadruple dashes (U+2504...U+250B). * Change shade block characters (U+2591...U+2593) look. When antialiasing is turned on, shades are drawn as transculent solid rectangles with 25%, 50% and 75% alpha. This matches the characters name/description and their usage. Without antialiasing, previous method with patterns is used. **Screenshots** Font size: 10pt; character width: 8px {F6602823} Font size: 11pt; character width: 9px {F6602824} Font size: 12pt; character width: 10px {F6602825} Font size: 13-14pt; character width: 11px; w/o antialiasing {F6602826} Font size: 13-14pt; character width: 11px {F6602827} Font size: 15pt; character width: 12px {F6602828} Font size: 6-7pt; character width: 5px {F6602829} Font size: 8-9pt; character width: 7px; w/o antialiasing {F6602830} Font size: 8-9pt; character width: 7px {F6602831} Alignment test (8pt) {F6602832} Note: Copyrights in LineBlockCharactersDrawer.cpp are based on `git blame -w src/TerminalDisplay.cpp` executed before moving the code to a separate file. Years from first/last commit. Authors sorted by year. Whitespace-only changes were ignored. Maksim's code was commited by Waldo Bastian who mentioned him as the author in commit message (see 5062b40d). BUG: 402415 Test Plan: == Common steps for all tests == * Open //Edit Current Profile → Appearance//. * Turn on //Draw intense colors in bold font//. * Turn off //Use line characters contained in font//. * (Optional) select a font which is able to display bold characters in Konsole (e.g. DejaVu Sans Mono). == Check characters validity == * Run `./tests/line_block_characters_table.py`. * Open //Edit Current Profile → Appearance//. * By switching //Use line characters contained in font// on and off, compare built-in characters drawing with characters from a font. General shape and line directions must be the same. Small offsets, line width differences (as long as proportions between lines in a character are kept), and quality differences are allowed. == Review overall quality == * Run `./tests/line_block_characters_table.py`. * Review glyphs quality in different font sizes. * Open //Edit Current Profile → Appearance//. * Toggle //Smooth fonts//, review quality again. == Check alignment == * Display `tests/UTF-8-demo.txt` * At the bottom of the file you can find a few alignment images. Check if all lines align properly. If you're unsure how it should look, compare it with font characters by turning on //Use line characters contained in font// option. Reviewers: #konsole, #vdg, fvogt, hindenburg Reviewed By: #konsole, hindenburg Subscribers: hindenburg, sandsmark, fvogt, konsole-devel Tags: #konsole Differential Revision: https://phabricator.kde.org/D18735
Loading
Please register or sign in to comment