#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