Ref T660, P3D SimObjects folder validation preparations

This commit is contained in:
Klaus Basan
2019-06-05 20:08:23 +02:00
committed by Mat Sutcliffe
parent 1839c77ab9
commit 8082b4c7df
5 changed files with 23 additions and 11 deletions

View File

@@ -1395,7 +1395,7 @@ namespace BlackMisc
return msgs; return msgs;
} }
CStatusMessageList CAircraftModelList::validateFiles(CAircraftModelList &validModels, CAircraftModelList &invalidModels, bool ignoreEmpty, int stopAtFailedFiles, bool &stopped, const QString &rootDirectory, bool alreadySortedByFn) const CStatusMessageList CAircraftModelList::validateFiles(CAircraftModelList &validModels, CAircraftModelList &invalidModels, bool ignoreEmptyFileNames, int stopAtFailedFiles, bool &stopped, const QString &rootDirectory, bool alreadySortedByFn) const
{ {
invalidModels.clear(); invalidModels.clear();
validModels.clear(); validModels.clear();
@@ -1430,7 +1430,7 @@ namespace BlackMisc
if (!model.hasFileName()) if (!model.hasFileName())
{ {
if (ignoreEmpty) { continue; } if (ignoreEmptyFileNames) { continue; }
msgs.push_back(CStatusMessage(this).validationError(u"'%1', no file name") << model.getModelStringAndDbKey()); msgs.push_back(CStatusMessage(this).validationError(u"'%1', no file name") << model.getModelStringAndDbKey());
break; break;
} }

View File

@@ -478,7 +478,7 @@ namespace BlackMisc
CStatusMessageList validateDistributors(const CDistributorList &distributors, CAircraftModelList &validModels, CAircraftModelList &invalidModels) const; CStatusMessageList validateDistributors(const CDistributorList &distributors, CAircraftModelList &validModels, CAircraftModelList &invalidModels) const;
//! Validate files (file exists etc.) //! Validate files (file exists etc.)
CStatusMessageList validateFiles(CAircraftModelList &validModels, CAircraftModelList &invalidModels, bool ignoreEmpty, int stopAtFailedFiles, bool &stopped, const QString &rootDirectory, bool alreadySortedByFn = false) const; CStatusMessageList validateFiles(CAircraftModelList &validModels, CAircraftModelList &invalidModels, bool ignoreEmptyFileNames, int stopAtFailedFiles, bool &stopped, const QString &rootDirectory, bool alreadySortedByFn = false) const;
//! To compact JSON format //! To compact JSON format
QJsonObject toMemoizedJson() const; QJsonObject toMemoizedJson() const;

View File

@@ -166,7 +166,10 @@ namespace BlackMisc
CStatusMessageList specificTests; CStatusMessageList specificTests;
if (models.isLikelyFsFamilyModelList()) if (models.isLikelyFsFamilyModelList())
{ {
specificTests = FsCommon::CFsCommonUtil::validateConfigFiles(models, validModels, invalidModels, ignoreEmpty, stopAtFailedFiles, stopped); const CStatusMessageList specificTests1 = FsCommon::CFsCommonUtil::validateConfigFiles(models, validModels, invalidModels, ignoreEmpty, stopAtFailedFiles, stopped);
const CStatusMessageList specificTests2 = FsCommon::CFsCommonUtil::validateP3DSimObjectsPath(models, validModels, invalidModels, ignoreEmpty, stopAtFailedFiles, stopped);
specificTests.push_back(specificTests1);
specificTests.push_back(specificTests2);
} }
else if (models.isLikelyXPlaneModelList()) else if (models.isLikelyXPlaneModelList())
{ {

View File

@@ -215,10 +215,10 @@ namespace BlackMisc
return dir; return dir;
} }
QStringList CFsCommonUtil::p3dSimObjectsDirPlusAddOnSimObjectsDirs(const QString &simObjectsDir) QStringList CFsCommonUtil::p3dSimObjectsDirPlusAddOnSimObjectsDirs(const QString &simObjectsDir, const QString &versionHint)
{ {
// finding the user settings only works on P3D machine // finding the user settings only works on P3D machine
const QSet<QString> allP3dAddOnSimObjectPaths = CFsCommonUtil::allP3dAddOnSimObjectPaths("v4"); const QSet<QString> allP3dAddOnSimObjectPaths = CFsCommonUtil::allP3dAddOnSimObjectPaths(versionHint);
QStringList all(allP3dAddOnSimObjectPaths.toList()); QStringList all(allP3dAddOnSimObjectPaths.toList());
all.push_front(simObjectsDir.isEmpty() ? p3dSimObjectsDir() : simObjectsDir); all.push_front(simObjectsDir.isEmpty() ? p3dSimObjectsDir() : simObjectsDir);
all.sort(Qt::CaseInsensitive); all.sort(Qt::CaseInsensitive);
@@ -542,13 +542,13 @@ namespace BlackMisc
return paths; return paths;
} }
CStatusMessageList CFsCommonUtil::validateConfigFiles(const CAircraftModelList &models, CAircraftModelList &validModels, CAircraftModelList &invalidModels, bool ignoreEmpty, int stopAtFailedFiles, bool &stopped) CStatusMessageList CFsCommonUtil::validateConfigFiles(const CAircraftModelList &models, CAircraftModelList &validModels, CAircraftModelList &invalidModels, bool ignoreEmptyFileNames, int stopAtFailedFiles, bool &stopped)
{ {
CAircraftModelList sorted(models); CAircraftModelList sorted(models);
CStatusMessage m; CStatusMessage m;
sorted.sortByFileName(); sorted.sortByFileName();
stopped = false; stopped = false;
CStatusMessageList msgs = sorted.validateFiles(validModels, invalidModels, ignoreEmpty, stopAtFailedFiles, stopped, "", true); CStatusMessageList msgs = sorted.validateFiles(validModels, invalidModels, ignoreEmptyFileNames, stopAtFailedFiles, stopped, "", true);
if (stopped || validModels.isEmpty()) { return msgs; } if (stopped || validModels.isEmpty()) { return msgs; }
const CAircraftModelList nonFsModels = validModels.findNonFsFamilyModels(); const CAircraftModelList nonFsModels = validModels.findNonFsFamilyModels();
@@ -603,6 +603,11 @@ namespace BlackMisc
// finished // finished
return msgs; return msgs;
} }
CStatusMessageList CFsCommonUtil::validateP3DSimObjectsPath(const CAircraftModelList &models, CAircraftModelList &validModels, CAircraftModelList &invalidModels, bool ignoreEmptyFileNames, int stopAtFailedFiles, bool &stopped)
{
return {};
}
} // namespace } // namespace
} // namespace } // namespace
} // namespace } // namespace

View File

@@ -65,7 +65,7 @@ namespace BlackMisc
static const QString &p3dSimObjectsDir(); static const QString &p3dSimObjectsDir();
//! P3D's simObject dir and the add on dirs //! P3D's simObject dir and the add on dirs
static QStringList p3dSimObjectsDirPlusAddOnSimObjectsDirs(const QString &simObjectsDir = ""); static QStringList p3dSimObjectsDirPlusAddOnSimObjectsDirs(const QString &simObjectsDir = "", const QString &versionHint = "v4");
//! P3D aircraft dir, relative to simulator directory //! P3D aircraft dir, relative to simulator directory
static QString p3dSimObjectsDirFromSimDir(const QString &simDir); static QString p3dSimObjectsDirFromSimDir(const QString &simDir);
@@ -101,7 +101,7 @@ namespace BlackMisc
static int copyFsxTerrainProbeFiles(const QString &simObjectDir, CStatusMessageList &messages); static int copyFsxTerrainProbeFiles(const QString &simObjectDir, CStatusMessageList &messages);
//! Find the config files (add-ons.cfg) //! Find the config files (add-ons.cfg)
//! \note C:/Users/Joe Doe/AppData/Roaming/Lockheed Martin/Prepar3D v4 //! \note "C:/Users/Joe Doe/AppData/Roaming/Lockheed Martin/Prepar3D v4"
//! \param versionHint like "v4" //! \param versionHint like "v4"
static QSet<QString> findP3dAddOnConfigFiles(const QString &versionHint = "v4"); static QSet<QString> findP3dAddOnConfigFiles(const QString &versionHint = "v4");
@@ -128,7 +128,11 @@ namespace BlackMisc
//! Validate aircraft.cfg entries //! Validate aircraft.cfg entries
//! \remark only for FSX/P3D/FS9 models //! \remark only for FSX/P3D/FS9 models
static CStatusMessageList validateConfigFiles(const CAircraftModelList &models, CAircraftModelList &validModels, CAircraftModelList &invalidModels, bool ignoreEmpty, int stopAtFailedFiles, bool &stopped); static CStatusMessageList validateConfigFiles(const CAircraftModelList &models, CAircraftModelList &validModels, CAircraftModelList &invalidModels, bool ignoreEmptyFileNames, int stopAtFailedFiles, bool &stopped);
//! Validate if known SimObjects path
//! \remark only for P3D
static CStatusMessageList validateP3DSimObjectsPath(const CAircraftModelList &models, CAircraftModelList &validModels, CAircraftModelList &invalidModels, bool ignoreEmptyFileNames, int stopAtFailedFiles, bool &stopped);
}; };
} // namespace } // namespace
} // namespace } // namespace