#ifndef MAINWIDGET_H
#define MAINWIDGET_H

#include <QWidget>
#include "global.h"

QT_BEGIN_NAMESPACE
namespace Ui { class MainWidget; }
QT_END_NAMESPACE

class ProcessThread;

class MainWidget : public QWidget
{
    Q_OBJECT

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

private:
    void initUI();
    void connects();

    /**
    * @brief 获取最近访问的目录
    *  遍历text edit中的路径，获取最近moose文件所在的目录
    **/
    void getLastDir();

    QStringList selectedFileNames();

    ConfigParam getConfigParam();

private slots:
    void selectInput();
    void selectOutput();
    void openInputDir();
    void openOutputDir();

    void start();
    void cancel();
    void slotQuit();

    void processCompleted();

    /**
    *@brief 打印信息
    *@param txt打印的字符串
    *@param index信息状态，0普通信息，1提示信息，2警告信息，3致命信息
    *@param addTime是否显示时间
    **/
    void debugTip(const QString& txt, int index, bool addTime = false);

private:
    Ui::MainWidget *ui;

    QString mLastDirPath; // 最近打开的目录

    ProcessThread* mThread;

    // 打印消息颜色列表
    QStringList mColorList;

    // 亮点背景颜色
    QStringList mLightColorList;
};
#endif // MAINWIDGET_H
