templatemanager.h 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #ifndef TEMPLATEMANAGER_H
  2. #define TEMPLATEMANAGER_H
  3. #include <QDialog>
  4. #include <QCheckBox>
  5. #include <QTableWidgetItem>
  6. class TemplateItem;
  7. class OneTemplateInfo;
  8. class FromWebAPI;
  9. class OnePlanItemInfo;
  10. namespace Ui {
  11. class TemplateManager;
  12. }
  13. class TemplateManager : public QDialog
  14. {
  15. Q_OBJECT
  16. public:
  17. explicit TemplateManager(QWidget *parent = nullptr);
  18. ~TemplateManager();
  19. /* 是否点下了OK */
  20. bool isOk() const { return m_isOk; }
  21. /* 获取的已删除的模板列表 */
  22. QList<OneTemplateInfo>& getDeleteTemplateList() { return m_listDeleteTemplate; }
  23. /* 获取已修改的模版列表 */
  24. QMap<OneTemplateInfo, QList<OnePlanItemInfo>>& getModifyTemplateList() { return m_mapModifyTemplate; }
  25. /* 设置模版列表 */
  26. void setTemplateList(const QMultiMap<int, OneTemplateInfo>& mapTemplate);
  27. /* 设置QSS */
  28. void setQSSPath(const QString& qssPath);
  29. /* 设置WebAPI指针 */
  30. void setWebAPI(FromWebAPI* webAPI);
  31. signals:
  32. private:
  33. /* 添加一行 */
  34. void createRow(const OneTemplateInfo& info);
  35. /* 修改模版 */
  36. void modifyTemplate(QTableWidgetItem* item);
  37. /* 删除模版 */
  38. void deleteTemplate(QTableWidgetItem* item);
  39. private slots:
  40. /* 点击了OK */
  41. void do_ok();
  42. /* 点击了一个单元格 */
  43. void do_clickedItem(int row, int column);
  44. protected:
  45. /* 显示事件 */
  46. void showEvent(QShowEvent *event) override;
  47. /* 事件过滤器 */
  48. bool eventFilter(QObject *watched, QEvent *event) override;
  49. /* 鼠标点击事件 */
  50. void mousePressEvent(QMouseEvent *event) override;
  51. /* 鼠标移动事件 */
  52. void mouseMoveEvent(QMouseEvent *event) override;
  53. /* 鼠标释放事件 */
  54. void mouseReleaseEvent(QMouseEvent *event) override;
  55. private:
  56. Ui::TemplateManager *ui;
  57. FromWebAPI* m_fromWebAPI = nullptr; /* WebAPI操作类 */
  58. bool m_isOk = false; /* 是否点下了OK */
  59. // QString m_templateName; /* 模版名称 */
  60. int m_type = -1; /* 模版类型 */
  61. QPoint m_lastPos; /* 鼠标点击的位置 */
  62. const std::string m_propertyChnID = "ChannelID"; /* 属性名称 */
  63. const std::string m_propertytmpName = "TemplateName";/* 属性名称 */
  64. const int m_roleChnID = Qt::UserRole + 1; /* 角色名称 */
  65. const int m_roleTemplateName = Qt::UserRole + 2; /* 角色名称 */
  66. QList<OneTemplateInfo> m_listTemplate; /* 模版列表 */
  67. QList<OneTemplateInfo> m_listDeleteTemplate; /* 删除的模版列表 */
  68. QMap<OneTemplateInfo, QList<OnePlanItemInfo>> m_mapModifyTemplate; /* 修改的模版列表 */
  69. };
  70. #endif // TEMPLATEMANAGER_H