ExecPlanItem.h 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #ifndef EXECPLANITEM_H
  2. #define EXECPLANITEM_H
  3. #include <QWidget>
  4. #include <QLabel>
  5. #include <QTime>
  6. #include <QDate>
  7. #include <QTimer>
  8. #include <QComboBox>
  9. #include "spdlog/spdlog.h"
  10. #include "common/globalinfo/globalinfo.h"
  11. #include "customcombobox.h"
  12. struct ConfigurationDevInfo;
  13. class ExecPlanItem : public QWidget
  14. {
  15. Q_OBJECT
  16. public:
  17. public:
  18. explicit ExecPlanItem(int weekDay = 0, QWidget* parent = nullptr);
  19. ~ExecPlanItem();
  20. void setNum(int num); /* 设置序号 */
  21. int getNum(); /* 获取序号 */
  22. int getWeekDay() {return m_weekDay;} /* 获取周几 */
  23. void setDate(const QDate& date); /* 设置日期 */
  24. QDate getDate(); /* 获取日期 */
  25. void setExecTime(const QTime& time); /* 设置执行时间 */
  26. QTime getExecTime() const; /* 获取执行时间 */
  27. void setWarningText(QString str,int ms = 3000); /* 设置警告 */
  28. void setDevName(const QString& dev); /* 设置设备名称 */
  29. QString getDevName() const; /* 获取设备名称 */
  30. void changeDevName(const QString& name); /* 只修改设备名称,不修改设备类型,用于修改了设备名称,同步过来更新 */
  31. void setActionName(const QString &action); /* 通过动作名称设置动作 */
  32. void setActionNum(int action); /* 通过动作类型设置动作 */
  33. void setActionName(); /* 设置动作,只设置可选择的动作类型 */
  34. QString getActionName(); /* 获取动作名称 */
  35. int getActionNum(); /* 获取动作类型 */
  36. DateType getDateType(); /* 获取日期类型 */
  37. void hideWarn(); /* 隐藏警告 */
  38. ConfigurationDevInfo* getCfgDev(); /* 获取设备信息 */
  39. signals:
  40. void signal_OneItemDelete(int num); /* 一个OneItem被删除了 */
  41. void signal_dateClicked(QDate date); /* 日期被点击了 */
  42. void signal_execTimeClicked(QTime time); /* 执行时间被点击了 */
  43. void signal_devChanged(); /* 设备改变了 */
  44. // void signal_actionChanged(); /* 动作改变了 */
  45. private slots:
  46. void do_devChanged(QString devName); /* 设备改变了 */
  47. void do_actionChanged(QString action); /* 动作改变了 */
  48. protected:
  49. bool eventFilter(QObject *watched, QEvent *event);
  50. // void wheelEvent(QWheelEvent *event);
  51. private:
  52. std::shared_ptr<spdlog::logger> m_logger = nullptr;
  53. int m_num; /* 序号 */
  54. int m_weekDay; /* 周几,从0-6是周一到周日,7是特殊日 */
  55. QDate m_date; /* 日期 */
  56. QTime m_execTime; /* 执行时间 */
  57. QString m_devName; /* 设备名称 */
  58. int m_actionID; /* 动作类型 */
  59. QString m_actionName; /* 执行的动作名称 */
  60. DateType m_dateType; /* 日期类型 */
  61. ConfigurationDevInfo* m_cfgDev = nullptr; /* 指向这个名称的设备信息 */
  62. QLabel* m_labelNum = nullptr; /* 序号 */
  63. QLabel* m_labelDate = nullptr; /* 日期显示 */
  64. CustomComboBox* m_comBoxDev = nullptr; /* 设备选择框 */
  65. QLabel* m_labelExecTime = nullptr; /* 执行时间 */
  66. CustomComboBox* m_comBoxAction = nullptr; /* 执行动作 */
  67. QLabel* m_delete = nullptr; /* 关闭按钮 */
  68. QLabel* m_labelDateIcon = nullptr; /* 日期图标 */
  69. QLabel* m_labelTimeIcon = nullptr; /* 时间图标 */
  70. QLabel* m_labelWarning = nullptr; /* 警告、错误 */
  71. QTimer* m_warnTimer = nullptr; /* 警告时间定时器 */
  72. };
  73. #endif /* EXECPLANITEM_H */