53 lines
1.8 KiB
C++
53 lines
1.8 KiB
C++
#ifndef MAINWINDOW_H
|
||
#define MAINWINDOW_H
|
||
|
||
#include <QMainWindow>
|
||
#include <QProcess>
|
||
#include <QSettings>
|
||
#include <QJsonObject> // Важно: добавить для хранения данных профилей
|
||
|
||
// Предварительное объявление класса, сгенерированного из mainwindow.ui
|
||
QT_BEGIN_NAMESPACE
|
||
namespace Ui { class MainWindow; }
|
||
QT_END_NAMESPACE
|
||
|
||
class MainWindow : public QMainWindow
|
||
{
|
||
Q_OBJECT
|
||
|
||
public:
|
||
MainWindow(QWidget *parent = nullptr);
|
||
~MainWindow();
|
||
|
||
private slots:
|
||
// Слоты для кнопок (автоматически подключаются по имени: on_<имя_объекта>_<сигнал>)
|
||
void on_launchButton_clicked();
|
||
void on_modsFolderButton_clicked();
|
||
void on_updateModsButton_clicked();
|
||
void on_settingsButton_clicked();
|
||
void on_addProfileButton_clicked(); // Слот для кнопки "Новый..."
|
||
void on_editProfileButton_clicked(); // <-- ДОБАВЬТЕ ЭТОТ СЛОТ
|
||
void on_profileComboBox_currentIndexChanged(int index); // Слот для смены профиля
|
||
|
||
// Слоты для QProcess (подключаются вручную)
|
||
void onProcessFinished(int exitCode, QProcess::ExitStatus exitStatus);
|
||
void onProcessError(QProcess::ProcessError error);
|
||
void readProcessOutput();
|
||
|
||
private:
|
||
QString getMinecraftPath();
|
||
|
||
// Новые методы для работы с профилями
|
||
void loadProfiles();
|
||
void saveProfiles();
|
||
void createNewProfile();
|
||
QString profilesPath; // Путь к launcher_profiles.json
|
||
QJsonObject profilesData; // JSON данные из файла
|
||
|
||
Ui::MainWindow *ui; // Указатель на объект интерфейса
|
||
QProcess *process;
|
||
QSettings *settings;
|
||
};
|
||
|
||
#endif // MAINWINDOW_H
|