generate QGL header file from qgl.h

Task-number: QTBUG-16838
(backported from qtbase commit 8b8eebd8a41bd91aeb5b55b702a4dbc7a8db5752)
Change-Id: I4e79404fc8203c55bdbd09c6ae9c6c7cefa915b7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Move the C++11 support macros to a central place.

The main objective of this commit is to make C++11 support work with
clang: so far, the Q_COMPILER_* definitions related to C++11 were
enabled based on __GNUC__ and __GNUC_MINOR__; while clang does define
those two, __GNUC_MINOR__ is hardcoded at "2" and thus none of the
macros end up being defined.

We now make qglobal.h more similar to how qtbase's qcompilerdetection.h
works by separating the detection of the C++11 features supported by a
compiler from the detection of the compilers themselves.

It is important to note the list of macros has not changed, the macros
have only been moved.

This commit either follows the spirit of or is a cherry-pick of the
following qtbase ones:
- 4131c323a36ee8680a3b4d66a2a03a00544751c2 (Update the C++11 support
  macros)
- 8dd66f42e834320c4ba0a6f2e45855d591b3b6e7 (Avoid undefined macro
  warning for __GXX_EXPERIMENTAL_CXX0X__)
- fe5d5fdaf1d9b7d108727d290e24a6b0f00139c6 (clang: Use __has_feature()
  to detect C++11 features)
- 0ec953c93688ec0de74cda43b91f66f4cf879e5f (Remove extra Q_COMPILER_xxx
  defines from the MSVC section)
- 163dcf2b71f34a12137f200e4af5640e42e5f5e2 (Fix build with older Clang
  versions without __has_extension)
- 53262b9b5b9cb536916f6d6e086a944cb17bb8d8 (Only define the MSVC C++11
  feature macros in C++)

Change-Id: I2ca35af1a23260a9373943f97a8a72db3fc670e4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Fix crashes in QtHelp when too many connections are made

Backported from change 6481e28ba0d696cf41a2a5bc32b01db85f95b333 in qtbase

Task-number: QTBUG-36480
Change-Id: I3625d57a2f7b7b2f763a4cb92f19025b0401c593
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Fix compilation of QWinInputContext with Q_IME_DEBUG defined.

Change-Id: I4f96b8ff57957e3cc370e5b1f37a036a619ce3f9
Task-number: QTBUG-40402
Reviewed-by: Liang Qi <liang.qi@digia.com>
qwidget_win.cpp: Initialize WINDOWPLACEMENT correctly.

Task-number: QTBUG-40466
Change-Id: I93ff7977d68d36bc89f98d6a43c103a2a8d730f7
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Don't convert signed to unsigned when we need all 32bit

The fast scale methods qt_scale_image_16bit and qt_scale_image_32bit
were incorrectly assigning an unsigned value to a signed variable, which
broke their support of images with dimensions from 32384 to 65535.
Images with dimensions higher than that are already using another code-
path.

Backported from change 0afc80c9225ca9630f627fe1aea3d4fd7f958082 in qtbase

Task-number: QTBUG-40297
Change-Id: Ib55f7f9294f03a2f81206130e665af452f8cd085
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
qmlplugindumper: do not pop up a window if an assert is triggered

On windows the debug version of qmlplugindumper used to show a panel on
assert failure. Failure should be silent.

Done-with: Thomas Hartmann <thomas.hartmann@digia.com>
Task-number: QTCREATORBUG-12644
Change-Id: I568f27e7d848aeafbffa059599f33b1b7ce0d2b9
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Fix compilation warnings due to superfluous commas at the end of enums.

Change-Id: Ibc05eec8a109d68cfa2caa64ea069d77c456c41e
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Fix at lot of QT_NO_ define guards for very tiny Qt builds.

Change-Id: If33639be245a1ad3782e1fde279371f330a988be
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Add handling of value-type lists to QDeclarativeExpression::evaluate()

QDeclarativeExpression::evaluate() converts all arrays to QList<QObject *>,
even if the items cannot be represented by a QObject *. In case of a
string-list, a QList of null-pointers is returned (which isn't very helpful).
This patch makes evaluate() convert arrays, which contain ONLY value-type
items, into a plain QVariantList.

Change-Id: I4e5052af9fb296a4b692df7840bdd188298f7416
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Fix Flickable mouse grab issue.

This issue cannot be reproduced on the desktop with a mouse (at least I
could not).  It can however reliably be reproduced on iMX6 embedded hardware
with a touch-screen.  It seems like the TS driver is reporting mouse events
with a much more coarse granularity than the USB mouse driver, which in turn
triggers this bug.
(Qt5's quick1 and 2 both have the same issue)

Change-Id: Id151e3847bc8d77c7b405b9c4d4d5747a6e33ed0
Task-number: QTBUG-27185
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
Remove use of 'register' from Qt.

It is deprecated and clang is warning about it [-Wdeprecated-register].

Original patch from Stephen Kelly,
see commit d9fb6e6dbb2b322556d581265da2442e3b91a6a3 in qt5/qtbase

This is a backport of this commit + additional manual replacements in
header files. There are still some 'register' uses inside implementation files left,
but headers are all 'register'-free now.

Change-Id: I7225381df1f093073583d62fa86f7bd7cca869c7
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
qmake: Add object_parallel_to_source config option

This solves the problem of two source files in the same project
having the same name, which ends up with colliding object files.
It also solves issues with moving files around in the source tree
when the GNUmake option is used together with gcc_MD_depends,
where the dependency file would end up with a dependency to the
old source location.

We already have object_with_source option, but that does not play
nicely with shadow-builds. The new option tries to keep the same
hirarcy in the output dir (while still respecting OBJECTS_DIR),
as the sources. Any source with a path outside of the root project
directory (absolute or relative, ../../foo.cpp), will be put inside
the objects directory with the full path appended.

Task-number: QTBUG-34871
(cherry picked from qtbase/47df12225918ba82abe35921af19e547717da58b)
Change-Id: I3481b128ed72494a644fdbc55325661a23e868fa
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
refactor disconnectFromFtp to remove cached entries when necessary

In cases where a cached ftp connection fails to connect, or a file
transfer has failed, we should removed the cached connection. Since qnam
has an idea of a single internal QFtp per full operation, when file
transfers failed previously the cached connection would be reused for
subsequent connections and thus fail.

[ChangeLog][QtNetwork][QNetworkAccessManager] QNetworkAccessManager now
properly handles FTP transfer failures by removing failed cached ftp
connections.

Task-number: QTBUG-40797
(cherry picked and adapted from qtbase/45cbbe56bc13216b83215ea148590eccf81f420a)
Change-Id: Ie9eec5ec54af16a8d19e34d04bdd993cc7bbd0f5
Reviewed-by: Richard J. Moore <rich@kde.org>
Mac Style: Fix QLineEdit frame in 10.10

Also removes some dead code.

Backport of 83f06da1c6bffff61af78cbe75a0691d53742b53 from qt5/qtbase

Change-Id: I7e088ca8b52bc3e2da25e29ab570469eab6f97bf
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
QMacStyle: Fix focus frame rendering in Yosemite

Using the HITheme API would result in the frame's right edge
to be missing.

Instead, we use the recommended technique to draw the focus
ring around a custom NSCell. (See
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ControlCell/Articles/ManipulateCellControl.html)

Backport of 769af6689337285927a2637b184149f688332542 from Qt5/qtbase

Change-Id: I8f3992edc065e14632ec4e473732b30bcf4c1937
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
QThread snippet: add missing & from connection statement

Change-Id: I0409feec55ebd19f80b0c2396c49b4999798ef74
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Fix QPainter::drawPolyline() painting errors with cosmetic pen

Task-number: QTBUG-31579
Change-Id: I8fd2c03ff9a22e4963bfcbcfe196ae4c61b9e10f
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
(cherry picked from qtbase/319cbb7597100f3b65792dc6a0ce2885ce6c0e8c)
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Allow Qt4 to also build in ppc64[el le]

This simple patch allows ppc64le (aka ppc64el) to build Qt4.

The original patch was done by Ubuntu's William Grant [0], but
I higly doubt this is copyrighteable.

[0] <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=749743#39>

Change-Id: I4cd204e314789337e34b460dda6e18143e3712ec
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Fix AArch64/arm64 detection.

The detection needs to go before arm, else the system will detect AArch64/arm64
as arm.

This patch comes from Wookey, he has agreed to put it under BSD or Expat
to allow it's inclusion in here:
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=735488#255>

Change-Id: Ic2171c03fca8bb871347940fa3a2bc467776f797
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>