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 {
+
}