mirror of
https://github.com/MultiMC/MultiMC5.git
synced 2024-12-27 03:14:49 +00:00
45 lines
859 B
C
45 lines
859 B
C
|
#pragma once
|
||
|
|
||
|
#include <QString>
|
||
|
#include <QList>
|
||
|
#include <updater/GoUpdate.h>
|
||
|
|
||
|
class QWidget;
|
||
|
|
||
|
class UpdateController
|
||
|
{
|
||
|
public:
|
||
|
UpdateController(QWidget * parent, const QString &root, const QString updateFilesDir, GoUpdate::OperationList operations);
|
||
|
void installUpdates();
|
||
|
|
||
|
private:
|
||
|
void fail();
|
||
|
bool rollback();
|
||
|
|
||
|
private:
|
||
|
QString m_root;
|
||
|
QString m_updateFilesDir;
|
||
|
GoUpdate::OperationList m_operations;
|
||
|
QWidget * m_parent;
|
||
|
|
||
|
struct BackupEntry
|
||
|
{
|
||
|
// path where we got the new file from
|
||
|
QString update;
|
||
|
// path of what is being actually updated
|
||
|
QString original;
|
||
|
// path where the backup of the updated file was placed
|
||
|
QString backup;
|
||
|
};
|
||
|
QList <BackupEntry> m_replace_backups;
|
||
|
QList <BackupEntry> m_delete_backups;
|
||
|
enum Failure
|
||
|
{
|
||
|
Replace,
|
||
|
Delete,
|
||
|
Start,
|
||
|
Nothing
|
||
|
} m_failedOperationType = Nothing;
|
||
|
QString m_failedFile;
|
||
|
};
|