Remove static initialization of QObjects

Statically initializing QObjects will cause e.g. the main
thread pointer in QCoreApplication to be set when the library
is loading. On Android, this is never the real main thread.
The effect was a warning about QApplication not being initialized
on main thread, and a race condition which sometimes caused
apps to hang on startup.

[ChangeLog][Android] Fixed possible hang on startup for Qt Quick
applications.

Task-number: QTBUG-36426
Change-Id: I7bd8a8f35ef1a2548949978563e3157f8dc854c7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[Regression] Fix lazy binding evaluation

Commit 04774bb14c81688f86a2b31b8624bde8ebf59062 long time ago introduced the
concept of fixed order binding initialization with lazy evaluation, where a bit
is reserved for each binding that indicates whether it's been initialized the
first time or not. When reading a property on a QObject, we'd check if the
corresponding binding for the property has been initialized or not and flush
(i.e. execute) the binding if necessary.

As part of the V4/V8 clean-up, commit 1eb41200948ab414f1c47d93123b41c547a993df
removed the StoreV8Binding instruction, which made the call for setting the
this-binding-is-not-evaluated-yet bit. Nowadays we only use StoreBinding, for
which this optimization was never implemented (and not needed really). Now that
we have a unified JS code path, we need to set the pending binding bit and also
make sure that we call flushPendingBinding for any JS side property access
(accelerated or not).

Also flushPendingBindingImpl had two bugs:

   * In an attempt of trying to find the binding to flush, it could happen that
     we'd try to flush a previously destroyed binding (m_mePtr is null), so
     the b variable would remain the first binding in the object and we'd flush
     the wrong one (instead of none). Added a missing check to verify that the
     property index matches.
   * Also resetting the mePtr must be done through clear(), to ensure that the
     pointer in bindValues in the VME is also cleared, to avoid re-enabling the
     same binding again in complete();

Task-number: QTBUG-36441

Change-Id: Icdb0c8fb036051fd5d6c4d33b10cd0c0ed9a9d5c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Improve Scene Graph - Simple Material example documentation.

Change-Id: I5b77f7590c9f2cea9305014b8a9d4ab3a387eaa3
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Fix alignment exception in newCallContext on ARM

CallContext::locals was not at multiple of 8, which caused
an alignment exception on ARM. Size for the context is
also increased.

Change-Id: I136418f89945cd3fec74463659107c6dab7cad0a
Reviewed-by: aavit <eirik.aavitsland@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Avoid renderlist rebuilds in the scene graph renderer.

Transform, material, opacity and geometry changes all used to trigger
full rebuilds, which meant that very little geometry could be retained
between frames. For instance, a rotating spinner on top of a gridview
this would cause a full rebuild where nothing is retained.

This change introduces new concept to the renderer: partial rebuilding
based on render order ranges. Since the render order of nodes is
strictly defined by their position in the tree and nothing else, we
should use that for the majority of rebuilds. When a change comes in
for a node, we invalidate its batch and all batches which it has
overlapping render orders with.

Render order rebuilds only happen when nodes are added and removed.

Change-Id: Ib4cb284164892b409e3fff5c492a54d60a5de2d7
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Doc: Merge duplicated example directories

examples/quick/customitems contains all the examples found in
examples/quick/ui-components, plus 2 more (maskedmousearea and
painteditem). There are some very minor differences between the
duplicated files, regarding the "smooth" property. Apart from that, the
examples are identical.

The only file that is unique to examples/quick/ui-components is
example-slideswitch.qdoc. Moving it does not change the generated HTML
filename. The other examples do not produce any documentation.

Change-Id: I507d9064a60fd1f3a1469c1e423d4c0a72c7dc41
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Fix scenegraph backend API for material shaders.

Without this change, it is not possible to implement a custom renderer
(it has no way to compile or initialize material shaders).

Change-Id: Ie8778f739f3551f88f0d44ccb9769063a87ff276
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Updated documentation for QML Locale.measurementSystem

Added documentation for ImperialUSSystem and ImperialUKSystem.

Change-Id: I1a628121dce4a7566bd8769843c487e28f3dd6fe
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Fix exception thrown in slot without Qml Engine

Don't crash when an exception is thrown in a JS slot but we don't have
a Qml engine.

Change-Id: I1530d5c1c8cb9b9b33b9fdd0d45639fd4a0516f7
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Doc: note about visible and enabled in PropertyChanges

Change-Id: I0928737f1651fa98213a84dc4f8b5225d5239502
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Fix origin for short reversed item views

Reversed (BottomToTop and RightToLeft) item views would report an
impossible positive value for origin when contentHeight < height. The
correct value will be effectively equivalent to the position of the
footer, and always negative.

Match other logic using lastPosition() by negating its value for
reversed views.

This fixes a bug with content disappearing in a Controls ScrollView on
a BottomToTop view.

Change-Id: Ieedbb64ce8fc7c0fb36e5256e437ddeb3e757761
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
Fix memory leak in test

Change-Id: I026ce85a6e593d5eccecdf032ee2f0763a2bef87
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Warn when attaching Keys to an invalid item

Using Window { Keys.onPressed: ... } does not work because window is not
a QQuickItem. Warn at least.

Change-Id: Ibd472f7b551ff2089cbc39ba43da27e6f8e0e97f
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Merge remote-tracking branch 'origin/release' into stable

Change-Id: I5ac68cc3ad3926190817f0d3d5b4526e70badff6
Expose Qt Quick gradient conversion code privately.

Rectangle is currently the only item that supports gradients, but other
items have been introduced (within Qt Quick Enterprise Controls) which
need QQuickGradient => QLinearGradient conversion, and it doesn't make
sense to duplicate the gradient stop conversion code.

The QQuickGradient and QQuickGradientStop classes need to be privately
exported so that modules that use private Qt API can use the classes
with quick-private.

Change-Id: I8b130ff5384d9481d3f29510b3de61f7d8f775e2
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Doc: Added information about classname in qmldir

QML modules that depend on C++ plugins must provide
the plugin class name information in their qmldir
to support statically built Qt Quick applications.

Task-number: QTBUG-35369
Change-Id: I15432fec4f8a72be4f851da061ac0c091696d8c9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Fix wrong calculation of viewPort for transitions

Viewport is calculated wrong for horizontal layout in a second instance

Task-number: QTBUG-29944
Task-Number: QTBUG-31546
Change-Id: I136ae4484278d14f796613505e3f38c65ec51ebe
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Florian Hänel <florian.haenel@basyskom.com>
Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable
Disable Flickable tests on Mac OS X.

Task-number: QTBUG-36804
Change-Id: I6bff9360d785bd7496131e3b56a24b11871257fe
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Enable program binary support through QSGRenderContext API.

Change-Id: I4eecff3c8a2c727d38d394305d248eddeef87e8e
Reviewed-by: Michael Brasser <michael.brasser@live.com>