Ref T357, function to copy FSX terrain probe, also in context for remote UI

This commit is contained in:
Klaus Basan
2018-09-17 02:53:49 +02:00
parent 73c4af4c6d
commit 57178c75f9
8 changed files with 93 additions and 4 deletions

View File

@@ -7,9 +7,10 @@
* contained in the LICENSE file.
*/
#include "blackconfig/buildconfig.h"
#include "blackmisc/fileutils.h"
#include "blackmisc/simulation/fscommon/fscommonutil.h"
#include "blackmisc/directoryutils.h"
#include "blackmisc/fileutils.h"
#include "blackconfig/buildconfig.h"
#include <QDir>
#include <QList>
@@ -347,6 +348,44 @@ namespace BlackMisc
}
return false;
}
int CFsCommonUtil::copyFsxTerrainProbeFiles(const QString &simObjectDir, CStatusMessageList &messages)
{
static const CLogCategoryList cats({ CLogCategory::validation(), CLogCategory::driver() });
messages.clear();
if (!CDirectoryUtils::existsUnemptyDirectory(CDirectoryUtils::shareTerrainProbeDirectory()))
{
messages.push_back(CStatusMessage(cats, CStatusMessage::SeverityError, QString("No terrain probe source files in '%1'").arg(CDirectoryUtils::shareTerrainProbeDirectory())));
return -1;
}
if (simObjectDir.isEmpty())
{
messages.push_back(CStatusMessage(cats, CStatusMessage::SeverityError, "No simObject directory"));
return -1;
}
QString targetDir = CFileUtils::appendFilePathsAndFixUnc(simObjectDir, "Misc");
QDir td(targetDir);
if (!td.exists())
{
messages.push_back(CStatusMessage(cats, CStatusMessage::SeverityError, QString("Cannot access target directory '%1'").arg(targetDir)));
return -1;
}
const QString lastSegment = CFileUtils::lastPathSegment(CDirectoryUtils::shareTerrainProbeDirectory());
targetDir = CFileUtils::appendFilePathsAndFixUnc(targetDir, lastSegment);
const bool hasDir = td.mkpath(targetDir);
if (!hasDir)
{
messages.push_back(CStatusMessage(cats, CStatusMessage::SeverityError, QString("Cannot create target directory '%1'").arg(targetDir)));
return -1;
}
const int copied = CDirectoryUtils::copyDirectoryRecursively(CDirectoryUtils::shareTerrainProbeDirectory(), targetDir, true);
messages.push_back(CStatusMessage(cats, CStatusMessage::SeverityInfo, QString("Copied %1 files from '%2' to '%3'").arg(copied).arg(CDirectoryUtils::shareTerrainProbeDirectory(), targetDir)));
return copied;
}
} // namespace
} // namespace
} // namespace

View File

@@ -90,6 +90,9 @@ namespace BlackMisc
//! Adjust file directory
static bool adjustFileDirectory(CAircraftModel &model, const QStringList &simObjectsDirectories);
//! Copy the terrain probe
static int copyFsxTerrainProbeFiles(const QString &simObjectDir, CStatusMessageList &messages);
};
} // namespace
} // namespace