Optimize glyph lookups with QFontEngine::glyphIndex(uint)

Change-Id: I56c7e727f3d9b08195f38939106620c744c6eaf0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Optimize QFontEngineMulti::stringToCMap() in case of missing glyphs

Use recently introduced glyphIndex() method and only recalc advances
if the glyph is present in the font. This allows to avoid restoring
the old advance when the glyph was not found in the fallback fonts.

Change-Id: I3e0aa549961767e5448816327328101cf6a78873
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Get rid of QFontEngine::name()

It was only used in QFontCache debug output,
and some engines weren't even report a name.

Change-Id: I6cec4b75f105f5a4e1405f50188bebb3a3f04e33
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Make QFontEngine::type() non-virtual

Change-Id: I24ece90d6d8f96dad0c41a474a491b4ea96d97c3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Prevent repeated and unnecessary font population QCoreTextFontDatabase

The platform font database is populated from QFontDatabase, through the
static initializeDb() function, whenever the font database determines
that the platform database has not been initialized (by checking if the
font database is empty).

There are other clients of QPlatformFontDatabase though, such as QFont,
which uses the platform font database to check for the default family.
The CoreText implementation of determining the default family relies
on data that is computed during font population, and hence does an
internal (self-triggered) populate.

To prevent repeated populates as a result of calling QFont::defaultFamily()
we guard the populate by a similar isEmpty() check as QFontDatabase does,
but to ensure that this check works in the case of an invalidated font
database, we need to propagate the font database invalidation down to
the platform font database.

Change-Id: I8d06c6f6fc5da6353c087335859eaca008c2f6a6
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Update QStyle::sizeFromContents() docs

Task-number: QTBUG-37125
Change-Id: Id220312dab6b7e3e7de4932fd377f8850fe86e84
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Android: Display HTML text correctly on Android native dialog.

Task-number: QTBUG-35687

Change-Id: I3a298b7f4c5f9608537b1afdb994d76ef3abb706
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Pass the APPLICATION_PARAMETERS variable if defined.

Change-Id: I2a3c049db43bbd0a2c373dae9e9ac1395c099b74
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Fix compile

Move Q_Q(QGLContext); inside #ifndef block, otherwise q varialble
remains unused and it breaks the compilation.

Change-Id: Iebef9a45930fd4f7783eb983b55bf6b5e0b94cf4
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Avoid creating a new QMimeData each time the Android clipboard is used

This patch aims to fix a memory leak that occurs when the platform
clipboard is used on Android. The QMimeData from the clipboard is
recreated each time mimeData is called

[ChangeLog][QtCore][QPA/Android] Fixed a memory leak in the clipboard

Task-number: QTBUG-36025
Change-Id: I241f586589ff256885caee5e5f737313d24d942d
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Fix the name of the GPLv3 license file

Qt 4 used to have it called LICENSE.GPL3 since we used to have GPLv2 as
an option before Qt 4.5 (which is when we added the LGPL v2.1). Looks
like no one realized that the configure script looks for that file when
LICENSE.GPL was added to the modularized repositories...

Task-number: QTBUG-37175
Change-Id: Iffb35adf128c3e49a7a0c12dbccd5ebe9bccf3f2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Always initialize integer types in D-Bus demarshalling

If you tried to demarshall in a write-only QDBusArgument, the class
would print a warning, but will continue running nonetheless. So instead
just initialize everything, despite the warning.

qdbusargument.cpp:1138:30: error: ‘d’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
qdbusargument.cpp:1165:33: error: ‘s’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
qdbusargument.cpp:1301:15: error: ‘y’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
etc.

Change-Id: I6d713b4a7b7639e31f3b39bb488ad3ed3ab3fa4a
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Complete QJsonValue::fromVariant()

- QVariant can store (U)Int, (U)LongLong, Float and Double numbers.
  Previously, QJsonValue::fromVariant() converted Floats into Strings
  while converting the others to Doubles.
- Add unit tests for QJsonValue::fromVariant()

[ChangeLog][QtCore][JSON] QJsonValue::fromVariant() will now convert
single-precision Floats into Doubles instead of Strings

Change-Id: I457adbe29c37ada611d1c6d711c42866d63d4024
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
CustomSortFilterModel example: fix build with QT_NO_CURSOR

Change-Id: Icb40e49365114fedd5f1ef118dbd61ff2c413863
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Tablet target widget isn't always the same as its widget window

In this scenario there is a widget with a QPushButton inside, and you
click the pushbutton with the tablet.  The target of the event is the
pushbutton, but when you click it, the window is destroyed.  The
widgetwindow destructor cannot check the pushbutton's window() because
it has already been destroyed.  So it seems we have to store both
widgets: the actual target and the parent widget which has the window.

Task-number: QTBUG-36848
Change-Id: I37d8fb03743f3e501d695342edc42de104777b18
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Dynamic GL: Query gl handle and type via the native interface

Change-Id: I7ca5beaeb57ee2e4e9c175f53ac32371d1f6b5ed
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Make QOpenGLFunctions able to resolve everything

At least if the platform plugin's QPlatformOpenGLContext implementation
supports it.

This completes the QOpenGLFunction changes necessary for dynamic loading
of the OpenGL implementation. Everything else is up to the platform plugin.

Change-Id: I710e6fbee3005360ecf02bc6ef976e1beb513819
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
spdy autotest: Fix build with QT_NO_OPENSSL

Task-number: QTBUG-37171
Change-Id: I76df40d53e1310c16f559f91c244c6162e35475e
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
spdy autotest: Fixed build with QT_NO_NETWORKPROXY

Task-number: QTBUG-37171
Change-Id: I835764978cf75592d46a20fa5f644f6accec43f5
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
QDoc: Do not warn about a file overwritting while writing to /dev/null

Change-Id: I7d23edf5a73d521bad361f1007be0750acd4c1e9
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>