swift
aircraftcfgentries.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_AIRCRAFTCFGENTRY_H
7 #define SWIFT_MISC_SIMULATION_FSCOMMON_AIRCRAFTCFGENTRY_H
8 
9 #include <QMetaType>
10 #include <QString>
11 
12 #include "misc/metaclass.h"
13 #include "misc/propertyindexref.h"
15 #include "misc/swiftmiscexport.h"
16 #include "misc/timestampbased.h"
17 #include "misc/valueobject.h"
18 
19 SWIFT_DECLARE_VALUEOBJECT_MIXINS(swift::misc::simulation::fscommon, CAircraftCfgEntries)
20 
21 namespace swift::misc::simulation::fscommon
22 {
26  class SWIFT_MISC_EXPORT CAircraftCfgEntries : public CValueObject<CAircraftCfgEntries>, public ITimestampBased
27  {
28  public:
31  {
32  IndexEntryIndex = CPropertyIndexRef::GlobalIndexCAircraftCfgEntries,
33  IndexFileName,
34  IndexTitle,
35  IndexAirline,
36  IndexAtcType,
37  IndexAtcModel,
38  IndexAtcIdColor,
39  IndexParkingCode,
40  IndexDescription,
41  IndexUiType,
42  IndexUiVariation,
43  IndexUiManufacturer,
44  IndexTexture,
45  IndexSimulatorName,
46  IndexCreatedBy,
47  IndexRotorcraft
48  };
49 
51  CAircraftCfgEntries() = default;
52 
54  CAircraftCfgEntries(const QString &fileName, int index);
55 
57  CAircraftCfgEntries(const QString &filePath, int index, const QString &title, const QString &atcType,
58  const QString &atcModel, const QString &atcParkingCode, const QString &description);
59 
61  const QString &getFileName() const { return m_fileName; }
62 
64  QString getFileDirectory() const;
65 
67  const QString &getTitle() const { return m_title; }
68 
70  int getIndex() const { return m_index; }
71 
73  const QString &getAtcModel() const { return m_atcModel; }
74 
76  const QString &getAtcType() const { return m_atcType; }
77 
79  const QString &getAtcAirline() const { return m_atcAirline; }
80 
82  const QString &getAtcIdColor() const { return m_atcIdColor; }
83 
85  const QString &getSimName() const { return m_simName; }
86 
88  const QString &getDescription() const { return m_description; }
89 
91  const QString &getAtcParkingCode() const { return m_atcParkingCode; }
92 
94  const QString &getUiType() const { return m_uiType; }
95 
97  const QString &getUiVariation() const { return m_uiVariation; }
98 
100  const QString &getUiManufacturer() const { return m_uiManufacturer; }
101 
103  const QString &getTexture() const { return m_texture; }
104 
106  const QString &getCreatedBy() const { return m_createdBy; }
107 
109  bool isRotorcraft() const { return m_rotorcraft; }
110 
112  QString getUiCombinedDescription() const;
113 
115  void setFileName(const QString &filePath);
116 
118  void setTitle(const QString &title);
119 
121  void setIndex(int index) { m_index = index; }
122 
124  void setAtcModel(const QString &atcModel);
125 
127  void setAtcType(const QString &atcType);
128 
130  void setAtcParkingCode(const QString &parkingCode);
131 
133  void setAtcAirline(const QString &airline);
134 
136  void setAtcIdColor(const QString &color) { m_atcIdColor = color.trimmed(); }
137 
139  void setSimName(const QString &simName);
140 
142  void setDescription(const QString &description);
143 
145  void setCreatedBy(const QString &createdBy);
146 
148  void setTexture(const QString &texture);
149 
151  void setUiType(const QString &type);
152 
154  void setUiVariation(const QString &variation) { m_uiVariation = variation.trimmed(); }
155 
157  void setUiManufacturer(const QString &manufacturer) { m_uiManufacturer = manufacturer.trimmed(); }
158 
160  void setRotorcraft(bool isRotorcraft) { m_rotorcraft = isRotorcraft; }
161 
163  swift::misc::simulation::CAircraftModel toAircraftModel() const;
164 
166  QVariant propertyByIndex(swift::misc::CPropertyIndexRef index) const;
167 
169  void setPropertyByIndex(swift::misc::CPropertyIndexRef index, const QVariant &variant);
170 
172  QString convertToQString(bool i18n = false) const;
173 
174  private:
175  int m_index {};
176  QString m_fileName;
177  QString m_title;
178  QString m_atcType;
179  QString m_atcModel;
180  QString m_atcAirline;
181  QString m_atcParkingCode;
182  QString m_atcIdColor;
183  QString m_description;
184  QString m_uiType;
185  QString m_uiManufacturer;
186  QString m_uiVariation;
187  QString m_texture;
188  QString m_simName;
189  QString m_createdBy;
190  bool m_rotorcraft = false;
191 
193  CAircraftCfgEntries,
194  SWIFT_METAMEMBER(index),
195  SWIFT_METAMEMBER(fileName),
196  SWIFT_METAMEMBER(title),
197  SWIFT_METAMEMBER(atcType),
198  SWIFT_METAMEMBER(atcModel),
199  SWIFT_METAMEMBER(atcParkingCode),
200  SWIFT_METAMEMBER(atcIdColor),
201  SWIFT_METAMEMBER(description),
202  SWIFT_METAMEMBER(uiType),
203  SWIFT_METAMEMBER(uiManufacturer),
204  SWIFT_METAMEMBER(uiVariation),
205  SWIFT_METAMEMBER(texture),
206  SWIFT_METAMEMBER(simName),
207  SWIFT_METAMEMBER(createdBy),
208  SWIFT_METAMEMBER(rotorcraft),
209  SWIFT_METAMEMBER(timestampMSecsSinceEpoch));
210  };
211 } // namespace swift::misc::simulation::fscommon
212 
214 
215 #endif // SWIFT_MISC_SIMULATION_FSCOMMON_AIRCRAFTCFGENTRY_H
Non-owning reference to a CPropertyIndex with a subset of its features.
Mix of the most commonly used mixin classes.
Definition: valueobject.h:114
Entity with timestamp.
ColumnIndex
Base class enums.
Definition: mixinindex.h:44
Aircraft model (used by another pilot, my models on disk)
Definition: aircraftmodel.h:71
Set of aircraft.cfg entries representing an aircraft (FSX)
const QString & getUiVariation() const
UI variation (e.g. White,Green)
const QString & getDescription() const
Description.
const QString & getAtcParkingCode() const
ATC parking code.
const QString & getUiManufacturer() const
UI manufacturer (e.g. Airbus)
const QString & getUiType() const
UI type (e.g. A321-231 IAE)
void setRotorcraft(bool isRotorcraft)
Is Rotorcraft?
void setUiVariation(const QString &variation)
UI variation (e.g. White,Green)
void setAtcIdColor(const QString &color)
ATC color (e.g. 0xffffffff)
const QString & getAtcIdColor() const
ATC id color (e.g. 0xffffffff)
void setUiManufacturer(const QString &manufacturer)
UI manufacturer (e.g. Airbus)
#define SWIFT_METAMEMBER(MEMBER,...)
Macro to define an element within a metaclass.
Definition: metaclass.h:73
#define SWIFT_METACLASS(CLASS,...)
Macro to define a nested metaclass that describes the attributes of its enclosing class.
Definition: metaclass.h:53
#define SWIFT_MISC_EXPORT
Export a class or function from the library.
#define SWIFT_DECLARE_VALUEOBJECT_MIXINS(Namespace, Class)
Explicit template declaration of mixins for a CValueObject subclass to be placed near the top of the ...
Definition: valueobject.h:65