Precompile the most common materials

Change-Id: Idfa76f9fcdbac61a248b38e1f793a6628af12552
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Stabilize tst_touchmouse

Change-Id: I6d34571b85f99f780b03f7871f39dbf3be546006
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Deprecate the with statement in QML

It is generally considered deprecated in JavaScript and its use disables
a whole range of optimizations that we would like to apply in the future.

Therefore this patch will issue a warning if the with statement is detected.

This change is also documented, along with the plan on enabling strict mode
in the future.

Change-Id: Ie60f0536e0bdd6ecc537d8e34efbd8868bcad743
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Fallback to QMetaObject for properties not in QQmlPropertyCache

QQmlOpenMetaObject does not update the QQmlPropertyCache when new
properties are added, meaning that the QQmlPropertyCache might not
contain all of the dynamic properties of an object. Therefore, make
QQmlPropertyCache fallback to reading the QMetaObject when a property is
not found.

Task-number: QTBUG-31226
Change-Id: I760aaa155b1952f6f52ab9ce173fb9547f8e34a6
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
QQmlPropertyCache: check methods before properties

When creating the QQmlPropertyData, search within the methods list
before searching for properties. The reason is that if the meta object
is dynamic, looking up a property will always return a result (if the
property doesn't exist, it will be created) and therefore all methods
will be obscured.
By swapping the search order, we eliminate this risk (methods are not
dynamically added).

Task-number: QTBUG-29836
Change-Id: Ie367f757c37ef4bc834a6c1c009f27bcf344fe76
Reviewed-by: Matthew Vogt <matthew.vogt@qinetic.com.au>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Update Changes file

Mention the behavioral change introduced by the fix for QTBUG-29836.

Task-number: QTBUG-29836
Change-Id: I15ffd32fd5c0d537528f7b1386691103dab371c7
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Doc: Clarified members of QtQml.Models submodule.

-Took out  members of QtQml.Models submodule from Qt QML and Qt Quick.
-Set up qdocconf files to include QtQml.Models to be part of Qt QML
 doc build.
-Edited the sentences to make it clearer that list and model types
 are in QtQml.Models.
-Placed the Visual* types back to QtQuick 2 module.

-This patch removes several collision pages.

Change-Id: I16e7045162af6852e5d6c3162b6f4cf97a42402b
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
qmlscene: if top-level is a QQuickWindow, set incubation controller

The necessity for this is documented in the
QQuickWindow::incubationController() accessor.  Bug 31203 is about
writing a custom main() with a QQmlApplicationEngine, not about
qmlscene, but the same workaround is necessary for both.  Hopefully
soon we find a way to make it unnecessary, but for now it is.
This fix also doesn't take care of the QtObject { Window { } }
use case.

Task-number: QTBUG-31203
Change-Id: Ic9a5e4a23ac918593138dc9cab3de6cd36453eaf
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Stabilize tst_qquickanimatedimage::mirror_notRunning()

Task-number: QTBUG-31370
Change-Id: I200d94dccd1314c891df92576b0d2b704e530e16
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Doc: Update Qt Quick Controls description

Change-Id: Ifb67ae32fcb8abe49166346fa1017dc5c76bc485
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
doc fix

Task-number: QTBUG-31539
Change-Id: I527ed10231c112f8f1727fde093f7d661d492fa6
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Doc: Fixed QCH listings for Qt QML and Qt Quick Dialogs

Qt QML: added QML types page as a child in the list
Qt Quick Dialogs: "manual" as type taken out

Change-Id: I95d77b7582a0f5729801e1e6fb8f5f3242a0b760
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
add missing dependency check to widgets plugin

QtQuick widgets plugin depends on both QtWidgets and QtQuick module, if
do not check 'quick', there will be an error: "Project ERROR: Unknown
module(s) in QT: quick" when running make if failed to check for QtQuick
module due to no opengl/es1/es2 found during config test.

Change-Id: I39d78b9cd9aa9c7f0acf79fdcfc06749ffc10e31
Reviewed-by: Liang Qi <liang.qi@digia.com>
Doc: Fixed link to Qt Quick Layouts and made links consistent

-better to use the "QML Types" pages as the version is not specified.

Change-Id: I5b150bc8ada25c619dbecb5d68e70854dd9c14d6
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Doc: Clarify object ownership of QObject* returned by QmlComponent::create

Link to relevant section in QQmlEngine::ObjectOwnership. It's a big gotcha
that a QObject * returned by a Qt method won't be deleted eventually, by
default.

Change-Id: I2367b7ae2673adc7fa181b759c79683091020462
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Fix -Wpedantic warnings

Don't need these extra ; and give warnings with -Wpedantic

Change-Id: I877fee2a6421b151697ca3845a09d70f3b2b302b
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Set incubation controller when a Window{} is loaded via QQmlApplicationEngine

This was the one convenience that was lost when transitioning templates
from QQuickView + Item{} to QQmlApplicationEngine + Window{}.

As the default window incubation controller was tied to the first
window's frameSwapped, we could easily run into a situation where
a secondary window required incubation while the first window
was idle. This would then starve the incubation controller. Instead
make it so that the renderloop emits "timeToIncubate" once it
is done with a renderpass over all windows, so the incubator
gets to run once and exactly once per vsync when animating.

The incubator logic was also flawed in that it could post
a lot of events to itself as a result of incubatingObjectCountChanged
and thus starve system events while processing incubation requests.
Now we start a timer and don't start it again until we have
completed an incubation pass.

Task-number: QTBUG-31203
Change-Id: Iea9e2c81efb46bb7875c70ccda0cdc4b3b3e58e7
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Add future compatibility note

File selectors are being delayed from releasing at the same time as
QQmlApplicationEngine, but will need to be enabled by default
(in QQmlApplicationEngine only) when they do arrive. Adding a note to
the documentation to help forwards compatibility.

Change-Id: Ia47a1da1afebd0da3bd1a97e7e4c8ee85f70b49a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Fix null-pointer access in QQuickVisualDataModelPrivate

I observed null cachItem->contextData which lead to null-pointer access
on cacheItem->contextData->destroy().

Task-number: QTBUG-31439

Change-Id: I91f28a3ee1ac83446ecde1801a1cb7962fb883f3
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Autotest: Update textedit test using textFormat

TextEdit does not support the StyledText format, Text does.

Add an autotest to Text to check the line counts using
different text formats.

Task-number: QTBUG-31191

Change-Id: I4670f9155bea295ba85f410988d9636eac12842c
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
Reviewed-by: Liang Qi <liang.qi@digia.com>