SchemeFlowWidget.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #ifndef SCHEMEFLOWWIDGET_H
  2. #define SCHEMEFLOWWIDGET_H
  3. #include <QWidget>
  4. #include "SchemePlanManager.h"
  5. #include <shemeFlow/DataFlowModel.h>
  6. #include <shemeFlow/FlowGraphModel.h>
  7. #include <shemeFlow/DataFlowModel.h>
  8. #include <shemeFlow/FlowTemplateDataModel.h>
  9. #include <QtNodes/BasicGraphicsScene>
  10. #include <QtNodes/ConnectionStyle>
  11. #include <QtNodes/DataFlowGraphicsScene>
  12. // #include <QtNodes/GraphicsView>
  13. #include <QtNodes/GraphicsViewStyle>
  14. #include <QtNodes/NodeDelegateModelRegistry>
  15. using QtNodes::BasicGraphicsScene;
  16. using QtNodes::ConnectionStyle;
  17. using QtNodes::DataFlowGraphicsScene;
  18. // using QtNodes::GraphicsView;
  19. using QtNodes::GraphicsViewStyle;
  20. using QtNodes::NodeDelegateModelRegistry;
  21. using QtNodes::NodeRole;
  22. using QtNodes::NodeStyle;
  23. // class GraphicsView;
  24. class ProjectInfo;
  25. class QHBoxLayout;
  26. /**
  27. * @brief The SchemeFlowWidget class
  28. * 方案流程图
  29. */
  30. class SchemeFlowWidget : public QWidget
  31. {
  32. Q_OBJECT
  33. public:
  34. explicit SchemeFlowWidget(ProjectInfo *proj, QWidget *parent = nullptr);
  35. ~SchemeFlowWidget();
  36. ProjectInfo *proj() const;
  37. void setType(int t);
  38. int indexType() const;
  39. /// 当前页面的评估方案
  40. QList<SchemePlanManager::SchemeProcessInfo> schemes() const;
  41. /// 方案流程模板
  42. /// 当项目中没有评估方案时, 可加载此处的模板
  43. static QList<SchemePlanManager::SchemeProcessInfo> templateSchemes(int projId, int indexType);
  44. signals:
  45. void sigSchemeProcessCreated();
  46. void sigSchemeProcessEdited(const SchemePlanManager::SchemeProcessInfo &process);
  47. private:
  48. void initWidget();
  49. void clearAllNodes();
  50. void loadSchemes(const QList<SchemePlanManager::SchemeProcessInfo> &schems);
  51. private slots:
  52. void slotSchemeProcessEdited(const SchemePlanManager::SchemeProcessInfo &process);
  53. private:
  54. ProjectInfo *m_proj = nullptr;
  55. int m_indexType = 0;
  56. DataFlowModel *m_graphModel = nullptr;
  57. QHBoxLayout *m_layout = nullptr;
  58. };
  59. #endif // SCHEMEFLOWWIDGET_H