QDeclarativeEngine *Qt5NodeInstanceServer::engine() const
{
    if (sgView())
        return sgView()->engine();

    return 0;
}
QList<QSGItem*> Qt5NodeInstanceServer::allItems() const
{
    QList<QSGItem*> itemList;

    if (sgView()) {
        itemList.append(sgView()->rootItem());
        itemList.append(subItems(sgView()->rootItem()));
    }

    return itemList;
}
void Qt5NodeInstanceServer::initializeView(const QVector<AddImportContainer> &/*importVector*/)
{
    Q_ASSERT(!sgView());

    m_sgView = new QSGView;
#ifndef Q_WS_MAC
    sgView()->setAttribute(Qt::WA_DontShowOnScreen, true);
#endif
    sgView()->show();
#ifdef Q_WS_MAC
    sgView()->setAttribute(Qt::WA_DontShowOnScreen, true);
#endif
    sgView()->setUpdatesEnabled(false);
}
QList<ServerNodeInstance> Qt5NodeInstanceServer::setupScene(const CreateSceneCommand &command)
{
    setupFileUrl(command.fileUrl());
    setupImports(command.imports());
    setupDummyData(command.fileUrl());

    QList<ServerNodeInstance> instanceList = setupInstances(command);

    sgView()->resize(rootNodeInstance().boundingRect().size().toSize());

    return instanceList;
}
QList<ServerNodeInstance>  NodeInstanceServer::createInstances(const QVector<InstanceContainer> &containerVector)
{
    Q_ASSERT(declarativeView() || sgView());
    QList<ServerNodeInstance> instanceList;
    foreach (const InstanceContainer &instanceContainer, containerVector) {
        ServerNodeInstance instance;
        if (instanceContainer.nodeSourceType() == InstanceContainer::ComponentSource) {
            instance = ServerNodeInstance::create(this, instanceContainer, ServerNodeInstance::WrapAsComponent);
        } else {
            instance = ServerNodeInstance::create(this, instanceContainer, ServerNodeInstance::DoNotWrapAsComponent);
        }
        insertInstanceRelationship(instance);
        instanceList.append(instance);
        instance.internalObject()->installEventFilter(childrenChangeEventFilter());
        if (instanceContainer.instanceId() == 0) {
            m_rootNodeInstance = instance;
            resizeCanvasSizeToRootItemSize();
        }

        foreach (QDeclarativeContext* context, allSubContextsForObject(instance.internalObject()))
            setupDummysForContext(context);
    }
Qt5NodeInstanceServer::~Qt5NodeInstanceServer()
{
    delete sgView();
    delete m_designerSupport;
    m_designerSupport = 0;
}