2025-10-25 15:49:45 +03:00
|
|
|
|
#ifndef MAINWINDOW_H
|
|
|
|
|
|
#define MAINWINDOW_H
|
|
|
|
|
|
|
|
|
|
|
|
#include <QMainWindow>
|
|
|
|
|
|
#include <QProcess>
|
|
|
|
|
|
#include <QSettings>
|
2025-10-26 20:00:25 +03:00
|
|
|
|
#include <QJsonObject> // Важно: добавить для хранения данных профилей
|
2025-10-25 15:49:45 +03:00
|
|
|
|
|
|
|
|
|
|
// Предварительное объявление класса, сгенерированного из 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();
|
2025-10-26 20:00:25 +03:00
|
|
|
|
void on_addProfileButton_clicked(); // Слот для кнопки "Новый..."
|
|
|
|
|
|
void on_editProfileButton_clicked(); // <-- ДОБАВЬТЕ ЭТОТ СЛОТ
|
|
|
|
|
|
void on_profileComboBox_currentIndexChanged(int index); // Слот для смены профиля
|
2025-10-25 15:49:45 +03:00
|
|
|
|
|
|
|
|
|
|
// Слоты для QProcess (подключаются вручную)
|
|
|
|
|
|
void onProcessFinished(int exitCode, QProcess::ExitStatus exitStatus);
|
|
|
|
|
|
void onProcessError(QProcess::ProcessError error);
|
|
|
|
|
|
void readProcessOutput();
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
QString getMinecraftPath();
|
|
|
|
|
|
|
2025-10-26 20:00:25 +03:00
|
|
|
|
// Новые методы для работы с профилями
|
|
|
|
|
|
void loadProfiles();
|
|
|
|
|
|
void saveProfiles();
|
|
|
|
|
|
void createNewProfile();
|
|
|
|
|
|
QString profilesPath; // Путь к launcher_profiles.json
|
|
|
|
|
|
QJsonObject profilesData; // JSON данные из файла
|
|
|
|
|
|
|
2025-10-25 15:49:45 +03:00
|
|
|
|
Ui::MainWindow *ui; // Указатель на объект интерфейса
|
|
|
|
|
|
QProcess *process;
|
|
|
|
|
|
QSettings *settings;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif // MAINWINDOW_H
|