#ifndef ADDNORMALITEM_H
#define ADDNORMALITEM_H

#include <QDialog>
#include <QTime>
#include <QComboBox>

class TimeWidget;
class DeviceInfo;

namespace Ui {
class AddNormalItem;
}

class AddNormalItem : public QDialog
{
    Q_OBJECT

public:
    explicit AddNormalItem(QWidget *parent = nullptr);
    ~AddNormalItem();

    /* 设置父指针,时间选择器需要使用 */
    void setParentPointer(QWidget* p);
    /* 添加可选设备 */
    void setDevice(QMap<QString, DeviceInfo>& mapDev);

signals:
    /* 添加正常日期的项 */
    void signal_addNormalItem(QString dev,QString action,QTime time);

private slots:
//    void do_selectTime();                           /* 选择时间 */
    /* 进行查重和关闭页面 */
    void do_ok();
    /* 选择了设备,设置其对应的动作 */
    void do_selectDev();
    /* 选择了动作 */
    void do_selectAction();
    /* 点击了时间选择按钮,打开时间选择器 */
    void do_selectTime();

private:
    /* 设置选择框报警 */
    void setComboBoxWarning(QComboBox* bo,bool flag);
    /* 设置时间报警 */
    void setTimeEditWarning(bool flag);
    void setAction(const QString& devName);
    
private:
    Ui::AddNormalItem *ui;

    // ExecPlan* m_p = nullptr;                        /* 设置父类指针 */
    QString m_devName;                              /* 选择的设备 */
    QString m_action;                               /* 选择的动作 */
    QTime m_time;                                   /* 执行的时间 */

    TimeWidget* m_timeWidget = nullptr;             /* 时间选择器 */
};

#endif // ADDNORMALITEM_H