Commit graph

8136 commits

Author SHA1 Message Date
Ivailo Monev
f7ca08a3ef fade effect class rewrite to not use QWidget and event filter
since the effect sets a X11 window property the only thing it has to care
about is if the widget pointer is valid and the elapsed time. moving,
resizing the widget, etc. do not matter

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-22 01:57:29 +02:00
Ivailo Monev
427396074d remove unused graphics effects feature
doubles as performance optimzation

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-22 00:46:40 +02:00
Ivailo Monev
edfe07176e trc man page correction
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-21 23:19:08 +02:00
Ivailo Monev
a324f5a0a7 apply style from settings only if it is not empty and the style override is empty from QApplicationPrivate::x11_apply_settings()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-21 20:49:50 +02:00
Ivailo Monev
084254903c QApplication::setStyle() documentation update
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-21 20:40:20 +02:00
Ivailo Monev
ff44266b32 optimize QAlphaWidget (fade effect) further by using window opacity
relies solely on the compositor for it and assumes window opacity is not
set by the user, Katana has animation override
(_KDE_NET_WM_SKIP_CLOSE_ANIMATION X11 atom) and the Katie fade effect
should probably have such (or just check if the opacity value is not 1.0
before running the effect) because effects may overlap with window manager
/compositor effects resulting in all sort of bad things

for that reason I am considering dropping the effects that alter the way
windows/widgets show, hide, are moved, etc. altogether and leaving that
to the window manager/compositor. effects such as colorization of pixmap
and grayscaling (used in QIcon) however are unlikely to be removed

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-21 03:29:52 +02:00
Ivailo Monev
578ce10db0 optimize QAlphaWidget by avoiding QImage to QPixmap conversion
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-21 02:49:32 +02:00
Ivailo Monev
4f8d95dc5a use icons from the system in scripttools component
less static data in the library and better looks - can't go wrong with that

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-21 00:27:55 +02:00
Ivailo Monev
a9eb15290e remove unused scripttools component images
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-21 00:04:36 +02:00
Ivailo Monev
11c9b31c4a remove unused qicon header inclusion in qscriptbreakpointsmodel source file
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 23:44:48 +02:00
Ivailo Monev
33e1d3acb3 correct indendation in QKeyMapper::translateKeyEvent()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 23:44:23 +02:00
Ivailo Monev
12cdb0eb8f fix ODR-violation in md5c and sha2 source files
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 23:35:48 +02:00
Ivailo Monev
2fbec65fcb remove qbitmap source file from the unity exclude list
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 23:34:46 +02:00
Ivailo Monev
431e81946b simplify QKeyMapper::clearMappings() and do not use the cached locale codec
since it is known what locale the X11 input method uses it is redundant to
verify that via XLocaleOfIM() (unless X11 fails to detect what locale is
set for some strange reason).

also not using the cached codec returned by QTextCodec::codecForLocale()
because the locale may change at any time (either environment variable
change or just plain setlocale() call as was done by KCatalog as gettext
workaround) and QKeyMapper has to reflect such changes

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 23:03:07 +02:00
Ivailo Monev
d7676fe5a8 QFontDatabase optimizations
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 21:24:55 +02:00
Ivailo Monev
7fa87f98e0 do not set the internal QApplicationPrivate::styleOverride from QApplicationPrivate::x11_apply_settings()
the style name is either from the settings or the platform plugin, not from
-style argument

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 18:55:27 +02:00
Ivailo Monev
abb9e71280 show preview even of the desktop style
the desktop style is now determined by QT_PLATFORM_PLUGIN and
DESKTOP_SESSION environment variables with fallback to cleanlooks style so
even if it is the fallback style there is something to show but if it is
not the fallback the user will be able to preview the style chosen by
QGuiPlatformPlugin

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 18:51:12 +02:00
Ivailo Monev
07d438624a lock QSettings files via flock()
now QSettings will behave much like opening a file via open() and the like,
see the QFile hijack test case

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 17:51:00 +02:00
Ivailo Monev
71e7c743d8 add QSidebar test
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 16:29:29 +02:00
Ivailo Monev
39ca7d62e0 effectively revert c3c697ea5b
it being static means its destruction will be delayed until exit and it
holds shared data references the meta types of which may be unregistered by
the time it is destroyed

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 15:57:36 +02:00
Ivailo Monev
0bf1b3d2cf use patternForFont() in getFcPattern() and rename getFcPattern()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 14:30:34 +02:00
Ivailo Monev
0b1c43e52b fix regression since 81cc260944
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 03:10:27 +02:00
Ivailo Monev
4e1d48fa13 build fix for the case when QT_NO_TEMPORARYFILE is defined
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 00:34:47 +02:00
Ivailo Monev
73133d024b QT_NO_WIZARD config option is no longer broken
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 23:19:16 +02:00
Ivailo Monev
392f9eabf8 adjust expected result in QFontDatabase test case
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 22:55:07 +02:00
Ivailo Monev
f0e7d43b37 query all fonts to get the styles for font family from QFontDatabase::styles()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 00:37:33 +02:00
Ivailo Monev
d83fe65a52 check if qt_x11Data pointer is valid before using its members from QFontDatabase
qt_x11Data pointer is valid only if QApplication instance is created, fixes
possible crashes

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-19 23:49:13 +02:00
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