51 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef KERNELINSTALLER_H
 | 
						|
#define KERNELINSTALLER_H
 | 
						|
 | 
						|
#include <QMainWindow>
 | 
						|
 | 
						|
#include <qtermwidget5/qtermwidget.h>
 | 
						|
 | 
						|
namespace Ui {
 | 
						|
class KernelInstaller;
 | 
						|
}
 | 
						|
 | 
						|
class KernelInstaller : public QMainWindow
 | 
						|
{
 | 
						|
    Q_OBJECT
 | 
						|
 | 
						|
public:
 | 
						|
    enum Option {
 | 
						|
        Install,
 | 
						|
        Remove,
 | 
						|
        Reconfigure,
 | 
						|
        Update,
 | 
						|
        Upgrade
 | 
						|
    };
 | 
						|
 | 
						|
    explicit KernelInstaller(Option option, QStringList kernelList, QWidget *parent = nullptr);
 | 
						|
    ~KernelInstaller();
 | 
						|
 | 
						|
 | 
						|
signals:
 | 
						|
    void InstallFinished(int status);
 | 
						|
 | 
						|
private:
 | 
						|
    QTimer *runStatusTimer;
 | 
						|
    Option runOption;
 | 
						|
    Ui::KernelInstaller *ui;
 | 
						|
    QTermWidget *terminal;
 | 
						|
    QStringList kernelList;
 | 
						|
    int processID;
 | 
						|
 | 
						|
    QString tempDir = "/tmp";
 | 
						|
 | 
						|
    void StartInstaller();
 | 
						|
    QString BuildKernelInstallerBash(QStringList kernelList, QString tempFilePath) const;
 | 
						|
    QString BuildKernelRootLoaderInstallerBash(QString tempFilePath, QString tempLoaderFilePath) const;
 | 
						|
 | 
						|
    int CheckInstallerStatus();
 | 
						|
    void CheckInstallerStatusTimer();
 | 
						|
};
 | 
						|
 | 
						|
#endif // KERNELINSTALLER_H
 |