Aspects: onInitialize now takes a QVariantMap

The QAspectEngine setSurface method was replaced by a setData method which
takes a QVariantMap. This offers a way to specify different values that
different aspects may be interested in. It is the responsibility of the Aspect
subclass to check that the QVariantMap contains the necessary element when
onInitialize is called.

Change-Id: Ifcf5d2ee9e5fac7b0fe3c320c1415bcf55f1cf55
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
QNodeUuid is now a wrapper around quint64

Change-Id: Id8a12e7b7b4ea43cf75224d4176022a79a4bfe63
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Added QQmlAspectEngine

This wraps around the QQmlEngine and the Qt3D:QAspectEngine. This will allow
to simplify the creation process and later on allow to pass any kind of
rendering surface without forcing the use of the Quick3DWindow like that's the
case at the moment.

Change-Id: Idfc8250f5fb1c3f2e96c15a575d890efdfab2643
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Qt3D::Window simplified

The Qt3D::Window doesn't contain the QAspectEngine anymore. This will allow
to to pass any kind of surface to the QAspectEngine.

We could still have a wrapper like QQuickView around the QQmlAspectEngine if
needed but if it weren't for the camera controller that we need to keep a
little longer, a simple QWindow could be used in every example.

All examples were updated.

Change-Id: I4921df0df6f1066cd409ea886faf41d7e8834ef6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
KeyboardController: backend class for QKeyboardController

Change-Id: I33dccaeedde0b520476b544deb0aa0dd536b6691
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
InputHandler class added

This private class will hold the required blocks needed
to have inputs working much like the Renderer class in
the RendererAspect.

Change-Id: I01a86ddd50efe44c096636ffc7cf34e8077450b0
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
InputAspect: Managers and Handle types defined

Change-Id: I80864de019b3c1c83e63af92f11791bc397c0dde
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Input: Added Managers to InputHandler

Change-Id: I9d6ab0547c0eec5b26e00487d8c7f8a2005abf47
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
QInputAspect: private class containing InputHandler instance

Change-Id: Ic3c02e7f476dc29dfdb9c82c251d4d1730054585
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
QKeyboardInput: add focus property

Like Item focus in QtQuick the goal is to change the current QKeyboardInput
focus for a given QKeyboardController when focus is set to true. Only a single
QKeyboardInput for a given QKeyboardController can have its focus set to true
at a given time. Setting focus to true should requests a focus change to the
backend.

Change-Id: Idaa42192076a6b67221fb112deb53642bfc2dd93
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
QKeyboardInput: set shareable to false

Common sense dictates that we cannot share a QKeyboardInput as an input. A
QKeyboardInput should be unique for a given Entity.

Change-Id: Iaca9e3b6dfe5841c3097d206512f1b4228f19281
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
KeyboardInput backend functor creator added

Change-Id: I9025c3ad9201424c04a34dbf0f188749f00942c7
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
KeyboardController backend functor added

Change-Id: I0c608c822f832f10c783bd375a29d80b7cff224f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
QInputAspect: register backend creator functors to frontend types

Change-Id: Ia401232bb27e67250165b018b69b2fa1528da3b6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Renamed nodevisitor.h/cpp to qnodevisitor.h/cpp

Change-Id: I338ece2a9819a7471f1c32b2712857641482b683
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
QInputAspect: some preliminary work on building backend tree

Change-Id: Iaa2f4aeacb776e04d4da8f47dcd1ebbf61ef44d7
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
keyboardinput-qml example

This will help test the keyboard inputs as the QInputsAspect gets completed
over time.

Change-Id: I8f8fe5dcd0ccf4c83f75297c2dcb95bb9e9eddb7
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>