A RAII style class which calls a function at end of scope.
Example usage:
auto cleanup = qScopeGuard([] { <my cleanup code> ; });
[ChangeLog][QtCore] Introduced QScopeGuard.
Task-number: QTBUG-62894
Change-Id: Ife67f5c76255a1fafbae03367263da0bac9a0070
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
configure already does it for qt itself, so it's pointless to ever invoke
in default_pre.prf.
to make the exclusion work during the makespec reload during early setup,
we pull ahead the restoration of CONFIG, hoping it won't cause too many
side effects.
another change in qt5 will ensure that top-level builds are also covered.
finally, configure tests also need an explicit exclusion.
that way, attempts to re-configure build trees of commercial builds
after the day of the first configuration do not fail anymore.
Task-number: QTBUG-63452
Change-Id: I42264f64d7621784d4d67bde885a8e501f5ca413
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
9fde78269 fixed overrides for library definitions, but failed to fix
direct overrides of variables from mkspecs, like QMAKE_LIBS_OPENGL_ES2.
Task-number: QTBUG-69176
Change-Id: I818acf25f581903c323847382ec6baab38b64330
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
To quote the documentation:
Queries and returns the state of the modifier keys on the keyboard.
Unlike keyboardModifiers, this method returns the actual keys held
on the input device at the time of calling the method.
So GetCurrentKeyModifiers seems to be the correct Carbon
function to use.
[ChangeLog][QtGui][QGuiApplication] Fix queryKeyboardModifiers() on
macOS to actually return the current modifier key state
Change-Id: I11f2ef1897a39aea13df4afbfebb8172ca803a30
Task-number: QTBUG-26413
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
The wording was quite confusing and misleading - if not set exlicitly,
QNetworkRequest::sslConfiguration() will initialize configuration to
be equivalent of QSslConfiguration::defaultConfiguration(), not what
the documentation stated.
Task-number: QTBUG-13418
Change-Id: Id578db47ec75031376f73db42108053655fbf5c3
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
It's 160ish lines and adequately isolated. Still, it *might* be
contributing to compilers being slow (unlikely though that seems) so
seemed worth tidying up anyway.
Task-number: QTQAINFRA-2117
Change-Id: I9e55e677552c273fdf3480ccefc229fd6fd2b66a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
As remote based printers can be slow to query, meaning that it will take
time to check all the capabilities, especially if the QPrinter is
recreated on need. Then the information should be cached and reused if
the printer is deemed to be the same.
Change-Id: If8f9626c0d44113c698b4f61bbd197157932ccbe
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
The "boot2qt" platform needs to be blacklisted,
not "ubuntu-18.04".
This reverts commit 0d49ac0ffc.
Change-Id: I768a66c56f5fc7e0771473152579ed1c01bbbdb9
Reviewed-by: Sami Nurmenniemi <sami.nurmenniemi@qt.io>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
The Xcode project name may be affected by e.g. the -o argument to qmake,
so we can't assume it's based on the target.
Change-Id: Ibb9f4265017ffcfe26bd8734758dcb30237c704f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Change-Id: Ie8c3975643b9d7e60caf9de4dd3eaa13066a1028
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
When flushing parts of a QBackingStore onto child QWindows, and we're
in layer-backed mode, we need to set the contentsRect of the layer
so that the layer will only show the part of the top-level-owned
backingstore image that's relevant for the child window.
Since the contentsRect is in unit coordinate system, we need to apply
a transform, but this must be based on the top level view's size, not
the image size, as the latter will be twice as big on a retina screen,
giving the wrong unit rect.
Change-Id: I7d6f378ed46a98272efb13406a2878ec1efe734e
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Change-Id: Ib22d2fdca6a4819c1b4056e3207940ceebfbe365
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
The underlying QOpenGLContext may fail to be made current, e.g. if the
surface is not exposed, or the graphics hardware is not available.
Instead of trying to initialize and resize the GL viewport with a
non-current context, we return early and defer the init and resize
until later.
Change-Id: I278ca8f1ad4d3da2d5be18b44d775f8d6c8af726
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
The macOS bug preventing us from doing this has now been fixed:
http://openradar.appspot.com/radar?id=4976602949615616
Change-Id: I3bfa75d6bf982a051a9b274f530529f4ec4351a0
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Use new connect syntax throughout the example.
Task-number: QTBUG-69503
Change-Id: I5ab1453318e60586a9655ecb58263778c02aba4f
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
So if people are using the -Wzero-as-null-pointer-constant don't get a warning when using these private QPA includes
Change-Id: I6deb089b17a844680db24998d60c94de7a1227b1
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
Better late than never.
Task-number: QTBUG-533
Change-Id: Ieb68d510f75553a6aa0a6e9046c11e3a34b8815f
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Since MySQL 8.0.1 the my_bool type has been removed because all the C
compilers supported by the project supports C99 which has bool through
<stdbool.h>. This patch makes the driver both forward and backward
compatible.
[ChangeLog][QtSQL][MySQL] Now supports MySQL versions >= 8.0.1.
Change-Id: Ib373992763643bd470d33e85ce5cec7e4ae5e895
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This reverts the following commits:
d12d2949d126c3bec09b49b08f96e8
We can't easily predict all code paths for QDesigner
with such a microoptimization. We also don't want
to generate three different string constructions
depending on some sophisticated heuristics.
[ChangeLog][uic] The -no-stringliteral option is now deprecated and
UIC will not generate QStringLiteral anymore.
Task-number: QTBUG-65251
Task-number: QTBUG-51602
Change-Id: I34a5a1934a8df19c5c84ac2ba8e5168ce5665037
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Eight bytes into the Binary JSON header there's a 32-bit little-endian
size, which qJsonFromRawLibraryMetaData uses to determine the size of
the stored metadata. That value is passed as a size to QByteArray, which
means certain values could cause crashes due to being too big or via
sign-extension in 64-bit.
[ChangeLog][QtCore][QPluginLoader] Fixed an issue that could cause a
crash when certain damaged or corrupt plugin files were scanned.
Change-Id: I117816bf0f5e469b8d34fffd153dc5425cec39a7
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
If QMAKE_BUNDLE is set then this should be used for the bundle
identifier value instead of the product name. This ensures that when an
application provisioning profile is used that it will correctly match
against it. This also brings it in line with the documented behavior.
Change-Id: I627d212f59d862e7a881941748db5ef98ab4f463
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
From the fork at https://github.com/thiagomacieira/tinycbor
Change-Id: I117816bf0f5e469b8d34fffd153dc88683051208
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Windows and macOS do not highlight the icon for an active menu item.
It requires quite a few kludges in styles and/or stylesheets
to make it behave and we simply should not highlight this icon.
[ChangeLog][QtWidgets][QMenu] Removed icon highlight when a
stylesheet was applied the application.
Task-number: QTBUG-69199
Change-Id: I35c5b255766254d11312d7f86c625b811d1dfd64
Reviewed-by: Morten Kristensen <msk@nullpointer.dk>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
It might have been fixed in the three years since it was marked
insignificant, and we can't investigate the crash while it's not
tested.
Task-number: QTBUG-50747
Change-Id: I99cdeb55e207d10fe524cd5f4868f042c64eb7d3
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
GCC5.4 generates incorrect code.
The QString object which is passed by value to f-lambda,
has been corrupted by the time this lambda returns.
Accessing this object causes memory corruption.
The same can be reproduced with std::list and std::string
Task-number: QTBUG-69394
Change-Id: I22522d2ddd1d5226de0aff378133d18391e370de
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
In the rare case where the known locations for the standard paths are
not known (such as when an application is used without a user logged
in), it will output a warning to indicate this. In the case of the
GenericConfigLocation, this can mean that it will hang due to the fact
that QLoggingCategory is looking for that location too before it can
output anything.
Therefore, the warning output is removed so that if this part fails it
doesn't cause it to hang as a result.
Change-Id: I4f189361899bd1f868292f30c09fbe50982d2288
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Glibc 2.21 and earlier have a bug that leaves the mode parameter unset
when O_TMPFILE is used. So we bypass the glibc implementation and go
directly for the syscall. We do this only for 32-bit x86, since of the
current, modern platforms, it's the only one that passes parameters on
the stack. Technically speaking, the glibc bug applies to all platforms,
but it turns out that on all others, it appears to work.
By doing this, we have two minor differences:
1) open() is a cancellation point, but syscall() isn't
2) if anyone tries to intercept open() calls via LD_PRELOAD, they're
not going to catch Qt's.
[ChangeLog][QtCore][QTemporaryFile] Worked around a bug in the GNU C
Library versions 2.21 and earlier (used on Linux) that caused temporary
files to be created with permissions 000.
Task-number: QTBUG-69436
Change-Id: I20fd00e600264ff98c6afffd1540dceea89fa91f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Qt allows this as a property of QCheckBox, so it should
be enabled in its Cocoa counterpart.
Change-Id: I88eb6dddabb173050c4fe7229f15c768181ef527
Task-number: QTBUG-69453
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Kept the intended word (rather than "number system" or "numeral
system" as might seem more natural) since CLDR's
common/supplemental/numberingSystems.xml uses numbering in its name
and in the XML tag-names in its contents. Thanks to Kari Oikarinen
for noticing, in review.
Change-Id: I85077611f9de8c4e812e1b5324fa2e99868b7b95
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This should improve reporting and ensure we know about each failing
case, not just the first, when one fails.
Change-Id: Ic00272201f69a2fd8508df23b1d746ea605aa539
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Kari Oikarinen <kari.oikarinen@qt.io>
Cleaned up some related #if-ery in the process.
Change-Id: I70f3152f2096ec34f36782fa1c3329f51c9b34f0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Initially macOS SDK 10.13 had a missing symbol (only a function declaration
in a header), while iOS, tvOS and watchOS SDKs all had the required symbol. Now
it appears more recent SDK for macOS also has the function we need and thus we enable
ALPN on macOS (as a result 'h2' protocol can now be negotiated as required by
RFC 7540).
[ChangeLog][QtNetwork][QSslSocket] Enable ALPN (and thus HTTP/2 negotiation) in SecureTransport backend (macOS).
Change-Id: I65bd8262a9571a5495d11f7f5a29d150334cd09c
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
CSS geometry constraints such as "min-height" or "min-width"
will set size constraints on the widget.
Removing the stylesheet should remove these constraints.
Task-Id: QTBUG-69418
Change-Id: I1008e4390281c90112303d72dd7d59a8acddfcd9
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
This is private API and the protected does hardly matter.
Change-Id: I8e5c99db16d521d47eb9a5fb57a6519301d63a9b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Change-Id: I4f9033660c06686d7b499ec6d28be2c3b64353e2
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Martin Smith <martin.smith@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>