mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-05-05 01:35:45 +08:00
Cleaned up FG model loader
This commit is contained in:
committed by
Mat Sutcliffe
parent
0fa989c2f1
commit
a84eb1b156
@@ -18,12 +18,15 @@ namespace BlackMisc{
|
|||||||
void AircraftModelLoaderFlightgear::updateInstalledModels(const CAircraftModelList &models)
|
void AircraftModelLoaderFlightgear::updateInstalledModels(const CAircraftModelList &models)
|
||||||
{
|
{
|
||||||
this->setModelsForSimulator(models, CSimulatorInfo::fg());
|
this->setModelsForSimulator(models, CSimulatorInfo::fg());
|
||||||
const CStatusMessage m = CStatusMessage(this, CStatusMessage::SeverityInfo, u"XPlane updated '%1' models") << models.size();
|
const CStatusMessage m = CStatusMessage(this, CStatusMessage::SeverityInfo, u"Flightgear updated '%1' models") << models.size();
|
||||||
m_loadingMessages.push_back(m);
|
m_loadingMessages.push_back(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
Simulation::CAircraftModelList AircraftModelLoaderFlightgear::parseFlyableAirplaces(const QString &rootDirectory)
|
Simulation::CAircraftModelList AircraftModelLoaderFlightgear::parseFlyableAirplanes(const QString &rootDirectory, const QStringList &excludeDirectories)
|
||||||
{
|
{
|
||||||
|
Q_UNUSED(excludeDirectories);
|
||||||
|
if (rootDirectory.isEmpty()) { return {}; }
|
||||||
|
|
||||||
Simulation::CAircraftModelList installedModels;
|
Simulation::CAircraftModelList installedModels;
|
||||||
|
|
||||||
QDir searchPath(rootDirectory, fileFilterFlyable());
|
QDir searchPath(rootDirectory, fileFilterFlyable());
|
||||||
@@ -32,7 +35,8 @@ namespace BlackMisc{
|
|||||||
|
|
||||||
while (aircraftIt.hasNext()) {
|
while (aircraftIt.hasNext()) {
|
||||||
aircraftIt.next();
|
aircraftIt.next();
|
||||||
//TODO Add possibility of exclude dir
|
if (CFileUtils::isExcludedDirectory(aircraftIt.fileInfo(), excludeDirectories, Qt::CaseInsensitive)) { continue; }
|
||||||
|
|
||||||
Simulation::CAircraftModel model;
|
Simulation::CAircraftModel model;
|
||||||
model.setAircraftIcaoCode(QString::fromStdString("A320"));
|
model.setAircraftIcaoCode(QString::fromStdString("A320"));
|
||||||
model.setDescription(QString::fromStdString("Description"));
|
model.setDescription(QString::fromStdString("Description"));
|
||||||
@@ -40,15 +44,12 @@ namespace BlackMisc{
|
|||||||
model.setModelType(CAircraftModel::TypeOwnSimulatorModel);
|
model.setModelType(CAircraftModel::TypeOwnSimulatorModel);
|
||||||
model.setSimulator(CSimulatorInfo::fg());
|
model.setSimulator(CSimulatorInfo::fg());
|
||||||
model.setFileDetailsAndTimestamp(aircraftIt.fileInfo());
|
model.setFileDetailsAndTimestamp(aircraftIt.fileInfo());
|
||||||
model.setModelMode(CAircraftModel::Exclude);
|
model.setModelMode(CAircraftModel::Include);
|
||||||
|
|
||||||
addUniqueModel(model,installedModels);
|
addUniqueModel(model,installedModels);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return installedModels;
|
return installedModels;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,6 +65,18 @@ namespace BlackMisc{
|
|||||||
models.push_back(model);
|
models.push_back(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CAircraftModelList AircraftModelLoaderFlightgear::performParsing(const QStringList &rootDirectories, const QStringList &excludeDirectories)
|
||||||
|
{
|
||||||
|
CAircraftModelList allModels;
|
||||||
|
for (const QString &rootDirectory : rootDirectories)
|
||||||
|
{
|
||||||
|
//allModels.push_back(parseCslPackages(rootDirectory, excludeDirectories));
|
||||||
|
allModels.push_back(parseFlyableAirplanes(rootDirectory, excludeDirectories));
|
||||||
|
}
|
||||||
|
|
||||||
|
return allModels;
|
||||||
|
}
|
||||||
|
|
||||||
void AircraftModelLoaderFlightgear::startLoadingFromDisk(IAircraftModelLoader::LoadMode mode, const IAircraftModelLoader::ModelConsolidationCallback &modelConsolidation, const QStringList &modelDirectories)
|
void AircraftModelLoaderFlightgear::startLoadingFromDisk(IAircraftModelLoader::LoadMode mode, const IAircraftModelLoader::ModelConsolidationCallback &modelConsolidation, const QStringList &modelDirectories)
|
||||||
{
|
{
|
||||||
const CSimulatorInfo simulator = CSimulatorInfo::fg();
|
const CSimulatorInfo simulator = CSimulatorInfo::fg();
|
||||||
@@ -76,7 +89,7 @@ namespace BlackMisc{
|
|||||||
m_parserWorker = CWorker::fromTask(this, "CAircraftModelLoaderFlightgear::performParsing",
|
m_parserWorker = CWorker::fromTask(this, "CAircraftModelLoaderFlightgear::performParsing",
|
||||||
[this, modelDirs, excludedDirectoryPatterns, modelConsolidation]()
|
[this, modelDirs, excludedDirectoryPatterns, modelConsolidation]()
|
||||||
{
|
{
|
||||||
auto models = this->parseFlyableAirplaces("X:/Flightsim/Flightgear/2018.3/data/Aircraft");
|
auto models = this->performParsing(modelDirs, excludedDirectoryPatterns);
|
||||||
if (modelConsolidation) { modelConsolidation(models, true); }
|
if (modelConsolidation) { modelConsolidation(models, true); }
|
||||||
return models;
|
return models;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -16,10 +16,11 @@ namespace BlackMisc{
|
|||||||
void updateInstalledModels(const CAircraftModelList &models);
|
void updateInstalledModels(const CAircraftModelList &models);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Simulation::CAircraftModelList parseFlyableAirplaces(const QString &rootDirectory);
|
Simulation::CAircraftModelList parseFlyableAirplanes(const QString &rootDirectory, const QStringList &excludeDirectories);
|
||||||
static const QString &fileFilterFlyable();
|
static const QString &fileFilterFlyable();
|
||||||
void addUniqueModel(const CAircraftModel &model, CAircraftModelList &models);
|
void addUniqueModel(const CAircraftModel &model, CAircraftModelList &models);
|
||||||
QPointer<CWorker> m_parserWorker;
|
QPointer<CWorker> m_parserWorker;
|
||||||
|
CAircraftModelList performParsing(const QStringList &rootDirectories, const QStringList &excludeDirectories);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void startLoadingFromDisk(LoadMode mode, const ModelConsolidationCallback &modelConsolidation, const QStringList &modelDirectories);
|
void startLoadingFromDisk(LoadMode mode, const ModelConsolidationCallback &modelConsolidation, const QStringList &modelDirectories);
|
||||||
|
|||||||
Reference in New Issue
Block a user