diff options
-rw-r--r-- | api/logic/InstanceCopyTask.cpp | 16 | ||||
-rw-r--r-- | api/logic/InstanceCopyTask.h | 2 |
2 files changed, 8 insertions, 10 deletions
diff --git a/api/logic/InstanceCopyTask.cpp b/api/logic/InstanceCopyTask.cpp index 3150c383..20c09907 100644 --- a/api/logic/InstanceCopyTask.cpp +++ b/api/logic/InstanceCopyTask.cpp @@ -14,24 +14,22 @@ InstanceCopyTask::InstanceCopyTask(SettingsObjectPtr settings, BaseInstanceProvi m_instName = instName; m_instIcon = instIcon; m_instGroup = instGroup; - m_copySaves = copySaves; -} -void InstanceCopyTask::executeTask() -{ - setStatus(tr("Copying instance %1").arg(m_origInstance->name())); - std::unique_ptr<IPathMatcher> matcher; - if(!m_copySaves) + if(!copySaves) { // FIXME: get this from the original instance type... auto matcherReal = new RegexpMatcher("[.]?minecraft/saves"); matcherReal->caseSensitive(false); - matcher.reset(matcherReal); + m_matcher.reset(matcherReal); } +} +void InstanceCopyTask::executeTask() +{ + setStatus(tr("Copying instance %1").arg(m_origInstance->name())); m_stagingPath = m_target->getStagedInstancePath(); FS::copy folderCopy(m_origInstance->instanceRoot(), m_stagingPath); - folderCopy.followSymlinks(false).blacklist(matcher.get()); + folderCopy.followSymlinks(false).blacklist(m_matcher.get()); m_copyFuture = QtConcurrent::run(QThreadPool::globalInstance(), folderCopy); connect(&m_copyFutureWatcher, &QFutureWatcher<bool>::finished, this, &InstanceCopyTask::copyFinished); diff --git a/api/logic/InstanceCopyTask.h b/api/logic/InstanceCopyTask.h index 1ecf8313..28fd3f40 100644 --- a/api/logic/InstanceCopyTask.h +++ b/api/logic/InstanceCopyTask.h @@ -34,9 +34,9 @@ private: /* data */ QString m_instIcon; QString m_instGroup; QString m_stagingPath; - bool m_copySaves = false; QFuture<bool> m_copyFuture; QFutureWatcher<bool> m_copyFutureWatcher; + std::unique_ptr<IPathMatcher> m_matcher; }; |