seasonal builds
This commit is contained in:
+35
-1
@@ -37,6 +37,26 @@ public:
|
||||
int toBuildId,
|
||||
const QString &toName,
|
||||
const QString &gameDir);
|
||||
|
||||
// Докатывает пак сезонной сборки поверх содержимого .minecraft. Вызывается
|
||||
// только для уже активной сборки: пак ложится на то, что сейчас разложено,
|
||||
// а не внутрь чужого архива.
|
||||
//
|
||||
// note — непрозрачные данные вызывающей стороны: они переживают перезапуск
|
||||
// вместе с отметкой о незавершённой операции и возвращаются через
|
||||
// lastPackNote(), когда раскатка доиграна. Сам переключатель в них не
|
||||
// заглядывает.
|
||||
void applyPack(int buildId,
|
||||
const QString &buildName,
|
||||
const QString &packZipPath,
|
||||
const QStringList &removeRelative,
|
||||
const QJsonObject ¬e,
|
||||
const QString &gameDir);
|
||||
|
||||
// Что принёс последний успешно раскатанный пак и с чем он пришёл.
|
||||
QStringList lastPackEntries() const { return m_lastPackEntries; }
|
||||
QJsonObject lastPackNote() const { return m_lastPackNote; }
|
||||
|
||||
void cancel();
|
||||
|
||||
// Сборку удалили: убираем её архив и запись о нём. Возвращает false, если
|
||||
@@ -58,17 +78,23 @@ signals:
|
||||
void failed(int toBuildId, const QString &message, bool gameDirIntact);
|
||||
|
||||
private:
|
||||
enum State { Idle, Archiving, Clearing, Restoring };
|
||||
enum State { Idle, Archiving, Clearing, Restoring, Applying };
|
||||
|
||||
// Сигналы к рабочему объекту в другом потоке.
|
||||
void requestArchive(const QString &gameDir, const QString &tempZip, const QStringList &exclude);
|
||||
void requestClear(const QString &gameDir, const QStringList &keep);
|
||||
void requestRestore(const QString &zipPath, const QString &gameDir);
|
||||
void requestApplyPack(const QString &zipPath,
|
||||
const QString &gameDir,
|
||||
const QStringList &remove);
|
||||
|
||||
void onWorkerFinished(bool ok, const QString &error);
|
||||
void onWorkerProgress(int done, int total, const QString ¤tPath);
|
||||
|
||||
void commitArchive();
|
||||
void beginApplying();
|
||||
void finishApplying();
|
||||
void resumeApplying(const QJsonObject &index, const QString &gameDir);
|
||||
void beginClearing();
|
||||
void beginRestoring();
|
||||
void finish();
|
||||
@@ -97,4 +123,12 @@ private:
|
||||
QString m_toName;
|
||||
QString m_gameDir;
|
||||
QString m_tempZip;
|
||||
|
||||
// Раскатка пака: путь к архиву, список уходящих файлов и данные вызывающей
|
||||
// стороны, которые надо вернуть по завершении.
|
||||
QString m_packPath;
|
||||
QStringList m_packRemove;
|
||||
QJsonObject m_packNote;
|
||||
QStringList m_lastPackEntries;
|
||||
QJsonObject m_lastPackNote;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user