Ref T252, utility functions for simulator directories

This commit is contained in:
Klaus Basan
2018-02-15 22:31:26 +01:00
parent 1970ae9f9b
commit b01119cc1b
4 changed files with 51 additions and 22 deletions

View File

@@ -205,6 +205,12 @@ namespace BlackMisc
return dir;
}
QString CFsCommonUtil::p3dSimObjectsDirFromSimDir(const QString &simDir)
{
if (simDir.isEmpty()) { return QStringLiteral(""); }
return CFileUtils::appendFilePaths(simDir, "SimObjects");
}
const QStringList &CFsCommonUtil::p3dSimObjectsExcludeDirectoryPatterns()
{
static const QStringList exclude

View File

@@ -61,6 +61,9 @@ namespace BlackMisc
//! P3D's sim object dir, resolved from multiple sources
static const QString &p3dSimObjectsDir();
//! P3D aircraft dir, relative to simulator directory
static QString p3dSimObjectsDirFromSimDir(const QString &simDir);
//! Exclude directories for simObjects
static const QStringList &p3dSimObjectsExcludeDirectoryPatterns();

View File

@@ -101,25 +101,38 @@ namespace BlackMisc
#endif
}
QString CXPlaneUtil::xplaneRootDir()
const QString &CXPlaneUtil::xplaneRootDir()
{
if (!xplane11Dir().isEmpty()) { return xplane11Dir(); }
else if (!xplane10Dir().isEmpty()) { return xplane10Dir(); }
else if (!xplane9Dir().isEmpty()) { return xplane9Dir(); }
else { return {}; }
static const QString dir = []
{
if (!xplane11Dir().isEmpty()) { return xplane11Dir(); }
else if (!xplane10Dir().isEmpty()) { return xplane10Dir(); }
else if (!xplane9Dir().isEmpty()) { return xplane9Dir(); }
else { return QString(); }
}();
return dir;
}
bool CXPlaneUtil::isXplaneRootDirExisting()
{
const QDir dir(xplaneRootDir());
return dir.exists();
static const bool exists = QDir(xplaneRootDir()).exists();
return exists;
}
QString CXPlaneUtil::xplanePluginDir()
const QString &CXPlaneUtil::xplanePluginDir()
{
const QString xp = xplaneRootDir();
if (xp.isEmpty()) { return xp; }
return CFileUtils::appendFilePaths(xp, xplanePluginPath());
static const QString pd(xplaneRootDir().isEmpty() ? "" : CFileUtils::appendFilePaths(xplaneRootDir(), xplanePluginPath()));
return pd;
}
QString CXPlaneUtil::pluginDirFromSimDir(const QString &simulatorDir)
{
return CFileUtils::appendFilePaths(simulatorDir, xplanePluginPath());
}
QStringList CXPlaneUtil::modelDirectoriesFromSimDir(const QString &simulatorDir)
{
return QStringList({ simulatorDir });
}
QString CXPlaneUtil::xplanePluginPath()
@@ -130,19 +143,20 @@ namespace BlackMisc
bool CXPlaneUtil::isXplanePluginDirDirExisting()
{
const QDir dir(xplanePluginDir());
return dir.exists();
static const bool exists = QDir(xplanePluginDir()).exists();
return exists;
}
QStringList CXPlaneUtil::xplaneModelDirectories()
const QStringList &CXPlaneUtil::xplaneModelDirectories()
{
if (xplaneRootDir().isEmpty()) { return QStringList(); }
return QStringList({ xplaneRootDir() });
static const QStringList dirs = xplaneRootDir().isEmpty() ? QStringList() : QStringList({xplaneRootDir()});
return dirs;
}
QStringList CXPlaneUtil::xplaneModelExcludeDirectoryPatterns()
const QStringList &CXPlaneUtil::xplaneModelExcludeDirectoryPatterns()
{
return QStringList();
static const QStringList empty;
return empty;
}
QString CXPlaneUtil::xswiftbusLegacyDir(const QString &rootDir)

View File

@@ -40,14 +40,20 @@ namespace BlackMisc
//! XPlane root directory
//! In case more then one XPlane version is found, the path to the highest version is used
static QString xplaneRootDir();
static const QString &xplaneRootDir();
//! Is the xplaneRootDir existing?
static bool isXplaneRootDirExisting();
//! XPlane plugin directory
//! In case more then one XPlane version is found, the path to the highest version is used
static QString xplanePluginDir();
static const QString &xplanePluginDir();
//! Plugin directory from given simulator directory
static QString pluginDirFromSimDir(const QString &simulatorDir);
//! Model directories from simultaor directory
static QStringList modelDirectoriesFromSimDir(const QString &simulatorDir);
//! XPlane relative plugin path
static QString xplanePluginPath();
@@ -56,10 +62,10 @@ namespace BlackMisc
static bool isXplanePluginDirDirExisting();
//! Directories with models
static QStringList xplaneModelDirectories();
static const QStringList &xplaneModelDirectories();
//! Exclude directories for models
static QStringList xplaneModelExcludeDirectoryPatterns();
static const QStringList &xplaneModelExcludeDirectoryPatterns();
//! XSwiftBus legacy directory
static QString xswiftbusLegacyDir(const QString &rootDir);