templatemanager.h 3.1 KB

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