cleanups
This commit is contained in:
+1
-35
@@ -7,15 +7,6 @@
|
||||
|
||||
class QThread;
|
||||
class BuildArchiveWorker;
|
||||
|
||||
// Смена активной сборки: содержимое .minecraft уезжает в архив своей сборки,
|
||||
// папка чистится, на её место разворачивается архив выбранной.
|
||||
//
|
||||
// Порядок шагов подчинён одному правилу: пока новый архив не записан целиком и
|
||||
// не переименован на место, из .minecraft не удаляется ничего. Отметка о
|
||||
// начатом переключении пишется в builds/index.json до первого разрушающего
|
||||
// действия, поэтому обрыв питания или kill -9 всегда обнаружим на следующем
|
||||
// запуске — см. recoverIfNeeded().
|
||||
class BuildSwitcher : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -27,9 +18,7 @@ public:
|
||||
bool isRunning() const { return m_state != Idle; }
|
||||
QString stage() const { return m_stage; }
|
||||
QString status() const { return m_status; }
|
||||
double fraction() const; // 0..1, либо -1 пока итог неизвестен
|
||||
|
||||
// Общие для всех сборок каталоги: они не архивируются и не чистятся.
|
||||
double fraction() const;
|
||||
static QStringList sharedTopLevel();
|
||||
|
||||
void switchTo(int fromBuildId,
|
||||
@@ -38,14 +27,6 @@ public:
|
||||
const QString &toName,
|
||||
const QString &gameDir);
|
||||
|
||||
// Докатывает пак сезонной сборки поверх содержимого .minecraft. Вызывается
|
||||
// только для уже активной сборки: пак ложится на то, что сейчас разложено,
|
||||
// а не внутрь чужого архива.
|
||||
//
|
||||
// note — непрозрачные данные вызывающей стороны: они переживают перезапуск
|
||||
// вместе с отметкой о незавершённой операции и возвращаются через
|
||||
// lastPackNote(), когда раскатка доиграна. Сам переключатель в них не
|
||||
// заглядывает.
|
||||
void applyPack(int buildId,
|
||||
const QString &buildName,
|
||||
const QString &packZipPath,
|
||||
@@ -53,23 +34,13 @@ public:
|
||||
const QJsonObject ¬e,
|
||||
const QString &gameDir);
|
||||
|
||||
// Что принёс последний успешно раскатанный пак и с чем он пришёл.
|
||||
QStringList lastPackEntries() const { return m_lastPackEntries; }
|
||||
QJsonObject lastPackNote() const { return m_lastPackNote; }
|
||||
|
||||
void cancel();
|
||||
|
||||
// Сборку удалили: убираем её архив и запись о нём. Возвращает false, если
|
||||
// папку архива не удалось удалить целиком.
|
||||
bool forgetBuild(int buildId);
|
||||
|
||||
// Есть ли у сборки сохранённый архив (для текста предупреждения об удалении).
|
||||
bool hasArchive(int buildId) const { return !archivePathOf(buildId).isEmpty(); }
|
||||
|
||||
// Незавершённое переключение с прошлого запуска. Возвращает пустую строку,
|
||||
// если всё в порядке, иначе — текст для пользователя.
|
||||
QString interruptedSwitchWarning() const;
|
||||
// Доигрывает прерванное переключение: очистка и распаковка целевой сборки.
|
||||
void resumeInterrupted(const QString &gameDir);
|
||||
|
||||
signals:
|
||||
@@ -79,8 +50,6 @@ signals:
|
||||
|
||||
private:
|
||||
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);
|
||||
@@ -123,9 +92,6 @@ private:
|
||||
QString m_toName;
|
||||
QString m_gameDir;
|
||||
QString m_tempZip;
|
||||
|
||||
// Раскатка пака: путь к архиву, список уходящих файлов и данные вызывающей
|
||||
// стороны, которые надо вернуть по завершении.
|
||||
QString m_packPath;
|
||||
QStringList m_packRemove;
|
||||
QJsonObject m_packNote;
|
||||
|
||||
Reference in New Issue
Block a user