Mark tst_qquickpathview insignificant on OS X

Task-number: QTBUG-27740
Change-Id: I0dbf74b9fb8a4e7542d9d5b3c4f1d0516b04cd36
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Fix behavior when starting/stopping multiple QML profilers at once

Make sure they're all inserted into the m_startTimes map before any of
them is actually stopped. Otherwise multiple "Complete" messages can be
generated for only one profiling session.

For consistency, also allow all profilers to be started at the same
time with only one call to startProfiling().

Task-number: QTCREATORBUG-11532
Change-Id: I8f80e2f7432c31d5911e139f9632c36f2494cb96
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Revert "Fix item polishing"

This caused items like positioners and itemviews to not
relayout or update as appropriate when items were hidden,
and therefore caused problems all over in eg. controls.

This reverts commits
- 43f983350a548b1b663ea07a0e87e4cc58834214
- 01e609e9fa0ca1317e0f4eff4802a79584450357
- 439f31f128e70ecae16544ee7041695c60e0b2d6

Task-number: QTBUG-36954
Task-number: QTBUG-36934
Task-number: QTBUG-31830
Change-Id: If04cdce51206568c360a45e24efc0bd04764750b
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Canvas: do not emit paint signal when invisible

Task-number: QTBUG-31830
Change-Id: I23c6fc822547120f14c2d9a09f01a8f985745e2a
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Fix tst_qquicktext::hover()

Task-number: QTBUG-36938
Change-Id: I28da25235ae7b8805ebc474777a5edd43ceef941
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Fix renderType: Text.NativeRendering on retina screens

The QSGDefaultGlyphNode's QSGTextMaskMaterial failed to take the device
pixel ratio of the surface into account, both when building the glyph
cache in init() and when blitting the glyphs from the cache in populate().

We now handle both, resulting in equal rendering as the raster engine,
which itself matches CoreText, except for some minor shaping differences.

One snag with the QSGTextMaskMaterial compared to eg. the raster engine
is that the incoming glyph positions (from shaping) are not pre-scaled,
which means we have to be careful to apply the device pixel ratio before
rounding the coordinates, to match the behavior of the raster engine.

Change-Id: I51cf796bd437f68fad298f689ee3f2d9a2863b4d
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Threaded render loop should block until the frame is swapped.

Introduced the concept of an expose cycle, as the WM_Expose
is followed by WM_RequestSync and only after we handled the
sync and then swap, should we unlock. Otherwise, we are
potentially waiting for the wrong swap.

This also fixes a bug when we get an expose while the render
thread is animating on its own. We would previously set
RequestRepaint, but this could potentially be reset by a render
thread animation if the GUI thread took a short while getting
to the point where it sent the RequestSync. If that requestsync
did not result in SG changes, we would not render anything.
With the exposeCycle, we are now guaranteed to repaint after
we handled the sync, which is how it should be.

Task-number: QTBUG-35805

Change-Id: Ib5c588f135763142e57f84b39dd3827fd05b9485
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Ensure that ShaderEffectSource's texture has correct parameters.

The provider is created on demand in textureProvider(), but its
parameters are set in updatePaintNode() so if updatePaintNode() was
called before a consumer asked for the texture provider, they wouldn't
be set until the next time updatePaintNode() was called.

Change-Id: Iff866d50a8fe16f3d371cb8e590528f5f8c5ee61
Reviewed-by: Mikko Harju <mikko.harju@jolla.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Tidy up DropArea documentation.

The delegate property was removed because it doesn't exist.

Change-Id: I010880773629868f3c640c0a4ed34f132454d2f7
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
QQuickWidget: handle hide and show events properly

Task-number: QTBUG-37062
Change-Id: I3763385168eaa0ccd009ada563f56ea0251029a5
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Fixed regression from fd5c629f4336b1f79

Buffer offsets were wrong, and a type
in the buffer content.

Task-number: QTBUG-36989

Change-Id: I863976420d495b006692c4b614f74c285649cb1a
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
QQuickWindow: fix content item size

Resize content item in QQuickWindow::resizeEvent() instead of using
signals and slots. The signal-slot connections were only established
when child items were added in QML. It should work in C++ too, since
QQuickWindow and QQuickItem are part of the public C++ API and using
them in C++ is a perfectly valid use case.

Resizing the content item in resizeEvent() is not only faster than
using signals and slots, but also in theory a bit more flexible as
one would be able to override the event handler and implement their
own layouting.

Task-number: QTBUG-36938
Change-Id: Id05d4cf6d547021803050633e6f0a3359129a9f3
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Improve memory usage in QML/V4 engine.

* Don't create prototype Object for bindings and
  signal handlers. It is inaccessible and not required.
  This saves one Object-sized allocation per binding.
* Shrink the size of QQmlContextWrapper by removing
  the v8 member variable.
* Shrink the size of QObjectWrapper by moving the destroy
  identifier to the engine.

Change-Id: I76e84e4c0581e97a19d2e959f814ac84d9c431fa
Task-number: QTBUG-37134
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Glyph node: Those null coords are useful after all

Artifacts were visible on Linux after 3f88a5b835198e39
and this seems to be the only behavior change hitting
non-retina displays.

Change-Id: I0d4dc5ca05adb4585c6afad2a24d9c3a8551d809
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>