#ifndef SYSTEMMANAGEDIALOG_H
#define SYSTEMMANAGEDIALOG_H

#include <QDialog>
#include <QPushButton>
#include "promptdialog.h"

#include "setcontrolstyle.h"

#define SELECT_NONE -2  //全不选
#define SELECT_ALL    -1  //全选

namespace Ui {
class SystemManageDialog;
}

class SystemManageDialog : public QDialog
{
    Q_OBJECT

public:
    explicit SystemManageDialog(QWidget *parent = 0);
    ~SystemManageDialog();

private:
    Ui::SystemManageDialog *ui;
    int m_itemPerPage;//界面每页条目数
    QList<QPushButton*> m_itemBtnList;

    int m_curPages;//当前页数
    int m_pageNums;//总页数
    int m_selectedIdx;//被选中的条目
    QStringList m_itemList;

    int m_updateType;//升级类型
    int m_logType;//日志类型 0:报错  1:断线
    s16 m_setType;

    QString m_curConnectWifi;//当前连接的wifi
    QString m_curConnectWifiPass;//当前连接的wifi密码
    bool m_curConnectMode;//当前连接的方式

private:
    void initControl();//初始化窗体控件，包括位置、尺寸、样式
    void initResolution1910();//初始化窗体控件为1920x1080分辨率
    void initResolution1006();
    void initControlStyle();//初始化窗体控件样式
    void initArabControlPos();//设置阿拉伯语时控件对齐方式

    void refreshCheckedPage();//刷新条目选中状态
    void clickItem(int idx);//点击某一条目

public:
    void initDialog(s16 type = 0);
    void refreshUi();
    void setTypeLogo(QString tStyle);//设置类型图标
    void setMainTitle(QString str);//设置主title
    void setSubTitle(QString str);//设置副title

    void addItem(QString str);

    void addListError();//读取错误日志CSV
    void addListBreakage();//读取断线日志CSV
    void addListDebug();//读取调试信息CSV

    int exec(int type = 0);//升级类型

    QString getCurFile();//获取当前选中的文件
    inline int getCurIdx(){return m_selectedIdx;}
    void setWifiInfo(QString ip,QString ssid,QString psd,bool mode);
    void setItemList(QStringList list);

signals:
    void siClearProductStatis();//清空产量统计
    void siCsvExport(int logType);//导出csv文件
    void siClearJournal();//清空文件日志
    void siCsvChangeErro();//切换报错
    void siCsvChangeBrea();//切换断线
    void siCsvChangeDebug();//切换调试信息
    void siRefreshWifiList();//刷新wifi列表
    void siSetDynamicIP(QString);//设置动态IP
    void siSetStaticIP(QString,QString,QString);//设置静态IP

private slots:
    void slotEXBInfoChange();//外围板版本信息改变

private slots:
    void on_buttonCancel_clicked();
    void on_buttonOk_clicked();
    void on_buttonPgUp_clicked();
    void on_buttonPgDn_clicked();
    void on_button1_clicked();
    void on_button2_clicked();
    void on_button3_clicked();
    void on_button4_clicked();
    void on_button5_clicked();
    void on_button6_clicked();
    void on_button7_clicked();
    void on_button8_clicked();
    void on_button9_clicked();
    void on_button10_clicked();
    void on_button11_clicked();
    void on_button12_clicked();
    void on_buttonDelete_clicked();
    void on_buttonSelectAll_clicked();
    void on_buttonExport_clicked();
    void on_buttonChangeLog_clicked();
    void on_buttonRefresh_clicked();
    void on_buttonPgUpWIFI_clicked();
    void on_buttonPgDnWIFI_clicked();
    void on_buttonSetAutoIP_clicked();
    void on_buttonSetStaticIP_clicked();
    void on_buttonCancelWIFI_clicked();
};

#endif // SYSTEMMANAGEDIALOG_H
