swift
Loading...
Searching...
No Matches
aircraftcfgparser.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors
2// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3
5
6#ifndef SWIFT_MISC_SIMULATION_FSCOMMON_AIRCRAFTCFGPARSER_H
7#define SWIFT_MISC_SIMULATION_FSCOMMON_AIRCRAFTCFGPARSER_H
8
9#include <QObject>
10#include <QPointer>
11#include <QString>
12#include <QStringList>
13#include <QVariant>
14
20
21class QSettings;
22
23namespace swift::misc
24{
25 class CWorker;
26 namespace simulation::fscommon
27 {
30 {
32
33 public:
35 CAircraftCfgParser(const CSimulatorInfo &simInfo, QObject *parent = nullptr);
36
38 ~CAircraftCfgParser() override;
39
41 const CAircraftCfgEntriesList &getAircraftCfgEntriesList() const { return m_parsedCfgEntriesList; }
42
45 bool isLoadingFinished() const override;
47
49 static CAircraftCfgEntriesList performParsingOfSingleFile(const QString &fileName, bool &ok,
50 CStatusMessageList &msgs);
51
53 static CAircraftCfgParser *createModelLoader(const CSimulatorInfo &simInfo, QObject *parent = nullptr);
54
55 protected:
58 void startLoadingFromDisk(LoadMode mode, const ModelConsolidationCallback &modelConsolidation,
59 const QStringList &modelDirectories) override;
61
62 private:
64 enum FileSection
65 {
66 General,
67 Fltsim,
68 Unknown
69 };
70
73 CAircraftCfgEntriesList performParsing(const QStringList &directories,
74 const QStringList &excludeDirectories,
76
79 CAircraftCfgEntriesList performParsing(const QString &directory, const QStringList &excludeDirectories,
81
83 static QString fixedStringContent(const QVariant &qv);
84
86 static QString fixedStringContent(const QSettings &settings, const QString &key);
87
89 static QString getFixedIniLineContent(const QString &line);
90
92 static const QStringList &fileNameFilters(bool isMSFS, bool isMSFS2024);
93
95 static bool isExcludedSubDirectory(const QString &excludeDirectory);
96
97 CAircraftCfgEntriesList m_parsedCfgEntriesList;
98 QPointer<swift::misc::CWorker> m_parserWorker;
99 };
100 } // namespace simulation::fscommon
101} // namespace swift::misc
102
103#endif // SWIFT_MISC_SIMULATION_FSCOMMON_AIRCRAFTCFGPARSER_H
Status messages, e.g. from Core -> GUI.
Class for doing some arbitrary parcel of work in its own thread.
Definition worker.h:230
Simple hardcoded info about the corresponding simulator.
IAircraftModelLoader(const CSimulatorInfo &simulator, QObject *parent=nullptr)
Constructor.
Utility, parsing the aircraft.cfg files.
CAircraftCfgParser(const CSimulatorInfo &simInfo, QObject *parent=nullptr)
Constructor.
const CAircraftCfgEntriesList & getAircraftCfgEntriesList() const
Get parsed aircraft cfg entries list.
Free functions in swift::misc.
QObject(QObject *parent)
Q_OBJECTQ_OBJECT
QObject * parent() const const
#define SWIFT_MISC_EXPORT
Export a class or function from the library.