mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-05 17:35:34 +08:00
Issue #77 Factor out parts of CDirectoryUtils into CSwiftDirectories
CDirectoryUtils is utilities for manipulating directories. CSwiftDirectories is getters that return directories used by swift.
This commit is contained in:
@@ -11,7 +11,6 @@
|
||||
#ifndef BLACKMISC_DIRECTORYUTILS_H
|
||||
#define BLACKMISC_DIRECTORYUTILS_H
|
||||
|
||||
#include "blackmisc/applicationinfo.h"
|
||||
#include "blackmisc/blackmiscexport.h"
|
||||
#include <QMap>
|
||||
#include <QSet>
|
||||
@@ -28,136 +27,13 @@ namespace BlackMisc
|
||||
class BLACKMISC_EXPORT CDirectoryUtils
|
||||
{
|
||||
public:
|
||||
//! File path and swift application
|
||||
using FilePerApplication = QMap<QString, CApplicationInfo>;
|
||||
|
||||
//! Returns the bin directory. On Windows/Linux this is the same directory as
|
||||
//! QCoreApplication::applicationDirPath(), but on MacOS the exceutable is
|
||||
//! located deeper in the hierarchy of the bundles
|
||||
//! \see https://dev.swift-project.org/w/dev/swiftpc/dirstructure/
|
||||
static const QString &binDirectory();
|
||||
|
||||
//! Path in application directory
|
||||
static bool isInApplicationDirectory(const QString &path);
|
||||
|
||||
//! Plugins directory
|
||||
static const QString &pluginsDirectory();
|
||||
|
||||
//! Audio plugins directory for Qt audio
|
||||
//! \remark contains the audio plugins
|
||||
static const QString &audioPluginDirectory();
|
||||
|
||||
//! The build directory
|
||||
//! \remark if is a local build
|
||||
static const QString &getXSwiftBusBuildDirectory();
|
||||
|
||||
//! The executable file path
|
||||
static QString executableFilePath(const QString &executable);
|
||||
|
||||
//! swift application data directory, contains 0..n swift installation directories
|
||||
//! \remark use CDirectoryUtils::normalizedApplicationDataDirectory for one specific version
|
||||
static const QString &applicationDataDirectory();
|
||||
|
||||
//! swift application data sub directories
|
||||
static const QFileInfoList &applicationDataDirectories();
|
||||
|
||||
//! number of data directories (including this version)
|
||||
static int applicationDataDirectoriesCount();
|
||||
|
||||
//! swift application data sub directories
|
||||
static QFileInfoList currentApplicationDataDirectories();
|
||||
|
||||
//! swift application data sub directories
|
||||
static QStringList applicationDataDirectoryList(bool withoutCurrent = false, bool decodedDirName = false);
|
||||
|
||||
//! swift application data sub directories with info if available
|
||||
static const FilePerApplication &applicationDataDirectoryMapWithoutCurrentVersion();
|
||||
|
||||
//! swift application data sub directories with info if available
|
||||
static FilePerApplication currentApplicationDataDirectoryMapWithoutCurrentVersion();
|
||||
|
||||
//! Other swift data directories
|
||||
static bool hasOtherSwiftDataDirectories();
|
||||
|
||||
//! Is MacOS application bundle?
|
||||
//! \remark: Means the currently running executable is a MacOS bundle, but not all our executables are bundles on MacOS
|
||||
static bool isMacOSAppBundle();
|
||||
|
||||
//! swift application data directory for one specific installation (a version)
|
||||
//! \remark use CDirectoryUtils::applicationDataDirectory for one all swift versions
|
||||
static const QString &normalizedApplicationDataDirectory();
|
||||
|
||||
//! Where resource files (static DB files, ...) etc are located
|
||||
//! \remark share not shared (do no mix)
|
||||
static const QString &shareDirectory();
|
||||
|
||||
//! The test data directory
|
||||
static const QString &shareTestDirectory();
|
||||
|
||||
//! The misc data directory
|
||||
static const QString &shareMiscDirectory();
|
||||
|
||||
//! FSX/P3D terrain probe
|
||||
static const QString &shareTerrainProbeDirectory();
|
||||
|
||||
//! Matching script examples directories
|
||||
static const QString &shareMatchingScriptDirectory();
|
||||
|
||||
//! Bootstrap file name
|
||||
static const QString &bootstrapFileName();
|
||||
|
||||
//! Bootstrap resource file path
|
||||
static const QString &bootstrapResourceFilePath();
|
||||
|
||||
//! Where static DB files are located
|
||||
static const QString &staticDbFilesDirectory();
|
||||
|
||||
//! Where sound files are located
|
||||
static const QString &soundFilesDirectory();
|
||||
|
||||
//! Where qss files are located
|
||||
static const QString &stylesheetsDirectory();
|
||||
|
||||
//! Where images are located
|
||||
static const QString &imagesDirectory();
|
||||
|
||||
//! Where airline images are located
|
||||
static const QString &imagesAirlinesDirectory();
|
||||
|
||||
//! Where flags images are located
|
||||
static const QString &imagesFlagsDirectory();
|
||||
|
||||
//! Where HTML files are located
|
||||
static const QString &htmlDirectory();
|
||||
|
||||
//! Where Legal files are located
|
||||
static const QString &legalDirectory();
|
||||
|
||||
//! The about document file location
|
||||
static const QString &aboutFilePath();
|
||||
|
||||
//! Where test files are located
|
||||
static const QString &testFilesDirectory();
|
||||
|
||||
//! HTML template
|
||||
static const QString &htmlTemplateFilePath();
|
||||
|
||||
//! Directory where data can be stored
|
||||
static const QString &documentationDirectory();
|
||||
|
||||
//! Directory for log files
|
||||
//! \remark In BlackMisc so it can also be used from BlackMisc classes
|
||||
static const QString &logDirectory();
|
||||
|
||||
//! Directory for crashpad files
|
||||
static const QString &crashpadDirectory();
|
||||
|
||||
//! Directory for crashpad database files
|
||||
static const QString &crashpadDatabaseDirectory();
|
||||
|
||||
//! Directory for crashpad metrics files
|
||||
static const QString &crashpadMetricsDirectory();
|
||||
|
||||
//! Virtually the inverse operation of CDirectoryUtils::normalizedApplicationDirectory
|
||||
static QString decodeNormalizedDirectory(const QString &directory);
|
||||
|
||||
@@ -167,9 +43,6 @@ namespace BlackMisc
|
||||
//! Any file with filter like "*.txt"
|
||||
static bool containsFileInDir(const QString &dir, const QString &filter, bool recursively);
|
||||
|
||||
//! Check if the (most important) runtime directories are available
|
||||
static QStringList verifyRuntimeDirectoriesAndFiles();
|
||||
|
||||
//! Exists directory and does it contains files
|
||||
static bool existsUnemptyDirectory(const QString &testDir);
|
||||
|
||||
@@ -226,11 +99,6 @@ namespace BlackMisc
|
||||
static DirComparison compareTwoDirectories(const QString &dirSource, const QString &dirTarget, bool nestedDirs);
|
||||
|
||||
private:
|
||||
//! Returns the application directory of the calling executable as normalized string.
|
||||
//! \note There is no trailing '/'.
|
||||
//! \warning The normalization rules are implementation specific and could change over time.
|
||||
static const QString &normalizedApplicationDirectory();
|
||||
|
||||
//! Convert filenames to set
|
||||
static QSet<QString> fileNamesToQSet(const QFileInfoList &fileInfoList);
|
||||
|
||||
@@ -239,6 +107,9 @@ namespace BlackMisc
|
||||
|
||||
//! File to canonical names
|
||||
static const QSet<QString> filesToCanonicalNames(const QSet<QString> &fileNames, const QSet<QString> &canonicalFileNames);
|
||||
|
||||
//! Can connect the UNC machine
|
||||
static bool canPingUncMachine(const QString &machine);
|
||||
};
|
||||
} // ns
|
||||
|
||||
|
||||
Reference in New Issue
Block a user