java implementation and downloading
This commit is contained in:
@@ -18,6 +18,8 @@ class VersionInstaller;
|
||||
class ModLoaderVersionService;
|
||||
class ModLoaderInstaller;
|
||||
class BuildSwitcher;
|
||||
class JavaRuntimeService;
|
||||
class JavaInstaller;
|
||||
|
||||
class LauncherBackend : public QObject
|
||||
{
|
||||
@@ -48,6 +50,11 @@ class LauncherBackend : public QObject
|
||||
Q_PROPERTY(QVariantList versionCatalog READ versionCatalog NOTIFY versionCatalogChanged)
|
||||
Q_PROPERTY(bool catalogLoading READ catalogLoading NOTIFY catalogLoadingChanged)
|
||||
|
||||
// Сборки Java для окна выбора: скачиваемые из сети плюс те, что уже лежат
|
||||
// в папке лаунчера.
|
||||
Q_PROPERTY(QVariantList javaCatalog READ javaCatalog NOTIFY javaCatalogChanged)
|
||||
Q_PROPERTY(bool javaCatalogLoading READ javaCatalogLoading NOTIFY javaCatalogLoadingChanged)
|
||||
|
||||
// Одного сигнала на все свойства загрузки достаточно: установщик уже
|
||||
// ограничивает частоту, а QML всё равно перечитывает их разом.
|
||||
Q_PROPERTY(bool downloading READ downloading NOTIFY downloadChanged)
|
||||
@@ -78,6 +85,9 @@ public:
|
||||
QVariantList versionCatalog() const;
|
||||
bool catalogLoading() const;
|
||||
|
||||
QVariantList javaCatalog() const;
|
||||
bool javaCatalogLoading() const;
|
||||
|
||||
bool downloading() const;
|
||||
double downloadProgress() const;
|
||||
QString downloadVersion() const;
|
||||
@@ -145,6 +155,16 @@ public:
|
||||
Q_INVOKABLE void updateSettings(const QVariantMap &values);
|
||||
Q_INVOKABLE QStringList detectedJava() const;
|
||||
|
||||
// ── Сборки Java ─────────────────────────────────────────────────────
|
||||
// Вызывается при открытии окна выбора: свежий кэш — без сети.
|
||||
Q_INVOKABLE void refreshJavaCatalog(bool force = false);
|
||||
Q_INVOKABLE void installJavaRuntime(const QString &runtimeId);
|
||||
Q_INVOKABLE void removeJavaRuntime(const QString &runtimeId);
|
||||
// Пусто — сборки с таким id в папке лаунчера нет.
|
||||
Q_INVOKABLE QVariantMap javaRuntimeInfo(const QString &runtimeId) const;
|
||||
// Минимальная Java для версии игры выбранной сборки; 0 — версия не выбрана.
|
||||
Q_INVOKABLE int requiredJavaMajor(int buildIndex) const;
|
||||
|
||||
Q_INVOKABLE void openMinecraftFolder();
|
||||
Q_INVOKABLE void openGameFolder();
|
||||
|
||||
@@ -160,8 +180,13 @@ signals:
|
||||
void busyChanged();
|
||||
void versionCatalogChanged();
|
||||
void catalogLoadingChanged();
|
||||
void javaCatalogChanged();
|
||||
void javaCatalogLoadingChanged();
|
||||
void downloadChanged();
|
||||
|
||||
// Сборка Java установлена: окно настроек обновляет подпись, не переоткрываясь.
|
||||
void javaRuntimeInstalled(const QString &runtimeId);
|
||||
|
||||
void launchProgress(const QString &message);
|
||||
void launched(const QString &profileName, const QString &buildName, const QString &serverUrl);
|
||||
void launchError(const QString &message);
|
||||
@@ -216,6 +241,13 @@ private:
|
||||
|
||||
void invalidateCatalog();
|
||||
void rebuildCatalog() const;
|
||||
void invalidateJavaCatalog();
|
||||
void rebuildJavaCatalog() const;
|
||||
// Панель загрузки занята установкой Java, а не версии или модлоадера.
|
||||
bool javaDownloadShown() const;
|
||||
// Путь к java выбранной сборки из папки лаунчера. Пусто — сборка не выбрана
|
||||
// или ещё не скачана; тогда в дело идёт javaPath и автопоиск.
|
||||
QString managedJavaPath() const;
|
||||
// Версия выбрана, но её нет в .minecraft — ставим в фоне.
|
||||
void maybeInstall(const QString &versionId);
|
||||
|
||||
@@ -240,6 +272,8 @@ private:
|
||||
ModLoaderVersionService *m_loaderMeta;
|
||||
ModLoaderInstaller *m_loaderInstaller;
|
||||
BuildSwitcher *m_switcher;
|
||||
JavaRuntimeService *m_javaMeta;
|
||||
JavaInstaller *m_javaInstaller;
|
||||
|
||||
// Сборка, для которой сейчас ставится модлоадер: по её id находим запись,
|
||||
// когда установщик отчитается.
|
||||
@@ -250,6 +284,9 @@ private:
|
||||
mutable QVariantList m_catalog;
|
||||
mutable bool m_catalogDirty = true;
|
||||
|
||||
mutable QVariantList m_javaCatalog;
|
||||
mutable bool m_javaCatalogDirty = true;
|
||||
|
||||
bool m_busy = false;
|
||||
|
||||
// Состояние запуска, начатого до асинхронной авторизации.
|
||||
|
||||
Reference in New Issue
Block a user