Android: add support for extracting RotateDrawable

The rotation attributes are required for implementing BusyIndicator.

Task-number: QTBUG-39215
Change-Id: Ief51bf921f61b3b030f26d377b4bfd13913af6c1
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Android: extract progressBarStyle(Small|Large)

The indeterminate drawable is used for QtQuick Controls BusyIndicator

Task-number: QTBUG-35081
Change-Id: Iecdc6e80444b5134ec1fa61916c7ac1612cd275f
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Android: extract SeekBar_thumbOffset

Task-number: QTBUG-39215
Change-Id: I2a7b878b1a86280c92a445826f196de3245fd4e2
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Android: ensure unique IDs when extracting style data for layers

Indeterminate progress drawables can consist of multiple layers that
don't necessarily have an ID. Ensure that the extracted file names
contains unique IDs to avoid extracted layers overwriting each other.

Task-number: QTBUG-35081
Change-Id: I3dc48bf363510ded9b955aa51fa479c607541169
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Use accurate title/status bar gradient colors on OS X.

QMacStyle now uses proper system colors when drawing status bars.

Change-Id: I618e485a2a68a484f7c8cb5635cd2bf529126c02
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Android: extract scrollViewStyle

Task-number: QTBUG-39215
Change-Id: I8d4155aa4db5d807d1846c5741c01693af24f846
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
qmake: share the default variables

Eliminate duplicate code => collect the default variables
to MakefileGenerator::writeDefaultVariables().

Task-number: QTBUG-21910
Change-Id: Ia03ce0240dd9a101ad9d35db636cd88f38a49320
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Automatically enable precompiled headers for Qt modules

We'll use the master depends header for the module as the precompilation
header. We could use the master include, but tests show that
precompilation benefits taper off for big precompiled headers. The
important part is to get the Standard Library headers precompiled.

Each module can still override which header to precompile by setting
PRECOMPILED_HEADER after load(qt_modules). It can also turn off
precompiled headers by setting that to empty or by CONFIG -=
precompile_header.

Testing a few build times shows the following improvements (GCC 4.8 with
-O3 and C++11):
  QtPrintSupport: 14.7%
  QtOpenGL:       22.7%
  QtDBus:         29.5%
  QtSvg:          -2.4%
  QtXmlPatterns:  26.1%
  QtQml:          21.6%
  QtQuick:        25.0%
  QtMultimedia:    9.0%
  QtSerialPort:  -30.0%
  QtHelp:          5.6%

The numbers also show that precompilation is worse for small modules.

Change-Id: I3793fafcedaff5456527cd6b3777ffd162975c36
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Add support for single-file multi-target intrinsics in Qt

GCC 4.9 now allows us to #include any and all intrinsics headers, not
just the one for which we're compiling code, a behavior that ICC and
MSVC have had for some time. With that, we're able to have the functions
for different targets in the same source file. See the GCC manual:
  http://gcc.gnu.org/onlinedocs/gcc/Function-Multiversioning.html

This functionality is notified by the QT_COMPILER_SUPPORTS_HERE(XXX)
macro, which indicates that all the intrinsics from
QT_COMPILER_SUPPORTS_xxx are available and enabled. To complement, a
QT_COMPILER_SUPPORTS(XXX) macro is also added.

Unlike ICC and MSVC, GCC requires a special function attribute, which
will also cause code optimization. That's the QT_FUNCTION_TARGET macro.

Note: because of the absence of the target attribute, ICC and MSVC will
not generate instructions with the VEX prefix unless they only exist
with the VEX prefix or if -mavx / -arch:AVX are enabled.

Change-Id: I0c1880c20324bd8e0fc68a863e36d1fa7755dff0
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Detect the CRC32 instruction availability at runtime

This requires being able to compile the SSE4.2 instruction at compile
time without changing compiler command-line flags. This code will get
enabled for GCC 4.9, ICC and MSVC.

Change-Id: Ifb9158ff7f49e6ae581297893cd1e21dd5ce3573
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Fix test script: let actual font used match the font description

Change-Id: Ia6bd1fc7f2e4a069fb29927f18994843e0db7dd0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Android: extract View_scrollbarDefaultDelayBeforeFade

Task-number: QTBUG-39215
Change-Id: I8cc6e16a7155710ad322dc884ccbb194ca7d5b67
Reviewed-by: BogDan Vatra <bogdan@kde.org>
RCC: Remove support for CONFIG += resource_combine

We don't use it and it was never documented. Search engine hits
only point to this occurrence in the Qt sources.

Change-Id: I2dd7adc5438893560daf01ac85620d9f9c028982
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
QTimer: add convenience singleShot methods for functors

This brings QTimer::singleShot on par with QObject::connect in
terms of the new Qt5 syntax. With this patch, it is now possible
to connect singleShot to a member pointer, a static function
pointer and a functor (with or without a context object).

The short code path for 0 msec is not yet implemented - it will
require further modifications to QMetaObject before it will be.

An additional SFINAE on the new singleShot overloads had to be
implemented to prevent tricking the compiler into believing
const char * might be a function pointer.

[ChangeLog][QtCore][QTimer] Implemented new style connect syntax,
including functors, in QTimer::singleShot

Task-number: QTBUG-26406
Change-Id: I31b2fa2c8369648030ec80b12e3ae10b92eb28b4
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Make QWeakPointer's ctor constexpr

Change-Id: Ia23406ee80e83071a129606b76f78e2b6d0cf32e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Dummy window for creating GLX context should be override redirect

Without having the dummy window being override redirect Qt might
confuse window managers. Window managers might react on the create
notify event, but there is no reason to do anything with the window
as it is most likely already destroyed at the time the window manager
receives the create notify event.

By marking the window as override redirect we indicate to the window
manager that they can ignore it.

Change-Id: I35259436da4548f4190b92de412fb0de1d2e8077
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Accessibility: Fix rect for QComboBox and QRadioButton

This is especially relevant on mobile devices where screen readers often
send mouse clicks to the middle of the object.

Task-number: QTBUG-39100
Change-Id: I5972f21dd12434601d86136215ab9b61248c9691
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
QSaveFile: follow symbolic links

[ChangeLog][QtCore][QSaveFile] Now follows symbolic links while writing to
a link instead of replacing the link with the contents.

Change-Id: I5afd519cb9f96ae68fa4c23c33a18de75671a301
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: David Faure <david.faure@kdab.com>
Fix QMAKE_EXTRA_COMPILERS' depend_command being ignored

A typo caused qmake to stop output dependency information
added by the depend_command clause.

Task-number: QTBUG-13334
Change-Id: I00fabc87438ce94e80341e6f88aa2e0eaab57e19
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Do not always fallback to bitmap printing when printing alpha.

The previous code resulted in that all regions that had some alpha
blending content had to be rasterized as bitmaps.

With this patch, we only need to fallback to proper alpha blending
if there is a background content to blend against.
If there is no background content we simly assume that the background
is white (which happen to be the most common paper color). It will
then be treated as a solid background.

Task-number: QTBUG-33548
Change-Id: I9d2c9be95a701704cdb3724480421db49b4cdd98
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>