Commit Graph

1140 Commits (ea8a92c9c93f74b23c4520d7bef357a7a8ec00df)

Author SHA1 Message Date
Marc Mutz 075769ca83 Introduce Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6
... with classical semantics, meaning movable-come-Qt6,
and complex-until-then.

Whether or not we want a new flag for movable-except-
in-QList is an orthogonal question, and should not hold
back the slew of commits that introduce use of this
macro.

Change-Id: I3a6be08c314fcd7f3315af138625c38196debda5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-18 06:20:34 +00:00
Thiago Macieira 2806d1c00a Also disable constexpr support in ICC with MSVC before MSVC2015
Because the MS standard library headers won't have the necessary
constexpr markings, some types that should be literal (like std::atomic)
aren't and some functions that should be constexpr (like
std::numeric_limits:max()) aren't.

Change-Id: Ib306f8f647014b399b87ffff13f1c74093b11af1
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-07-18 02:28:21 +00:00
Oswald Buddenhagen 68316e6584 Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts:
	doc/global/manifest-meta.qdocconf
	src/corelib/global/qnamespace.qdoc
	src/corelib/io/qstorageinfo_unix.cpp
	src/corelib/tools/qtools_p.h
	src/sql/drivers/psql/qsql_psql.cpp

Change-Id: I23a15ac84e03ad61d865e3df872b013eb0752949
2015-07-17 17:53:19 +02:00
Simon Hausmann b2603b7665 Merge remote-tracking branch 'origin/5.5' into HEAD
Conflicts:
	src/plugins/platforms/windows/qwindowsopengltester.cpp

Change-Id: Ia7abeba9395ccf84e2fa81b91a5725a86dedb9fe
2015-07-17 16:35:42 +02:00
Thiago Macieira 7714ef7406 Set Q_CC_INTEL to the ICC version when in MSVC compat mode
Commit ffcad3244f did that for the GCC-
compat mode, but I forgot the MSVC one.

Change-Id: Ib1d49f003062638b4e27e5ead4554e25f539c373
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-07-16 08:28:18 +00:00
Thiago Macieira cf3a639f9d Improve ICC compatibility with older MSVC versions (up to 2010)
Like on OS X and Linux, ICC uses the native compiler's standard library
headers, so the C++11 features that depend on headers need special
attention.
 * <initializer_list> is missing with MSVC 2012. It is present on 2010
   for some reason and it appears to work
 * ICC disables Unicode string support prior to MSVC 2015, probably
   because MSVC Standard Library headers have a typedef for char16_t

std::nullptr and std::move should have come with MSVC 2010, but I'm not
keeping compatibility with MSVC 2008. It's been deprecated since ICC
14.0 (Composer XE 2013 SP1, released in 2013) and support was removed in
15.0 (Composer XE 2015, released in 2014). ICC hasn't supported MSVC
2005 since ICC 13.0 (Composer XE 2013).

Task-number: QTBUG-47119
Change-Id: Ib306f8f647014b399b87ffff13f139174aeeafff
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2015-07-16 08:28:14 +00:00
Thiago Macieira 3aa5ef2ea9 Disable thread-safe statics for MSVC 2015: they're broken
An object that throws in its constructor cannot be reentered. This
violates both C++11 and C++98. It's also a regression from MSVC 2013.

The unit test is renamed to indicate what it really does, as opposed to
a misleading name that was probably a "thinko" on my part.

Task-number: QTBUG-47224
Change-Id: Ib306f8f647014b399b87ffff13f132436d0578ef
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-07-16 08:28:07 +00:00
Thiago Macieira 6388b30e79 Fix the printing of the ms-since-boot in %{time boot}
Commit 5d366f7e was not correct. The time displayed would always be the
same (the start time of the application).

[ChangeLog][QtCore][Logging framework] Fixed a bug that would cause a
"%{time boot}" field in the logging framework's pattern to always
display the same value, instead of the time since boot.

Change-Id: I255870833a024a36adf6ffff13ecb1dca4a688ed
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-07-15 04:53:37 +00:00
Thiago Macieira 86a79260ca Fix change-of-sign warning with ICC
strlen returns size_t, but -1 is obviously negative.

qglobal.cpp(2261): warning #68: integer conversion resulted in a change
of sign

Change-Id: I255870833a024a36adf6ffff13eb05ce5b2b2595
Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-15 04:53:35 +00:00
Tasuku Suzuki 7839979c07 fix running libQtCore.so failure
It fails when "program interpreter:" is translated.
./lib/libQt5Core.so: cannot execute binary file: Exec format error

Change-Id: I5154decb0401eeb1ba38b286b660b830c6136c22
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-07-15 04:53:27 +00:00
Mitch Curtis 554d54b432 Fix typo in EnterKeyType documentation.
Change-Id: I14018e20ace77e97fdb3cc0c38449802875b71c5
Reviewed-by: Kai Uwe Broulik <kde@privat.broulik.de>
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-07-11 06:31:54 +00:00
Sérgio Martins 8db7bad6e1 QNX: Fix namespace Qt build
Declare __progname outside the namespace

Task-number: QTBUG-43569
Change-Id: I000c6fea2e24d9b1a3514ec5de93649baa3e33a8
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2015-07-08 08:29:18 +00:00
Tasuku Suzuki 1e8a5c1083 remove Build date from qt_core_boilerplate()
db631a88a0 deprecated that.

Change-Id: Id54dc1049004bdaed26925883250038516a6bcbf
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-08 01:17:07 +00:00
Liang Qi 0aa2d318b1 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/corelib/global/qglobal.cpp
	src/corelib/global/qglobal.h
	src/corelib/global/qsysinfo.h
	src/corelib/global/qsystemdetection.h
	src/corelib/kernel/qobjectdefs.h
	src/plugins/plugins.pro
	tests/auto/widgets/itemviews/qlistview/qlistview.pro

Change-Id: Ib55aa79d707c4c1453fb9d697f6cf92211ed665c
2015-07-01 11:05:26 +02:00
Marc Mutz 6251d4dafc QtCore: Use Q_NULLPTR instead of 0 in all public headers
This is in preparation of adding -Wzero-as-null-pointer-constant (or similar)
to the headers check.

Task-number: QTBUG-45291
Change-Id: I0cc388ef9faf45cbcf425ad0dc77db3060c104a8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-01 05:50:41 +00:00
Nico Vertriest a7f2af0911 Replace MAC OS X with OS X
Task-number: QTBUG-46374
Change-Id: I7bc633ab551740bd328a24b0ccae1d534af47138
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-06-30 07:33:31 +00:00
Oswald Buddenhagen f88f93efb6 Bump version
Change-Id: Ide0b1a80ac89b76154ecccbda68398f3a05e1f5d
2015-06-29 10:47:21 +02:00
Gabriel de Dietrich 7d5e849e28 Apple's 3.6.0svn based clang doesn't support -Winconsistent-missing-override
That's the version Apple ships with Xcode 6.3.2. We set the
threshold to Xcode 7, whose clang version supports the "missing
override" warning.

Change-Id: Ibcab8a45306120bdcd02ca5b0bb0d1c638cea177
Task-number: QTBUG-46833
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-06-28 07:46:50 +00:00
Liang Qi 4dd8a63fc1 Merge remote-tracking branch 'origin/5.5.0' into 5.5
Conflicts:
	src/plugins/platforms/cocoa/qcocoafiledialoghelper.h

Manually fixed src/testlib/qtestcase.cpp to return the right type.

Change-Id: Id1634dbe3d73fefe9431b9f5378846cb187624e4
2015-06-27 13:54:35 +02:00
Thiago Macieira 4ce05c6084 Disable C++11 thread_local with ICC on OS X
It appears the ABI is lacking support for this at this point in time,
even though __thread works. ICC 15 works, probably by making it an alias
to __thread, but neither ICC 16 beta nor Clang work with thread_local.

Intel-bug: DPD200371699
Intel-ID: 6000107242
Change-Id: I049a653beeb5454c9539ffff13e639bdb83b8843
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-06-22 22:52:40 +00:00
Gabriel de Dietrich 1fb3273cfd Detect and set Xcode 6.3 clang version
This becomes necessary to avoid compilation errors with
Xcode 7 and clang 7.0.0. (Note that its version information
doesn't state which LLVM version it's based on, though we
suspect it could be 3.7.0svn.)

Change-Id: I2bfc7f2b73ca7a61798b123cc2715037028f0e5f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-06-22 06:25:05 +00:00
Laszlo Agocs 3d5612de98 Add a synthesized-by-application value to mouse event source
Task-number: QTBUG-46669
Change-Id: I5567a9fe7ed8a80cd08830250c02f7252fa79bf8
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
2015-06-15 17:16:17 +00:00
Morten Johan Sørvig 55df2e54a5 Fix Qt-in-namespace build breakage.
Objective-C classes must be forward declared in the
global namespace.

Change-Id: Ic4818cef4b61f1578c478da9c30b77237262b283
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-06-12 08:17:52 +00:00
Friedemann Kleint 83d952c2d0 Refactor handling of environment variable QT_WINVER_OVERRIDE.
Rename variable named "override" and check using
qEnvironmentVariableIsSet() to avoid constructing a QByteArray
in the default case. Remove DOS-based OS.

Change-Id: Ibf348cd74ada5be99b9d2ed7637184a786df8244
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-06-10 10:06:08 +00:00
Morten Johan Sørvig 5818ba4b0b Compile on 10.7: Disable constexpr support
Apple Clang 3.2 is known bad with broken or partial
support. Which version is the first good version is
unknown.

Change-Id: I1b938281680dde5acbe0e08979444b6055a1cc4e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-06-10 08:14:59 +00:00
Jake Petroules 62d7221850 Update for the newest Darwin-family operating systems.
Change-Id: I5ea44a720e01e388a8d219a89c5b0ccd8fd23146
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-06-10 05:28:55 +00:00
Marcel Krems 8046a574d2 Added support for Windows 10 in QSysInfo::productVersion()
Change-Id: I9e21ae62eea6c694e0b3b68dfd14264c3ce76246
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-06-09 07:59:02 +00:00
Simon Hausmann ccad00121d Merge "Merge remote-tracking branch 'origin/5.5' into dev" into refs/staging/dev 2015-06-04 05:56:06 +00:00
Simon Hausmann e2f66f9215 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/corelib/global/qnamespace.qdoc
	src/corelib/io/qwindowspipereader.cpp
	src/corelib/io/qwindowspipereader_p.h
	src/corelib/statemachine/qstatemachine.cpp
	src/corelib/statemachine/qstatemachine_p.h
	src/plugins/platforms/xcb/qxcbconnection.h
	tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
	tests/auto/tools/qmake/tst_qmake.cpp
	tests/manual/touch/main.cpp

Change-Id: I917d694890e79ee3da7d65134b5b085e23e0dd62
2015-06-03 10:23:56 +02:00
Kai Uwe Broulik dd274a5455 Rename ReturnKey to EnterKey
This makes the terminology consistent with Sailfish OS and the QNX QPA.
The kImePlatformDataReturnKeyType in the iOS QPA is not changed to not
break compatibility. Also, improve documentation.

Change-Id: I2780de5b1e9277185ae1d4d9bbc67e36682fbfba
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
2015-06-03 07:55:02 +00:00
Liang Qi fcfd31c9fd Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts:
	qmake/generators/mac/pbuilder_pbx.cpp
	src/corelib/global/qglobal.h

Change-Id: I2c0f7544bf194f2d0f59218fd583c822901487b0
2015-06-01 17:46:58 +02:00
Florian Bruhin 2cb17c1fb9 Improve documentation for Qt::ItemNeverHasChildren.
Change-Id: Ied817314d6e72f08a81138bd817c8570d586fa30
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-06-01 08:23:47 +00:00
Simon Hausmann aff3f7f767 Fix QIODevice::errorString() and other places where we expose errno
Commit e486d69133 changed the behavior of
QString::fromLocal8Bit(const QByteArray &) to preserve embedded null
characters. The embedded null character from qt_error_string()'s buffer is not
something we want to preserve, it is merely a safe guard. Therefore let's strip
it away.

Change-Id: Iceac91551f51a1036a942ff30d246baea7a6fd7c
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-05-29 14:47:58 +00:00
Liang Qi 2670bdeee4 Merge remote-tracking branch 'origin/5.4.2' into 5.4
Change-Id: Ied2a227a25859163a924c7b5717492a1f974c5ca
2015-05-29 10:00:01 +02:00
Thiago Macieira 95b6c4fed6 Make qglobal.h only complain for GCC >= 5 about -fPIE
Commit 3eca75de67 introduced the #error
nagging about use of -fPIE, but it makes the transition quite difficult
for people using other buildsystems. So let's give people a grace period
and enforce only for GCC >= 5.

Clang is affected, but differently. The problem only happens with -flto
-- that is, it happens when the linker detects that it's creating a
final executable. Maybe -Wl,-pie would fix it.

Change-Id: If4d5ac8db0ed4a84a3eaffff13e275edc29a72b7
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
2015-05-29 00:08:36 +00:00
Tor Arne Vestbø 5471413522 Add shared implementation of a NSAutoreleasePool wrapper to qglobal
We have at least 5 different (but equal) implementations of a wrapper
in Qt, and some code uses explicit NSAutoreleasePools. Having a shared
implementation lets us clean up things a bit and makes it easier to
reason about which pools are actually needed.

Change-Id: I2fd8eefc3ae7308595ef9899b7820206268362a5
Reviewed-by: Tim Blechmann <tim@klingt.org>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-05-27 18:45:29 +00:00
Tasuku Suzuki 73d3f1b116 Doc fix typo in QT_MESSAGE_PATTERN
Change-Id: I1850c3eb07b06a4174c0e6819074040c4d62c423
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-05-27 15:28:25 +00:00
Olivier Goffart 02f6b21bbc QMetaType: Fix compilation with non default constructible Q_GADGET
Do not try to automatically register the meta type for Q_GADGET that
are not default constructible.
This fixes a source incompatibility in the function pointer syntax
of QObject::connect when such types are used as an argument of a signal.

Task-number: QTBUG-45721
Change-Id: I3065f6d57bc1f37e16988d2dee99118de250ca56
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-05-27 10:51:10 +00:00
Nico Vertriest c056e529c8 Doc: added doc to undocumented functions
Task-number: QTBUG-36985
Change-Id: Ia98654f88cf5da77245b3fcd903b860d12862fc2
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-05-18 08:01:54 +00:00
Liang Qi 20efe75916 Merge remote-tracking branch 'origin/5.4.2' into 5.4
Change-Id: Ic1e8b154b43c8d8e3f682c96b074b2b77dbfe2ac
2015-05-18 09:58:45 +02:00
Volker Krause 7d1ec1ae9e Reorder member variables to avoid padding.
Saves 8 byte in each case on 64bit systems, no change on 32bit systems.

Change-Id: I2a2e8786fc7914ee9ae369ba05bedfc9e5e0ca5c
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-05-14 12:06:41 +00:00
Caroline Chao 6c20a01cb9 QSysInfo: Expand Linux distribution detection
Expand Linux distribution detection to /etc/redhat-release and
/etc/debian_version to follow what /usr/bin/lsb_release script does.
If /usr/bin/lsb_release fails to extract the distribution information
from /etc/lsb-release, it then checks /etc/redhat-release and, as a last
fallback, /etc/debian_version.

Some Red Hat distributions have a /etc/lsb-release file that
does not provide the values we are looking for (DISTRIB_ID,
DISTRIB_RELEASE and DISTRIB_DESCRIPTION).

If both productType or productVersion are empty after reading
/etc/lsb-release, readEtcLsbRelease() will return false, allowing
further parsing of /etc/redhat-release. This scenario mimics what
the /usr/bin/lsb_release script does if /etc/lsb-release does not
contains enough information.

The productType and productVersion returned by QSysInfo after reading
/etc/redhat-release match the distributor id and release information
returned by the /usr/bin/lsb_release script.

For Debian Linux distributions where /etc/os-release, /etc/lsb-release
and /etc/redhat-release are not available nor usable, the
/usr/bin/lsb_release script also checks for the /etc/debian_version
file.

In this case, we also enable parsing of /etc/debian_version to retrieve a
fallback productVersion, the productType being set to Debian.

Change-Id: Ia20d513d78be8a8ee8c0410d0aaa052fde81a41d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-05-13 11:21:19 +00:00
Thiago Macieira 3eca75de67 Make qglobal.h complain if you use -fPIE
Prior to Qt 5.4.2 (commit 36d6eb721e), we
allowed it, but now we need to enforce that it is not used. Note that
-fPIE does define __PIC__, so we need this to catch the use of -fPIE.

[ChangeLog][Important Behavior Changes] On x86 and x86-64 systems with
ELF binaries (especially Linux), due to a new optimization in GCC 5.x in
combination with a recent version of GNU binutils, compiling Qt
applications with -fPIE is no longer enough. Applications now need to be
compiled with the -fPIC option if Qt's option "reduce relocations" is
active. Note that Clang is known to generate incompatible code even with
-fPIC if the -flto option is active.

Task-number: QTBUG-45755
Change-Id: I66a35ce5f88941f29aa6ffff13dd210e0aa2728f
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-05-13 03:46:34 +00:00
Allan Sandfeld Jensen 1fce111809 Merge remote-tracking branch 'origin/5.4' into merge5.5
Conflicts:
	src/corelib/global/qglobal.h
	src/corelib/io/qnoncontiguousbytedevice_p.h
	src/gui/image/qjpeghandler.cpp
	src/network/access/qhttpthreaddelegate_p.h
	tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp
	tests/auto/widgets/widgets/qmenubar/BLACKLIST

Change-Id: I01de8c1c28efcedfd7953d05025f54802dc08ab3
2015-05-08 13:26:44 +02:00
Allan Sandfeld Jensen de4fae82a9 Merge remote-tracking branch 'origin/5.4.2' into 5.4
Change-Id: I944e9e59d28172290930db0e162c1597ad05c59e
2015-05-08 10:08:42 +02:00
Thiago Macieira 36d6eb721e Require -fPIC instead of just -fPIE for -reduce-relocations
GCC 5 combined with a recent binutils have a new optimization that
allows them to generate copy relocations even in -fPIE code. Clang has
the same functionality when compiling an executable with -flto. We need
to let the compilers know that they cannot use copy relocations, so they
need to use really position-independent code.

Position independent code throughout is not really required. We just
need the compilers to use position-independent access to symbols coming
from the Qt libraries, but there's currently no other way of doing that.

Task-number: QTBUG-45755
Change-Id: I0d4913955e3745b69672ffff13db5df7377398c5
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-05-07 19:42:43 +00:00
David Faure ae8406d82f Deprecate ItemIsTristate in favor of ItemIsAutoTristate.
This makes the behavior much more clear. You can get a tristate checkbox
just by setting the CheckStateRole to PartiallyChecked, no tristate flag needed.

The flag, on the other hand, enables the automatic-tristate behavior in
QTreeViews (and only there), hence the new name for it.

Change-Id: I18d292a8b8294c863eab806f3874d15dfb72556c
Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
2015-05-07 09:14:18 +00:00
Tor Arne Vestbø fe1fb593ae Make it explicit that a few Qt::WindowFlags are overlapping
Change-Id: Ia161fb9b7196d139e22fe7b3b576c5c72ee8a2f1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-05-07 07:01:39 +00:00
Jake Petroules af851c290b Use macros for the OS X enums in QSysInfo::MacVersion.
This is consistent with how the iOS enums are defined.

Change-Id: I3a07be1bf1d70bddb8bcfea61f09f2a97bd39077
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-03 01:52:15 +00:00
Jake Petroules ca1077ce4b Update for the newest Darwin-family operating systems.
Change-Id: I72ba0554eb9e1201ce3844d6420f253c51750de3
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-03 01:52:03 +00:00
Simon Hausmann 8272f5415b Fix crashes when accessing environment variables concurrently
We've seen crashes with QThreadPrivate::start using qgetenv during the creation
of the event dispatcher, while another thread (for example the gui thread)
called qputenv. This is inherently thread-unsafe and there are many places
where we make the assumption that using the environment is safe. However access
to the environment is inherently unsafe in the C runtime and the best that we
can do is add a mutex around the Qt environment access functions, to at least
protect ourselves and our users.

Change-Id: Ie9a718d9f7ce63c423c645f0be3e3f4933e1cb08
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-04-30 14:21:46 +00:00
Liang Qi 1c8451bdbb Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/tools/qdoc/tree.cpp
	tests/auto/gui/painting/qcolor/tst_qcolor.cpp

Change-Id: Iaa78f601a63191fa643aabf853520f913f2f0fdc
2015-04-27 21:36:32 +02:00
Martin Smith dc5719a7c5 doc: Provide missing enum documentation
Ongoing improvement of Qt documentation by fixing
problems that cause qdoc to print error messages
about missing documentation.

In this update, several missing values of Qt::Key
are listed and the the Qt::NativeGestureType enum
is documented.

Change-Id: Iba7907d8ecb7a7c5ae72339d3bd3be33356b2201
Task-number: QTBUG-45756
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-04-23 13:57:55 +00:00
Friedemann Kleint e0c83fb658 qsystemdetection.h: Check existence of define WINAPI_FAMILY_PHONE_APP.
It is missing in MinGW and causes warnings like:
src/corelib/global/qsystemdetection.h:109:24: error: "WINAPI_FAMILY_PHONE_APP" is not defined [-Werror=undef]
in QtScript and headersclean failures in Active Qt.

Task-number: QTBUG-45666
Change-Id: I167d9d5b33faddfbbcf44bdcce5e86fb43614fa9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-22 10:23:32 +00:00
Liang Qi aed5a71683 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/corelib/statemachine/qstatemachine.cpp
	src/corelib/statemachine/qstatemachine_p.h
	src/gui/painting/qdrawhelper.cpp
	src/plugins/platforms/xcb/qxcbnativeinterface.cpp
	src/plugins/platforms/xcb/qxcbwindow.cpp
	src/plugins/platforms/xcb/qxcbwindow.h
	src/testlib/qtestblacklist.cpp
	src/tools/qdoc/node.cpp
	src/tools/qdoc/node.h
	tests/auto/gui/painting/qcolor/tst_qcolor.cpp

Change-Id: I6c78b7b162001712d5774293f501b06b4ff32684
2015-04-22 09:25:54 +02:00
Oswald Buddenhagen 2e5cfa1ad4 Bump version
Change-Id: I9435dd001b6067464d7c04fbdf92b5b3ad546bac
2015-04-20 12:27:33 +02:00
Harald Hvaal 8fb881900c Enable checking for whether the system palette was explicitly set
In order to obey a palette set globally on QApplication, an application
attribute for checking if it's set at all is added.

Task-number: QTBUG-39800
Change-Id: I26b965e6e18e0e1ca4df03cf343b3527df3636b2
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-04-20 06:39:31 +00:00
Liang Qi 605617b5dc Merge remote-tracking branch 'origin/5.4' into 5.5
Change-Id: I004854a25ebbf12b1fda88900162fe7878716c58
2015-04-15 09:09:24 +02:00
Kai Uwe Broulik d47294bec7 Add ReturnKeyType enum to Qt namespace
This will allow to utilize the native return keys provided by most mobile
platforms, to indicate what kind of action pressing it will result in,
such as performing a search, a navigation, moving on to the next input
field or just closing the keyboard.

[ChangeLog][QtCore][Global] Added ReturnKeyType enum allowing for fine-grained
control of the platform's on screen keyboard return key

Change-Id: I6a691045ad6970e6893f23773b2449a7bafd98fc
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
2015-04-09 08:25:20 +00:00
Liang Qi 20cac3d9c9 Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: If9fd98525b6b4ca07e5e006fc98bf372a73b8a21
2015-04-06 19:10:25 +02:00
Liang Qi 0e6ee136c9 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/testlib/qtestblacklist.cpp
	src/widgets/accessible/qaccessiblewidgets.cpp

Change-Id: If032adb9296428f62384ed835dbf41ee7a0b886c
2015-04-01 09:10:26 +02:00
Alexander Volkov 19a91b4a35 Doc: Fix using Apple-related terminology in Qt Core
Use the name "OS X" instead of "Mac OS X", "Mac OS" and "OSX",
and mention iOS. Replace "Carbon Preferences API" by
"CFPreferences API" in the QSettings documentation.

Change-Id: Ia7f9fb874276c7c445a1649df521b96ff43daa0c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-03-31 12:49:01 +00:00
Thiago Macieira ffc74e6d70 Use Q_NULLPTR for the null pointers used in macros
User code should build with -Werror=zero-as-null-pointer-constant

Task-number: QTBUG-45291
Change-Id: Iee8cbc07c4434ce9b560ffff13d0031979b4c2fe
Reviewed-by: Matthew Woehlke <mw_triad@users.sourceforge.net>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-03-30 21:22:20 +00:00
Venugopal Shivashankar 06ecfb6fde Doc: Added the missing description for WindowShadeButtonHint
Task-number: QTBUG-44017
Change-Id: I024faa6214a041403f23fd91f0c8c38eabeef31e
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-03-25 12:15:40 +00:00
Sérgio Martins ddb0628181 Fix BlackBerry build.
BlackBerry SDK uses gcc 4.6 which supports nullptr, but by default
it uses the dinkum C++ library, which doesn't support nullptr_t.

Change-Id: Ifa95029a9bfa4dc2fc064db5d7a67012e95ac0e2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-04 11:55:23 +00:00
Friedemann Kleint 2c6c0e8520 Add QT_Q_FLAG for Qt::MouseEventFlag.
Enable formatting it in debug streaming operators.

Change-Id: I92efb70471653bbd4d91588f333ee132b392bf0c
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-03-27 16:54:22 +00:00
Tor Arne Vestbø 013afc77f0 Add Qt::WindowFlag to signal that maximizing should cover full screen geometry
Normally when maximizing a window it will cover the available geometry
of the screen, as represented by QScreen::availableGeometry(), which
typically excludes status/menu bars and application launchers.

On some platforms it may still be possible to place windows in the areas
of the screen that are outside of the available geometry, but this will
result in the window being partially covered by (possibly) transparent
system UIs. The new flag allows the user to specify that when maximizing
the window it should try to cover as much as possible of the screen
geometry (in contrast to going full screen, which would typically
hide any system UIs).

For iOS this is a common use-case, as the status bar is transparent,
and the user-interface guidelines for iOS7 and up recommend taking
advantage of the full screen space, while keeping any user-interaction
elements still inside the available geometry of the screen.

Change-Id: I86d7fc937916d9cae245f7a3f9ae46abd92cdd29
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-03-27 10:24:17 +00:00
Friedemann Kleint 06671a3cbd Windows: Use FORMAT_MESSAGE_IGNORE_INSERTS for qt_error_string().
This will cause FormatMessage() to return messages with placeholders
as well even though we do not pass the message parameters (for
example: "The operating system cannot run %1." for ERROR_INVALID_ORDINAL).

Task-number: QTBUG-43164
Change-Id: Ib95c1c0fabb543bbe4e8ab2bd8f244f73dff5fa4
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-01 14:26:43 +00:00
Olivier Goffart 8cec5e9a34 Update a few doc regarding Q_FLAG
Change-Id: Ic26b3d64c9a5d5109bd8a0b359f063529d0181fc
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-04-01 14:20:28 +00:00
Thiago Macieira e1c99e15b6 Update strtoll and strtoull from upstream FreeBSD
There appears to be at least one fix, related to sign- or zero-extension
in the call to isspace(). So it's a good idea to update again. This also
brings the behavior to match strtoll and strtoull on Linux, including
the fact that strtoull will parse negative numbers. For that reason,
qstrtoll and qstrtoull are now wrappers that try and keep the behavior
that we used to have.

This update also changes the code from a 4-clause BSD license (bad) to a
3-clause BSD license (good).

Change-Id: I73b01b02ebd1551bf924599d52284ad25cc1def0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-03-26 06:11:14 +00:00
Kai Koehne cbf28577ef Force length of prefix path to be calculated at runtime
Prevent compilers from calculating strlen at compile time
by using a volatile pointer. This corrupted paths if the
installation path is patched for the binary SDK installer.

Task-number: QTBUG-45307
Change-Id: I624b0409e8b27299475a88eb1cbf03ffef9589c6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-01 11:32:28 +00:00
Liang Qi ce9519593a Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts:
	mkspecs/android-g++/qmake.conf
	qmake/generators/unix/unixmake2.cpp
	src/gui/image/qimage_conversions.cpp

Change-Id: Ib76264b8c2d29a0228438ec02bd97d4b97545be0
2015-03-31 10:03:31 +02:00
Simon Hausmann 198606f6db Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/plugins/platforms/xcb/qxcbnativeinterface.cpp
	src/plugins/platforms/xcb/qxcbnativeinterface.h

Change-Id: I31b38ba439b9341d51a01c0fd54bea33f7410076
2015-03-16 10:31:07 +01:00
Rainer Keller 8c9d6a334c Doc: Change Q_CHECK_PTR documentation to match implementation
Task-number: QTBUG-9134
Change-Id: I417be34f5682fa23b7b76131f5713b0917dfae6d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-03-12 12:45:01 +00:00
Thiago Macieira 6025c36d01 Make Q_ASSERT_X also check its argument for validity
Commit ebef2ad136 did it for Q_ASSERT, but
I somehow forgot to do it for Q_ASSERT_X. Do it now.

This includes the fix from 9a3d7adaad to
silence a Clang warning.

Change-Id: Iee8cbc07c4434ce9b560ffff13ca066a5b5ab5d4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-03-12 04:23:45 +00:00
Paul Olav Tvete a31fd4fb96 Clarify InputMethodHint documentation
The description of ImhHiddenText made it sound like it would change
the echoMode of the input field.

Task-number: QTBUG-38080
Change-Id: I379015b95e43b6eff181d51444c7e069728504ad
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-03-11 15:07:07 +00:00
Ulf Hermann aad3c08902 Clean up QLibraryInfoPrivate::findConfiguration()
The QFile::exists() check in the end was redundant if one of the
!QFile::exists() had returned false before. By always doing the
positive check we can get rid of it and also avoid excessive
nesting.

Also, on OSX the isEmpty() clause probably never evaluated
to true, with the effect that qt.conf in an applicationDirPath was
never found.

Change-Id: I750735741b707d3e98c4bf6c6b9558618e1fcc59
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-03-11 09:10:18 +00:00
Ulf Hermann 1fc6056ff5 Detect qt.conf in bundle on OSX without QCoreApplication
On OSX we don't need the applicationDirPath to find a qt.conf
located in the application bundle. Let's take advantage of this and
allow findConfiguration to use it.

Task-number: QTBUG-24541
Change-Id: I38c349a3bcd140fcf91352c88c24ca662e6e6f2e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-03-10 11:56:53 +00:00
Ulf Hermann d96c29a5d1 Reload QLibraryInfo's settings when QCoreApplication becomes available
Some of the paths may only be resolvable if the application path is
known. On some platforms we can only figure out the application path
if argv[0] is known. Thus, if the paths have been queried before the
QCoreApplication is created, the cached settings may be wrong. We have
to reload them after creating the QCoreApplication.

Task-number: QTBUG-38598
Change-Id: Idf5822be87aa0872b099480040acd7b49939a22c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-03-10 11:48:24 +00:00
Frederik Gladhorn 6cef72d0b4 Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: I9d10911c51700965f2cf0e3173b88fd9116bd3ee
2015-03-09 10:23:15 +01:00
Tor Arne Vestbø b0182069e5 iOS: Define QT_NO_PROCESS, as the platform doesn't allow fork/exec
Change-Id: I0928c4aaa0c308ee86b9611beeba3937b61e226c
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-03-06 19:01:38 +00:00
Thiago Macieira 9a3d7adaad Fix -Wunreachable-code warning from clang in preprocessed Q_ASSERT
Q_ASSERT expands to:
 do {} while (false && (<your condition>))

Which is fine for Clang as long as it's a macro. However, when you
compile as a preprocessed source, the macro is gone and Clang prints the
warning:

 warning: code will never be executed [-Wunreachable-code]
 do {} while (false && (f()));
                        ^
 note: silence by adding parentheses to mark code as explicitly dead

So add the parentheses that it's asking about.

The changelog refers to the full Q_ASSERT change from
ebef2ad136.

[ChangeLog][Important Behavior Changes] Q_ASSERT will now expand the
condition even in release mode when asserts are disabled, albeit in an
unreachable code path. This solves compiler warnings about variables and
functions that were unused in release mode because they were only used
in assertions. Unfortunately, codebases that hid those functions and
variables via #ifndef will need to remove the conditionals to compile
with Qt 5.5.

Change-Id: Ia0aac2f09e9245339951ffff13c8aa70229254d0
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-03-06 06:19:47 +00:00
Stephen Kelly 1a0dfd93bb Make some QAbstractItemModel API invokable
As QAIM and related classes are becoming more useful in the QML
environment, it makes sense to make these invokable.

Make the access API and the setData method scriptable.  Avoid
making the structure changing APIs scriptable now to be conservative.

Export the ItemDataRole enum through the staticQtMetaObject to make
built-in roles available.

Change-Id: I47b1682e6fa8ba32c7314c73fc10a7bbaa6d1f98
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Stephen Kelly <steveire@gmail.com>
2015-03-04 22:39:05 +00:00
Oswald Buddenhagen 38b5e9f8ba Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: Idd21ab419588ee8b893649e3227d41c46a32e519
2015-03-04 16:49:00 +01:00
Shawn Rutledge 3b6d2575ae QEvent types: use Q_ENUM qDebug support instead of custom formatters
Change-Id: I10886de57b3ba24dddfcd4b78e1a32c470ac1889
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-03-03 13:30:45 +00:00
Oswald Buddenhagen c0a5e8c9d7 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/plugins/platforms/xcb/qxcbscreen.cpp

Change-Id: Ie42931791a849b34b63d814d2eb5ac653986d868
2015-03-03 13:37:38 +01:00
Oswald Buddenhagen 2b5982aac8 Merge remote-tracking branch 'origin/5.4' into 5.5
Change-Id: I95b3a87c5068c6b8068b30a35655b4c2419e7f9e
2015-03-02 09:23:07 +01:00
Oswald Buddenhagen a659b4e56b fix default of SettingsPath when qt.conf is present
it's documented to fall back to Prefix if qt.conf is present but
Settings is not specified.

Task-number: QTBUG-44644
Change-Id: I8ef6659cbdad51b2fb3c1075ea6f0af4997117ed
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-25 19:14:50 +00:00
Thiago Macieira 41ef1965c5 QSysInfo: expand Linux distribution detection to /etc/lsb-release
Some older (or weird) Linux distributions don't have /etc/os-release, so
let's try to read /etc/lsb-release instead. If we find a file called
/etc/<distronamelowercase>-release and it's bigger than the pretty name
we read from /etc/lsb-release, use that.

Because the order of the keys changes between the two *-release files,
we can't do a sorted search anymore.

Change-Id: I1a800c709d3543699131ffff13c48532d5074f3c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Dirk Hohndel <dirk@hohndel.org>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-25 15:49:20 +00:00
Sergio Ahumada 18ab75be81 Doc: Fix typos
Change-Id: Id7ecc747545f9675b84c3a8c284a52e72a584135
Reviewed-by: Sune Vuorela <sune@vuorela.dk>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
2015-02-25 15:13:44 +00:00
Oswald Buddenhagen 4f39e8b9f7 Bump version
Change-Id: If80b63cf61bc3fd15ff6020fa5e35ec0316bdadc
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-02-25 13:20:40 +00:00
Frederik Gladhorn 34b14a8472 Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts:
	examples/xml/htmlinfo/simpleexample.html
	examples/xml/rsslisting/rsslisting.cpp
	qmake/generators/win32/msbuild_objectmodel.cpp
	src/3rdparty/harfbuzz-ng/src/hb-private.hh
	src/corelib/global/qlogging.cpp
	src/corelib/io/qstorageinfo_unix.cpp
	src/corelib/thread/qwaitcondition_unix.cpp
	src/gui/kernel/qguiapplication.cpp
	src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp
	src/testlib/doc/src/qt-webpages.qdoc
	tests/auto/other/qaccessibility/tst_qaccessibility.cpp

Change-Id: Ib272ff0bc30a1a5d51275eb3cd2f201dc82c11ff
2015-02-24 21:02:08 +01:00
Nico Vertriest 1afe110b8f Doc: corrected link/autolink issues in corelib
Task-number: QTBUG-43115
Change-Id: I31da92e3a7c4dd7b75ee283dbfecd77e284978ca
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-02-24 08:44:13 +00:00
Oswald Buddenhagen d34353a065 Merge dev into 5.5
Change-Id: Id6dbbbfc542c214fe695c6795c6aaf23aedc1cd1
2015-02-23 11:24:07 +01:00
Tobias Koenig 04ec8134e8 Haiku: Use 'unknown' as QSysInfo::productType()
There are no actual products of Haiku, so using
'unknown' (the default) is fine, otherwise the
file platform selector would be '+unix/+haiku/+haiku'
instead of '+unix/+haiku'.

Change-Id: Id7653098e20374885a50c09e2aaac9e6fcfc6efb
Reviewed-by: Augustin Cavalier <waddlesplash@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-20 18:04:41 +00:00
Sean Harmer c38b6a3fde Disable constexpr support for QNX
Even though the compiler on QNX supports C++11, the stdlib it ships
with is missing constexpr on many important functions. This is required
to make qtbase compile on QNX 6.6.

Change-Id: I59a4263483b1d94b9d2dceb947876e445f9662af
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2015-02-20 09:11:54 +00:00
Joerg Bornemann 732c994876 work around MSVC level 4 warning
Change-Id: Ide3541a8a1a16a1f9b6b01f54d5b2f6ab178c3ac
Task-number: QTBUG-7233
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-17 13:44:10 +00:00
Frederik Gladhorn 393fc2d4f5 Merge remote-tracking branch 'origin/dev' into 5.5
Needed due to license header patch.

Change-Id: Id7e30490132a7c487687a0a376419e9f9b97ea41
2015-02-17 12:35:29 +01:00
Thiago Macieira b584648df1 Use Clang 3.6's __builtin_assume in Q_ASSUME
It's more efficient than the current implementation. Example:

int f(int i)
{
    Q_ASSUME(i < 8);
    return i < 8;
}

Before:
        cmpl    $8, %edi
        setl    %al
        movzbl  %al, %eax
        retq

After:
        movl    $1, %eax
        retq

Change-Id: I1a800c709d3543699131ffff13c1c50713a8da2c
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-02-17 00:42:04 +00:00
Sérgio Martins fbeeaf23fe Introduce QT_NO_MIMETYPE
The mime type stuff generates one of the biggest translation units in QtCore
due to the compressed 1.7MB freedesktop.org.xml resource.

With QT_NO_MIMETYPE, libQt5Core.so is almost 400Kb smaller
(4.8MB->4.4MB gcc 4.9 stripped release build)

Change-Id: I5339090994034355724ff4deddb64720e81baeaf
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-02-17 00:06:47 +00:00