new home folder for launcher

This commit is contained in:
2026-08-23 03:30:31 +03:00
parent 2c51c4736a
commit 671fbe169d
5 changed files with 310 additions and 50 deletions
+16 -2
View File
@@ -2,6 +2,9 @@
#include "minecraftversion.h"
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
#include <QObject>
#include <QQmlEngine>
#include <QStringList>
@@ -101,11 +104,20 @@ private:
void loadData();
void loadSettings();
void ensureDataFiles();
void saveProfiles();
void saveVersions();
void saveSettings();
QString defaultMinecraftDir() const;
// Чтение файлов лаунчера. Отсутствие файла — норма (первый запуск), а вот
// повреждённое содержимое отводится в .bak, чтобы файл создался заново.
QJsonArray readArrayFile(const QString &path);
QJsonObject readObjectFile(const QString &path);
bool moveAsideBroken(const QString &path, const QString &reason);
// Проверяет папку лаунчера и пишет документ. Об ошибке сообщает через launchError.
bool writeJsonFile(const QString &path, const QJsonDocument &document);
QString gameDir() const;
QString versionIdOf(const Version &version) const;
@@ -117,7 +129,9 @@ private:
QList<Profile> m_profiles;
QList<Version> m_versions;
QVariantMap m_settings;
QString m_dataDir;
// Проблемы хранилища, замеченные на старте: показываются одним сообщением,
// когда интерфейс уже подключился к сигналам.
QStringList m_storageIssues;
int m_nextProfileId = 1;
int m_nextVersionId = 1;