complete context init & build
This commit is contained in:
parent
3b72ab56aa
commit
fb4df95d0a
@ -1,9 +1,12 @@
|
|||||||
#include "context.h"
|
#include "context.h"
|
||||||
#include "native_driver.h"
|
#include "native_driver.h"
|
||||||
#include "context_manager.h"
|
#include "context_manager.h"
|
||||||
|
#include "utils/constant.h"
|
||||||
|
|
||||||
Context::Context(QString contextId, QString source, QString extra)
|
Context::Context(QString contextId, QString source, QString extra)
|
||||||
{
|
{
|
||||||
|
this->mRootNode = new RootNode();
|
||||||
|
|
||||||
this->mContextId = contextId;
|
this->mContextId = contextId;
|
||||||
this->source = source;
|
this->source = source;
|
||||||
this->extra = extra;
|
this->extra = extra;
|
||||||
@ -13,9 +16,41 @@ Context* Context::create(QString script, QString source, QString extra)
|
|||||||
{
|
{
|
||||||
Context *context = ContextManager::getInstance()->createContext(script, source, extra);
|
Context *context = ContextManager::getInstance()->createContext(script, source, extra);
|
||||||
context->script = script;
|
context->script = script;
|
||||||
|
context->init(extra);
|
||||||
|
|
||||||
|
QVariantList args;
|
||||||
|
context->callEntity(Constant::DORIC_ENTITY_CREATE, args);
|
||||||
return context;
|
return context;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Context::init(QString initData)
|
||||||
|
{
|
||||||
|
this->extra = initData;
|
||||||
|
if (!initData.isEmpty()) {
|
||||||
|
QVariantList args;
|
||||||
|
args.push_back(initData);
|
||||||
|
callEntity(Constant::DORIC_ENTITY_INIT, args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Context::build(int width, int height)
|
||||||
|
{
|
||||||
|
QMap<QString, QVariant> map;
|
||||||
|
map.insert("width", QVariant(width));
|
||||||
|
map.insert("height", QVariant(height));
|
||||||
|
QVariant jsValue(map);
|
||||||
|
this->initParams = jsValue;
|
||||||
|
|
||||||
|
QVariantList args;
|
||||||
|
args.push_back(this->initParams);
|
||||||
|
callEntity(Constant::DORIC_ENTITY_BUILD, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Context::callEntity(QString methodName, QVariantList args)
|
||||||
|
{
|
||||||
|
return getDriver()->invokeContextEntityMethod(this->mContextId, methodName, args);
|
||||||
|
}
|
||||||
|
|
||||||
InterfaceDriver* Context::getDriver()
|
InterfaceDriver* Context::getDriver()
|
||||||
{
|
{
|
||||||
if (driver == NULL)
|
if (driver == NULL)
|
||||||
|
@ -1,17 +1,20 @@
|
|||||||
#ifndef CONTEXT_H
|
#ifndef CONTEXT_H
|
||||||
#define CONTEXT_H
|
#define CONTEXT_H
|
||||||
|
|
||||||
#include <QString>
|
#include <QVariant>
|
||||||
|
|
||||||
#include "interface_driver.h"
|
#include "interface_driver.h"
|
||||||
|
#include "shader/root_node.h"
|
||||||
|
|
||||||
class Context
|
class Context
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
QString mContextId;
|
QString mContextId;
|
||||||
|
RootNode *mRootNode;
|
||||||
QString source;
|
QString source;
|
||||||
QString script;
|
QString script;
|
||||||
QString extra;
|
QString extra;
|
||||||
|
QVariant initParams;
|
||||||
InterfaceDriver *driver = NULL;
|
InterfaceDriver *driver = NULL;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -19,6 +22,12 @@ public:
|
|||||||
|
|
||||||
static Context* create(QString script, QString source, QString extra);
|
static Context* create(QString script, QString source, QString extra);
|
||||||
|
|
||||||
|
void init(QString initData);
|
||||||
|
|
||||||
|
void build(int width, int height);
|
||||||
|
|
||||||
|
void callEntity(QString methodName, QVariantList args);
|
||||||
|
|
||||||
InterfaceDriver* getDriver();
|
InterfaceDriver* getDriver();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
23
doric-Qt/doric/demo/demo_bridge.cpp
Normal file
23
doric-Qt/doric/demo/demo_bridge.cpp
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
#include "demo_bridge.h"
|
||||||
|
#include "utils/utils.h"
|
||||||
|
#include "panel.h"
|
||||||
|
|
||||||
|
DemoBridge::DemoBridge(QObject *parent) : QObject(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void DemoBridge::navigate(QVariant route)
|
||||||
|
{
|
||||||
|
switch (route.toInt()) {
|
||||||
|
case 0:
|
||||||
|
QString name = "Snake.js";
|
||||||
|
QString script = Utils::readAssetFile("/doric/bundles", name);
|
||||||
|
|
||||||
|
Panel panel;
|
||||||
|
panel.config(script, name, NULL);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
19
doric-Qt/doric/demo/demo_bridge.h
Normal file
19
doric-Qt/doric/demo/demo_bridge.h
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#ifndef DEMOBRIDGE_H
|
||||||
|
#define DEMOBRIDGE_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QVariant>
|
||||||
|
|
||||||
|
class DemoBridge : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit DemoBridge(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
Q_INVOKABLE
|
||||||
|
void navigate(QVariant route);
|
||||||
|
signals:
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // DEMOBRIDGE_H
|
@ -18,14 +18,18 @@ SOURCES += \
|
|||||||
async/settable_future.cpp \
|
async/settable_future.cpp \
|
||||||
context.cpp \
|
context.cpp \
|
||||||
context_manager.cpp \
|
context_manager.cpp \
|
||||||
|
demo/demo_bridge.cpp \
|
||||||
engine/bridge_extension.cpp \
|
engine/bridge_extension.cpp \
|
||||||
engine/js_engine.cpp \
|
engine/js_engine.cpp \
|
||||||
engine/native_empty.cpp \
|
engine/native_empty.cpp \
|
||||||
engine/native_jse.cpp \
|
engine/native_jse.cpp \
|
||||||
engine/native_log.cpp \
|
engine/native_log.cpp \
|
||||||
|
engine/native_require.cpp \
|
||||||
engine/timer_extension.cpp \
|
engine/timer_extension.cpp \
|
||||||
main.cpp \
|
main.cpp \
|
||||||
native_driver.cpp \
|
native_driver.cpp \
|
||||||
|
panel.cpp \
|
||||||
|
shader/root_node.cpp \
|
||||||
utils/constant.cpp
|
utils/constant.cpp
|
||||||
|
|
||||||
RESOURCES += qml.qrc
|
RESOURCES += qml.qrc
|
||||||
@ -48,15 +52,19 @@ HEADERS += \
|
|||||||
async/settable_future.h \
|
async/settable_future.h \
|
||||||
context.h \
|
context.h \
|
||||||
context_manager.h \
|
context_manager.h \
|
||||||
|
demo/demo_bridge.h \
|
||||||
engine/bridge_extension.h \
|
engine/bridge_extension.h \
|
||||||
engine/interface_jse.h \
|
engine/interface_jse.h \
|
||||||
engine/js_engine.h \
|
engine/js_engine.h \
|
||||||
engine/native_empty.h \
|
engine/native_empty.h \
|
||||||
engine/native_jse.h \
|
engine/native_jse.h \
|
||||||
engine/native_log.h \
|
engine/native_log.h \
|
||||||
|
engine/native_require.h \
|
||||||
engine/timer_extension.h \
|
engine/timer_extension.h \
|
||||||
interface_driver.h \
|
interface_driver.h \
|
||||||
native_driver.h \
|
native_driver.h \
|
||||||
|
panel.h \
|
||||||
|
shader/root_node.h \
|
||||||
template/singleton.h \
|
template/singleton.h \
|
||||||
utils/constant.h \
|
utils/constant.h \
|
||||||
utils/count_down_latch.h \
|
utils/count_down_latch.h \
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE QtCreatorProject>
|
<!DOCTYPE QtCreatorProject>
|
||||||
<!-- Written by QtCreator 4.11.1, 2021-01-28T17:40:51. -->
|
<!-- Written by QtCreator 4.11.1, 2021-02-01T17:32:31. -->
|
||||||
<qtcreator>
|
<qtcreator>
|
||||||
<data>
|
<data>
|
||||||
<variable>EnvironmentId</variable>
|
<variable>EnvironmentId</variable>
|
||||||
|
@ -13,7 +13,7 @@ public:
|
|||||||
|
|
||||||
virtual void injectGlobalJSFunction(QString name, QObject *function, QString property) = 0;
|
virtual void injectGlobalJSFunction(QString name, QObject *function, QString property) = 0;
|
||||||
|
|
||||||
virtual QJSValue invokeObject(QString objectName, QString functionName, QJSValueList arguments) = 0;
|
virtual QJSValue invokeObject(QString objectName, QString functionName, QVariantList arguments) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // INTERFACE_JSE_H
|
#endif // INTERFACE_JSE_H
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include "../utils/constant.h"
|
#include "../utils/constant.h"
|
||||||
#include "native_log.h"
|
#include "native_log.h"
|
||||||
#include "native_empty.h"
|
#include "native_empty.h"
|
||||||
|
#include "native_require.h"
|
||||||
#include "timer_extension.h"
|
#include "timer_extension.h"
|
||||||
#include "bridge_extension.h"
|
#include "bridge_extension.h"
|
||||||
#include "../utils/utils.h"
|
#include "../utils/utils.h"
|
||||||
@ -51,11 +52,14 @@ JSEngine::JSEngine(QObject *parent) : QObject(parent)
|
|||||||
NativeEmpty *nativeEmpty = new NativeEmpty();
|
NativeEmpty *nativeEmpty = new NativeEmpty();
|
||||||
mJSE->injectGlobalJSFunction(Constant::INJECT_EMPTY, nativeEmpty, "function");
|
mJSE->injectGlobalJSFunction(Constant::INJECT_EMPTY, nativeEmpty, "function");
|
||||||
|
|
||||||
|
// inject require
|
||||||
|
NativeRequire *nativeRequire = new NativeRequire();
|
||||||
|
mJSE->injectGlobalJSFunction(Constant::INJECT_REQUIRE, nativeRequire, "function");
|
||||||
|
|
||||||
// inject timer set & clear
|
// inject timer set & clear
|
||||||
std::function<void(void)> func = [](){};
|
|
||||||
TimerExtension *timerExtension = new TimerExtension([this](long timerId){
|
TimerExtension *timerExtension = new TimerExtension([this](long timerId){
|
||||||
QJSValueList arguments;
|
QVariantList arguments;
|
||||||
arguments.append(QJSValue((int)timerId));
|
arguments.push_back(QVariant((int)timerId));
|
||||||
this->invokeDoricMethod(Constant::DORIC_TIMER_CALLBACK, arguments);
|
this->invokeDoricMethod(Constant::DORIC_TIMER_CALLBACK, arguments);
|
||||||
});
|
});
|
||||||
mJSE->injectGlobalJSFunction(Constant::INJECT_TIMER_SET, timerExtension, "setTimer");
|
mJSE->injectGlobalJSFunction(Constant::INJECT_TIMER_SET, timerExtension, "setTimer");
|
||||||
@ -75,7 +79,7 @@ JSEngine::JSEngine(QObject *parent) : QObject(parent)
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QJSValue JSEngine::invokeDoricMethod(QString method, QJSValueList arguments)
|
QJSValue JSEngine::invokeDoricMethod(QString method, QVariantList arguments)
|
||||||
{
|
{
|
||||||
return mJSE->invokeObject(Constant::GLOBAL_DORIC, method, arguments);
|
return mJSE->invokeObject(Constant::GLOBAL_DORIC, method, arguments);
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ public:
|
|||||||
|
|
||||||
~JSEngine();
|
~JSEngine();
|
||||||
|
|
||||||
QJSValue invokeDoricMethod(QString method, QJSValueList arguments);
|
QJSValue invokeDoricMethod(QString method, QVariantList arguments);
|
||||||
void prepareContext(QString contextId, QString script, QString source);
|
void prepareContext(QString contextId, QString script, QString source);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -35,9 +35,35 @@ void NativeJSE::injectGlobalJSFunction(QString name, QObject *function, QString
|
|||||||
mJSEngine.globalObject().setProperty(name, functionObject.property(property));
|
mJSEngine.globalObject().setProperty(name, functionObject.property(property));
|
||||||
}
|
}
|
||||||
|
|
||||||
QJSValue NativeJSE::invokeObject(QString objectName, QString functionName, QJSValueList arguments)
|
QJSValue NativeJSE::invokeObject(QString objectName, QString functionName, QVariantList arguments)
|
||||||
{
|
{
|
||||||
QJSValue object = mJSEngine.evaluate(objectName);
|
QJSValue object = mJSEngine.evaluate(objectName);
|
||||||
QJSValue function = object.property(functionName);
|
QJSValue function = object.property(functionName);
|
||||||
return function.call(arguments);
|
|
||||||
|
QJSValueList args;
|
||||||
|
foreach(QVariant variant, arguments) {
|
||||||
|
if (variant.type() == QVariant::String) {
|
||||||
|
args.push_back(QJSValue(variant.toString()));
|
||||||
|
} else if (variant.type() == QVariant::Map) {
|
||||||
|
QJSValue arg = mJSEngine.newObject();
|
||||||
|
QMap<QString, QVariant> map = variant.toMap();
|
||||||
|
foreach (QString key, map.keys()) {
|
||||||
|
QVariant value = map.value(key);
|
||||||
|
if (value.type() == QVariant::String) {
|
||||||
|
arg.setProperty(key, value.toString());
|
||||||
|
} else if (value.type() == QVariant::Int) {
|
||||||
|
arg.setProperty(key, value.toInt());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
args.push_back(arg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QJSValue result = function.call(args);
|
||||||
|
if (result.isError())
|
||||||
|
qDebug()
|
||||||
|
<< "Uncaught exception at line"
|
||||||
|
<< result.property("lineNumber").toInt()
|
||||||
|
<< ":" << result.toString();
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ public:
|
|||||||
|
|
||||||
void injectGlobalJSFunction(QString name, QObject *function, QString property) override;
|
void injectGlobalJSFunction(QString name, QObject *function, QString property) override;
|
||||||
|
|
||||||
QJSValue invokeObject(QString objectName, QString functionName, QJSValueList arguments) override;
|
QJSValue invokeObject(QString objectName, QString functionName, QVariantList arguments) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // NATIVE_JSE_H
|
#endif // NATIVE_JSE_H
|
||||||
|
8
doric-Qt/doric/engine/native_require.cpp
Normal file
8
doric-Qt/doric/engine/native_require.cpp
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#include "native_require.h"
|
||||||
|
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
Q_INVOKABLE QJSValue NativeRequire::function(QString name) {
|
||||||
|
qDebug() << "nativeRequire";
|
||||||
|
return QJSValue::NullValue;
|
||||||
|
}
|
18
doric-Qt/doric/engine/native_require.h
Normal file
18
doric-Qt/doric/engine/native_require.h
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#ifndef NATIVE_REQUIRE_H
|
||||||
|
#define NATIVE_REQUIRE_H
|
||||||
|
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QJSValue>
|
||||||
|
|
||||||
|
class NativeRequire : public QObject {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
NativeRequire(QObject *parent = nullptr) : QObject(parent) {}
|
||||||
|
|
||||||
|
Q_INVOKABLE QJSValue function(QString name);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif // NATIVE_REQUIRE_H
|
@ -2,14 +2,14 @@
|
|||||||
#define INTERFACEDRIVER_H
|
#define INTERFACEDRIVER_H
|
||||||
|
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QObject>
|
#include <QVariant>
|
||||||
|
|
||||||
class InterfaceDriver
|
class InterfaceDriver
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void invokeContextEntityMethod(QString contextId, QString method, QList<QObject> args) = 0;
|
virtual void invokeContextEntityMethod(QString contextId, QString method, QVariantList args) = 0;
|
||||||
|
|
||||||
virtual void invokeDoricMethod(QString method, QList<QObject> args) = 0;
|
virtual void invokeDoricMethod(QString method, QVariantList args) = 0;
|
||||||
|
|
||||||
virtual void createContext(QString contextId, QString script, QString source) = 0;
|
virtual void createContext(QString contextId, QString script, QString source) = 0;
|
||||||
|
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
#include <QGuiApplication>
|
#include <QGuiApplication>
|
||||||
#include <QQmlApplicationEngine>
|
#include <QQmlApplicationEngine>
|
||||||
|
#include <QQmlContext>
|
||||||
|
|
||||||
|
#include "demo/demo_bridge.h"
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
@ -14,7 +17,11 @@ int main(int argc, char *argv[])
|
|||||||
if (!obj && url == objUrl)
|
if (!obj && url == objUrl)
|
||||||
QCoreApplication::exit(-1);
|
QCoreApplication::exit(-1);
|
||||||
}, Qt::QueuedConnection);
|
}, Qt::QueuedConnection);
|
||||||
engine.load(url);
|
|
||||||
|
|
||||||
|
|
||||||
|
DemoBridge *demoBridge = new DemoBridge();
|
||||||
|
auto context = engine.rootContext();
|
||||||
|
context->setContextProperty("demoBridge", demoBridge);
|
||||||
|
engine.load(url);
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
@ -12,11 +12,20 @@ ApplicationWindow {
|
|||||||
|
|
||||||
ListView {
|
ListView {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
model: 20
|
model: 1
|
||||||
delegate: ItemDelegate {
|
delegate: Rectangle {
|
||||||
text: "Item " + (index + 1)
|
Column {
|
||||||
|
anchors.centerIn: parent
|
||||||
|
Text {
|
||||||
|
text: {return "Snake.js"}
|
||||||
|
}
|
||||||
|
}
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: 100
|
height: 60
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {demoBridge.navigate(index)}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,21 @@
|
|||||||
#include "native_driver.h"
|
|
||||||
#include "async/async_call.h"
|
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
void NativeDriver::invokeContextEntityMethod(QString contextId, QString method, QList<QObject> args)
|
#include "native_driver.h"
|
||||||
{
|
#include "async/async_call.h"
|
||||||
|
#include "utils/constant.h"
|
||||||
|
|
||||||
|
void NativeDriver::invokeContextEntityMethod(QString contextId, QString method, QVariantList args)
|
||||||
|
{
|
||||||
|
args.insert(0, QVariant(contextId));
|
||||||
|
args.insert(1, QVariant(method));
|
||||||
|
invokeDoricMethod(Constant::DORIC_CONTEXT_INVOKE, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
void NativeDriver::invokeDoricMethod(QString method, QList<QObject> args)
|
void NativeDriver::invokeDoricMethod(QString method, QVariantList args)
|
||||||
{
|
{
|
||||||
|
return AsyncCall::ensureRunInThreadPool(&jsEngine.mJSThreadPool, [this, method, args]{
|
||||||
|
qDebug() << "invokeDoricMethod: " << this->jsEngine.invokeDoricMethod(method, args).toString();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void NativeDriver::createContext(QString contextId, QString script, QString source)
|
void NativeDriver::createContext(QString contextId, QString script, QString source)
|
||||||
|
@ -29,9 +29,9 @@ public:
|
|||||||
return &instance;
|
return &instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
void invokeContextEntityMethod(QString contextId, QString method, QList<QObject> args) override;
|
void invokeContextEntityMethod(QString contextId, QString method, QVariantList args) override;
|
||||||
|
|
||||||
void invokeDoricMethod(QString method, QList<QObject> args) override;
|
void invokeDoricMethod(QString method, QVariantList args) override;
|
||||||
|
|
||||||
void createContext(QString contextId, QString script, QString source) override;
|
void createContext(QString contextId, QString script, QString source) override;
|
||||||
|
|
||||||
|
18
doric-Qt/doric/panel.cpp
Normal file
18
doric-Qt/doric/panel.cpp
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#include "panel.h"
|
||||||
|
|
||||||
|
Panel::Panel()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Panel::config(QString script, QString alias, QString extra)
|
||||||
|
{
|
||||||
|
Context *context = Context::create(script, alias, extra);
|
||||||
|
config(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Panel::config(Context *context)
|
||||||
|
{
|
||||||
|
this->mContext = context;
|
||||||
|
this->mContext->build(960, 720);
|
||||||
|
}
|
21
doric-Qt/doric/panel.h
Normal file
21
doric-Qt/doric/panel.h
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#ifndef PANEL_H
|
||||||
|
#define PANEL_H
|
||||||
|
|
||||||
|
#include "context.h"
|
||||||
|
|
||||||
|
class Panel
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
Context *mContext;
|
||||||
|
int renderedWidth = -1;
|
||||||
|
int renderedHeight = -1;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Panel();
|
||||||
|
|
||||||
|
void config(QString script, QString alias, QString extra);
|
||||||
|
|
||||||
|
void config(Context *context);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // PANEL_H
|
@ -2,10 +2,13 @@
|
|||||||
<qresource prefix="/">
|
<qresource prefix="/">
|
||||||
<file>main.qml</file>
|
<file>main.qml</file>
|
||||||
<file>qtquickcontrols2.conf</file>
|
<file>qtquickcontrols2.conf</file>
|
||||||
|
<file>view.qml</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="/doric">
|
<qresource prefix="/doric">
|
||||||
<file alias="doric-sandbox.js">../../doric-js/bundle/doric-sandbox.js</file>
|
<file alias="doric-sandbox.js">../../doric-js/bundle/doric-sandbox.js</file>
|
||||||
<file alias="doric-lib.js">../../doric-js/bundle/doric-lib.js</file>
|
<file alias="doric-lib.js">../../doric-js/bundle/doric-lib.js</file>
|
||||||
|
</qresource>
|
||||||
|
<qresource prefix="/doric/bundles">
|
||||||
<file alias="Snake.js">../../doric-demo/bundle/src/Snake.js</file>
|
<file alias="Snake.js">../../doric-demo/bundle/src/Snake.js</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
6
doric-Qt/doric/shader/root_node.cpp
Normal file
6
doric-Qt/doric/shader/root_node.cpp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#include "root_node.h"
|
||||||
|
|
||||||
|
RootNode::RootNode()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
10
doric-Qt/doric/shader/root_node.h
Normal file
10
doric-Qt/doric/shader/root_node.h
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#ifndef ROOTNODE_H
|
||||||
|
#define ROOTNODE_H
|
||||||
|
|
||||||
|
class RootNode
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
RootNode();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // ROOTNODE_H
|
@ -34,4 +34,9 @@ const QString Constant::TEMPLATE_MODULE = QString("Reflect.apply(doric.jsRegiste
|
|||||||
const QString Constant::TEMPLATE_CONTEXT_DESTROY = QString("doric.jsReleaseContext(\"%s\")");
|
const QString Constant::TEMPLATE_CONTEXT_DESTROY = QString("doric.jsReleaseContext(\"%s\")");
|
||||||
|
|
||||||
const QString Constant::GLOBAL_DORIC = "doric";
|
const QString Constant::GLOBAL_DORIC = "doric";
|
||||||
|
const QString Constant::DORIC_CONTEXT_INVOKE = "jsCallEntityMethod";
|
||||||
const QString Constant::DORIC_TIMER_CALLBACK = "jsCallbackTimer";
|
const QString Constant::DORIC_TIMER_CALLBACK = "jsCallbackTimer";
|
||||||
|
|
||||||
|
const QString Constant::DORIC_ENTITY_INIT = "__init__";
|
||||||
|
const QString Constant::DORIC_ENTITY_CREATE = "__onCreate__";
|
||||||
|
const QString Constant::DORIC_ENTITY_BUILD = "__build__";
|
||||||
|
@ -23,7 +23,12 @@ public:
|
|||||||
static const QString TEMPLATE_CONTEXT_DESTROY;
|
static const QString TEMPLATE_CONTEXT_DESTROY;
|
||||||
|
|
||||||
static const QString GLOBAL_DORIC;
|
static const QString GLOBAL_DORIC;
|
||||||
|
static const QString DORIC_CONTEXT_INVOKE;
|
||||||
static const QString DORIC_TIMER_CALLBACK;
|
static const QString DORIC_TIMER_CALLBACK;
|
||||||
|
|
||||||
|
static const QString DORIC_ENTITY_CREATE;
|
||||||
|
static const QString DORIC_ENTITY_INIT;
|
||||||
|
static const QString DORIC_ENTITY_BUILD;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@ public:
|
|||||||
QFile *file = new QFile(resource.fileName());
|
QFile *file = new QFile(resource.fileName());
|
||||||
file->open(QFile::ReadOnly | QFile::Text);
|
file->open(QFile::ReadOnly | QFile::Text);
|
||||||
QTextStream in(file);
|
QTextStream in(file);
|
||||||
|
in.setCodec("UTF-8");
|
||||||
QString content = in.readAll();
|
QString content = in.readAll();
|
||||||
file->close();
|
file->close();
|
||||||
delete file;
|
delete file;
|
||||||
|
6
doric-Qt/doric/view.qml
Normal file
6
doric-Qt/doric/view.qml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import QtQuick 2.12
|
||||||
|
import QtQuick.Controls 2.5
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
color: 'red'
|
||||||
|
}
|
Reference in New Issue
Block a user