Files
snigdhaos-assistant/qt/snigdhaosassistant.h
2024-05-10 03:31:13 +05:30

104 lines
3.2 KiB
C++

/*
* 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 <QMainWindow>
/*abstract base class for buttons*/
#include <QAbstractButton>
/*class for managing network operations*/
#include <QtNetwork/QNetworkAccessManager>
/*
* 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