When QFutureWatcher (or QFutureInterface) is paused, it doesn't
mean that it will take effect immediately: the pending tasks may
still be in progress and keep reporting results. At the moment
QFutureWatcher will queue those events and report only with the
next resume. This behavior is wrong, QFutureWatcher should not
decide when to report events, the sender should decide when is the
right time. There's no benefit in reporting already happened events
with delay. Because of this, even the pause event itself was being
reported after resume.
Fixed the behavior by removing the logic of queueing events when
the state is set to "paused". It seems unlikely that the users of
QFutureWatcher rely on reporting events with delay.
[ChangeLog][Important Behavior Changes][QtCore] QFutureWatcher will not
immediately stop delivering progress and result ready signals when the
future is paused. At the moment of pausing there may be still computations
that are in progress and cannot be stopped. Signals for such computations
will be still delivered after pause, instead of being postponed and
reported only after next resume.
Fixes: QTBUG-12152
Change-Id: I9f0b545ac096578c52cc72d60575c018c01e3368
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
When including files, moc inserts a MOC_INCLUDE_BEGIN and
MOC_INCLUDE_END token into the token stream. Those are already handled
in the toplevel Moc::parse function, but parseEnum lacked support so
far.
Pick-to: 5.15
Fixes: QTBUG-80578
Change-Id: I35c8fd959347d94af20090b3a505dd9e6bfaff88
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
some distributions (eg Ubuntu) don't provide xml executable, but only xmlstarlet executable
Change-Id: Icc801ded8d4ec1ec4d1dab93289a2365f8cd9cbd
Pick-to: 5.15
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Use the ForDpi versions of retrieving non clientMetrics.
Pick-to: 5.15
Task-number: QTBUG-82267
Change-Id: I434f6980c47258bfe40d38723d3f66d71217e186
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
This is rather evil and caused crashes in static builds, when library
and application where compiler with different settings of the
QT_USE_QSTRINGBUILDER flag.
The reason is that the implementation of QStringDecoder::operator() was
different (and returning different data) with or without the setting.
The compiler would thus create two very different versions of this method
in different .o files. When linking the app, one of the implementations
would be chosen, leading to crashes in places where the other one was
expected.
Fix this by only providing the QStringBuilder enabled version of the
methods. They return a temporary object that's converatable to a
QString/QByteArray anyway. Make sure that qdoc shows a simple signature.
As a drive by fix a compile error in a code path that didn't get hit
so far.
Change-Id: I312fa564d0bc6b464f2b4466de1d53841f7b7b0f
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Move the details on how to build after the index page.
Remove mentioning of the central include. Instead, mention
the CMake functions to use.
Task-number: QTBUG-73058
Change-Id: Ibf5952530c3b86915c9fb6562f7d9e0b010720ee
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Skeleton to document changes to Qt Core in Qt 6.
Task-number: QTBUG-71036
Task-number: QTBUG-84051
Change-Id: I2720beffb934121258331efd9eeb91c07d40a5bf
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
This marks the end of EGL and OpenGL ES support on Windows.
The concepts of -opengl dynamic, -opengl desktop, QT_OPENGL=software,
etc. remain unchanged, with the exception of the disapperance of
everything ANGLE related.
CMake builds now work identically to qmake on Windows: they default to
'dynamic' OpenGL on Windows, unless -DINPUT_opengl=desktop is specified.
On Windows, Qt 6 is expected to default to the "dynamic" OpenGL model by
default, just like Qt 5.15. This can be changed by switching to "desktop"
OpenGL, which will link to opengl32 (publicly, so other libs and applications
will do so as well) and disallows using another OpenGL DLL.
The "dynamic" mode is essential still because the fallback to a software
rasterizer, such as the opengl32sw.dll we ship with the Qt packages,
has to to work exactly like in Qt 5, the removal of ANGLE does not
change this concept in any way (except of course that the middle option
of using ANGLE is now gone)
When it comes to the windows plugin's OpenGL blacklist feature, it works
like before and accepts the ANGLE/D3D related keywords. They will
then be ignored. Similarly, requesting QT_OPENGL=angle is ignored (but
will show a warning).
The D3D11 and DXGI configure time tests are removed: Qt 5.14 already
depends on D3D 11.1 and DXGI 1.3 headers being available unconditionally
on Win32 (in QRhi's D3D11 backend). No need to test for these.
[ChangeLog][Windows] ANGLE is no longer included with Qt. Dynamic OpenGL
builds work like before but ANGLE is no longer an option. OpenGL proper
or an alternative opengl32 implementation are the two remaining options
now. Attempting to set QT_OPENGL=angle or Qt::AA_UseOpenGLES will have
no effect on Windows.
Fixes: QTBUG-79103
Change-Id: Ia404e0d07f3fe191b27434d863c81180112ecb3b
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
[ChangeLog][QtCore][QSortFilterProxyModel] Add a 'autoAcceptChildRows'
property to always show children rows of accepted rows.
Change-Id: I2402469ece438179d0f19888b9775cc27cf5c749
Reviewed-by: David Faure <david.faure@kdab.com>
The offscreen implementation does not have a QPlatformNativeInterface
implementation.
Pick-to: 5.15
Change-Id: Ife4f296f52c307a2fab90de2cdc1ef0cc7796385
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Qt module targets now export the "_qt_config_module_name" property,
which contains the module's name in qmake land. This can be different
from the lower case target name (e.g. Test vs testlib). This exported
property is used when retrieving the dependencies of a module outside
of qtbase.
The property's name is a bit odd and lower case, because we want to be
able to set it on INTERFACE_LIBRARY targets, for instance header
modules. This CMake pecularity is described in
https://gitlab.kitware.com/cmake/cmake/issues/19261
Fixes: QTBUG-84287
Change-Id: I4a75af3ebeabebc56a0f77d464e45ab7fd81eafa
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
mValue is a QByteArray, so no need to expand data to UTF16 just to
compare it to a Latin1 character.
Change-Id: Ib3c8770867cd5509bb4c2ac5e45aabca577b3bba
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
It seems this example never worked as expected.
It has a 'multiple' option which should show extra
windows with rendering taking place in different
thread, however although render is moved to other thread
render() function was never called in that thread.
Fix following things:
* make rendering in other thread
* stop requestUpdate if nothing is exposed
* add timer so animation works at the same speed despite
of number of windows (renderer B renders two windows)
* wait for render to finish before triggering requestUdpate
* remove mutex where not needed
Pick-to: 5.15
Change-Id: I420436bd28d0357534332dd55b088d634d906c14
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
QOpenGLWidget has backing store and does not really fit into
doc's context. Change it QOpenGLWindow.
Change-Id: I7f92e49497b8cc35d322b607c865c2914672ace3
Pick-to: 5.15
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
DXT1 is BC1, but DXT3 is BC2 and DXT5 is BC3.
Change-Id: Icb0ea4cc9efeab2453343753e9fda7f825c9b8d1
Pick-to: 5.15
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Added the new css property lineedit-clear-button-icon
Change-Id: I4596b923eb34325a73d0a80b72d963fd6204ea26
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
This implicitly makes it use qsizetype for the length.
Change-Id: Ib39a5a8dd71e48b45179079f7c7fe5e4edbdb5eb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QWindowsFontDatabase::defaultVerticalDPI(), which was used
for converting the point sizes was missing an updating
logic for scaling changes. When implementing it, it turned
out that the value obtained from GetDC(0) does not adapt
to scaling changes.
Remove the function and set it from the screen manager directly
to the DPI of the primary screen.
Pick-to: 5.15
Task-number: QTBUG-82267
Change-Id: If05ebc893fe78a9461500aba97f2dc127cdf4406
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Tests focusProxyAndInputMethods and
multipleToplevelFocusCheck will be blacklisted
Task-number: QTBUG-84259
Change-Id: I7d5baf1e700192eed3c7c8dcfe671e247f11b8c7
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
Simplify QItemSelectionRange by removing the unneeded
user-defined functions - the compiler can generate them by it's own.
Change-Id: I49c00f937df98bb1ad18057b7bae7a0e06919909
Reviewed-by: David Faure <david.faure@kdab.com>
Remove the 'dummy' member - it's not needed since ages.
Change-Id: I4869cf9153c892ea065340335ff7accd529a79c6
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
The version checks for clearItemData() are no longer needed now.
Change-Id: I5052188fb96cf637128662f3442d339820f0f41d
Reviewed-by: David Faure <david.faure@kdab.com>
Remove the two deprecated (and non-functional) options
OptimizeOnFirstUsageOption and DontAutomaticallyOptimizeOption.
Change-Id: Id5191cee84bf7b1ae65f828a981f93d98db23f53
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Instead of manual string splitting (EW!), use QDateTime parsing.
Moreover, X.509 certificates *must* have a valid start/end date.
In case of parsing failure, reject the certificate. An autotest
for this last case is coming in a separate patch.
Change-Id: I934bf9e6a4a92e4befdb3b0f9450f76f67bad067
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Qt 5.4 is not documented anymore since quite some time.
Change-Id: I6811ead502178f7acbed8cf450e42d7fd33ae29b
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Since glCompressedTexImage2D() does not allow zero data, it could not
be executed during texture build. Instead it would be done during the
first subresource upload. This made atlasing clumsy, since one had to
introduce a fake upload of the full texture size before the subtexture
uploads. This commits lets the gles2 backend deal with that instead.
Introduces the UsedAsCompressedAtlas QRhiTexture::Flag for opting in
to this behavior.
Task-number: QTBUG-78582
Change-Id: Ib6e4ea637c62cc8a51bd9a4a06e59882f335f2a7
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>