Bump version

Change-Id: I54ace3320d63c54119084b27eb2c1797166f0b37
Fix crash with cleanup of animators.

We had several separate issues relating to how the jobs were cleaned up.

The first was that upon getting setWindow(0), the animator did not
reset m_controller to 0, leading to the starts() coming after that to
post null jobs to the controller. This would later crash in
beforeNodeSync as the starting job was null.

The second issue was that during shutdown, QQuickAnimatorProxy
would try to delete jobs on the controller which was already
deleted. The controller is deleted on the GUI thread regardless
of render loop, so this was solved with a QPointer.

The third was that we were a bit too aggressive in trying to clean up
jobs on the GUI thread, so we introduced a new bool which gets set to
true in startJob() so that Proxy::deleteJob() knows who owns the job.

Task-number: QTBUG-37833
Change-Id: I1b6221a2c1ce2bfd0758801b950cda00ff6899d0
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Support padding in images stored in atlas texture

If the stride does not match the width of the image, we upload
it line-by-line instead of as one big rect.

Change-Id: I5e08afcf5c35dc810fed25e45255d55d932b2a4c
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Fix crashes when calling Array.sort with imperfect sort functions

We can't use std::sort to implement Array.sort. The reason is that
std::sort expects a conformant compare function, and can do weird
things (esp. crash) when the sort function isn't conformant.

Falling back to qSort is not possible, as the method has been
deprecated. So add a copy of the qSort implementation here, and
use that one instead.

Fix the sortint test in tst_qqmlecmascript to have a consistent
sort function for strings, as the result of calling sort is
otherwise undefined according to the ecma standard.

Task-number: QTBUG-39072
Change-Id: I0602b3aa1ffa4de5006da58396f166805cf4a5e2
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
QML: parse .js files as JavaScript, not QML.

When importing a JS library into a QML file with the "import" keyword,
that JS file was parsed in QML mode, disallowing QML keywords like "as".

Task-number: QTBUG-40143
Change-Id: Ie98adceb27544732c2e96657d41170db36bff288
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Merge remote-tracking branch 'origin/5.3' into 5.4

Conflicts:
	.qmake.conf
	src/qml/jsruntime/qv4arraydata.cpp
	src/quick/scenegraph/util/qsgatlastexture.cpp

Change-Id: Ic4c96066d5c37dcf0d5446baed590ea005d445ce
autotests: fix build on iOS

Change-Id: Idf854ad4f868e873582731dfa6b0253ac5b17c5c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Fix broken QJSEngine snippet in documentation.

toBoolean() isn't even a function in that class, and declaring the
button on the stack causes crashes upon closing the application.

Change-Id: I063cac2bb144cfb9786f20bbc122d5af92a4c2c0
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Improve Drag documentation.

Change-Id: Ifba60b729c8ad02009cd5c8caa5d58e20a76c73b
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Improve KeyNavigation documentation.

Change-Id: I07e66deb4b21eca191c17532749eeccd33d83fb0
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4
Fix failing assertion when compiling self-referencing QML singleton

When a QML singleton file accesses itself, we would hit incomplete
type data.

Task-number: QTBUG-41220
Change-Id: Id0bd5fd71cf9be21f7e4ad8527fa8724a718d702
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Fix roundtrip conversion between JS var and QVariant

Always convert null to a QVariant(VoidStar) as documented in
QJSValue. Make sure the reverse conversion will lead back to
a null JS value.

Adjusted two test cases that expected an invalid QVariant when
setting the property to null, and added test cases for the
correct conversion.

Task-number: QTBUG-40880
Change-Id: I6eb01f0067f2c89779c53fd2cd0a1193047ed2cc
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Fix setUTCXxx methods in Date

The methods where converting doing a localtime->UTC
conversion even though the input was already in UTC.

Task-number: QTBUG-38448
Change-Id: I4409275fade0dd2a677af2293edc87445f853879
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Snap native glyphs to pixel grid in vertex shader.

The implementation relied on the full matrix, but did not
set the RequiresFullMatrix flag. Setting the flag would
have serious negative performance impact as it prevents
batching, so we solve it in the vertex shader instead.

Task-number: QTBUG-38702
Change-Id: I0c245ea9e18b0b29dd9e3073a2648a7f4e061685
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Fix debug output from renderer.

It was wrong when we ran without depth buffer or when we used the
separate ibo code path.

Change-Id: Ie6e4bfc99ee2a4a593e45be7d9af9af17896bcba
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Select specific features to be recorded when profiling QML

Some features, like the memory profiler, create huge amounts of data.
Often enough, we're not actually interested in all the data available
from the profiler and collecting it all can lead to excessive memory
consumption. This change enables us to optionally turn various aspects
of QML profiling off.

Task-number: QTBUG-41118
Change-Id: I7bb223414e24eb903124ffa6e0896af6ce974e49
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Doc: Added a bit more detail about the example

Task-number: QTBUG-37203
Change-Id: I62664b5dd0041cf8ba210dc3f0375793f7c72a00
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Check for a current QOpenGLContext before use

We can not assume that there will be a current OpenGL
context to use in QQuickImageParticle so now there is
a check before we make a call to the current context.

Change-Id: I0c77895d0b0f1afdf4853c0486fba0ef9a7b883d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Fix String leak by calling the correct destructor

Task-number: QTBUG-41167
Change-Id: I696fbb7400215c7f1fb8cb2a1dbbc0780440a8c3
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>