Commit graph

8159 commits

Author SHA1 Message Date
Ivailo Monev
51bb046646 remove now unused QFontFamily struct
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 21:29:08 +02:00
Ivailo Monev
d01d9549d9 compiler warning fix
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 21:28:05 +02:00
Ivailo Monev
9ee07bb1cd plug QFontDatabase memory leak
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 21:25:36 +02:00
Ivailo Monev
04259f3921 compiler warning fix
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 21:10:00 +02:00
Ivailo Monev
8e37eb99c6 QFontDatabase review
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 20:54:47 +02:00
Ivailo Monev
ca3cf1d93f query fontconfig directly from QFontDatabase
since fontconfig has its own cache mainting internal QFontDatabase cache
is kinda redundant, have to leak check still but font tests pass

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 20:35:15 +02:00
Ivailo Monev
68ae3393d1 inline qt_pixelSize() function
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 05:39:06 +02:00
Ivailo Monev
fc836182d5 scale the fontconfig weight value to QFont::Weight in QFontDatabase
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 05:25:01 +02:00
Ivailo Monev
b90d8bf1ba remove compat QFontDatabase methods
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 05:06:44 +02:00
Ivailo Monev
4129e183bd de-duplicate QFontDatabase code
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 04:28:46 +02:00
Ivailo Monev
aa39dbb344 add case-sensitivity test for QFontDatabase
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 04:14:44 +02:00
Ivailo Monev
a06e3b8be8 de-duplicate QFontDatabase code
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 03:48:13 +02:00
Ivailo Monev
ac8bc30ad4 const-ify QFontDatabase::styleString() methods
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 03:39:55 +02:00
Ivailo Monev
605c6280ab test case for converting QFont from and to QString
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 01:45:16 +02:00
Ivailo Monev
b59672856d add config file for testing X 16 bit depth support
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 01:19:32 +02:00
Ivailo Monev
98653b029b update comment in QVariant test data
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 01:07:52 +02:00
Ivailo Monev
ced3473020 zero-copy QX11Data::copyXImageToQImage() for some cases
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-18 21:28:52 +02:00
Ivailo Monev
f1e363b911 QX11Data::copyXImageToQImage() optimization
the cake is a lie - even tho XGetPixel() and XPutPixel() take ulong as
pixel value it has to converted manually to value appropriate for the
XImage depth

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-18 20:52:58 +02:00
Ivailo Monev
34182fbae4 Merge branch 'master' of https://scm.osdn.net/gitroot/kde/Katie 2022-11-18 20:21:43 +02:00
Ivailo Monev
f06ca4f2c5 special-case QImage::Format_RGB16 with different bytes per line
for some reason on Debian XImage with depth equal to 16 can have different
bytes per line (off by 2 bits), on Arch it was not a thing when I tested
it so it could be a bug in X

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-18 20:21:18 +02:00
Ivailo Monev
ad589d273b remove QTextDecoder and QTextEncoder leftovers
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-18 18:26:30 +02:00
Ivailo Monev
ac19ddd82a convert the SVG image to QImage::Format_ARGB32_Premultiplied only if it is not in format with alpha channel
since it is painting of image (not painting to image) the performance
impact of it not being QImage::Format_ARGB32_Premultiplied is neglectable

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-18 14:33:44 +02:00
Ivailo Monev
041b961c0b drop noop SVG quality implementation
altought it would be pretty easy to implement it seems to be in somewhat
unsupported state anyway, for reference:
https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering
https://developer.mozilla.org/en-US/docs/Web/CSS/image-rendering

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-18 14:10:13 +02:00
Ivailo Monev
dcddc9b718 remove redundant QCompleter::event() reimplementation
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-18 04:06:34 +02:00
Ivailo Monev
6b1d9fe048 remove unused QPdf::generateLinearGradientShader() method
USE_NATIVE_GRADIENTS is never defined

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-18 03:26:33 +02:00
Ivailo Monev
699f8f95b1 remove unused QFontSubset::toTruetype() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-18 01:26:21 +02:00
Ivailo Monev
db92f4ae56 correct logic in isStyleMatch() function
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-17 22:15:19 +02:00
Ivailo Monev
5e55866122 load the application font as last resort instead of adding it to each patterns
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-17 21:26:19 +02:00
Ivailo Monev
4897f79893 remove now bogus QFont test
italic/oblique are handled as enum (QFont::Style) and hint for fontconfig
what kind of slant to match (if style name is not specified that is) which
means exact style match or nothing. trying to substitute, mix and match
such style names in QFontDatabase was bad idea to begin with (not my idea)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-17 20:50:11 +02:00
Ivailo Monev
c6c621b9fe do not add the last resort font to the pattern when loading font
the default QApplication font is the last resort font

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-17 20:37:30 +02:00
Ivailo Monev
e8ee198ae3 minor QFont documentation review
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-17 20:36:13 +02:00
Ivailo Monev
706673c71c do not add fonts with empty style to the database
Source Code Variable font has such entries for example

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-17 21:44:47 +02:00
Ivailo Monev
99a6715db2 query and set font pixel size from QFontDatabase
note that font pixel size is DPI-scaled, it being -1 means scale it to the
DPI of the paint device for example and Katie supports only scalable fonts
for a reason

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-17 19:09:54 +02:00
Ivailo Monev
995f46c975 preperations to drop QFontInfo
since I do not care about qt compat only normal and regular style
names are matched as equal, for now

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-17 18:39:31 +02:00
Ivailo Monev
dc830212a1 resolve family aliases from QFontDatabase methods
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-17 16:30:48 +02:00
Ivailo Monev
a4e2c2edb0 fix font style matching in QFontDatabase::font() and test case it
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-17 14:47:52 +02:00
Ivailo Monev
90b1be03c7 set the pitch of the font from QFontDatabase::font()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-17 14:41:30 +02:00
Ivailo Monev
78556dafb5 export qt_getClipRects() only for the QRegion test
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-17 14:32:27 +02:00
Ivailo Monev
57b03e40f6 move qt_getClipRects() function to qregion source file, where it belongs
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-17 14:30:53 +02:00
Ivailo Monev
7d03dc89ed lock before accessing the custom meta types global static in QMetaType::type()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-16 22:17:47 +02:00
Ivailo Monev
052eca6bf7 Revert "always allocate QGlyphLayout data on the heap"
will have to wait until the QTextEngine redo

This reverts commit 4a5239046a.
2022-11-16 21:27:57 +02:00
Ivailo Monev
4a5239046a always allocate QGlyphLayout data on the heap
much easier to calculate the glyph array data size and also no
possibility for stack corruption

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-16 19:18:02 +02:00
Ivailo Monev
4b19a3adfc add thread-safety test for QFontDatabase
it basically tests fontconfig thread-safety but QFontDatabase is documented
as thread-safe (as it should be) so why not add test case for it

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-16 16:01:25 +02:00
Ivailo Monev
44800c3c2d QFontDatabase test review
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-16 15:35:45 +02:00
Ivailo Monev
78dfee1ace do not assume FcObjectSetCreate(), FcPatternCreate() and FcFontList() return non-null pointers in QFontDatabase constructor
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-16 15:29:57 +02:00
Ivailo Monev
7a2ee5aa48 replace hardcoded QFont::Unstretched value with the enum
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-16 15:26:25 +02:00
Ivailo Monev
affd5c2ef3 assume the codec MIB is in the table in QTextCodec::mibEnum() and add test for it
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-16 05:05:56 +02:00
Ivailo Monev
19901408bc remove unused headers inclusions in qfont source file
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-15 20:17:42 +02:00
Ivailo Monev
70214a96d4 use the QPixmap::scaled() method in QMoviePrivate::next()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-15 20:09:54 +02:00
Ivailo Monev
3340e95259 use QVector for the QMetaMethod list in qInvokeTestMethods() function
operator new may throw if the method count is zero, a test case should have
atleast one method tho

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-15 19:34:24 +02:00