QMake's windows.prf expects the WinMain library to be named
'qtmain[d].lib' and not 'Qt6WinMain[d].lib'. We're renaming the
library to 'qtmain[d].lib' in the CMake build now to avoid adjusting
the qmake build of Qt.
Also, we have to add the private library shell32.lib to WinMain to
make it appear in qtmain.prl and having it linked to Windows GUI
applications.
Fixes: QTBUG-84425
Change-Id: Ia94090b89e037b17ebfded359b293c8586371d59
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Causes emission to not happen and prints a warning
Pick-to: 5.15
Change-Id: Ie80cc89549741079c243e6fd4269f793bccca9fd
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
A property alias is the equivalent of the "alias" keyword in QML. It
provides the same API as QProperty, but redirects any access to the
QProperty it was initialized with. When the original property is
destroyed the binding becomes invalid and ignores any further acccess.
Task-number: QTBUG-84370
Change-Id: I0aef8d50e73a2aa9e7703d51194d4c5480573578
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Please use qt_windows.h instead, so we avoid having min/max defined.
Change-Id: Ic1b29666c427bf24556da5494af45ee5953ae827
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
This reverts commit 318a991907
and its follow-up commit beede51bca.
This fix was incorrect and caused regressions elsewhere (QTBUG-84357)
The issue in QTBUG-71928 (offsets on emojis) turned out to be much
simpler: The emojis are expected to be drawn without any margin,
but since we retrieved the margin for A32 there would be a mismatch
between the margin used for positioning and the actual margin in the
returned QImage from the font engine.
Passing the correct margin in bitmapForGlyph() fixes this.
But reverting these fixes reintroduces a clipping bug when using
software rendering in Qt Quick: QTBUG-80180. This needs to be addressed
in Qt Quick. It also exposes an existing issue with positioning in
Qt Quick NativeRendering: QTBUG-84454.
In addition, it caused an assert when running with ClearType disabled,
which turned out to be because we were using the A32 margin in the
A8 case in the DirectWrite engine. This was also the cause of
QTBUG-50024 before, which is now also fixed.
However, it also needs to work with Qt Quick, where the text is currently
offset by margin * dpr and glyphs are clipped with the software renderer,
possibly because of the offset in position.
Task-number: QTBUG-71928
Task-number: QTBUG-84042
Task-number: QTBUG-80180
Task-number: QTBUG-84454
Fixes: QTBUG-84357
Fixes: QTBUG-50024
Pick-to: 5.15
Change-Id: I2c8f9f9e7dfb34d492e9833a02fa0c93e6a19513
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
We need to divide by 257 and round to undo our setter.
Pick-to: 5.15
Fixes: QTBUG-84168
Change-Id: I55d2a8d1d05125d9560309cd77459cc94a92030f
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Add default parameter for arguments in start, startDetached, and
execute for better source compatibility with Qt 5.15. This has the risk
of then hiding incorrect calls to the previous overload taking a single
"command" strings if code is ported from pre-5.15 or ignores deprecation
warnings. This is acceptable, given that the alternative is that all
calls to these functions would require a default constructed QStringList
as the second parameter.
Change-Id: I1ba4df97ac4894d007da5083c8359015d784ddbb
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
The bold+italic combination indicated by ***triple stars*** requires
this; but it enables combinations of italics, bold, strikeout, anchor
text (and associated link formatting), image alternate text, and inline
code formatting (monospace). A code span overrides the formatting from
surrounding spans (which might be a bug to fix in another patch, if we
compare to how md2html formats code nested in bold-italics for example),
but the format stack restores state when any char format span ends.
Task-number: QTBUG-81306
Pick-to: 5.15
Change-Id: I289556fa53de400eb50a4d159b9b344eafc517da
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Previously, only the first observer would get notified. Also, make sure
that the notifiers are always retained when switching between bindings
and values.
Change-Id: I9c25c0f2e288dac3a335b68e618f7ddeb44be25a
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
We also compare exact encoding, not just the same values in RGB.
Pick-to: 5.15
Fixes: QTBUG-84436
Change-Id: Ia50be17864ee42cf1f6d44dd2cad27daca317faa
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
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>