#include "blackmisc/simulation/aircraftmodelloader.h" #include namespace BlackMisc{ namespace Simulation { namespace Flightgear { class AircraftModelLoaderFlightgear : public Simulation::IAircraftModelLoader{ Q_OBJECT // IAircraftModelLoader interface public: //Constructor AircraftModelLoaderFlightgear(QObject *parent = nullptr); virtual ~AircraftModelLoaderFlightgear() override; // Interface functions // Parsed or injected models void updateInstalledModels(const CAircraftModelList &models); bool isLoadingFinished() const; protected: // Interface functions void startLoadingFromDisk(LoadMode mode, const ModelConsolidationCallback &modelConsolidation, const QStringList &modelDirectories) override; private: 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); }; } } }