#pragma once

#include <QComboBox>
#include <QLabel>
#include <QLineEdit>
#include <QMainWindow>
#include <QProcess>
#include <QPushButton>
#include <QTextEdit>

/**
 * @brief RunTest 命令启动器主界面
 *
 * 提供启动类型选择（warnboot / coldboot）、数字参数输入、
 * 命令预览和执行功能。
 */
class MainWindow : public QMainWindow {
  Q_OBJECT

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

private slots:
  void onBootTypeChanged();
  void onNumberChanged();
  void onExecuteClicked();
  void onProcessOutput();
  void onProcessFinished(int exitCode, QProcess::ExitStatus exitStatus);

private:
  void initUI();
  void updateCommandPreview();

  // UI 组件
  QComboBox *m_bootTypeCombo;
  QLineEdit *m_numberInput;
  QLabel *m_commandPreview;
  QPushButton *m_executeBtn;
  QTextEdit *m_outputArea;
  QLabel *m_statusLabel;

  // 进程
  QProcess *m_process;
};
