binpack/MainWidget.h

62 lines
1.7 KiB
C
Raw Normal View History

2024-04-11 12:40:19 +08:00
#ifndef MAINWIDGET_H
#define MAINWIDGET_H
2024-04-11 13:08:05 +08:00
#include <QDir>
#include <QFileDialog>
#include <QLineEdit>
#include <QMessageBox>
2024-04-11 12:40:19 +08:00
#include <QWidget>
#include <filesystem>
2024-04-11 13:33:48 +08:00
#include <string>
#include <vector>
namespace fs = std::filesystem;
2024-04-11 12:40:19 +08:00
QT_BEGIN_NAMESPACE
2024-04-11 13:08:05 +08:00
namespace Ui {
class MainWidget;
}
2024-04-11 12:40:19 +08:00
QT_END_NAMESPACE
class MainWidget : public QWidget
{
Q_OBJECT
public:
2024-04-11 13:08:05 +08:00
MainWidget(QWidget* parent = nullptr);
2024-04-11 12:40:19 +08:00
~MainWidget();
private:
2024-04-11 13:08:05 +08:00
void connect_operator();
2024-04-11 13:33:48 +08:00
void control_init();
2024-04-11 13:08:05 +08:00
void add_env_btn();
void del_env_btn();
void generate();
2024-04-11 15:00:18 +08:00
void simple_log(const QString& info, bool enter = true);
// 将某个文件夹拷贝到制定目录下
bool copy_dir(const std::string& source_dir, const std::string& des_dir);
// 将二进制文件安装到菜单栏
void install_bin2menu();
2024-04-11 13:33:48 +08:00
private:
std::vector<std::string> get_depend_on(const std::string& name, const std::vector<std::string>& env);
2024-04-11 15:00:18 +08:00
std::list<std::string> handle_result(const std::vector<std::string>& vec);
2024-04-11 13:08:05 +08:00
public:
2024-04-11 13:08:05 +08:00
static QString SelectDirectory(QWidget* parent, QLineEdit* pEdit, const QString& pre_path = "");
static QString SelectFile(QWidget* parent, QLineEdit* pEdit, const QString& info, const QString& filter);
2025-02-07 10:12:12 +08:00
static bool isOk(QWidget* parent, const QString& title, const QString& content);
static void message(QWidget* parent, const QString& content);
static void cmd_exec(const std::string& cmd);
2025-02-07 10:44:02 +08:00
static bool add_run_sh(const std::string& out_dir, const std::string& exe_name, const std::vector<std::string>& exports);
2024-04-11 13:08:05 +08:00
private:
Ui::MainWidget* ui;
2024-04-11 13:33:48 +08:00
private:
QString binary_{};
std::vector<std::string> envs_{};
2024-04-11 15:00:18 +08:00
std::vector<std::string> sos_{};
2024-04-11 12:40:19 +08:00
};
2024-04-11 13:08:05 +08:00
#endif // MAINWIDGET_H