mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-09 05:28:09 +08:00
Allow to validate models against a root directory of the simulator
The XPlane aircraft needs to be inside the XPlane folder Ref T247 follow up
This commit is contained in:
committed by
Mat Sutcliffe
parent
0c335beea6
commit
fd8cf4337b
@@ -140,12 +140,45 @@ namespace BlackMisc
|
||||
return ok ? dir.absoluteFilePath(fn) : "";
|
||||
}
|
||||
|
||||
CStatusMessageList CAircraftModelUtilities::validateModelFiles(const CAircraftModelList &models, CAircraftModelList &validModels, CAircraftModelList &invalidModels, bool ignoreEmpty, int stopAtFailedFiles, bool &stopped)
|
||||
CStatusMessageList CAircraftModelUtilities::validateModelFiles(const CAircraftModelList &models, CAircraftModelList &validModels, CAircraftModelList &invalidModels, bool ignoreEmpty, int stopAtFailedFiles, bool &stopped, const QString &simulatorDir)
|
||||
{
|
||||
// specifi checks for XPlane/FG would go here
|
||||
return models.isLikelyFsFamilyModelList() ?
|
||||
FsCommon::CFsCommonUtil::validateConfigFiles(models, validModels, invalidModels, ignoreEmpty, stopAtFailedFiles, stopped) :
|
||||
models.validateFiles(validModels, invalidModels, ignoreEmpty, stopAtFailedFiles, stopped);
|
||||
// some generic tests
|
||||
CStatusMessageList msgs;
|
||||
if (models.isEmpty())
|
||||
{
|
||||
msgs.push_back(CStatusMessage(CLogCategory::matching(), CStatusMessage::SeverityError, u"No models", true));
|
||||
return msgs;
|
||||
}
|
||||
|
||||
const int noDb = models.size() - models.countWithValidDbKey();
|
||||
if (noDb > 0)
|
||||
{
|
||||
msgs.push_back(CStatusMessage(CLogCategory::matching(), CStatusMessage::SeverityWarning, QStringLiteral("%1 models without DB data, is this intended?").arg(noDb), true));
|
||||
}
|
||||
|
||||
const int noExcluded = models.countByMode(CAircraftModel::Exclude);
|
||||
if (noExcluded > 0)
|
||||
{
|
||||
msgs.push_back(CStatusMessage(CLogCategory::matching(), CStatusMessage::SeverityWarning, QStringLiteral("%1 models marked as excluded, is this intended?").arg(noExcluded), true));
|
||||
}
|
||||
|
||||
// specific checks for FSX/XPlane/FG
|
||||
CStatusMessageList specificTests;
|
||||
if (models.isLikelyFsFamilyModelList())
|
||||
{
|
||||
specificTests = FsCommon::CFsCommonUtil::validateConfigFiles(models, validModels, invalidModels, ignoreEmpty, stopAtFailedFiles, stopped);
|
||||
}
|
||||
else if (models.isLikelyXPlaneModelList())
|
||||
{
|
||||
specificTests = models.validateFiles(validModels, invalidModels, ignoreEmpty, stopAtFailedFiles, stopped, simulatorDir);
|
||||
}
|
||||
else
|
||||
{
|
||||
specificTests = models.validateFiles(validModels, invalidModels, ignoreEmpty, stopAtFailedFiles, stopped, {});
|
||||
}
|
||||
|
||||
msgs.push_back(specificTests);
|
||||
return msgs;
|
||||
}
|
||||
} // ns
|
||||
} // ns
|
||||
|
||||
Reference in New Issue
Block a user