Some users still prefer the fake bold look even if in some cases it does
not look good. So add an environment variable -
QT_NO_SYNTHESIZED_BOLD_LIMIT - to allow that fallback to stay in place.
Pick-to: 6.2 5.15
Change-Id: I8212c1fa36edb4730b187dc4a23ea45f94981154
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Remove useless overrides of QAbstractFileEngine methods from the derived
classes. Also remove "This virtual function must be reimplemented by
all subclasses" passages from the QAbstractFileEngine's documentation.
There are pure virtual methods for such use cases. QAbstractFileEngine
already contains useful defaults for classes not supporting all the
functionality.
Change-Id: Ia25965854f3809b15d7502da3749cc2f3414bbc3
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
After the split of QHash and QMultiHash this function was not documented
since it was previously inherited from QHash.
As a drive-by also update 'int' to 'qsizetype' in docs
Pick-to: 6.2
Change-Id: I5d168886f13c2cdd4482038e66d0cf218789c847
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
The wasm event dispatcher needs to differentiate between
top-level QCoreApplication::exec() and QEventLoop::exec()
calls.
Add the “ApplicationExec” enum value. The value is
undocumented, like EventLoopExec and DialogExec.
Change-Id: I2924daee39ef85a3ea7e766e317b3071b5d7f541
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Remove the if-there-is-more-than-one-swapchain condition. Surely in a
(onscreen) 0, (onscreen) 1, (offscreen) 0 frame sequence the wait is
essential when starting the offscreen frame. Otherwise we may be
deferred-releasing resources from the still active onscreen #0 frame.
The problem is only apparent with certain frame slot change sequences.
For instance (onscreen) 0, (offscreen) 1, (onscreen) 0 would not show
any problems.
Pick-to: 6.2
Change-Id: I705a0a3ab0b4bc9e4dc2b1c6ff60025d04c739b3
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
The file needs to be copied into the top-level build config dir.
Amends 7531994379
Pick-to: 6.2
Fixes: QTBUG-97919
Change-Id: I8e0b525cfbd89ce5c7b07b62bfc023a7f8650cb9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
The existing symLinkTarget() always resolves the symlink
target to an absolute path; It will be clearer to change
LinkName to AbsoluteLinkTarget. It is ready for the commit
about add symLinkPath() to read the raw link path.
Fixes: QTBUG-96761
Change-Id: I8da7e23b066c9ac1a16abb691aa1c4a5f1ff8361
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Wang Fei <wangfeia@uniontech.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Qml modules are staged to the special folder when building for android.
To make them visible we need add this folder to qml imports paths that
are used by qmlimportscanner.
Fix typo in _qt_native_qml_import_paths property name when converting
QT_QML_IMPORT_PATH property.
Pick-to: 6.2
Task-number: QTBUG-96898
Change-Id: Iaf1e06c64553e8ea27f020226095da36e1f9d881
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Make it a static variable to avoid acquiring
the system version multiple times. The system
version won't change at runtime after all.
Pick-to: 6.2
Change-Id: Ic381e5dd7b482fedc9c01242482559ffca9d3f2b
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
This reverts commit 816c5de460.
Reason for revert: Causes crash on Nvidia when Qt is configured
with -opengl es2
Fixes: QTBUG-97738
Change-Id: I9fe43146b922fc770890a144fdb1bd1c564635bb
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Mostly a removal of dynamically loaded API.
They should all exist on Windows 10 1809
(Qt6's minimum supported version).
accessibility parts left untouched to make
sure MinGW still compiles.
Task-number: QTBUG-84432
Pick-to: 6.2
Change-Id: I7a091fc967bd6b9d18ac2de39db16e3b4b9a76ea
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
QAction::menu is deprecated, as it makes QAction (a QtGui class) depend
on QtWidgets. The template hack works, but shouldn't become a permanent
solution and is already deprecated.
To get the QMenu out of a QAction that contains it, add a static helper
to QMenu instead. QAction continues to store the menu pointer so that
we don't have to use a dynamic property or an associative container in
QMenu.
Change-Id: Ieb6a2b1900d2fc2f16dd5a4a8ab7da98604642d3
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Collation with the default QCollator object (no numeric, punctuation or
case sensitivity changes) is a common-place occurrence, so add two
functions to do this work.
It's also what QString::localeAwareCompare() calls.
The test ends up testing that default, static collator updates after the
default QLocale changes too.
Task-number: QTBUG-95050
Change-Id: I7e0b82c2d2fe464082d8fffd1696ac77f32840b2
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
The check was made against the default locale but the code calls the
system functions (wcscoll, wcsxfrm, wcscmp) for locale-specific
collation, so should be comparing to the system locale's collation
locale (i.e. LC_COLLATE). Also correct the Android-only check in
tst_QCollator::compare() which duplicated the check but neglected the
C locale, which is also supported (via QString::compare).
Pick-to: 6.2
Change-Id: I48c3237dd6825e2070272ab88d95bdb8cbb9fc37
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This variable was used in Qt5 to specify the install location of the
MySQL library. In Qt6, MYSQL_INCLUDE_DIRS and MySQL_LIBRARIES serve
this purpose, and MYSQL_PATH is unused.
Change-Id: I2df12b79777af50c719a5b6bc5feadc2c59c0c3d
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This variable was used in Qt5 to specify the install location of the
OpenSSL library. In Qt6, OPENSSL_ROOT_DIR serves this purpose, and
OPENSSL_PATH is unused.
Change-Id: I40cc412bb35666dac3dd134ca8bfb67f3d524f80
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Change e946e6895a implements proper
support for ICCM 4.1.4 window state handling. One issue it addressed
is that a show() after a hide() needs to be delayed until the window
manager/X-server has processed the previous event.
This was handled with a deferred task list to send the map/unmap
events. According to ICCM, we should wait for the _NET_WM_STATE
notification before processing the deferred events.
But this is only true for top level windows, as child windows are
not handled by the window manager and will never receive any
_NET_WM_STATE notifications. For those, we should use the unmap
notify event, which means that the X-server has processed the unmap
and handle deferred events once that notification has been received.
This fixes an issue in Qt Multimedia, where QVideoWidget would not
show the video anymore after a minimize of the player or when making
the QVideoWidget fullscreen. This is because QVideoWidget uses an
embedded QWindow to render video using HW acceleration.
Fixes: QTBUG-97257
Pick-to: 6.2 5.15
Change-Id: I5c47eba3276a1f243bdafd5346f353c7843403bb
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Use new API for QCompatProperty with custom getter instead of ad-hoc
solution.
Task-number: QTBUG-89655
Change-Id: I06481ad4d360b178be001ceb9c6c8460b73391f6
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
In some bug reports we got code which does deleteLater()
on QCoreApplication, however this is not going to work as
the user may expect.
In cases where an application uses Qt WebEngine, this leads
to weird looking crashes on exit as webenginecontext is not
destroyed.
Pick-to: 6.2 5.15
Change-Id: I4d284f30b0c7cad15ba6da3d65cdf813c36ee036
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
The only non-inline function of that class was observerCount() which
would use two of the inline functions defined in the header file, so
we can safely inline observerCount() and make the whole class contain
only inline methods
Consequently, inline class doesn't have to be exported in Windows
Change-Id: I41d144d9a50420bbc0091992b36cc36ac2567704
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
We also have move semantics and noexcept.
Pick-to: 6.2
Change-Id: Idcb1d39f79ff45738c641f8dd07fb71cf32d9aca
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
We cannot assume that calling QCursor::setCursor results in a mouse move
event, and we can definitely not assume that the previously pressed
button (via QTest::mousePress) will be included in such an event.
Instead, follow the mechanism used in the QWindow-overload to keep track
of the mouse buttons pressed, and make those the buttons pressed in the
mouse move event we generate.
[ChangeLog][QTestLib] QTest::mouseMove no longer moves the mouse cursor
via QCursor::setPos, but instead generates a QEvent::MouseMove. Testing
of code that relies on QCursor::pos needs to be done with explicit calls
to QCursor::setPos.
Change-Id: Ia643bcc999498a0dc93479b77e107b989dfe202d
Reviewed-by: Jason McDonald <macadder1@gmail.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
It's been there for ages, we may as well use it and remove unnecessary
complexity from CMake.
Pick-to: 6.2
Change-Id: I2bbf422288924c198645fffd16a9742567a7e4af
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Add --no-rcc-bundle-cleanup option to androiddeployqt tool that helps
to debug android build procedures and check the raw rcc bundle for
missing items. Also add the QT_INTERNAL_NO_ANDROID_RCC_BUNDLE_CLEANUP
CMake variable that adds the option when configuring projects for
Android.
Change-Id: I1f30ba979f9fb3274e44a53fdc5ebde4e65f0843
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Change-Id: Id2b3ff8857a4f86ec88a0f4a8d08a227e145ae4d
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Apparently msvc still parses the template and generates code for it when
it encounters an extern template declaration. Thus, instead of speeding
up compilation, it gets slowed down significantly as the instantiation
would happen in every compilation unit that (transitively) included
qmetatype.h.
Task-number: QTBUG-97601
Change-Id: Id5e934afb14ad8973df1b9197aef336b22220111
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
algorithm is a rather heavy header, so we do not want to include it
everywhere. It most likely was put into qglobal, because before C++11,
swap could be found there. However, since C++11 it is located in
<utility>, which we already include. Thus drop the superfluous include.
[ChangeLog][QtCore][Potential source breaking change] The <algorithm>
header is no longer transitively included with qglobal.h. If you used
functionality from that header and relied on the transitive include, you
will now need to explicitly add the header.
Change-Id: Idc1912956b483d313dafd61b8f6a49d60eed8d3c
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Arrays of textures have always been supported, but we will encounter
cases when we need to work with texture array objects as well.
Note that currently it is not possible to expose only a slice of the
array to the shader, because there is no dedicated API in the SRB,
and thus the same SRV/UAV (or equivalent) is used always, capturing
all elements in the array. Therefore in the shader the last component
of P in texture() is in range 0..array_size-1.
Change-Id: I5a032ed016aeefbbcd743d5bfb9fbc49ba00a1fa
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
“Handle invisible child windows gracefully on dpi changes”
This fix was accidentally removed by commit cd96d870
“Move VM_DPICHANGE handling to QWindowsWindow”.
Fixes: QTBUG-96466
Pick-to: 6.2
Change-Id: I3774f6305631ba47282d43e8480e2acaba517a96
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Amends 6c4dc722cb.
Don't search for the optimal size of the scrollarea's widget if it can't
be found anyway. Try the size with scrollbar first, which covers the
vast majority of sizes.
Optimizing the loop with e.g. a binary search adds no value, as the size
is often just a pixel too small.
Since we can't rely on the number of height-for-width calls, we can't
meaningfully test this behavior. The number of calls is still very high
during showing and resizing; optimizing this further is for a separate
commit.
Fixes: QTBUG-97811
Pick-to: 6.2 5.15
Change-Id: If145302e6414b32cf1ce7251ff33b0039f584867
Reviewed-by: Jonas Kvinge <jonas@jkvinge.net>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Move the check to the beginning of the function.
Pick-to: 6.2
Change-Id: Ia44bb2e56626b00e75efabf2ebdc8eb97eee0ff8
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Craig Scott <craig.scott@qt.io>
Use QDir::removeRecursively instead of deleteRecursively when cleaning
up top-level build folders.
Change-Id: Ifb406fc1965a0781eab4fd63a3764a84f4309d25
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
It can only differentiate between cellular and not cellular
and then we can determine if it's disconnected or (presumably) using
wifi.
It is also explicitly not supported on macOS, which adds to the
confusion.
Task-number: QTBUG-91023
Change-Id: I1d002ba06dd9acf1a0daabfb2a4193c07871e9b4
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Extend the general property system page with a section on how
to use bindable properties.
Add some cross-references to improve the user experience.
Task-number: QTBUG-97656
Pick-to: 6.2
Change-Id: I2520cdc168e3a8a66ea387e4ab717f4e0f969424
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Change 64d62c53c1 started treating an
ACTION_CANCEL as a TouchPointReleased. This leads to unintentional
presses, if e.g. an edge swipe for the android back gesture starts on a
MouseArea.
When Android takes possession of the motion, an ACTION_CANCEL is
delivered, which needs to be handled as such. It should not be treated
as a normal up event that triggers a press. Otherwise, we get the
above-mentioned issue, where an unintentional action is performed.
So let's use QWindowSystemInterface::handleTouchCancelEvent to treat it
as a canceled touch in Qt.
Task-number: QTBUG-72110
Pick-to: 6.2 5.15
Change-Id: I68650a180130501568e5a1e9a7f20ea469461e97
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
The previous implementation would occasionally result
in a crash when a window was closed.
Apparently 'auto' cursor does not work so well,
so we now use 'default' name.
Fixes: QTBUG-96178
Pick-to: 6.2 5.15
Change-Id: I0179d20dbdc01f0e3021d746324e1e39c678a298
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
This reverts commit 0921caf976.
Reason for revert: This change breaks mouse press handling in popups themselves. I'll make another solution.
Change-Id: Ib9fd41f3f078e6abf22e5b0f75724d4acc737ead
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
When linking against Qt with MinGW, libmingw32.a must come before
libQt6EntryPointImplementation.a on the linker command line. Otherwise
the linker cannot find the WinMain symbol that's defined in the
EntryPointImplementation library.
Under certain circumstances, mingw32 was linked after
EntryPointImplementation. To reliably ensure the order of said
libraries, we introduce the imported library EntryPointMinGW32. This
target represents libmingw32.a and links against EntryPointImplementation.
The link dependencies look like this:
EntryPointPrivate -> EntryPointMinGW32 -> EntryPointImplementation
The imported library EntryPointMinGW32 is defined in a separate .cmake
file which is included by both src/entrypoint/CMakeLists.txt and
Qt6EntryPointConfig.cmake. This is needed, because the consumer outside
of Qt must access this imported library, and we cannot export imported
libraries.
Pick-to: 6.2
Fixes: QTBUG-93671
Change-Id: Ib3c5e80cbcc9c793d000e5ad637325bcf735a1ec
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Commit d78fb442d7 (5.4) did this for all
regular users of our macros, but obviously missed this manual override.
So apply here too.
Change-Id: I8c6a0ff3ec184205a544fffd16af7734fed2ebd1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Quite a lot of our code in Qt predating QLoggingCategory has manual
environment variable controls. For compatibility with established
documentation and tips-and-tricks out there, we should keep them working
when switching to categorized logging.
Change-Id: I3eb1bd30e0124f89a052fffd16a6c151d3e9d552
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The width calculation lacked the addition of the windowItemFrame
constant, which was added in the rendering code. This resulted in
ellision for long items.
To make the code easier to follow, const'ify, rename, and reorder some
local variables, and use constants from QFusionStylePrivate instead of
(now obsolete and removed) constants copied from the Windows style.
Break long lines as a drive-by.
Fixes: QTBUG-94481
Pick-to: 6.2
Change-Id: I6d3e9d0feebee58fc70beaaf29236b8473242083
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>