FlowTemplateDataModel.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef FLOWTEMPLARTEDATAMODEL_H
  2. #define FLOWTEMPLARTEDATAMODEL_H
  3. #include <QtNodes/NodeDelegateModel>
  4. #include <QObject>
  5. using QtNodes::NodeData;
  6. using QtNodes::NodeDataType;
  7. using QtNodes::NodeDelegateModel;
  8. using QtNodes::PortIndex;
  9. using QtNodes::PortType;
  10. class FlowTemplateData : public NodeData
  11. {
  12. public:
  13. NodeDataType type() const override { return NodeDataType { "FlowTemplateData", "Flow Template Data" }; }
  14. };
  15. class FlowTemplateDataModel : public NodeDelegateModel
  16. {
  17. Q_OBJECT
  18. public:
  19. FlowTemplateDataModel();
  20. ~FlowTemplateDataModel() = default;
  21. QString caption() const override { return QString("流程样板模型"); }
  22. QString name() const override { return QString("FlowTemplateDataModel"); }
  23. unsigned int nPorts(PortType const /*portType*/) const override { return 1; }
  24. NodeDataType dataType(PortType const portType, PortIndex const portIndex) const override
  25. {
  26. return FlowTemplateData().type();
  27. }
  28. std::shared_ptr<NodeData> outData(PortIndex const port) override { return std::make_shared<FlowTemplateData>(); }
  29. void setInData(std::shared_ptr<NodeData>, PortIndex const) override { }
  30. QWidget *embeddedWidget() override { return nullptr; }
  31. };
  32. #endif // FLOWTEMPLARTEDATAMODEL_H