#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include "SDFPDlg.h"
#include "Src/GDDC/gddcdlg.h"
#include "Src/HomePage/homepagedlg.h"
#include "Src/ModelCamera/modelcameradlg.h"
#include "Src/RescueLoad/rescueloadwidget.h"
#include <QAction>
#include <QGridLayout>
#include <QLabel>
#include <QLineEdit>
#include <QMainWindow>
#include <QMenu>
#include <QMenuBar>
#include <QProcess>
#include <QPushButton>
#include <QTextEdit>
#include <QWebEngineView>

#ifdef Q_OS_WIN
// #include <QWindow>
// #include <WinUser.h>
// #include <windows.h>
#endif
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE

class MainWindow : public QMainWindow {
  Q_OBJECT

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

private:
  Ui::MainWindow *ui;

  void initFile();

public:
  void initWindow();
  void initButton();
  void initSignalSlot();
private slots:
  void toolButton_clicked();
  void toolButton_2_clicked();
  void toolButton_3_clicked();
  void toolButton_4_clicked();
  void toolButton_5_clicked();
  void toolButton_6_clicked();
  void toolButton_7_clicked();
  void toolButton_8_clicked();
  void toolButton_9_clicked();

public:
  GDDCdlg *m_GDDCdlg;
  HomePageDlg *m_HomePagedlg;
  RescueLoadWidget *m_rescueLoadWidget;
  SDFPDlg *m_SDFPDlg;
  // QWeb *m_qWeb;
  // QWebEngineView *mWeb;
  ModelCameraDlg *m_ModelCameraDlg;
  QWebEngineView *lLinkWeb;         // L链
  QWebEngineView *adHocNetworkWeb;  // 自组网
  QWebEngineView *satelliteCommWeb; // 卫通
private:
  QProcess *processPDT;
  QString exeDirPathName = "";
  std::unordered_map<QString, settingStruct> m_allSetMap;

public:
  void changeBtnColor(int num);

private:
  /**
   * @brief 初始化UAVID与推流APPName的映射关系
   */
  void initUAVIDMap();
};
#endif // MAINWINDOW_H