This repository has been archived on 2024-07-22. You can view files and clone it, but cannot push or open issues or pull requests.
Doric/doric-Qt/example/doric/shader/DoricSuperNode.h

39 lines
842 B
C
Raw Normal View History

2021-02-09 15:54:22 +08:00
#ifndef DORICSUPERNODE_H
#define DORICSUPERNODE_H
2021-04-02 20:47:15 +08:00
#include <QJsonArray>
2021-02-09 15:54:22 +08:00
#include "DoricViewNode.h"
class DoricSuperNode : public DoricViewNode {
2021-02-20 16:20:18 +08:00
private:
2021-04-02 20:47:15 +08:00
QMap<QString, QJsonValue> subNodes;
2021-02-09 15:54:22 +08:00
protected:
2021-04-02 20:47:15 +08:00
virtual void blend(QQuickItem *view, QString name, QJsonValue prop) override;
2021-02-19 19:01:31 +08:00
2021-04-02 20:47:15 +08:00
virtual void blendSubNode(QJsonValue subProperties) = 0;
2021-02-20 16:20:18 +08:00
2021-05-07 18:17:07 +08:00
void recursiveMixin(QJsonValue src, QJsonValue target);
2021-02-09 15:54:22 +08:00
public:
using DoricViewNode::DoricViewNode;
bool mReusable = false;
2021-02-20 16:20:18 +08:00
2021-04-02 20:47:15 +08:00
QJsonValue getSubModel(QString id);
void blendSubLayoutConfig(DoricViewNode *viewNode, QJsonValue jsValue);
2021-02-20 16:20:18 +08:00
2021-05-07 18:17:07 +08:00
virtual DoricViewNode *getSubNodeById(QString id) = 0;
2021-02-20 16:20:18 +08:00
private:
2021-04-02 20:47:15 +08:00
void mixinSubNode(QJsonValue subNode);
2021-02-20 16:20:18 +08:00
2021-04-02 20:47:15 +08:00
void mixin(QJsonValue src, QJsonValue target);
2021-05-07 18:17:07 +08:00
bool viewIdIsEqual(QJsonValue src, QJsonValue target);
2021-02-09 15:54:22 +08:00
};
#endif // DORICSUPERNODE_H