spelling and formatting
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
This commit is contained in:
@ -1,10 +1,10 @@
|
||||
#include "InstanceCopyTask.h"
|
||||
#include "settings/INISettingsObject.h"
|
||||
#include <QDebug>
|
||||
#include <QtConcurrentRun>
|
||||
#include "FileSystem.h"
|
||||
#include "NullInstance.h"
|
||||
#include "pathmatcher/RegexpMatcher.h"
|
||||
#include <QtConcurrentRun>
|
||||
#include <QDebug>
|
||||
#include "settings/INISettingsObject.h"
|
||||
|
||||
InstanceCopyTask::InstanceCopyTask(InstancePtr origInstance, const InstanceCopyPrefs& prefs)
|
||||
{
|
||||
@ -15,17 +15,17 @@ InstanceCopyTask::InstanceCopyTask(InstancePtr origInstance, const InstanceCopyP
|
||||
m_useHardLinks = prefs.isLinkRecursivelyEnabled() && prefs.isUseHardLinksEnabled();
|
||||
m_copySaves = prefs.isLinkRecursivelyEnabled() && prefs.isDontLinkSavesEnabled() && prefs.isCopySavesEnabled();
|
||||
m_useClone = prefs.isUseCloneEnabled();
|
||||
|
||||
|
||||
QString filters = prefs.getSelectedFiltersAsRegex();
|
||||
if (m_useLinks || m_useHardLinks) {
|
||||
if (!filters.isEmpty()) filters += "|";
|
||||
if (!filters.isEmpty())
|
||||
filters += "|";
|
||||
filters += "instance.cfg";
|
||||
}
|
||||
}
|
||||
|
||||
qDebug() << "CopyFilters:" << filters;
|
||||
|
||||
if (!filters.isEmpty())
|
||||
{
|
||||
if (!filters.isEmpty()) {
|
||||
// Set regex filter:
|
||||
// FIXME: get this from the original instance type...
|
||||
auto matcherReal = new RegexpMatcher(filters);
|
||||
@ -38,14 +38,14 @@ void InstanceCopyTask::executeTask()
|
||||
{
|
||||
setStatus(tr("Copying instance %1").arg(m_origInstance->name()));
|
||||
|
||||
auto copySaves = [&](){
|
||||
FS::copy savesCopy(FS::PathCombine(m_origInstance->instanceRoot(), "saves") , FS::PathCombine(m_stagingPath, "saves"));
|
||||
auto copySaves = [&]() {
|
||||
FS::copy savesCopy(FS::PathCombine(m_origInstance->instanceRoot(), "saves"), FS::PathCombine(m_stagingPath, "saves"));
|
||||
savesCopy.followSymlinks(true);
|
||||
|
||||
return savesCopy();
|
||||
};
|
||||
|
||||
m_copyFuture = QtConcurrent::run(QThreadPool::globalInstance(), [this, copySaves]{
|
||||
m_copyFuture = QtConcurrent::run(QThreadPool::globalInstance(), [this, copySaves] {
|
||||
if (m_useClone) {
|
||||
FS::clone folderClone(m_origInstance->instanceRoot(), m_stagingPath);
|
||||
folderClone.matcher(m_matcher.get());
|
||||
@ -53,22 +53,22 @@ void InstanceCopyTask::executeTask()
|
||||
return folderClone();
|
||||
} else if (m_useLinks || m_useHardLinks) {
|
||||
FS::create_link folderLink(m_origInstance->instanceRoot(), m_stagingPath);
|
||||
int depth = m_linkRecursively ? -1 : 0; // we need to at least link the top level instead of the instance folder
|
||||
int depth = m_linkRecursively ? -1 : 0; // we need to at least link the top level instead of the instance folder
|
||||
folderLink.linkRecursively(true).setMaxDepth(depth).useHardLinks(m_useHardLinks).matcher(m_matcher.get());
|
||||
|
||||
bool there_were_errors = false;
|
||||
|
||||
if(!folderLink()){
|
||||
if (!folderLink()) {
|
||||
#if defined Q_OS_WIN32
|
||||
if (!m_useHardLinks) {
|
||||
qDebug() << "EXPECTED: Link failure, Windows requires permissions for symlinks";
|
||||
|
||||
qDebug() << "atempting to run with privelage";
|
||||
qDebug() << "attempting to run with privelage";
|
||||
|
||||
QEventLoop loop;
|
||||
bool got_priv_results = false;
|
||||
|
||||
connect(&folderLink, &FS::create_link::finishedPrivileged, this, [&](bool gotResults){
|
||||
connect(&folderLink, &FS::create_link::finishedPrivileged, this, [&](bool gotResults) {
|
||||
if (!gotResults) {
|
||||
qDebug() << "Privileged run exited without results!";
|
||||
}
|
||||
@ -77,7 +77,7 @@ void InstanceCopyTask::executeTask()
|
||||
});
|
||||
folderLink.runPrivileged();
|
||||
|
||||
loop.exec(); // wait for the finished signal
|
||||
loop.exec(); // wait for the finished signal
|
||||
|
||||
for (auto result : folderLink.getResults()) {
|
||||
if (result.err_value != 0) {
|
||||
@ -88,17 +88,17 @@ void InstanceCopyTask::executeTask()
|
||||
if (m_copySaves) {
|
||||
there_were_errors |= !copySaves();
|
||||
}
|
||||
|
||||
|
||||
return got_priv_results && !there_were_errors;
|
||||
} else {
|
||||
qDebug() << "Link Failed!" << folderLink.getOSError().value() << folderLink.getOSError().message().c_str();
|
||||
}
|
||||
}
|
||||
#else
|
||||
qDebug() << "Link Failed!" << folderLink.getOSError().value() << folderLink.getOSError().message().c_str();
|
||||
#endif
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if (m_copySaves) {
|
||||
there_were_errors |= !copySaves();
|
||||
}
|
||||
@ -119,8 +119,7 @@ void InstanceCopyTask::executeTask()
|
||||
void InstanceCopyTask::copyFinished()
|
||||
{
|
||||
auto successful = m_copyFuture.result();
|
||||
if(!successful)
|
||||
{
|
||||
if (!successful) {
|
||||
emitFailed(tr("Instance folder copy failed."));
|
||||
return;
|
||||
}
|
||||
@ -130,7 +129,7 @@ void InstanceCopyTask::copyFinished()
|
||||
InstancePtr inst(new NullInstance(m_globalSettings, instanceSettings, m_stagingPath));
|
||||
inst->setName(name());
|
||||
inst->setIconKey(m_instIcon);
|
||||
if(!m_keepPlaytime) {
|
||||
if (!m_keepPlaytime) {
|
||||
inst->resetTimePlayed();
|
||||
}
|
||||
if (m_useLinks)
|
||||
|
Reference in New Issue
Block a user