iOS: Ensure that the rename-main logic works for multi-arch builds

We need to tell Xcode which architectures it should set up pre-link
dependencies for, as well as run the rename script in the root object
file directory. We pass it the current architectures so that we only
rename main() for simulator or device, not both.

Change-Id: I095d7c8a22ff0cb2ce872c9a86c93a070c1fcc65
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
iOS: Allow ARCHS to be specified at build time for multi-arch builds

Building all architectures of a multi-arch build during Qt development
is in most cases not needed, so we expose a way to limit the archs we
build by passing ARCHS="subset of archs" to make, similar to how you
can pass ARCHS to xcodebuild. If the subset doesn't match any of the
valid architectures for the target, it will fall back to the default
architectures, so it's safe to pass eg. ARCHS="armv7 i386" to make,
even if building for both simulator and device. The variable may also
be exported to the environment for more persistent limits on which
architectures to build.

Change-Id: I47b10bc9d743f0301efff4181d6881ae140d557f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
iOS: Enable fat builds containing both armv7 and arm64 slices

Apple will from February 1, 2015, require all applications uploaded to
the App Store to be built for both 32-bit (armv7/s) and 64-bit (arm64).

https://developer.apple.com/news/?id=10202014a

We enable fat Qt binaries by passing both -arch armv7 and -arch arm64
to clang, which takes care of lipoing together the two slices for each
object file. This unfortunately means twice the build time and twice
the binary size for our libraries.

Since precompiled headers are architecture specific, and the -Xarch
option can't be used with -include-pch, we need to disable precompiled
headers globally. This can be improved in the future by switching to
pretokenized headers (http://clang.llvm.org/docs/PTHInternals.html).

Since we're enabling 64-bit ARM builds, we're also switching the
simulator builds from i386 to fat i386 and x86_64 builds, so that
we are able to test 64-bit builds using the simulator, but we're
keeping i386 as the architecture Qt is aware of when it's building
for simulator, as we need the CPU features to match the lowest
common denominator.

Change-Id: I277e60bddae549d24ca3c6301d842405180aded6
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Revert "Fix fallbacks for adapted common script"

This reverts 1dd9a0af4f577ccb5578cea562a98686c8e290e6. It was
a band-aid for a change in the unicode itemizing algorithm
which caused the script of a script item to become unreliable.
This change has since been reverted, so the band-aid is no longer
needed, and it also causes problems for WebKit on Windows when
it ends up preferring Arial Unicode MS as the font for Uchen
script, even though the font does not support this script.

The autotest from the reverted commit is kept in place and still
passes.

[ChangeLog][Text] Fixed regression when rendering Uchen text in
WebKit on Windows.

Change-Id: I488c84703bb55a050d90092c6bf9e5c70a9e31c2
Task-number: QTBUG-41372
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Set correct QSurfaceFormat also for raster surfacetype

Change-Id: Idd37942842dc59ae391b6b34308d4c01e7a25bc5
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
eglfs: ifdef linux specific functionality from convenience functions

Because change a093204f07f276bc8e7b4fedf4af0e1369f55734
qeglfshooks_stub.cpp don't compile anymore on any other *nix
platform than linux as those functions have been set linux
specific only.

Change-Id: I339672b1bf2745511076030cc1fe13dc7f2356ff
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
QJsonArray::(const_)iterator: add the typedef for the pointer type

Mandatory as per the standard iterator requirements, was causing
compilation errors in the STL algorithms.

Task-number: QTBUG-41628
Change-Id: Iee12a3b822383f63c07e270244fd0e145a486b95
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Android: Introduce getAccessibleField

This method simplifies a lot the code.

Change-Id: I7fe775d671ae89e112f313c21f61923133785785
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
iOS: close keyboard by resigning first responder

Current approach of reloading input views assumes that
the first responder is not a QIOSTextResponder, but
a QUIView. This is not always the case, e.g if someone
calls update after setting IM enabled on current focus
object to false. In that case we'll try to close the
keyboard by reloading input views on a quitextresponder which
can fail if the text responder has an external input view
attached.

This patch will instead hide the keyboard by resigning first
responder when it is a QIOSTextResponder. If it is not
a QIOSTextResponder it means that the keyboard is already
closed, or a third-party UIVIew that supports key input is first
responder. In either case we then leave it as-is.

Task-number: QTBUG-42523
Change-Id: I4dab648af9029941a8d5d3b00011fbd169be5482
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
iOS: let focusobject be ImEnabled when a menu is attached

Since the picker menu uses IM to set an alternative
input view, we also need to specify that we IM is enabled.

Task-number: QTBUG-42523
Change-Id: Ia559fbc0ca7e6a1a4499d5eb179baa2d915ecb17
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
iOS: close menu when keyboard hides

If the menu is closed from the keyboard gesture, and
the focus object doesn't change, the menu will still
be in a visible state, even if the keyboard is hidden.

This patch will ensure that this can not be the case
by listening for keyboardWillHideNotification. Since
we have no guarantee for when the destructor runs, we
apply a pessimistic approach and ensure we stop listen
when the menu gets closed.

Task-number: QTBUG-42523
Change-Id: If734ea32d1823b978c9c1c67ebcc5b6c3c5c338c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Doc: corrected autolink issue json

Task-number: QTBUG-40362
Change-Id: I851670eea6af80b0bb463f00b147d7a6ef289046
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Add the custom build step for PCH generated through source

This fixes a regression introduced by
04d3a89e20d49a3b5015b071bfdedc81973b090c as it left out the custom build
step for the source code file generated for PCH.

Task-number: QTBUG-42596
Change-Id: I53d5a36b842dcffbde2657910e6a96dca0e99c7b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Android: Extract RippleDrawable

Task-number: QTBUG-42488
Change-Id: I41fb37adae4664f4a071d794dc4a31a3ee3334aa
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Make QVersionNumber private

We're not ready.

[ChangeLog][EDITORIAL] Remove all mentions of QVersionNumber.

Change-Id: I03ad95992982eb3177f982c1eeddb6a6bc29336c
Reviewed-by: Keith Gardner <kreios4004@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
windows: fix platform compilation after ANGLE upgrade

Upstream changed how WARP is meant to interact with EGL, and so the
enum names changed.

Change-Id: I10d4bcac71b75a1223ea8af4d3fcf584f5685a02
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
ANGLE: Upgrade to version 1.2.30d6c255d238

The following patches have been changed:

0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch
  Removed because it is no longer possible to build ANGLE with MSVC2008

0002-Fix-compilation-of-ANGLE-with-mingw-tdm64-gcc-4.8.1.patch
  Removed because the minimum version of MinGW moved to 4.8.2

0005-Fix-build-when-SSE2-is-not-available.patch
  Removed because it was fixed upstream

0006-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch
  Removed because older versions of MinGW are not supported

0007-Fix-ANGLE-build-with-Microsoft-Visual-Studio-14-CTP.patch
  Removed because it was fixed upstream

Task-number: QTBUG-41903
Change-Id: I976d30802f7f6fee725cf9a9f1325d5e82609835
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Android: Extract default style

Task-number: QTBUG-40621
Change-Id: I4569c87c79769752373a9e6e12cb64c89dfc8f94
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Set Android palette and fonts in QPA plugin.

Task-number: QTBUG-40621
Change-Id: Ibe069d4f93ac317e4f1b9ef5fc6bc3edcfac8685
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Doc: Corrected brief statement for overview page

Task-number: QTBUG-42682
Change-Id: I28afbb8b09d5568f3fae29fdfc5a3d15376b72de
Reviewed-by: Martin Smith <martin.smith@digia.com>