Commit Graph

29145 Commits

Author SHA1 Message Date
Thiago Macieira
091e61b352 Fix namespaced build using harfbuzz-ng
harfbuzz-ng doesn't link to Qt libraries, but uses the Qt headers for
some types. With CONFIG -= qt, we don't get QT_NAMESPACE set, which
leads to linker errors later. Instead of setting QT_NAMESPACE, ask
qversiontagging.h not to tag the headers.

Change-Id: Ie585843cfb684bc3b6e3fffd145e7e438ae7c6bd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-22 20:23:45 +00:00
Gabriel de Dietrich
8ea51f8aaa Make QCocoaMenuLoader a singleton
In some auto-tests, we create several instances of
QGuiApplication (though seldom, if ever, simultaneously).
However, the QCocoaMenuLoader instance was never properly
deallocated, resulting in NSApplication.servicesMenu
to still be assigned. This resulted in an exception being
raised (NSInternalInconsistencyException) the second time
we would construct a QCocoaMenuLoader.

The CPU cycles saving solution is to make QCocoaMenuLoader
a singleton. This approach is also safe since this class'
initialization doesn't depend on any state in QGuiApplication
(even the application name is fetched from either the main
bundle or the app's args).

This also allows us to clean up some code in QCocoaApplication
and QCocoaApplicationDelegate who have suffered from lack of
attention over the years.

Change-Id: Ic4c859d628ab8abd9b469b99c64293582f8e363d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-07-22 20:07:58 +00:00
Richard J. Moore
4bbcc054e0 Add missing overloads for custom verbs
When support for custom verbs was added the overloads for the various
body data options were not.

Task-number: QTBUG-54868
Change-Id: I1a495023d957fc71d1e3b77997a2b4b8531c0a0e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-22 17:08:50 +00:00
Maurice Kalinowski
bbca3cb78d Change test's entry point only when actually building it for winrt
Change-Id: I14de901e8cf16d0172a4bd35611c17de753348be
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-22 17:07:50 +00:00
Robin Burchell
57413ad3f6 QMetaType: Add a benchmark covering creation of QVariant from an enum
This proved to be quite slow in the past due to QReadWriteLock's implementation
being suboptimal (prior to its improvement in
343e5d066a).

This codepath is exercised quite extensively by QML with enum registrations.

Change-Id: I94d1e13933bf005604dc4494e2cb5bc25ef3d387
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-07-22 12:47:05 +00:00
Eskil Abrahamsen Blomfeldt
49926bb9ef Fix performance regression when changing fonts
Change e109b8a0f3 introduced a
performance regression when rapidly switching fonts as long as
the number of different fonts is over a relatively small number, since
the cost of fonts can be high compared to the limits set on the cache.

Since the original patch was intended to avoid exceeding the
open file limit when using Freetype on Windows, we add an
additional check on the number of engines in the cache as well
for the added, synchronous cache flush.

The limit is set to 256 to make it unlikely that it is exceeded
during a single paint event, but it can also be configured when
building Qt if a higher limit is needed.

[ChangeLog][QtGui][Text] Fixed performance regression when rapidly
switching between a large set of fonts.

Task-number: QTBUG-54180
Change-Id: I92b9fbe14fca4f11c9c6dfdcdbec6d19a61b86a7
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2016-07-22 12:14:03 +00:00
Oswald Buddenhagen
2152049db0 don't clear the rest of the command line when -redo is used
it's entirely reasonable to extend the saved command line by new
arguments. note that these are not saved in turn.

Change-Id: I02c1a2b33e93c85b3a29c50de00c2e5334f6ef51
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-22 10:28:29 +00:00
Oswald Buddenhagen
6b4496c5f8 remove the configure.exe -loadconfig/-saveconfig options
these options don't seem particularly useful (they were added in 2001
without any indication of the intended usage). maintaining multiple
static configurations can be best achieved with a script (outside the
build directory, which these options didn't permit to start with).

this obsoletes QTBUG-46690, which refers to these options.

Change-Id: I994c18481cd63d256bb7a6d1948c57f7bd480614
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-22 10:28:26 +00:00
Oswald Buddenhagen
9774ae3d2d Revert "Save the pkg-config settings in config.status"
it's somewhat questionable to save the environment of pkg-config, but
not that of many other things we use.
additionally, we now have logic to automatically set it up from the
sysroot when it's missing.

This reverts commit 228392aff2.

Change-Id: I0612c196c9a5023bb3ef436aebfb87cb46d8cd14
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-22 10:28:18 +00:00
Oswald Buddenhagen
34173e9350 print an empty line after every report
otherwise we get an unintelligible mess if multiple messages are emitted
in the same category. also, there were already empty lines between
categories, so it was also inconsistent.

Change-Id: I5e6622bc8a5d2773bbd99124cedf4e3eb73b8a60
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-22 10:28:14 +00:00
Oswald Buddenhagen
5ad32e7f77 make use_new_dtags a linux-only feature
it's the only OS with braindead "old" dtags in the first place.

Change-Id: I0fba436ff3f9fc061c1741b1899ca133b8ad6b5e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-22 10:28:11 +00:00
Oswald Buddenhagen
f914870e31 permit wrapping expressions in the json file
the json parser passes line breaks verbatim, so we need to get rid of
them ourselves.

Change-Id: I3b71fe54dcaa8c3a2ff94e8ac4845f49dabe1663
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-22 10:28:07 +00:00
Oswald Buddenhagen
b451a6e514 make 'feature' report type always use the feature descriptions
they are really meant for pretty-printing the summary in the first
place, and were previously unused when this type was invoked explicitly
(because of using a condition).
adjust the neon/mips_dsp/mips_dspr2 descriptions to match the context
and remove the now redundant "message" fields.

Change-Id: I08558f342a0d9189a37145085e5470f91a9d0881
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-22 10:28:03 +00:00
Oswald Buddenhagen
2b78a49f22 make firstAvailableFeature report type use the feature descriptions
they are really meant for pretty-printing the summary in the first
place, and were previously unused for this type.
adjust the c++* descriptions to match the context.

Change-Id: I2a76b5651892bf9bd6fec315e446bfdb7c3aee97
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-22 10:28:00 +00:00
Oswald Buddenhagen
caf51ee0dd make featureList report type use the feature descriptions
they are really meant for pretty-printing the summary in the first
place, and were previously unused for this type.
adjust the sse/avx/avx512 descriptions to match the context.

Change-Id: Icf514718355c6ccd608d825b70296cc0383dbfe8
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-22 10:27:56 +00:00
Oswald Buddenhagen
8cbf2aee75 add missing "enable" fields to opengl features
this ensures that we complain if desktop gl or gles2 is explicitly
requested but not available.

Change-Id: Iad068ef34cdf9353cb483d4dc667ddd85ded740d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-22 10:27:52 +00:00
Oswald Buddenhagen
e9d822943a add missing "enable" field to openssl feature
this ensures that an explicitly requested linked/runtime support is
complained about when the test fails. the old configure would do that as
well.

Change-Id: I7f235fa7df5e5d53938de0e32b07536447b8d1d4
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-22 10:27:48 +00:00
Oswald Buddenhagen
78872375c2 unify openssl options with the d-bus ones
introduce -openssl-runtime and -openssl [no|yes|linked|runtime] for
consistency with the respective dbus options.

Change-Id: I061b46b52b3132ead4332b33f7a60d6fe0e73ab9
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-22 10:27:44 +00:00
Oswald Buddenhagen
92e7f15277 simplify conditions of dbus-linked feature
... by chaining it to the dbus feature, as is done for openssl/-linked.

Change-Id: Id1f9f761914c356d2a0056aa80213954dce3403d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-22 10:27:41 +00:00
Oswald Buddenhagen
be3b2de87f accept plain -dbus option
the feature's logic is already prepared for that.

Change-Id: Ieb0131904b532409fc01bafca9f85fb22039a68a
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-22 10:27:38 +00:00
Oswald Buddenhagen
62b0113c7b fix recognition of -no-verbose
while probably not too useful, the old configure does allow explicitly
disabling verbose mode.

Change-Id: If0585443c649a67f616b3668cc90b18fecde11ba
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-22 10:27:35 +00:00
Oswald Buddenhagen
70970ad981 don't mention config.log in error messages when not applicable
Change-Id: I127bc23c667d337bbe2518e7364ca99db9a3163a
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-22 10:27:24 +00:00
Oswald Buddenhagen
09110cdbea don't error() out on user errors
use the proper error reporting mechanism instead.

Change-Id: I3afb0086e5cd672d3c0f441c429682850202024f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-22 10:27:21 +00:00
Oswald Buddenhagen
0c3f431769 make command line parsing error messages consistent
... by adding some quoting and punctuation.

Change-Id: I553171a0c001edc195fcf2e85f0f70bf2cfdd728
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-22 10:27:17 +00:00
Oswald Buddenhagen
dd59118b87 move c++11 test into qcompilerdetection.h and make it stricter
it positively makes no sense to have a configure test which will be
never reached due to the configure/qmake bootstrap failing with a
slew of totally unhelpful error messages.

pre-standardization partial c++11 implementations are now rejected,
except for VS2013, which is still sufficient despite not announcing full
compatibility.

Change-Id: I58af10e03960af06b80cedac105cf8433f7a1745
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-22 10:21:36 +00:00
Edward Welbourne
601019e3f4 Merge "Merge remote-tracking branch 'origin/5.7' into dev" into refs/staging/dev 2016-07-22 10:15:48 +00:00
Thiago Macieira
b5153d5bfa Windows: Disable unsupported C++11 features with Clang-cl and ICC
Whenever someone installs Clang or the Intel compiler on Windows, it's
very likely that the compiler will be much newer than the MS headers
that came with the installed Visual Studio version. So let's make sure
we disable the C++11 features that the MS headers don't support
properly.

For example, MS's <limits> header supplied with VS 2013 doesn't mark the
max() function as constexpr, resulting compiler errors in uses of that
function in Qt code declared with Q_DECL_CONSTEXPR:

qdeadlinetimer.h(62,13) :  note: non-constexpr function 'max' cannot be used in a constant expression
        : s(std::numeric_limits<qint64>::max()), ns(0), type(type_) {}
            ^

Change-Id: I149e0540c00745fe8119fffd146286ffe480d216
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-22 01:01:48 +00:00
Gabriel de Dietrich
b5f18da11f QCocoaMenuLoader: Remove NIB file
Since 10.6, the first menu is always identified
as the application menu. See remark about Nibless
apps and the application menu in,

https://developer.apple.com/library/prerelease/content/releasenotes/AppKit/RN-AppKitOlderNotes/index.html

Therefore, we can get rid of the NIB file together
with the loading logic we had in place (and which,
incidentaly, was using deprecated API).

Change-Id: I99bf0e9d8ea749a9be9295fa12602335abc6548e
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-07-21 17:56:22 +00:00
Gabriel de Dietrich
77a71c32c9 configure and mkspecs: Don't try to find xcrun with xcrun
Since Xcode 8 (beta 2) that tool is no longer available
through xcrun. We resort to xcodebuild instead.

Change-Id: If9d7b535c1cbac2caae0112b2003283aeff34fb9
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2016-07-21 15:36:33 +00:00
Oswald Buddenhagen
f8ef7e1d26 terminate when command called by system() got SIGINT or SIGQUIT
these are the two signals unhelpfully suppressed by system(2).

Change-Id: I5e5df9f6d136601f0f36a8d645f90a1cab9995ad
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-21 15:36:20 +00:00
Gabriel de Dietrich
08a908c549 QMacStyle: Fix use of deprecated symbol
Change-Id: I5a6bfc937267817b2c815be0216ea91fe6860ba3
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-07-21 09:45:11 +00:00
Friedemann Kleint
0696566b1e Windows: Fix truncation in QFSFileEnginePrivate::nativeWrite()
The number of bytes to write was converted to a 32bit unsigned value,
causing losses. Change the type to qint64 and adapt the code determining
the block size.

Task-number: QTBUG-54870
Change-Id: I294da5bfe97c7e60f67228399e1244a1aba4c89c
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2016-07-21 08:50:01 +00:00
Thiago Macieira
8e4c8be0b9 Don't compile configure.exe with clang-cl.exe if cl.exe is available
Sometimes clang-cl.exe is on PATH and would get picked up by the
build. That is often by mistake, but it will inreasingly happen
as clang-cl becomes more popular. Unfortunately, configure.bat is
too early to detect which MSVC version it's set to compile
against, so the -fms-compatibility-version option will often be
wrong. One such case is when trying to build for MSVC
2013. Microsoft headers for VS2013 are unsuitable for our use in
Qt with clang-cl.

Instead, use cl.exe. It's a much better-known quantity and is
always on PATH if trying to build with clang-cl, as the latter
needs the former to fall back to if necessary.

This does not affect the build of Qt libraries and tools.

Task-number: QTBUG-51534
Change-Id: I149e0540c00745fe8119fffd146287662436c4b9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-21 00:16:04 +00:00
BogDan Vatra
1ef8c640f8 Workaround clang function export bug
Should be reverted when https://github.com/android-ndk/ndk/issues/142 is fixed.

Change-Id: Ie68807062247bee4969bc9aa00b0221c8147fed7
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-07-20 21:17:03 +00:00
Gabriel de Dietrich
8f71788ee0 QCocoaWindow: Fix usage on deprecated API
Most APIs related to ProcessSerialNumber have
been deprecated since 10.9.

Change-Id: I6be5ae92cfe2c8f80d557af6c6a79c0cd016ba90
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-07-20 20:00:11 +00:00
J-P Nurmi
4e6dd1c50a Add QStyleHints::useHoverEffects
The delivery of hover events creates unnecessary overhead on touch
platforms. This allows Qt Quick Controls 2 to determine whether the
underlying platform wants hover effects. The hover effects are enabled
by default for the classic desktop platforms: Linux, Windows & macOS.

Change-Id: Ia4e7b5c0fcb7af8f1c47e06fb28086cffdf35976
Task-number: QTBUG-50003
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2016-07-20 18:33:59 +00:00
BogDan Vatra
68f22d84ab Android: Add support for clang compiler
[ChangeLog][Android] Added support for clang compiler

Task-number: QTBUG-50724
Change-Id: I6147021b814fcb230d125c4450c554a7fea8f31e
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-07-20 16:53:10 +00:00
Giuseppe D'Angelo
2b9b9a38e7 QOpenGLVertexArrayObject: clean up the destructor
Calling QOpenGLContext::surface() on a non-current context will
likely return NULL, so the code path that tried to reset
the old context as current would actually fail.

Change-Id: Ibbc8da877740a596aa7dd0af8ccffb9a1877290a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2016-07-20 15:58:46 +00:00
BogDan Vatra
e6034a4740 Make sure JNI_OnLoad is not called more than once
Since Android 5.0 Google introduce a nasty bug[1] which calls
JNI_OnLoad more than once.
Basically every time when a library is loaded JNI_OnLoad is
called if found, but it calls *again* JNI_OnLoad of its .so
dependencies! So, JNI_OnLoad of libQt5Core.so gets called may times,
this is not a problem as long as it's called from Qt's java delegate
class loader. The problem is that the application .so file *must* be
called from default class loader to allow the user to find his custom
Activity/Service stuff.


[1] Workaround https://code.google.com/p/android/issues/detail?id=215069

Change-Id: Ia71209658ef56056b560018597608acf7cb0f9ea
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-07-20 14:33:31 +00:00
Simon Hausmann
494ced1329 Improve precision of reported file times on Unix-style platforms
Instead of reporting the file times in the precision of seconds, our API allows
us to report it up to millisecond precision.

Change-Id: I8bcc6a1fb4116e8c5421d650a68f6fb00482e551
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-20 12:35:30 +00:00
Alex Trotsenko
aeb36d5292 QAbstractSocket: ensure bind()+connect() works on delayed close
While connecting, the socket goes through the HostLookupState. In
this state, the socket engine is not yet created, unless the socket
had previously been bound. When it has been bound, we should keep
the socket engine even if the user initiates a delayed close by
using the write()+close() sequence.

Change-Id: Iefebcb33cd72cb49617acbac8e02af9d8209c869
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-20 11:36:38 +00:00
Leena Miettinen
d2c98368d7 Doc: Add a thumbnail for an example that has no UI
Without this change, Qt Creator tags this example as "broken"
and hides it from the Examples tab in the Welcome mode.

Change-Id: If1982495ec68f5cebb931f5e9498258af21f5aa7
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2016-07-20 08:07:32 +00:00
Mitch Curtis
b828c94eac Document that -nocrashhandler enables debugging of crashes
It's not clear why an assertion triggered while running a test can't be
debugged, while the same assertion triggered while running an
application can.

Even though this documentation might still not be the place people will
look, hopefully having the terms "debugging crashes" here will make
it more visible in search results.

Task-number: QTBUG-54779
Change-Id: I151b04380df57126259d3d7797957a548eb6cd55
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-20 07:32:49 +00:00
Friedemann Kleint
c14c149b51 Fix QTemporaryDir to handle Unicode characters on Windows
For platforms not providing mkdtemp(), QTemporaryDir relied on an implementation
of q_mkdtemp() operating on char *, converting back and forth using
QFile::encodeName()/decodeName() when passing the name to QFileSystemEngine.
This caused failures on Windows (which uses "System"/Latin1 encoding)
for names containing characters outside the Latin1 space.

Reimplement q_mkdtemp() to operate on QString, which avoids the conversions
altogether and also enables the use of larger character spaces for the
pattern.

Add tests.

Task-number: QTBUG-54810
Change-Id: Ie4323ad73b5beb8a1b8ab81425f73d03c626d58a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-20 07:31:18 +00:00
Takumi ASAKI
b2029e9ca6 Bearer/Connman: emit missing updateCompleted()
emit missing updateCompleted() in some conditions after
QNetworkConfigurationManager::updateConfigurations() is called.

* There is no wifi devices.
* The wifi device returns error when scan is called.

Change-Id: I2668644249a0584bf43efea95348424aa64ab4a6
Reviewed-by: Lorn Potter <lorn.potter@canonical.com>
2016-07-20 07:24:45 +00:00
BogDan Vatra
cc119dee73 Workaround clang explicit specializations function templates export bug
Should be reverted when https://github.com/android-ndk/ndk/issues/34 is fixed

Change-Id: Ic7fe394412afc25082a9689da59d36cba8b3dade
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-07-20 07:06:37 +00:00
Olivier Goffart
af055964f5 moc: fix infinite loop over malformed input
We should not call prev() if we had already reched the end.

Task-number: QTBUG-54815
Change-Id: I56bc86880a0dbfdce57fc4a08e5950f2ff3a5958
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2016-07-20 06:56:40 +00:00
Alex Trotsenko
902a5e7aaa QDataStream: adjust containers' deserialization in transaction mode
If an error occurs during the transaction, we should prevent the
containers from being successfully read. So, check the status of the
stream before reading the container, because the deserialization
procedure temporarily resets it on entry.

Task-number: QTBUG-54022
Change-Id: Ie955c2fa3e449374f0f8403f00e487efa2bfdaf3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-20 06:52:43 +00:00
Thiago Macieira
af6f7179e8 tests/manual: add highdpi subdir to the test list
Change-Id: Ib57b52598e2f452985e9fffd1458f2bf00ddc84f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2016-07-20 06:50:02 +00:00
Thiago Macieira
ea582cdcbf Work around Apple defining "check"
The header says they'll stop doing that in the next release. It's been
like that since at least the OS X 10.8 SDK...

Change-Id: Ib57b52598e2f452985e9fffd14585d4838dc8b09
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-07-20 06:49:53 +00:00