/* * Original Author : Garuda Linux & Team. * Thanks for developing this application. * love from Bangladesh */ /* * preprocessor directives: ensures that the contents of the file are only included once in a translation unit, * preventing multiple inclusions and potential naming conflicts */ #ifndef SNIGDHAOSASSISTANT_H #define SNIGDHAOSASSISTANT_H /*class for main application windows*/ #include /*abstract base class for buttons*/ #include /*class for managing network operations*/ #include /* * defines a namespace for the user interface of the application, typically generated by Qt Designer. * QT_BEGIN_NAMESPACE and QT_END_NAMESPACE are macros used to enclose the Qt namespace. */ QT_BEGIN_NAMESPACE namespace Ui { class SnigdhaOSAssistant; } QT_END_NAMESPACE /* * declares a class named SnigdhaOSAssistant, which inherits from QMainWindow. * the Q_OBJECT macro is used to enable the Qt's meta-object system for this class, * allowing features like signals and slots. */ class SnigdhaOSAssistant : public QMainWindow { Q_OBJECT /* * declares an enumeration type named State inside the SnigdhaOSAssistant class, * containing various states that the application can be in. */ public: enum class State { QUIT, WELCOME, INTERNET, UPDATE, UPDATE_RETRY, // NVIDIA_CHECK, // NVIDIA, // NVIDIA_APPLY, SELECT, APPLY, APPLY_RETRY, SUCCESS }; /* * constructor and destructor declarations for the SnigdhaOSAssistant class. * the constructor takes a QWidget pointer as the parent widget and a QString representing * the initial state of the application. * the destructor has no parameters. */ SnigdhaOSAssistant(QWidget* parent = nullptr, QString state = "WELCOME"); ~SnigdhaOSAssistant(); /* * declare private slots, which are functions that can be connected to signals from widgets */ private slots: void on_textWidget_buttonBox_clicked(QAbstractButton* button); void on_selectWidget_buttonBox_clicked(QAbstractButton* button); /* * These are private member variables of the SnigdhaOSAssistant class. * ui is a pointer to the user interface object generated by Qt Designer. * executable_modify_date is a QDateTime object representing the modification date of the executable. * currentState is an instance of the State enumeration representing the current state of the application. */ private: Ui::SnigdhaOSAssistant *ui; QDateTime executable_modify_date; State currentState; /* * private member functions of the SnigdhaOSAssistant class. * they perform various tasks such as making internet requests, * updating the application, populating select widgets, * updating the application state, and relaunching the application. */ void doInternetUpRequest(); void doUpdate(); void doApply(); // void doNvidiaCheck(); // void doNvidiaApply(); void populateSelectWidget(); void populateSelectWidget(QString filename, QString label); void updateState(State state); void updateState(QString state); void relaunchSelf(QString param); }; #endif // SNIGDHAOSASSISTANT_H