[qtdeclarative] Add displayMarginBeginning/End to ListView and GridView

It is common to need to show content outside the visible area of
the view.
[qtdeclarative] Update viewport size when header/footer size changes.
[patch] Protect QQuickPropertyAnimation::target property

Otherwise if the object is destroyed, reading this property
returns an invalid object.
Merge pull request #23 from adenexter/master

[patch] Cherry-pick a8b27d974a4ced654a4566b6a9822ed92956a2d2
Merge pull request #22 from aaronkennedy/jb9521

[patch] Protect QQuickPropertyAnimation::target property
Merge pull request #21 from martinjones/headerfooter_resize

[qtdeclarative] Update viewport size when header/footer size changes.
Avoid copying touchpoints, and only check until we find a match.

Change-Id: I46fad782e93fe1f940acec05f4e1bb4afb5be230
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Fix crash when changing non-cached source of image during animation

Ensure deferred deletions are handled while syncing, otherwise texture
might be deleted after sync but before deferred deletion is processed.

Task-number: QTBUG-32513
Change-Id: Id276f536a5722a36baae815b7b550b574eeeb483
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Delay calculation of offline storage path as long as is practically possible.

This avoids calculating it incorrectly in the case that something later clobbers
argv, such as a zygote or booster-type mechanism.

Change-Id: Ifab16c7c94e9ee3fded0dfda2266a12c910858ee
Reviewed-by: Matthew Vogt <matthew.vogt@qinetic.com.au>
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
Merge pull request #25 from rburchell/master

Delay calculation of offline storage path as long as is practically poss...
Merge pull request #17 from martinjones/displayMargin

[qtdeclarative] Add displayMarginBeginning/End to ListView and GridView
Improve memory usage of QQuickTextNode.

The typical number of BinaryTreeNodes needed for a text line should be
much lower than 256.

Task-number: QTBUG-32770
Change-Id: I85aa161eb7cb6e55657213304b7577a0a33f1b67
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Merge pull request #26 from rburchell/master

Improve memory usage of QQuickTextNode.
[qtdeclarative] Suppress focusObjectChanged events unless an actual change occurs
Merge pull request #27 from matthewvogt/focus-object-changed

[qtdeclarative] Suppress focusObjectChanged events unless an actual change occurs
[qtdeclarative] Don't prematurely cleanup GL resources

Hidden windows that had the persistent scenegraph flag set were
not being considered when deciding if GL resources could be
destroyed.  This meant that if these windows were reshown, and the
SG context was reestablished, old, invalid scenegraph nodes were
used and could lead to a crash.  The following simple program will cause
this crash:

int main(int argc, char **argv)
{
    QGuiApplication app(argc, argv);

    const char *source = "import QtQuick 2.0; Rectangle { width: 100; height: 100; Text { text: \"Hello\" } }";

    QQmlEngine engine;

    QQuickWindow *textWindow = new QQuickWindow;
    QQmlComponent textComponent(&engine);
    textComponent.setData(source, QUrl());
    QQuickItem *textItem = qobject_cast<QQuickItem *>(textComponent.create());
    textItem->setParentItem(textWindow->contentItem());

    QQuickWindow *closeWindow = new QQuickWindow;
    QQmlComponent closeComponent(&engine);
    closeComponent.setData(source, QUrl());
    QQuickItem *closeItem = qobject_cast<QQuickItem *>(closeComponent.create());
    closeItem->setParentItem(closeWindow->contentItem());

    textWindow->show();

    QTimer::singleShot(1000, textWindow, SLOT(hide()));
    QTimer::singleShot(2000, closeWindow, SLOT(show()));
    QTimer::singleShot(3000, closeWindow, SLOT(deleteLater()));
    QTimer::singleShot(4000, textWindow, SLOT(show()));

    return app.exec();
}

Fixes JB#11032
[qtdeclarative] Mark item as dirty when nodes are cleaned

Otherwise they may not be recreated in the correct configuration.
Merge pull request #28 from aaronkennedy/master

[qtdeclarative] Don't prematurely cleanup GL resources
Merge pull request #29 from aaronkennedy/jb10101

[qtdeclarative] Mark item as dirty when nodes are cleaned
[qtdeclarative] Mark gui as locked during TryRelease