[qtdeclarative] Add displayMarginBeginning/End to ListView and GridView

It is common to need to show content outside the visible area of
the view.
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
Fix next section calculation.

Partial revert of a9f924975fbd78d67c8edc185767c9f2f19d6c27
Merge pull request #30 from aaronkennedy/jb11447

[qtdeclarative] Mark gui as locked during TryRelease
Merge pull request #31 from martinjones/master

Fix next section calculation.
[qtdeclarative] Remove exposed window in all cases

If a window was destroyed with another window still active, the
invalidateOpenGL() path was not taken and the window was not
removed from the exposed window list.  This is a simpler place
to do it anyway.
Allow &quot; in QQuickStyledText

QString::toHtmlEscaped generates &quot;. QQuickStyledText should be
symmetrical with that function.

Change-Id: I67ea0abe446b5fa1edb53258dca58b84af910e28
Merge pull request #32 from special/master

[qtdeclarative] Allow &quot; in QQuickStyledText
Merge pull request #33 from aaronkennedy/exposecrash

[qtdeclarative] Remove exposed window in all cases
[qtdeclarative] Delay renderWindow with a timer

Add an exhaust delay to QSGGuiThreadRenderLoop. Some updates
may be done with posted events, and maybeUpdate event competed
with those, leading to partial updates and frames drawn twice.
Merge pull request #34 from mikkoharju/exhaustdelay

[qtdeclarative] Delay renderWindow with a timer