#ifndef CONTROLHDMISCHEDULE_H
#define CONTROLHDMISCHEDULE_H

#include <QWidget>
#include <wDevicesManager/ledcard.h>
#include <communication/hpptclient.h>
#include <LoUIClass/loemptydialog.h>
#include <QStandardItemModel>
#include <QStyledItemDelegate>
namespace Ui {
class ControlHdmiSchedule;
}

class ControlHdmiSchedule : public QWidget
{
    Q_OBJECT

public:
    explicit ControlHdmiSchedule(QWidget *parent = nullptr,QList<LedCard *> *m_pLedlist=nullptr);
    ~ControlHdmiSchedule();
protected slots:
    void refreshLable();
    void  OnClickAdd();
    void  OnClickImport();
    void  OnClickExport();
    void  OnClickDelete();
    void  OnClickClear();
    void  OnClickApply();
    void  OnClickReadback();
private:
    Ui::ControlHdmiSchedule *ui;
    //类似的控制操作信号和槽函数和变量定义
    signals:
        void sigSend(QJsonObject &,QString);
        void sigHaveSchedule(bool);
    protected slots:
        void DeletePostingDlg();
        void OnProHttpResponse(QString url, QString postMD5, QByteArray data);
        void OnProHttpResponseAll(QString url, QString postMD5, QByteArray data);
        void onSelectedDeviceList(QList<LedCard*> *);
        void onReadbackAllThisPage();
        void OnControlTypeSwitchIndexChanged(int index);
    private:
        QList<LedCard *> *m_pLedlist=nullptr;
        LedCard   *m_pLedCard = nullptr;
        LedCard   *m_oldLedlist = nullptr;
        HpptClient *pHpptClient = nullptr;
        HpptClient *pHpptClientAll = nullptr;
        QString m_strUrl="";
        LoEmptyDialog * m_PostingDlg=nullptr;
        QTimer *m_pGetAskTimer=nullptr;
        bool m_bSelected=false;
        QStandardItemModel * m_pModel;
        bool JieXiJsonTaskSync(QJsonObject oTaskSync);
        QJsonObject GetJsonObjectSyncSchedule();



};
class ReadOnlyDelegate1: public QStyledItemDelegate
{
    Q_OBJECT
public:
    ReadOnlyDelegate1(QWidget *parent = nullptr):QStyledItemDelegate(parent)
    {}

    QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
const QModelIndex &index) const override //final
    {
        Q_UNUSED(parent)
        Q_UNUSED(option)
        Q_UNUSED(index)
        return nullptr;
    }
};
#endif // CONTROLHDMISCHEDULE_H