mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-08-28 00:11:15 +00:00
Add QT GUI install program
This commit is contained in:
105
LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.h
Normal file
105
LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.h
Normal file
@@ -0,0 +1,105 @@
|
||||
#ifndef VENTOY2DISKWINDOW_H
|
||||
#define VENTOY2DISKWINDOW_H
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QActionGroup>
|
||||
#include <QJsonDocument>
|
||||
#include <QFile>
|
||||
#include <QJsonObject>
|
||||
#include <QJsonArray>
|
||||
#include <QVector>
|
||||
#include <QtGlobal>
|
||||
#include <QDebug>
|
||||
#include <QCloseEvent>
|
||||
#include <QThread>
|
||||
#include "partcfgdialog.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
namespace Ui { class Ventoy2DiskWindow; }
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#define THREAD_TYPE_INSTALL 1
|
||||
#define THREAD_TYPE_UPDATE 2
|
||||
|
||||
#define THREAD_MSG_PROGRESS_BAR 1
|
||||
#define THREAD_MSG_INSTALL_FINISH 2
|
||||
#define THREAD_MSG_UPDATE_FINISH 3
|
||||
|
||||
class MyQThread : public QThread
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
quint64 m_reserve_space;
|
||||
int m_index;
|
||||
int m_type;
|
||||
int m_secureboot;
|
||||
int m_align4K;
|
||||
bool m_running;
|
||||
void install_run();
|
||||
void update_run();
|
||||
|
||||
explicit MyQThread(QObject *parent = nullptr);
|
||||
protected:
|
||||
void run();
|
||||
signals:
|
||||
void thread_event(int msg, int data);
|
||||
public slots:
|
||||
};
|
||||
|
||||
|
||||
class Ventoy2DiskWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Ventoy2DiskWindow(QWidget *parent = nullptr);
|
||||
~Ventoy2DiskWindow();
|
||||
|
||||
QActionGroup *m_part_group;
|
||||
QActionGroup *m_lang_group;
|
||||
QJsonArray m_lang_array;
|
||||
PartCfgDialog *m_partcfg;
|
||||
MyQThread *m_thread;
|
||||
|
||||
void FillDeviceList(const QString &select);
|
||||
void OnInitWindow(void);
|
||||
void LoadLanguages();
|
||||
int lang_string(const QString &id, QString &str);
|
||||
void update_ui_language();
|
||||
void set_percent(int percent);
|
||||
protected:
|
||||
void showEvent(QShowEvent *ev);
|
||||
void closeEvent(QCloseEvent *event);
|
||||
|
||||
private slots:
|
||||
|
||||
void thread_event(int msg, int data);
|
||||
void part_style_check_action(QAction *act);
|
||||
void lang_check_action(QAction *act);
|
||||
|
||||
void on_ButtonInstall_clicked();
|
||||
|
||||
void on_ButtonUpdate_clicked();
|
||||
|
||||
void on_ButtonRefresh_clicked();
|
||||
|
||||
void on_comboBoxDevice_currentIndexChanged(int index);
|
||||
|
||||
void on_actionPartition_Configuration_triggered();
|
||||
|
||||
void on_actionClear_Ventoy_triggered();
|
||||
|
||||
void on_actionShow_All_Devices_toggled(bool arg1);
|
||||
|
||||
void on_actionSecure_Boot_Support_triggered();
|
||||
|
||||
private:
|
||||
Ui::Ventoy2DiskWindow *ui;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define _LANG_STR(id) obj.value(id).toString()
|
||||
#define VERSION_FMT "<html><head/><body><p><span style=\" font-size:20pt; font-weight:600; color:#ff0000;\">%s</span></p></body></html>"
|
||||
|
||||
#endif // VENTOY2DISKWINDOW_H
|
Reference in New Issue
Block a user