cleanups
This commit is contained in:
+1
-20
@@ -18,12 +18,8 @@ class QNetworkReply;
|
||||
class QProcess;
|
||||
class QSaveFile;
|
||||
class QTimer;
|
||||
|
||||
// Состояние распаковки zip. Спрятано в .cpp, чтобы приватный заголовок
|
||||
// QZipReader не расходился по проекту вместе с этим.
|
||||
struct ZipExtraction;
|
||||
|
||||
// Один файл рантайма Mojang.
|
||||
struct JavaFileTask
|
||||
{
|
||||
QUrl url;
|
||||
@@ -34,7 +30,6 @@ struct JavaFileTask
|
||||
int attempts = 0;
|
||||
};
|
||||
|
||||
// Файл в процессе скачивания. Пишем потоком: рантайм — это две сотни мегабайт.
|
||||
struct JavaActiveDownload
|
||||
{
|
||||
JavaFileTask task;
|
||||
@@ -44,15 +39,6 @@ struct JavaActiveDownload
|
||||
qint64 received = 0;
|
||||
};
|
||||
|
||||
// Установка сборки Java в <root>/java/<id>. Два разных пути под одним фасадом:
|
||||
//
|
||||
// * Temurin отдаёт один архив — качаем, сверяем sha256 и распаковываем;
|
||||
//
|
||||
// * Mojang отдаёт манифест с деревом файлов — качаем файлы по отдельности,
|
||||
// как это делает официальный лаунчер.
|
||||
//
|
||||
// Набор геттеров повторяет VersionInstaller: панель загрузки в интерфейсе
|
||||
// читает их одинаково, независимо от того, кто сейчас работает.
|
||||
class JavaInstaller : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -67,8 +53,6 @@ public:
|
||||
QString stage() const { return m_stage; }
|
||||
QString currentFile() const { return m_currentFile; }
|
||||
|
||||
// Байты считаются только на загрузке: на распаковке считать нечего, и панель
|
||||
// по нулевому итогу сама прячет мегабайты.
|
||||
qint64 bytesDone() const;
|
||||
qint64 bytesTotal() const { return m_bytesTotal; }
|
||||
double fraction() const; // 0..1, либо -1 пока итог неизвестен
|
||||
@@ -122,7 +106,6 @@ private:
|
||||
qint64 m_bytesSettled = 0;
|
||||
qint64 m_bytesTotal = 0;
|
||||
|
||||
// Шаги распаковки: у архива — записи внутри него, у Mojang — файлы дерева.
|
||||
int m_stepsDone = 0;
|
||||
int m_stepsTotal = 0;
|
||||
|
||||
@@ -135,13 +118,11 @@ private:
|
||||
QTimer *m_progressTimer;
|
||||
bool m_progressDirty = false;
|
||||
|
||||
// Распаковка zip по кускам: держать GUI-поток занятым на всю сотню
|
||||
// мегабайт нельзя, а поток ради одной операции заводить незачем.
|
||||
std::unique_ptr<ZipExtraction> m_zip;
|
||||
|
||||
QQueue<JavaFileTask> m_queue;
|
||||
QList<std::shared_ptr<JavaActiveDownload>> m_active;
|
||||
QList<QPair<QString, QString>> m_links; // {абсолютный путь ссылки, цель}
|
||||
QList<QPair<QString, QString>> m_links;
|
||||
|
||||
bool m_running = false;
|
||||
bool m_canceling = false;
|
||||
|
||||
Reference in New Issue
Block a user