mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-18 11:25:33 +08:00
Ref T515, improved FS validation and messages
This commit is contained in:
committed by
Mat Sutcliffe
parent
070577dae8
commit
610e1559e1
@@ -546,15 +546,23 @@ namespace BlackMisc
|
|||||||
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 ignoreEmpty, int stopAtFailedFiles, bool &stopped)
|
||||||
{
|
{
|
||||||
CAircraftModelList sorted(models);
|
CAircraftModelList sorted(models);
|
||||||
|
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, ignoreEmpty, stopAtFailedFiles, stopped, true);
|
||||||
if (stopped || validModels.isEmpty()) { return msgs; }
|
if (stopped || validModels.isEmpty()) { return msgs; }
|
||||||
|
|
||||||
const int d = validModels.removeIfNotFsFamily();
|
const CAircraftModelList nonFsModels = validModels.findNonFsFamilyModels();
|
||||||
if (d > 0)
|
if (!nonFsModels.isEmpty())
|
||||||
{
|
{
|
||||||
const CStatusMessage m = CStatusMessage(getLogCategories(), CStatusMessage::SeverityError, QStringLiteral("Removed %1 non FS family models").arg(d), true);
|
for (const CAircraftModel &model : nonFsModels)
|
||||||
|
{
|
||||||
|
m = CStatusMessage(getLogCategories(), CStatusMessage::SeverityError, QStringLiteral("Removed '%1' non FS family model").arg(model.getModelStringAndDbKey()), true);
|
||||||
|
msgs.push_back(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
const int d = validModels.removeIfNotFsFamily();
|
||||||
|
m = CStatusMessage(getLogCategories(), CStatusMessage::SeverityError, QStringLiteral("Removed %1 non FS family models").arg(d), true);
|
||||||
msgs.push_back(m);
|
msgs.push_back(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -564,21 +572,29 @@ namespace BlackMisc
|
|||||||
for (const QString &fileName : fileNames)
|
for (const QString &fileName : fileNames)
|
||||||
{
|
{
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
const CAircraftCfgEntriesList entries = CAircraftCfgParser::performParsingOfSingleFile(fileName, ok, msgs);
|
const CAircraftCfgEntriesList entries = CAircraftCfgParser::performParsingOfSingleFile(fileName, ok, msgs);
|
||||||
const CAircraftModelList removedModels = validModels.removeIfFileButNotInSet(fileName, entries.getTitleSetUpperCase());
|
const QSet<QString> removeModelStrings = entries.getTitleSetUpperCase();
|
||||||
|
const CAircraftModelList removedModels = validModels.removeIfFileButNotInSet(fileName, removeModelStrings);
|
||||||
for (const CAircraftModel &removedModel : removedModels)
|
for (const CAircraftModel &removedModel : removedModels)
|
||||||
{
|
{
|
||||||
removedCfgEntries++;
|
removedCfgEntries++;
|
||||||
const CStatusMessage m = CStatusMessage(getLogCategories(), CStatusMessage::SeverityError, QStringLiteral("'%1', removed because no longer in '%1'").arg(removedModel.getModelStringAndDbKey(), removedModel.getFileName()), true);
|
m = CStatusMessage(getLogCategories(), CStatusMessage::SeverityError, QStringLiteral("'%1', removed because no longer in '%2'").arg(removedModel.getModelStringAndDbKey(), removedModel.getFileName()), true);
|
||||||
msgs.push_back(m);
|
msgs.push_back(m);
|
||||||
}
|
}
|
||||||
|
invalidModels.push_back(removedModels);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (removedCfgEntries < 1)
|
if (removedCfgEntries < 1)
|
||||||
{
|
{
|
||||||
const CStatusMessage m = CStatusMessage(getLogCategories(), CStatusMessage::SeverityInfo, QStringLiteral("Not removed any models, all OK!"), true);
|
m = CStatusMessage(getLogCategories(), CStatusMessage::SeverityInfo, QStringLiteral("Not removed any models, all OK!"), true);
|
||||||
msgs.push_back(m);
|
msgs.push_back(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m = CStatusMessage(getLogCategories(), CStatusMessage::SeverityInfo, QStringLiteral("cfg validation, %1 valid models").arg(validModels.size()), true);
|
||||||
|
msgs.push_back(m);
|
||||||
|
m = CStatusMessage(getLogCategories(), CStatusMessage::SeverityWarning, QStringLiteral("cfg validation, %1 invalid models").arg(invalidModels.size()), true);
|
||||||
|
msgs.push_back(m);
|
||||||
|
|
||||||
return msgs;
|
return msgs;
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|||||||
Reference in New Issue
Block a user