split project with app & doric module

This commit is contained in:
王劲鹏
2021-04-29 20:12:49 +08:00
committed by osborn
parent 25db4cc194
commit a5e00e4fa5
154 changed files with 795 additions and 293 deletions

View File

@@ -0,0 +1,62 @@
#ifndef CONTEXT_H
#define CONTEXT_H
#include <QQmlEngine>
#include <QVariant>
#include "DoricInterfaceDriver.h"
class DoricViewNode;
class DoricRootNode;
class DoricContext {
private:
QString mContextId;
QMap<QString, QObject *> mPluginMap;
DoricRootNode *mRootNode;
QString source;
QString script;
QString extra;
QVariant initParams;
DoricInterfaceDriver *driver = NULL;
QQmlEngine *mQmlEngine;
QMap<QString, QMap<QString, DoricViewNode *>> mHeadNodes;
public:
DoricContext(QString contextId, QString source, QString extra);
~DoricContext();
static DoricContext *create(QString script, QString source, QString extra);
void init(QString initData);
void build(int width, int height);
void callEntity(QString methodName, QVariantList args);
DoricInterfaceDriver *getDriver();
DoricRootNode *getRootNode();
QObject *obtainPlugin(QString name);
void setQmlEngine(QQmlEngine *engine);
QQmlEngine *getQmlEngine();
DoricViewNode *targetViewNode(QString id);
QString getContextId();
QList<DoricViewNode *> allHeadNodes(QString type);
void addHeadNode(QString type, DoricViewNode *viewNode);
void removeHeadNode(QString type, DoricViewNode *viewNode);
void clearHeadNodes(QString type);
};
#endif // CONTEXT_H