39 lines
886 B
C
39 lines
886 B
C
|
#pragma once
|
||
|
|
||
|
#include "FileSystem.h"
|
||
|
#include "pathmatcher/IPathMatcher.h"
|
||
|
#include "tasks/Task.h"
|
||
|
|
||
|
#include <QFuture>
|
||
|
#include <QFutureWatcher>
|
||
|
|
||
|
/*
|
||
|
* Migrate existing data from other MMC-like launchers.
|
||
|
*/
|
||
|
|
||
|
class DataMigrationTask : public Task {
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
explicit DataMigrationTask(QObject* parent, const QString& sourcePath, const QString& targetPath, const IPathMatcher::Ptr pathmatcher);
|
||
|
~DataMigrationTask() override = default;
|
||
|
|
||
|
protected:
|
||
|
virtual void executeTask() override;
|
||
|
|
||
|
protected slots:
|
||
|
void dryRunFinished();
|
||
|
void dryRunAborted();
|
||
|
void copyFinished();
|
||
|
void copyAborted();
|
||
|
|
||
|
private:
|
||
|
const QString& m_sourcePath;
|
||
|
const QString& m_targetPath;
|
||
|
const IPathMatcher::Ptr m_pathMatcher;
|
||
|
|
||
|
FS::copy m_copy;
|
||
|
int m_toCopy = 0;
|
||
|
QFuture<bool> m_copyFuture;
|
||
|
QFutureWatcher<bool> m_copyFutureWatcher;
|
||
|
};
|