#pragma once #include "FileSystem.h" #include "pathmatcher/IPathMatcher.h" #include "tasks/Task.h" #include #include /* * 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 m_copyFuture; QFutureWatcher m_copyFutureWatcher; };