Commit graph

6647 commits

Author SHA1 Message Date
Ivailo Monev
d096bf3110 font engines should not change the direction of characters
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-07 05:11:45 +02:00
Ivailo Monev
c21c2f574b implement replacement for the text layout script analyzer
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-06 23:40:46 +02:00
Ivailo Monev
a57a1cf0c7 use QPainterPath::addText() to draw text items from QPaintEngine::drawTextItem()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-06 20:58:54 +02:00
Ivailo Monev
f560738170 force antialising regardless of transformation type in QPainter::drawText()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-06 15:08:02 +02:00
Ivailo Monev
4533f6a2cb elide text via QFontMetrics::elideText() in QCommonStylePrivate::viewItemDrawText()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-06 06:38:10 +02:00
Ivailo Monev
92c5c1f827 implement text layout direction support for QPainterPath::addText()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-06 06:22:50 +02:00
Ivailo Monev
56e3d126d0 say goodbye to negative font bounds 2022-01-06 04:16:21 +02:00
Ivailo Monev
1a98081e34 remove redundant Qt::TextFlag::TextExpandTabs enum [ci reset]
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-06 00:56:51 +02:00
Ivailo Monev
e1c119fa00 remove tight bounding rectangle and left/right bearing QFontMetric/QFontMetricF getters
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-06 00:11:49 +02:00
Ivailo Monev
3fb3fa3a5b release the global fonts mutex lock before emitting QApplication::fontDatabaseChanged() signal
fixes QFontComboBox deadlock

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-05 22:41:16 +02:00
Ivailo Monev
a174675d31 effectively revert ddc3af4962
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-05 21:02:01 +02:00
Ivailo Monev
95c9c2e05d remove unused QTextEngine::stackEngine member
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-05 19:57:43 +02:00
Ivailo Monev
02b12dc2a7 adjust tst_QFontDatabase::widthTwoTimes() to recent QFontMetric change
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-05 19:51:58 +02:00
Ivailo Monev
a2fe23752a implement qt_format_text() function via public methods
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-05 19:15:51 +02:00
Ivailo Monev
5a47168c84 assume internal Qt::TextLongestVariant is not in the flags in QFontMetrics::elidedText() and QFontMetricsF::elidedText()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-05 10:32:33 +02:00
Ivailo Monev
3a047fabf2 take font leading space into account when creating text layouts
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-05 02:12:42 +02:00
Ivailo Monev
2a13e920b0 implement QTEXTLAYOUT() for multi-line text layouts
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-04 23:15:50 +02:00
Ivailo Monev
ddc3af4962 calculate bounding rectangles via QTextLayout from QFontMetrics/QFontMetricsF
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-04 21:42:35 +02:00
Ivailo Monev
18ab4d967e remove obsolete QFontMetrics::charWidth() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-04 21:30:32 +02:00
Ivailo Monev
bb30158066 remove redundant QTextEngine::boundingBox() and QTextEngine::tightBoundingBox() arguments
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-04 20:30:10 +02:00
Ivailo Monev
f30d28bfa4 translate the glyph positions instead of the whole painter viewport from QPaintEngine::drawTextItem()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-04 19:54:13 +02:00
Ivailo Monev
43a05aba7d remove unused QTextEngine::LayoutData::available_glyphs member
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-04 19:36:55 +02:00
Ivailo Monev
109823e706 draw text via QTextLayout::draw() from QPainter::drawText()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-04 18:08:58 +02:00
Ivailo Monev
02bae76cda always allocate text engine layout data on the heap
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-04 14:26:02 +02:00
Ivailo Monev
a262209613 compiler warning fixes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-04 13:19:27 +02:00
Ivailo Monev
047988bc27 remove static text leftovers
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-04 01:29:52 +02:00
Ivailo Monev
fdae0255f4 remove unused QPaintEngineEx::supportsTransformations() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-03 23:58:30 +02:00
Ivailo Monev
45e5fe0985 drop support for static text [ci reset]
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-03 23:39:29 +02:00
Ivailo Monev
11ac0b9a31 remove unused QTextEngine methods
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-03 01:04:56 +02:00
Ivailo Monev
3f6a78d1f0 paint text as static from QPainter::drawText()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-03 00:12:58 +02:00
Ivailo Monev
ce7f728539 Revert "paint text as static from QPainter::drawText()"
This reverts commit efa23d36e4.
2022-01-02 20:36:34 +02:00
Ivailo Monev
91cb1d229a update translations [ci skip]
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 19:57:31 +02:00
Ivailo Monev
efa23d36e4 paint text as static from QPainter::drawText()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 19:55:04 +02:00
Ivailo Monev
24ce8b9cdc build fix
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 18:12:34 +02:00
Ivailo Monev
bb492dddf1 remove unused justification types
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 17:43:25 +02:00
Ivailo Monev
a699a16de9 drop BiDi support
still wonky on selection:
https://ibb.co/D4bWVqX

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 16:46:30 +02:00
Ivailo Monev
57dbb8d1cd replace QVarLengthArray<T>() with QSTACKARRAY() in QTextEngine::itemize()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 15:44:14 +02:00
Ivailo Monev
e1b15fd1ae remove unused QGlyphLayoutInstance struct
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 15:39:15 +02:00
Ivailo Monev
bfaae0ad6c remove unused QGlyphLayout::setInstance() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 15:33:33 +02:00
Ivailo Monev
930e16e2b5 remove unused QTextItemInt::midItem() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 15:33:08 +02:00
Ivailo Monev
87187129f8 antialising is already setup by qt_addPatternProps() according to display depth and style strategy
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 14:35:55 +02:00
Ivailo Monev
54d93f2ca5 initialize result variables in QFontDatabase getters
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 14:24:18 +02:00
Ivailo Monev
ffa16b474d decouple freetype2 font engine from harfbuzz
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 03:53:19 +02:00
Ivailo Monev
da726b89ef remove redundant forward declaration of styleStringHelper() function
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 03:38:00 +00:00
Ivailo Monev
46acc89efe replace preferScalable() function with its body
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 03:34:34 +00:00
Ivailo Monev
ef8dd67063 do not re-insert font engines in the cache
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 02:45:22 +02:00
Ivailo Monev
cb1f200bf6 remove unused FcFontSetRemove() function
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 02:28:49 +00:00
Ivailo Monev
4c2c126160 do not copy the font face size metrics
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 01:39:01 +02:00
Ivailo Monev
1a4c171af2 remove workaround for broken fonts
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-02 00:44:45 +02:00
Ivailo Monev
61cad2da54 decouple fonts hinting from fontconfig
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-01-01 22:27:06 +02:00