From 193510dd29b7c144b5a1506c99973d52ef925e6c Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Sat, 23 Feb 2019 11:41:46 +0100 Subject: [PATCH] Change modelString generation for AI aircrafts --- .../aircraftmodelloaderflightgear.cpp | 29 ++++++++++--------- .../aircraftmodelloaderflightgear.h | 2 +- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/blackmisc/simulation/flightgear/aircraftmodelloaderflightgear.cpp b/src/blackmisc/simulation/flightgear/aircraftmodelloaderflightgear.cpp index 3ca9aaf79..07213c11e 100644 --- a/src/blackmisc/simulation/flightgear/aircraftmodelloaderflightgear.cpp +++ b/src/blackmisc/simulation/flightgear/aircraftmodelloaderflightgear.cpp @@ -64,7 +64,8 @@ namespace BlackMisc{ Simulation::CAircraftModelList installedModels; - QDir searchPath(rootDirectory, fileFilterAI()); + QDir searchPath(rootDirectory); + searchPath.setNameFilters(QStringList()<< "*.xml"); QDirIterator aircraftIt(searchPath, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks); @@ -72,13 +73,10 @@ namespace BlackMisc{ aircraftIt.next(); if (CFileUtils::isExcludedDirectory(aircraftIt.fileInfo(), excludeDirectories, Qt::CaseInsensitive)) { continue; } Simulation::CAircraftModel model; - model.setDescription(QString::fromStdString("AI")); std::string modelName = aircraftIt.fileName().toStdString(); modelName = modelName.substr(0,modelName.find(".xml")); model.setName(QString::fromStdString(modelName)); - std::string modelString = aircraftIt.filePath().toStdString(); - modelString = modelString.substr(modelString.find("Aircraft")); - model.setModelString(QString::fromStdString(modelString)); + model.setModelString(QString::fromStdString(getModelString(aircraftIt.filePath().toStdString(),true))); model.setModelType(CAircraftModel::TypeOwnSimulatorModel); model.setSimulator(CSimulatorInfo::fg()); model.setFileDetailsAndTimestamp(aircraftIt.fileInfo()); @@ -97,13 +95,6 @@ namespace BlackMisc{ return f; } - const QString &AircraftModelLoaderFlightgear::fileFilterAI() - { - static const QString f("*.xml"); - return f; - - } - void AircraftModelLoaderFlightgear::addUniqueModel(const CAircraftModel &model, CAircraftModelList &models) { //TODO Add check @@ -116,7 +107,7 @@ namespace BlackMisc{ for (const QString &rootDirectory : rootDirectories) { //TODO Make paths changeable (using env variable) - allModels.push_back(parseAIAirplanes("X:/Flightsim/Flightgear/2018.3/data/AI/Aircraft", excludeDirectories)); + allModels.push_back(parseAIAirplanes(rootDirectory + "/AI/Aircraft", excludeDirectories)); //allModels.push_back(parseFlyableAirplanes("X:/Flightsim/Flightgear/2018.3/data/Aircraft", excludeDirectories)); } @@ -155,6 +146,18 @@ namespace BlackMisc{ } + std::string AircraftModelLoaderFlightgear::getModelString(std::string filePath, bool ai) + { + std::string modelString = "FG "; + if(ai) + modelString.append("AI "); + std::string path = filePath; + filePath = filePath.substr(filePath.find("Aircraft")+9); + filePath = filePath.substr(0,filePath.find(".xml")); + modelString.append(filePath); + return modelString; + } + } } diff --git a/src/blackmisc/simulation/flightgear/aircraftmodelloaderflightgear.h b/src/blackmisc/simulation/flightgear/aircraftmodelloaderflightgear.h index 3a6739d26..3aee8adbc 100644 --- a/src/blackmisc/simulation/flightgear/aircraftmodelloaderflightgear.h +++ b/src/blackmisc/simulation/flightgear/aircraftmodelloaderflightgear.h @@ -26,10 +26,10 @@ namespace BlackMisc{ void startLoadingFromDisk(LoadMode mode, const ModelConsolidationCallback &modelConsolidation, const QStringList &modelDirectories) override; private: + std::string getModelString(std::string filePath,bool ai); Simulation::CAircraftModelList parseFlyableAirplanes(const QString &rootDirectory, const QStringList &excludeDirectories); Simulation::CAircraftModelList parseAIAirplanes(const QString &rootDirectory, const QStringList &excludeDirectories); static const QString &fileFilterFlyable(); - static const QString &fileFilterAI(); void addUniqueModel(const CAircraftModel &model, CAircraftModelList &models); QPointer m_parserWorker; CAircraftModelList performParsing(const QStringList &rootDirectories, const QStringList &excludeDirectories);