45 lines
		
	
	
		
			970 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			970 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;
 | 
						|
};
 |