#pragma once

#include <QDialog>
#include <QListWidget>
#include <QPushButton>
#include <QCheckBox>
#include <QProgressBar>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QFileDialog>

class QBatchStaticEchoDialog : public QDialog
{
    Q_OBJECT

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

private slots:
    void onAddFiles();          // 添加文件
    void onAddTextFiles();          // 添加文件
    void onRemoveFile();        // 移除选中文件
    void onProcessFiles();      // 处理文件（根据复选框状态）
    void updateProgress(int value); // 更新进度条

private:
    void setupUI();             // 初始化界面
    void setupConnections();    // 连接信号槽

    // 界面组件
    QListWidget* fileListWidget;
    QPushButton* addButton;
    QPushButton* addTextButton;
    QPushButton* removeButton;
    QPushButton* processButton;
    QCheckBox* statisticCheckBox;
    QCheckBox* echoCheckBox;
    QProgressBar* progressBar;
};
QStringList readFilePaths(const QString& filePath);