OSDN Git Service

kde/Katie.git
20 months agoQEasingCurve::valueForProgress() optimization
Ivailo Monev [Tue, 22 Nov 2022 23:12:29 +0000 (01:12 +0200)]
QEasingCurve::valueForProgress() optimization

doing qreal (either float or double) math on demand is much more optimal,
also reducing the switches to one is a bonus

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoQEasingCurve::InCurve, QEasingCurve::OutCurve, QEasingCurve::SineCurve and QEasingCur...
Ivailo Monev [Tue, 22 Nov 2022 22:54:18 +0000 (00:54 +0200)]
QEasingCurve::InCurve, QEasingCurve::OutCurve, QEasingCurve::SineCurve and QEasingCurve::CosineCurve are deffinetly not internal

used by plasma system-monitor applet for example

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoQEasingCurve documentation review
Ivailo Monev [Tue, 22 Nov 2022 22:49:24 +0000 (00:49 +0200)]
QEasingCurve documentation review

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agocall FatalSignalHandler constructor
Ivailo Monev [Tue, 22 Nov 2022 22:34:53 +0000 (00:34 +0200)]
call FatalSignalHandler constructor

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoQOpacityEffect review
Ivailo Monev [Tue, 22 Nov 2022 22:24:22 +0000 (00:24 +0200)]
QOpacityEffect review

by starting the elapsed timer just before the fade timer the opacity
transition will be smoother at the start of the effect

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoexplicitly convert the elapsed time to double
Ivailo Monev [Tue, 22 Nov 2022 18:42:18 +0000 (20:42 +0200)]
explicitly convert the elapsed time to double

QElapsedTimer::elapsed() returns qint64 btw

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agodo not send move and resize events to the widget from qFadeEffect()
Ivailo Monev [Tue, 22 Nov 2022 18:37:06 +0000 (20:37 +0200)]
do not send move and resize events to the widget from qFadeEffect()

the position and size of the widget matter not to the effect

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agodrop effects other than fade
Ivailo Monev [Tue, 22 Nov 2022 17:38:17 +0000 (19:38 +0200)]
drop effects other than fade

QComboBox animation was essentially non-operational (see
5b5fbca2ed070acc4ed37fe20fc1d16532469aef), UI_AnimateToolBox was just
reserved and unused . there is fade effect for QMenu and QToolTip so
the relevant effect is there

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoQOpacityEffect optimization
Ivailo Monev [Tue, 22 Nov 2022 17:02:50 +0000 (19:02 +0200)]
QOpacityEffect optimization

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoset the global static variables before deleting the effect instances in qScrollEffect...
Ivailo Monev [Tue, 22 Nov 2022 14:16:53 +0000 (16:16 +0200)]
set the global static variables before deleting the effect instances in qScrollEffect() and qFadeEffect()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agosnapshot the widget as QImage from QRollEffect
Ivailo Monev [Tue, 22 Nov 2022 14:15:52 +0000 (16:15 +0200)]
snapshot the widget as QImage from QRollEffect

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoremove declaration of now non-existing QRollEffect::run() method
Ivailo Monev [Tue, 22 Nov 2022 14:15:03 +0000 (16:15 +0200)]
remove declaration of now non-existing QRollEffect::run() method

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoactually animate QComboBox
Ivailo Monev [Tue, 22 Nov 2022 14:00:31 +0000 (16:00 +0200)]
actually animate QComboBox

for some reason the code for it was Q_WS_WIN && !QT_NO_EFFECTS guarded and
I purged Q_WS_WIN code programatically

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agomerge QRollEffect::run() into QRollEffect constructor
Ivailo Monev [Tue, 22 Nov 2022 13:28:10 +0000 (15:28 +0200)]
merge QRollEffect::run() into QRollEffect constructor

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agocancel the opacity/fade effect when the widget is destroyed
Ivailo Monev [Tue, 22 Nov 2022 01:07:43 +0000 (03:07 +0200)]
cancel the opacity/fade effect when the widget is destroyed

widgets are supposed to call qFadeEffect(0) to cancel the effect but just
in case

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agofade effect class rewrite to not use QWidget and event filter
Ivailo Monev [Mon, 21 Nov 2022 23:57:29 +0000 (01:57 +0200)]
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>
20 months agoremove unused graphics effects feature
Ivailo Monev [Mon, 21 Nov 2022 22:42:26 +0000 (00:42 +0200)]
remove unused graphics effects feature

doubles as performance optimzation

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agotrc man page correction
Ivailo Monev [Mon, 21 Nov 2022 21:19:08 +0000 (23:19 +0200)]
trc man page correction

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoapply style from settings only if it is not empty and the style override is empty...
Ivailo Monev [Mon, 21 Nov 2022 18:41:53 +0000 (20:41 +0200)]
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>
20 months agoQApplication::setStyle() documentation update
Ivailo Monev [Mon, 21 Nov 2022 18:40:20 +0000 (20:40 +0200)]
QApplication::setStyle() documentation update

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agooptimize QAlphaWidget (fade effect) further by using window opacity
Ivailo Monev [Mon, 21 Nov 2022 01:28:47 +0000 (03:28 +0200)]
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>
20 months agooptimize QAlphaWidget by avoiding QImage to QPixmap conversion
Ivailo Monev [Mon, 21 Nov 2022 00:49:32 +0000 (02:49 +0200)]
optimize QAlphaWidget by avoiding QImage to QPixmap conversion

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agouse icons from the system in scripttools component
Ivailo Monev [Sun, 20 Nov 2022 22:27:07 +0000 (00:27 +0200)]
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>
20 months agoremove unused scripttools component images
Ivailo Monev [Sun, 20 Nov 2022 22:03:49 +0000 (00:03 +0200)]
remove unused scripttools component images

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoremove unused qicon header inclusion in qscriptbreakpointsmodel source file
Ivailo Monev [Sun, 20 Nov 2022 21:44:48 +0000 (23:44 +0200)]
remove unused qicon header inclusion in qscriptbreakpointsmodel source file

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agocorrect indendation in QKeyMapper::translateKeyEvent()
Ivailo Monev [Sun, 20 Nov 2022 21:44:23 +0000 (23:44 +0200)]
correct indendation in QKeyMapper::translateKeyEvent()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agofix ODR-violation in md5c and sha2 source files
Ivailo Monev [Sun, 20 Nov 2022 21:35:48 +0000 (23:35 +0200)]
fix ODR-violation in md5c and sha2 source files

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoremove qbitmap source file from the unity exclude list
Ivailo Monev [Sun, 20 Nov 2022 21:34:46 +0000 (23:34 +0200)]
remove qbitmap source file from the unity exclude list

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agosimplify QKeyMapper::clearMappings() and do not use the cached locale codec
Ivailo Monev [Sun, 20 Nov 2022 20:50:33 +0000 (22:50 +0200)]
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>
20 months agoQFontDatabase optimizations
Ivailo Monev [Sun, 20 Nov 2022 19:24:55 +0000 (21:24 +0200)]
QFontDatabase optimizations

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agodo not set the internal QApplicationPrivate::styleOverride from QApplicationPrivate...
Ivailo Monev [Sun, 20 Nov 2022 16:55:27 +0000 (18:55 +0200)]
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>
20 months agoshow preview even of the desktop style
Ivailo Monev [Sun, 20 Nov 2022 16:51:12 +0000 (18:51 +0200)]
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>
20 months agolock QSettings files via flock()
Ivailo Monev [Sun, 20 Nov 2022 15:49:06 +0000 (17:49 +0200)]
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>
20 months agoadd QSidebar test
Ivailo Monev [Sun, 20 Nov 2022 14:29:29 +0000 (16:29 +0200)]
add QSidebar test

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoeffectively revert c3c697ea5b4e141f08c4607955f085c49667b806
Ivailo Monev [Sun, 20 Nov 2022 13:57:36 +0000 (15:57 +0200)]
effectively revert c3c697ea5b4e141f08c4607955f085c49667b806

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>
20 months agouse patternForFont() in getFcPattern() and rename getFcPattern()
Ivailo Monev [Sun, 20 Nov 2022 12:30:34 +0000 (14:30 +0200)]
use patternForFont() in getFcPattern() and rename getFcPattern()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agofix regression since 81cc2609442d5ee1e445040d9863e2538904a7f7
Ivailo Monev [Sun, 20 Nov 2022 01:10:27 +0000 (03:10 +0200)]
fix regression since 81cc2609442d5ee1e445040d9863e2538904a7f7

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agobuild fix for the case when QT_NO_TEMPORARYFILE is defined
Ivailo Monev [Sat, 19 Nov 2022 22:34:47 +0000 (00:34 +0200)]
build fix for the case when QT_NO_TEMPORARYFILE is defined

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoQT_NO_WIZARD config option is no longer broken
Ivailo Monev [Sat, 19 Nov 2022 21:19:16 +0000 (23:19 +0200)]
QT_NO_WIZARD config option is no longer broken

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoadjust expected result in QFontDatabase test case
Ivailo Monev [Sat, 19 Nov 2022 20:55:07 +0000 (22:55 +0200)]
adjust expected result in QFontDatabase test case

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoquery all fonts to get the styles for font family from QFontDatabase::styles()
Ivailo Monev [Sat, 19 Nov 2022 22:37:33 +0000 (00:37 +0200)]
query all fonts to get the styles for font family from QFontDatabase::styles()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agocheck if qt_x11Data pointer is valid before using its members from QFontDatabase
Ivailo Monev [Sat, 19 Nov 2022 21:49:13 +0000 (23:49 +0200)]
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>
20 months agoremove now unused QFontFamily struct
Ivailo Monev [Sat, 19 Nov 2022 19:29:08 +0000 (21:29 +0200)]
remove now unused QFontFamily struct

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agocompiler warning fix
Ivailo Monev [Sat, 19 Nov 2022 19:28:05 +0000 (21:28 +0200)]
compiler warning fix

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoplug QFontDatabase memory leak
Ivailo Monev [Sat, 19 Nov 2022 19:25:36 +0000 (21:25 +0200)]
plug QFontDatabase memory leak

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agocompiler warning fix
Ivailo Monev [Sat, 19 Nov 2022 19:10:00 +0000 (21:10 +0200)]
compiler warning fix

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoQFontDatabase review
Ivailo Monev [Sat, 19 Nov 2022 18:54:47 +0000 (20:54 +0200)]
QFontDatabase review

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoquery fontconfig directly from QFontDatabase
Ivailo Monev [Sat, 19 Nov 2022 16:08:31 +0000 (18:08 +0200)]
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>
20 months agoinline qt_pixelSize() function
Ivailo Monev [Sat, 19 Nov 2022 03:39:06 +0000 (05:39 +0200)]
inline qt_pixelSize() function

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoscale the fontconfig weight value to QFont::Weight in QFontDatabase
Ivailo Monev [Sat, 19 Nov 2022 03:25:01 +0000 (05:25 +0200)]
scale the fontconfig weight value to QFont::Weight in QFontDatabase

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoremove compat QFontDatabase methods
Ivailo Monev [Sat, 19 Nov 2022 03:06:44 +0000 (05:06 +0200)]
remove compat QFontDatabase methods

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agode-duplicate QFontDatabase code
Ivailo Monev [Sat, 19 Nov 2022 02:28:46 +0000 (04:28 +0200)]
de-duplicate QFontDatabase code

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoadd case-sensitivity test for QFontDatabase
Ivailo Monev [Sat, 19 Nov 2022 02:14:44 +0000 (04:14 +0200)]
add case-sensitivity test for QFontDatabase

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agode-duplicate QFontDatabase code
Ivailo Monev [Sat, 19 Nov 2022 01:48:13 +0000 (03:48 +0200)]
de-duplicate QFontDatabase code

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoconst-ify QFontDatabase::styleString() methods
Ivailo Monev [Sat, 19 Nov 2022 01:39:55 +0000 (03:39 +0200)]
const-ify QFontDatabase::styleString() methods

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agotest case for converting QFont from and to QString
Ivailo Monev [Fri, 18 Nov 2022 23:45:16 +0000 (01:45 +0200)]
test case for converting QFont from and to QString

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoadd config file for testing X 16 bit depth support
Ivailo Monev [Fri, 18 Nov 2022 23:19:32 +0000 (01:19 +0200)]
add config file for testing X 16 bit depth support

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoupdate comment in QVariant test data
Ivailo Monev [Fri, 18 Nov 2022 23:07:52 +0000 (01:07 +0200)]
update comment in QVariant test data

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agozero-copy QX11Data::copyXImageToQImage() for some cases
Ivailo Monev [Fri, 18 Nov 2022 19:28:52 +0000 (21:28 +0200)]
zero-copy QX11Data::copyXImageToQImage() for some cases

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoQX11Data::copyXImageToQImage() optimization
Ivailo Monev [Fri, 18 Nov 2022 18:52:58 +0000 (20:52 +0200)]
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>
20 months agoMerge branch 'master' of https://scm.osdn.net/gitroot/kde/Katie
Ivailo Monev [Fri, 18 Nov 2022 18:21:43 +0000 (20:21 +0200)]
Merge branch 'master' of https://scm.osdn.net/gitroot/kde/Katie

20 months agospecial-case QImage::Format_RGB16 with different bytes per line
Ivailo Monev [Fri, 18 Nov 2022 18:21:18 +0000 (20:21 +0200)]
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>
20 months agoremove QTextDecoder and QTextEncoder leftovers
Ivailo Monev [Fri, 18 Nov 2022 16:26:30 +0000 (18:26 +0200)]
remove QTextDecoder and QTextEncoder leftovers

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoconvert the SVG image to QImage::Format_ARGB32_Premultiplied only if it is not in...
Ivailo Monev [Fri, 18 Nov 2022 12:33:44 +0000 (14:33 +0200)]
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>
20 months agodrop noop SVG quality implementation
Ivailo Monev [Fri, 18 Nov 2022 12:10:13 +0000 (14:10 +0200)]
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>
20 months agoremove redundant QCompleter::event() reimplementation
Ivailo Monev [Fri, 18 Nov 2022 02:06:34 +0000 (04:06 +0200)]
remove redundant QCompleter::event() reimplementation

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoremove unused QPdf::generateLinearGradientShader() method
Ivailo Monev [Fri, 18 Nov 2022 01:26:33 +0000 (03:26 +0200)]
remove unused QPdf::generateLinearGradientShader() method

USE_NATIVE_GRADIENTS is never defined

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoremove unused QFontSubset::toTruetype() method
Ivailo Monev [Thu, 17 Nov 2022 23:26:21 +0000 (01:26 +0200)]
remove unused QFontSubset::toTruetype() method

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agocorrect logic in isStyleMatch() function
Ivailo Monev [Thu, 17 Nov 2022 20:15:19 +0000 (22:15 +0200)]
correct logic in isStyleMatch() function

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoload the application font as last resort instead of adding it to each patterns
Ivailo Monev [Thu, 17 Nov 2022 19:26:19 +0000 (21:26 +0200)]
load the application font as last resort instead of adding it to each patterns

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agoremove now bogus QFont test
Ivailo Monev [Thu, 17 Nov 2022 18:50:11 +0000 (20:50 +0200)]
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>
20 months agodo not add the last resort font to the pattern when loading font
Ivailo Monev [Thu, 17 Nov 2022 18:37:30 +0000 (20:37 +0200)]
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>
20 months agominor QFont documentation review
Ivailo Monev [Thu, 17 Nov 2022 18:36:13 +0000 (20:36 +0200)]
minor QFont documentation review

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 months agodo not add fonts with empty style to the database
Ivailo Monev [Thu, 17 Nov 2022 19:44:47 +0000 (21:44 +0200)]
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>
20 months agoquery and set font pixel size from QFontDatabase
Ivailo Monev [Thu, 17 Nov 2022 17:09:54 +0000 (19:09 +0200)]
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>
20 months agopreperations to drop QFontInfo
Ivailo Monev [Thu, 17 Nov 2022 16:37:21 +0000 (18:37 +0200)]
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>
21 months agoresolve family aliases from QFontDatabase methods
Ivailo Monev [Thu, 17 Nov 2022 14:30:48 +0000 (16:30 +0200)]
resolve family aliases from QFontDatabase methods

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agofix font style matching in QFontDatabase::font() and test case it
Ivailo Monev [Thu, 17 Nov 2022 12:47:52 +0000 (14:47 +0200)]
fix font style matching in QFontDatabase::font() and test case it

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agoset the pitch of the font from QFontDatabase::font()
Ivailo Monev [Thu, 17 Nov 2022 12:41:30 +0000 (14:41 +0200)]
set the pitch of the font from QFontDatabase::font()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agoexport qt_getClipRects() only for the QRegion test
Ivailo Monev [Thu, 17 Nov 2022 12:32:27 +0000 (14:32 +0200)]
export qt_getClipRects() only for the QRegion test

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agomove qt_getClipRects() function to qregion source file, where it belongs
Ivailo Monev [Thu, 17 Nov 2022 12:30:53 +0000 (14:30 +0200)]
move qt_getClipRects() function to qregion source file, where it belongs

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agolock before accessing the custom meta types global static in QMetaType::type()
Ivailo Monev [Wed, 16 Nov 2022 20:17:47 +0000 (22:17 +0200)]
lock before accessing the custom meta types global static in QMetaType::type()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agoRevert "always allocate QGlyphLayout data on the heap"
Ivailo Monev [Wed, 16 Nov 2022 19:27:57 +0000 (21:27 +0200)]
Revert "always allocate QGlyphLayout data on the heap"

will have to wait until the QTextEngine redo

This reverts commit 4a5239046adeb78397c868074fe48d595fcb8fa4.

21 months agoalways allocate QGlyphLayout data on the heap
Ivailo Monev [Wed, 16 Nov 2022 17:15:45 +0000 (19:15 +0200)]
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>
21 months agoadd thread-safety test for QFontDatabase
Ivailo Monev [Wed, 16 Nov 2022 14:01:25 +0000 (16:01 +0200)]
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>
21 months agoQFontDatabase test review
Ivailo Monev [Wed, 16 Nov 2022 13:35:45 +0000 (15:35 +0200)]
QFontDatabase test review

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agodo not assume FcObjectSetCreate(), FcPatternCreate() and FcFontList() return non...
Ivailo Monev [Wed, 16 Nov 2022 13:29:57 +0000 (15:29 +0200)]
do not assume FcObjectSetCreate(), FcPatternCreate() and FcFontList() return non-null pointers in QFontDatabase constructor

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agoreplace hardcoded QFont::Unstretched value with the enum
Ivailo Monev [Wed, 16 Nov 2022 13:26:25 +0000 (15:26 +0200)]
replace hardcoded QFont::Unstretched value with the enum

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agoassume the codec MIB is in the table in QTextCodec::mibEnum() and add test for it
Ivailo Monev [Wed, 16 Nov 2022 03:05:56 +0000 (05:05 +0200)]
assume the codec MIB is in the table in QTextCodec::mibEnum() and add test for it

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agoremove unused headers inclusions in qfont source file
Ivailo Monev [Tue, 15 Nov 2022 18:17:42 +0000 (20:17 +0200)]
remove unused headers inclusions in qfont source file

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agouse the QPixmap::scaled() method in QMoviePrivate::next()
Ivailo Monev [Tue, 15 Nov 2022 18:08:42 +0000 (20:08 +0200)]
use the QPixmap::scaled() method in QMoviePrivate::next()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agouse QVector for the QMetaMethod list in qInvokeTestMethods() function
Ivailo Monev [Tue, 15 Nov 2022 17:34:24 +0000 (19:34 +0200)]
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>
21 months agomove QTextConverter::ConversionFlag documentation bellow QTextConverter documentation
Ivailo Monev [Tue, 15 Nov 2022 17:12:08 +0000 (19:12 +0200)]
move QTextConverter::ConversionFlag documentation bellow QTextConverter documentation

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agomove constructor and destructor to the top in qfontdatabase source file
Ivailo Monev [Tue, 15 Nov 2022 15:59:57 +0000 (17:59 +0200)]
move constructor and destructor to the top in qfontdatabase source file

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agoread PNG rows directly into QImage allocated memory
Ivailo Monev [Tue, 15 Nov 2022 15:48:09 +0000 (17:48 +0200)]
read PNG rows directly into QImage allocated memory

KAT format is still faster, benchmark result:
********* Start testing of tst_QImageReader *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_QImageReader::initTestCase()
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.kat":
     449,473.586 CPU ticks per iteration (total: 224,736,793, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.kat":
     12,192,500.92 CPU ticks per iteration (total: 6,096,250,460, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.kat":
     4,553,239.292 CPU ticks per iteration (total: 2,276,619,646, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.png":
     1,847,145.64 CPU ticks per iteration (total: 923,572,823, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.png":
     19,422,744.28 CPU ticks per iteration (total: 9,711,372,141, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.png":
     12,389,194.51 CPU ticks per iteration (total: 6,194,597,257, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.ppm":
     653,286.280 CPU ticks per iteration (total: 326,643,140, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.ppm":
     2,728,198.060 CPU ticks per iteration (total: 1,364,099,030, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.ppm":
     2,455,954.036 CPU ticks per iteration (total: 1,227,977,018, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.svg":
     10,524,974.96 CPU ticks per iteration (total: 5,262,487,482, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.xpm":
     8,238,501.942 CPU ticks per iteration (total: 4,119,250,971, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.xpm":
     74,886,112.602 CPU ticks per iteration (total: 37,443,056,301, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.xpm":
     63,337,570.664 CPU ticks per iteration (total: 31,668,785,332, iterations: 500)
PASS  : tst_QImageReader::readImage()
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.kat":
     1,950,330.16 CPU ticks per iteration (total: 975,165,082, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.kat":
     13,089,959.61 CPU ticks per iteration (total: 6,544,979,808, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.kat":
     5,447,284.922 CPU ticks per iteration (total: 2,723,642,461, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.png":
     3,342,337.962 CPU ticks per iteration (total: 1,671,168,981, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.png":
     20,326,863.998 CPU ticks per iteration (total: 10,163,431,999, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.png":
     13,279,201.09 CPU ticks per iteration (total: 6,639,600,546, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.ppm":
     1,498,119.28 CPU ticks per iteration (total: 749,059,644, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.ppm":
     3,641,910.638 CPU ticks per iteration (total: 1,820,955,319, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.ppm":
     3,370,265.894 CPU ticks per iteration (total: 1,685,132,947, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.svg":
     9,147,455.174 CPU ticks per iteration (total: 4,573,727,587, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.xpm":
     9,729,368.638 CPU ticks per iteration (total: 4,864,684,319, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.xpm":
     75,966,954.086 CPU ticks per iteration (total: 37,983,477,043, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.xpm":
     64,719,740.840 CPU ticks per iteration (total: 32,359,870,420, iterations: 500)
PASS  : tst_QImageReader::setScaledSize()
PASS  : tst_QImageReader::cleanupTestCase()
Totals: 4 passed, 0 failed, 0 skipped
********* Finished testing of tst_QImageReader *********

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agocache system fonts on per QFontDatabase object basis
Ivailo Monev [Tue, 15 Nov 2022 14:11:43 +0000 (16:11 +0200)]
cache system fonts on per QFontDatabase object basis

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agodrop support for registering custom QVariantAnimation interpolators
Ivailo Monev [Mon, 14 Nov 2022 22:50:06 +0000 (00:50 +0200)]
drop support for registering custom QVariantAnimation interpolators

even the declarative component inherit and use internal animation classes
methods for interpolation, if anything there should be more interpolators
(e.g. for QVariant::LongLong and QVariant::ULongLong)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agoqconfig header update
Ivailo Monev [Mon, 14 Nov 2022 21:26:22 +0000 (23:26 +0200)]
qconfig header update

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agoremove unused QErrorMessage class
Ivailo Monev [Mon, 14 Nov 2022 21:22:19 +0000 (23:22 +0200)]
remove unused QErrorMessage class

Katana uses KMessageBox or system notifcations for such things

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
21 months agodo not store the hinting flags in QFontEngineFT
Ivailo Monev [Mon, 14 Nov 2022 19:08:39 +0000 (21:08 +0200)]
do not store the hinting flags in QFontEngineFT

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>