diff --git a/doric-Qt/doric/doric.pro b/doric-Qt/doric/doric.pro index 7b4b33c7..6c1041d9 100644 --- a/doric-Qt/doric/doric.pro +++ b/doric-Qt/doric/doric.pro @@ -31,7 +31,10 @@ SOURCES += \ engine/DoricTimerExtension.cpp \ main.cpp \ plugin/DoricShaderPlugin.cpp \ + shader/DoricGroupNode.cpp \ shader/DoricRootNode.cpp \ + shader/DoricStackNode.cpp \ + shader/DoricSuperNode.cpp \ shader/DoricViewNode.cpp \ utils/DoricConstant.cpp \ utils/DoricContextHolder.cpp @@ -71,7 +74,10 @@ HEADERS += \ engine/DoricTimerExtension.h \ plugin/DoricNativePlugin.h \ plugin/DoricShaderPlugin.h \ + shader/DoricGroupNode.h \ shader/DoricRootNode.h \ + shader/DoricStackNode.h \ + shader/DoricSuperNode.h \ shader/DoricViewNode.h \ template/DoricSingleton.h \ utils/DoricConstant.h \ diff --git a/doric-Qt/doric/qml.qrc b/doric-Qt/doric/qml.qrc index 0859ba0e..181c1653 100644 --- a/doric-Qt/doric/qml.qrc +++ b/doric-Qt/doric/qml.qrc @@ -2,7 +2,7 @@ main.qml qtquickcontrols2.conf - view.qml + stack.qml ../../doric-js/bundle/doric-sandbox.js diff --git a/doric-Qt/doric/shader/DoricGroupNode.cpp b/doric-Qt/doric/shader/DoricGroupNode.cpp new file mode 100644 index 00000000..493f3f70 --- /dev/null +++ b/doric-Qt/doric/shader/DoricGroupNode.cpp @@ -0,0 +1 @@ +#include "DoricGroupNode.h" diff --git a/doric-Qt/doric/shader/DoricGroupNode.h b/doric-Qt/doric/shader/DoricGroupNode.h new file mode 100644 index 00000000..13ac7fcb --- /dev/null +++ b/doric-Qt/doric/shader/DoricGroupNode.h @@ -0,0 +1,11 @@ +#ifndef DORICGROUPNODE_H +#define DORICGROUPNODE_H + +#include "DoricSuperNode.h" + +class DoricGroupNode : public DoricSuperNode { +public: + using DoricSuperNode::DoricSuperNode; +}; + +#endif // DORICGROUPNODE_H diff --git a/doric-Qt/doric/shader/DoricStackNode.cpp b/doric-Qt/doric/shader/DoricStackNode.cpp new file mode 100644 index 00000000..156c8fa9 --- /dev/null +++ b/doric-Qt/doric/shader/DoricStackNode.cpp @@ -0,0 +1,14 @@ +#include "DoricStackNode.h" + +QQmlComponent *DoricStackNode::build() { + QQmlComponent *component = new QQmlComponent(); + + const QUrl url(QStringLiteral("qrc:/stack.qml")); + component->loadUrl(url); + + return component; +} + +void DoricStackNode::blendLayoutConfig() { + DoricViewNode::blendLayoutConfig(); +} diff --git a/doric-Qt/doric/shader/DoricStackNode.h b/doric-Qt/doric/shader/DoricStackNode.h new file mode 100644 index 00000000..0df832dd --- /dev/null +++ b/doric-Qt/doric/shader/DoricStackNode.h @@ -0,0 +1,16 @@ +#ifndef DORICSTACKNODE_H +#define DORICSTACKNODE_H + +#include "DoricGroupNode.h" + +class DoricStackNode : public DoricGroupNode +{ +public: + using DoricGroupNode::DoricGroupNode; + + QQmlComponent *build() override; + + void blendLayoutConfig() override; +}; + +#endif // DORICSTACKNODE_H diff --git a/doric-Qt/doric/shader/DoricSuperNode.cpp b/doric-Qt/doric/shader/DoricSuperNode.cpp new file mode 100644 index 00000000..be0309ab --- /dev/null +++ b/doric-Qt/doric/shader/DoricSuperNode.cpp @@ -0,0 +1 @@ +#include "DoricSuperNode.h" diff --git a/doric-Qt/doric/shader/DoricSuperNode.h b/doric-Qt/doric/shader/DoricSuperNode.h new file mode 100644 index 00000000..3605f3a2 --- /dev/null +++ b/doric-Qt/doric/shader/DoricSuperNode.h @@ -0,0 +1,14 @@ +#ifndef DORICSUPERNODE_H +#define DORICSUPERNODE_H + +#include "DoricViewNode.h" + +class DoricSuperNode : public DoricViewNode { +protected: + void blendSubLayoutConfig(DoricViewNode *viewNode); + +public: + using DoricViewNode::DoricViewNode; +}; + +#endif // DORICSUPERNODE_H diff --git a/doric-Qt/doric/shader/DoricViewNode.cpp b/doric-Qt/doric/shader/DoricViewNode.cpp index 258c1382..79f17b45 100644 --- a/doric-Qt/doric/shader/DoricViewNode.cpp +++ b/doric-Qt/doric/shader/DoricViewNode.cpp @@ -1 +1,5 @@ #include "DoricViewNode.h" + +void DoricViewNode::blendLayoutConfig(){ + +} diff --git a/doric-Qt/doric/shader/DoricViewNode.h b/doric-Qt/doric/shader/DoricViewNode.h index b1ef2d7e..52e78890 100644 --- a/doric-Qt/doric/shader/DoricViewNode.h +++ b/doric-Qt/doric/shader/DoricViewNode.h @@ -1,9 +1,23 @@ #ifndef DORICVIEWNODE_H #define DORICVIEWNODE_H +#include + #include "../utils/DoricContextHolder.h" class DoricViewNode : public DoricContextHolder { + +protected: + QQmlComponent mView; + + virtual QQmlComponent *build() = 0; + + virtual void blendLayoutConfig(); + +private: + QString mId; + QString mType; + public: using DoricContextHolder::DoricContextHolder; }; diff --git a/doric-Qt/doric/view.qml b/doric-Qt/doric/stack.qml similarity index 63% rename from doric-Qt/doric/view.qml rename to doric-Qt/doric/stack.qml index 7aef5fee..ce7c59d6 100644 --- a/doric-Qt/doric/view.qml +++ b/doric-Qt/doric/stack.qml @@ -1,6 +1,6 @@ import QtQuick 2.12 import QtQuick.Controls 2.5 -Rectangle { - color: 'red' +StackView { + }