
Instead of just checking if the new version started, make sure it is able to write its IPC key to a file and then use the key to connect to the process.
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;
|
|
};
|