swift
liverylist.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2015 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_AVIATION_LIVERYLIST_H
7 #define SWIFT_MISC_AVIATION_LIVERYLIST_H
8 
9 #include <QMetaType>
10 #include <QString>
11 #include <QStringList>
12 
14 #include "misc/aviation/livery.h"
15 #include "misc/collection.h"
17 #include "misc/sequence.h"
18 #include "misc/swiftmiscexport.h"
19 
20 SWIFT_DECLARE_SEQUENCE_MIXINS(swift::misc::aviation, CLivery, CLiveryList)
21 
22 namespace swift::misc::aviation
23 {
26  public CSequence<CLivery>,
27  public db::IDatastoreObjectList<CLivery, CLiveryList, int>,
28  public mixin::MetaType<CLiveryList>
29  {
30  public:
33 
35  CLiveryList();
36 
38  CLiveryList(const CSequence<CLivery> &other);
39 
42  CLiveryList findByAirlineIcaoDesignator(const QString &icao) const;
43 
46  CLivery findStdLiveryByAirlineIcaoVDesignator(const QString &icao) const;
47 
49  CLivery findStdLiveryByAirlineIcaoVDesignator(const CAirlineIcaoCode &icao) const;
50 
52  CLivery findColorLiveryOrDefault(const CRgbColor &fuselage, const CRgbColor &tail) const;
53 
55  CLivery findClosestColorLiveryOrDefault(const CRgbColor &fuselage, const CRgbColor &tail) const;
56 
58  CLiveryList findStdLiveriesBySimplifiedAirlineName(const QString &containedString) const;
59 
61  CLiveryList findStdLiveriesByNamesOrTelephonyDesignator(const QString &candidate) const;
62 
64  CLivery findByCombinedCode(const QString &combinedCode) const;
65 
67  QStringList getCombinedCodes(bool sort = false) const;
68 
70  QStringList getCombinedCodesPlusInfo(bool sort = false) const;
71 
73  QStringList getCombinedCodesPlusInfoAndId(bool sort = false) const;
74 
76  CAirlineIcaoCodeList getAirlines() const;
77 
79  CLivery smartLiverySelector(const CLivery &liveryPattern) const;
80 
86  static CLiveryList fromDatabaseJsonCaching(const QJsonArray &array,
87  const CAirlineIcaoCodeList &relatedAirlines = {});
88  };
89 } // namespace swift::misc::aviation
90 
91 Q_DECLARE_METATYPE(swift::misc::aviation::CLiveryList)
93 
94 #endif // SWIFT_MISC_AVIATION_LIVERYLIST_H
Generic ordered container with value semantics.
Definition: collection.h:107
Generic sequential container with value semantics.
Definition: sequence.h:86
CSequence()=default
Default constructor.
Value object for ICAO classification.
Value object encapsulating a list of ICAO codes.
Value object encapsulating information about an airpot.
Definition: livery.h:29
Value object for a list of airports.
Definition: liverylist.h:29
List of objects read from database. Such objects should implement.
CRTP class template from which a derived class can inherit common methods dealing with the metatype o...
Definition: mixinmetatype.h:29
#define SWIFT_MISC_DECLARE_USING_MIXIN_METATYPE(DERIVED)
When a derived class and a base class both inherit from mixin::MetaType, the derived class uses this ...
#define SWIFT_DECLARE_SEQUENCE_MIXINS(Namespace, T, List)
Explicit template declaration of mixins for a CSequence subclass to be placed near the top of the hea...
Definition: sequence.h:62
#define SWIFT_MISC_EXPORT
Export a class or function from the library.