For some overly tight beziers where the start or end point and the
next control point are closer than the pen width, the stroker's
shifting algorithm will produce a start/end tangent pointing in the
opposite direction from what is expected, for one of the sides. This
would break the square and round capping logic. Fix by detecting the
situation in the capping function and reversing the tangent when
necessary.
Change-Id: I48f4f017403d7b289b0483dd2b3a7ff1bbd0cf2a
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
The read_xbm_header() function is used to check for valid file header,
containing valid width and height values. But in case of an invalid file,
the check could depend on uninitialized variables.
Change-Id: I9f933ed6e38d86109e5b5a8d55fe763ab928d749
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
The rendering of a css styled menu item with icons or checkmark was
partially fixed with aa1bc47942 but
introduced some other painting regressions, especially in RTL mode.
Fix it by syncing the code with fusion and windows style. With this
patch a menu text with a check mark but no icon is now aligned exactly
the same as a menu text with a icon.
Fixes: QTBUG-66380
Fixes: QTBUG-70491
Fixes: QTBUG-72817
Change-Id: I83a95d15eb130e7f72471820b53c3cd5554d9334
Reviewed-by: Nick D'Ademo <nickdademo@gmail.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
tst_QHeaderView::defaultSectionSizeTest() fails on High-DPI screens
because the default minimum section size is greater than the values used
for testing the header sizes. Therefore the test will fail.
Fix it by explicitly setting the minimum header size to something
smaller than the test values.
Also add a debug line to output the default minimum section sizes so
other failures due to this problem can be debugged better.
Fixes: QTBUG-73309
Change-Id: I257f341cef9381f140aa4d4f68376c5edadc39cc
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
If a window needs display due to e.g. being resized, we need to wait
until the corresponding expose event has been delivered before we
resume update requests, otherwise the update requests may result
in partial paints that do not fully cover the area needing display.
Change-Id: Ibfb54bfe3c2e85b606ef67d34a6a5fdb85456edd
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
This makes it much easier to have the version information set for an
Android APK without having to manually modify the AndroidManifest.xml
each time.
[ChangeLog][Android][qmake] Can now set the version name and code for
Android using ANDROID_VERSION_NAME and ANDROID_VERSION_CODE respectively
in the pro file.
Change-Id: Ie6813bc3a7444f7baa5e772b93bc2695d9b81e57
Done-with: Markus Maier <markus.maier@rosenberger.de>
Reviewed-by: Markus Maier <markus.maier@rosenberger.de>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
If the user changes the .pro file, the Makefile is supposed to be
re-generated by calling qmake again. NMake however lacks a "Makefile
remake feature" like GNU make has.
The generated Makefiles for nmake however have already a proper
Makefile target that can be used to re-generate the Makefile. What was
missing is the dependency from an entry-target in the meta-Makefile.
Now changes in the .pro file trigger a re-generation of
Makefile.Debug/Makefile.Release when calling nmake without target
arguments or with "debug" or "release".
Fixes: QTBUG-29193
Change-Id: I9f2dd5deba4a043ab6c9502bb0b0ba83dc843612
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
1. Removed all Qt header files and make it a pure win32 project because it doesn't use any Qt features.
2. According to MSDN, CommandLineToArgvW is in shellapi.h, so replace ShlObj.h with it.
Change-Id: I3daacb97f34664ac36f8e887a2c31d38f611b16e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
QSharedDataPointer obeys the regular Qt container thread-safety rules:
it's thread-safe in const methods but not in mutating ones. QSDP::data()
is mutating, which causes a data race. For example, if the contained
QLocalePrivate has a refcount of 2 and two threads see that, both
threads will try to detach and then replace the pointer, but that
pointer replacement is not atomic.
Using QExplicitSharedDataPointer makes the race go away, since data() is
now non-mutating. QESDP is used only to destroy the QLocalePrivate on
program shutdown.
Note that there are still race conditions relating to *updating* the
locale private.
Fixes: QTBUG-73403
Change-Id: Id98140e1c2f0426cabbefffd157ed6ec30a3e08f
Reviewed-by: Thomas Sondergaard <thomas@sondergaard.cc>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Only for tests that have existing expected_*.* files for other
formats, though.
Change-Id: I34ca1900d88454f300e04d849a608c378009489b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Google removed this support long tima ago, also we removed it from QtCreator.
Change-Id: I326da09e9e57f655eecfd1f25f39b4bd9c6784d1
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
When spliting the patch the edit become an addition instead.
Task-number: QTBUG-72785
Change-Id: I92105d0e23e9b8426228f4202d46fa41f928fb94
Reviewed-by: Christian Andersen <csandersen3@gmail.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Where non-format characters appear in the format string, they are not
"ignored" as claimed; they are passed through verbatim. Formats
without separators between fields are in fact supported, although
results may be ambiguous. Cleaned up phrasing in the process.
Fixes: QTBUG-51208
Change-Id: I7284a36c48aa0be29deaa16945ca0212e9e6f72c
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Regexes have long specified that a [ as the first character inside a
[...] is just a literal [, but apparently we need to escape it now, to
avoid a "nested set" FutureWarning.
Change-Id: I76a48c9aafb0684a1d6b0d5284fe9852c9ea0e43
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
It was incorrectly counting a block having more than one line as having
changed visibility.
Fixes: QTBUG-69310
Change-Id: I502cda1d3e8a4efb1c14122353cc0a4731d8581c
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
This is required to support the new emoji font on Android 9.
[ChangeLog][Freetype] Upgraded bundled Freetype version to 2.9.1.
This also adds support for the latest emoji font in use on
Android 9.
Fixes: QTBUG-70657
Change-Id: I99be72f0d23c20aca122b8fdadd4ded87b2edce1
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
OpenSSL 1.1.0 and higher requires SSL_shutdown to mark a
session as resumable.
QHttpNetworkConnection/Channel tries to re-use one shared SSL
context (and the session) for its 'channels'. The session is
marked as non-resumable without shutdown sent/received.
This makes it useless for QHttpNetworkConnection.
See: https://github.com/openssl/openssl/issues/1550
Fixes: QTBUG-71967
Change-Id: Iaaceb18c4c5a090f997f9850981a27f04f1f8b06
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
For some reason, displayRectIgnoringOpacity renders NSBox with a
smaller height than we asked. So let's ask for more and translate.
Change-Id: I6e03ad99d1ccf746c89d58dd37d53d0087f15282
Fixes: QTBUG-71741
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Like we do with fully matching format, pick the first matching one,
instead of the last matching one.
Fixes: QTBUG-72785
Change-Id: I466e0152a229348b6a3786d5464d1f8ab325d67a
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Only the first successful query was stored in the variable. When a new
query is executed the function QSqlResult::setActive was not replacing
the last executed query.
Fixes: QTBUG-28883
Change-Id: Ib4938c42e6264f9edd0764b4a392da7988f68fc0
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
QPictureIO::read() is using pictureFormat() when the format has to be
guessed. pictureFormat() returns a QByteArray which was implicit
casted into a char* and then pointed to uninitialized memory.
Fix it by using a QByteArray instead a plain char*.
Change-Id: If9ae286ed68134af597f0b0c779789e40f9efaed
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Unused resources
----------------
Unused resources make applications larger and slow down builds.
Amends e3689949ba. The string
was introduced there but not added to the manifest.
Task-number: QTBUG-72895
Change-Id: Id07e02074feb15ace2c99e6ace51d8fe407877fa
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
The object role may in some cases (e.g. when using
Qt Quick Loaders) be changed after construction, and
we don’t have RoleChanged events.
Change-Id: Idb246c1c1206221cacd93c83cbd07a0e3d98cb0e
Fixes: QTBUG-72967
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
When a QRawFont is set explicitly on the layout, we would get certain
font properties from the QTextCharFormat instead. But when the properties
had not been set on the QTextCharFormat, we would get the default values
which were always 0/false, not the actual default values used in QFont.
Instead, we calculate a QFont query based on the format and use the
properties from this. This will give us the correct default values
in the cases where they are not overridden.
Change-Id: I53e5103739164c3d9eafaf76fcb4e8bda57bd12a
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Prioritize blacklisting over QEXPECT_FAIL so that a test that is
blacklisted no longer fails if QEXPECT_FAIL returns true unexpectedly. To
reflect this state properly, the two values of BXPASS and BXFAIL were
added to testlib's output.
[ChangeLog][Important Behavior Changes][QtTestLib] Blacklisting of tests
will be taken into account for XPASS and XFAIL. A blacklisted test that
causes an XPASS will no longer be a fail.
Task-number: QTBUG-72928
Change-Id: Ia2232fdc714d405fa3fd9aea6c89eb2836bc5950
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Fixes the rest of the places we use the pattern of emptying the OpenGL
error stack to be able to handle GL_CONTEXT_LOST.
Change-Id: Ic45024fc6df84d70d60c48831fa586f889af0c0b
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Relying on QSurfaceFormat() to check whether or not we should set
the alpha channel size makes it impossible to tweak other properties
of the surface format without also having to set the alpha. There's
no need to do such as broad comparison, we can check the alpha channel
size for its default value instead.
Change-Id: Iac31d37c9460eb3e7ec5ee15902f7e5addb48178
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Also catches some more variants of SDK mismatch, such as Xcode not
being installed at all, or the SDK missing.
Change-Id: I184aaa571ef0ea722ca64c54f665462dabc17533
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
QPlatformGraphicsBuffer::byteCount() shouldn't need locking unless
bytesPerLine() is implemented in a way that requires it, in which
case the assert should be in the subclass.
Change-Id: I0fdb04c0a3ab042408d6d17b2759509853573d16
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
If configure is called with -continue, it should not stop processing
command line arguments after encountering an invalid one.
Example:
configure ... -continue -quack -no-feature-gui
would ignore everything after -quack.
Change-Id: Ia5f0cb13414c9c0c7246ff0c72f8e935fe6dca3c
Fixes: QTBUG-72912
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
...and yield a warning that -skip has no effect in a qtbase build.
This is consistent with configure's help output and enables us to
always pass "-skip qtwhatnot", whether we're calling top-level or
qtbase configure.
Change-Id: Ie5b0791a6000d1d78b1367658ad86a92b2ec6a6a
Fixes: QTBUG-71253
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
In NDKr19 they removed "-strip-all-gnu" argument, now
llvm-strip prints tons of:
.../llvm-strip: error: unknown argument '-strip-all-gnu'.
Change-Id: I11bb2d6abcc5f236730c57b5b93cc932c7ba58c6
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
It seems the pointer message handler was skipping the handling of touch
and pen messages during a drag and drop operation, preventing the
generation of events that quick was expecting and triggering a crash
inside MouseArea.
Fixes: QTBUG-73120
Change-Id: I2921e38dd7e44846607e6c614d7393cfa5664c69
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>