packages feed

hsqml-0.3.0.0: cbits/Engine.h

#ifndef HSQML_ENGINE_H
#define HSQML_ENGINE_H

#include <QtCore/QScopedPointer>
#include <QtCore/QString>
#include <QtCore/QUrl>
#include <QtQml/QQmlEngine>
#include <QtQml/QQmlContext>
#include <QtQml/QQmlComponent>

#include "hsqml.h"

class HsQMLObjectProxy;
class HsQMLWindow;

struct HsQMLEngineConfig
{
    HsQMLEngineConfig()
        : contextObject(NULL)
        , stopCb(NULL)
    {}

    HsQMLObjectProxy* contextObject;
    QString initialURL;
    HsQMLTrivialCb stopCb;
};

class HsQMLEngine : public QObject
{
    Q_OBJECT

public:
    HsQMLEngine(const HsQMLEngineConfig&);
    ~HsQMLEngine();
    bool eventFilter(QObject*, QEvent*);
    QQmlEngine* declEngine();

private:
    Q_DISABLE_COPY(HsQMLEngine)

    Q_SLOT void componentStatus(QQmlComponent::Status);
    QQmlEngine mEngine;
    QQmlComponent mComponent;
    QList<QObject*> mObjects;
    HsQMLTrivialCb mStopCb;
};

#endif /*HSQML_ENGINE_H*/