#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <LoQClass/loqmainwindow.h>
#include <QDebug>
#include <QTabWidget>
#include <QStatusBar>
#include <QFile>
#include <QIcon>
#include <QDir>
#include <QMessageBox>
#include <QTranslator>
#include <QStandardPaths>
#include "loappconfig.h"
#include "mtitlebar.h"
#include "mtabwidget.h"
#include "mdevicemanager.h"
#include "mprogrammanager.h"
#include "mprogrammanagera.h"
#include "mdevicesetting.h"
#include "mguangyingpinwidget.h"
#include <LoUIClass/switchcontrol.h>
namespace Ui {
class MainWindow;
}

class MainWindow : public LoQMainWindow
{
    Q_OBJECT

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

private slots:
    void onLanguageChanged(const QString &lan);
    void onDhcpSwitcherToggled(bool b);
    void onCmdSetNetworkBySelect(QString strNetwork,QString strTip1);
    void OnTimeoutSendResoreIpOneKey();
    void RestoreLedCardIpByUdpCmd();
    void onGuangYingPinChanged();
    void onInputPasswordPro(QString strPassword);

    void InputPasswordDlg();
signals:
    void sigRestorLedCardIpByUdpCmd();
private:
    Ui::MainWindow *ui;
    QTranslator *m_Translator=nullptr;
    QTranslator *m_TranslatorCustom=nullptr;
    QTranslator *m_TranslatorQtSys=nullptr;
    mTitleBar  *m_wTitle=nullptr;
    mTabWidget *m_wTab=nullptr;
    QStatusBar *m_wStatus=nullptr;
    QLabel *m_LableDhcp=nullptr;
    SwitchControl *m_pSwitchDhcpControl=nullptr;
    QPushButton *m_pOneKeyCheckCard=nullptr;
    QString m_strSelectNetName="";
    mDeviceManager   *m_wDeviceManager;
    mProgramManager  *m_wProgramManager;
    mProgramManagerA *m_wProgramManagerA;
    mGuangYingPinWidget *m_wGuangYingPinWidget;
    QTimer *m_pTimerSendResoreIpOneKey=nullptr;
        QTimer *timer;
//    mDeviceSetting *m_wDeviceSetting;
    void refreshLable();
    void readSettings();
    void writeSettings();
    void AddAppToFirewall();
    QSize GetScreenSize();
    QString GetPasswordPro();

};

#endif // MAINWINDOW_H
