#ifndef EXECPLANITEM_H #define EXECPLANITEM_H #include #include #include #include #include #include #include "spdlog/spdlog.h" #include "common/globalinfo/globalinfo.h" #include "customcombobox.h" struct ConfigurationDevInfo; class ExecPlanItem : public QWidget { Q_OBJECT public: public: explicit ExecPlanItem(int weekDay = 0, QWidget* parent = nullptr); ~ExecPlanItem(); void setNum(int num); /* 设置序号 */ int getNum(); /* 获取序号 */ int getWeekDay() {return m_weekDay;} /* 获取周几 */ void setDate(const QDate& date); /* 设置日期 */ QDate getDate(); /* 获取日期 */ void setExecTime(const QTime& time); /* 设置执行时间 */ QTime getExecTime() const; /* 获取执行时间 */ void setWarningText(QString str,int ms = 3000); /* 设置警告 */ void setDevName(const QString& dev); /* 设置设备名称 */ QString getDevName() const; /* 获取设备名称 */ void changeDevName(const QString& name); /* 只修改设备名称,不修改设备类型,用于修改了设备名称,同步过来更新 */ void setActionName(const QString &action); /* 通过动作名称设置动作 */ void setActionNum(int action); /* 通过动作类型设置动作 */ void setActionName(); /* 设置动作,只设置可选择的动作类型 */ QString getActionName(); /* 获取动作名称 */ int getActionNum(); /* 获取动作类型 */ DateType getDateType(); /* 获取日期类型 */ void hideWarn(); /* 隐藏警告 */ ConfigurationDevInfo* getCfgDev(); /* 获取设备信息 */ signals: void signal_OneItemDelete(int num); /* 一个OneItem被删除了 */ void signal_dateClicked(QDate date); /* 日期被点击了 */ void signal_execTimeClicked(QTime time); /* 执行时间被点击了 */ void signal_devChanged(); /* 设备改变了 */ // void signal_actionChanged(); /* 动作改变了 */ private slots: void do_devChanged(QString devName); /* 设备改变了 */ void do_actionChanged(QString action); /* 动作改变了 */ protected: bool eventFilter(QObject *watched, QEvent *event); // void wheelEvent(QWheelEvent *event); private: std::shared_ptr m_logger = nullptr; int m_num; /* 序号 */ int m_weekDay; /* 周几,从0-6是周一到周日,7是特殊日 */ QDate m_date; /* 日期 */ QTime m_execTime; /* 执行时间 */ QString m_devName; /* 设备名称 */ int m_actionID; /* 动作类型 */ QString m_actionName; /* 执行的动作名称 */ DateType m_dateType; /* 日期类型 */ ConfigurationDevInfo* m_cfgDev = nullptr; /* 指向这个名称的设备信息 */ QLabel* m_labelNum = nullptr; /* 序号 */ QLabel* m_labelDate = nullptr; /* 日期显示 */ CustomComboBox* m_comBoxDev = nullptr; /* 设备选择框 */ QLabel* m_labelExecTime = nullptr; /* 执行时间 */ CustomComboBox* m_comBoxAction = nullptr; /* 执行动作 */ QLabel* m_delete = nullptr; /* 关闭按钮 */ QLabel* m_labelDateIcon = nullptr; /* 日期图标 */ QLabel* m_labelTimeIcon = nullptr; /* 时间图标 */ QLabel* m_labelWarning = nullptr; /* 警告、错误 */ QTimer* m_warnTimer = nullptr; /* 警告时间定时器 */ }; #endif /* EXECPLANITEM_H */