swift
distributorlistpreferences.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2016 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_DISTRIBUTORLISTPREFRENCES_H
7 #define SWIFT_MISC_SIMULATION_DISTRIBUTORLISTPREFRENCES_H
8 
9 #include <tuple>
10 
11 #include <QHash>
12 #include <QMetaType>
13 #include <QString>
14 
15 #include "misc/containerbase.h"
16 #include "misc/dictionary.h"
17 #include "misc/metaclass.h"
20 #include "misc/swiftmiscexport.h"
21 #include "misc/valueobject.h"
22 
23 SWIFT_DECLARE_VALUEOBJECT_MIXINS(swift::misc::simulation, CDistributorListPreferences)
24 
25 namespace swift::misc::simulation
26 {
28  class SWIFT_MISC_EXPORT CDistributorListPreferences : public CValueObject<CDistributorListPreferences>
29  {
30  public:
33 
35  const CDistributorList &getDistributors(const CSimulatorInfo &simulator) const;
36 
38  CDistributor getFirstOrDefaultDistributor(const CSimulatorInfo &simulator) const;
39 
41  const CSimulatorInfo &getLastUpdatedSimulator() const { return m_lastUpdatedSimulator; }
42 
44  void setDistributors(const CDistributorList &distributors, const CSimulatorInfo &simulator);
45 
47  QString convertToQString(bool i18n = false) const;
48 
49  private:
50  CDistributorList m_distributorsFsx;
51  CDistributorList m_distributorsP3d;
52  CDistributorList m_distributorsFs9;
53  CDistributorList m_distributorsXPlane;
54  CDistributorList m_distributorsFG;
55  CDistributorList m_distributorsMsfs;
56  CDistributorList m_distributorsMsfs2024;
57  CSimulatorInfo m_lastUpdatedSimulator;
58 
61  SWIFT_METAMEMBER(distributorsFsx),
62  SWIFT_METAMEMBER(distributorsP3d),
63  SWIFT_METAMEMBER(distributorsFs9),
64  SWIFT_METAMEMBER(distributorsXPlane),
65  SWIFT_METAMEMBER(distributorsFG),
66  SWIFT_METAMEMBER(distributorsMsfs),
67  SWIFT_METAMEMBER(distributorsMsfs2024),
68  SWIFT_METAMEMBER(lastUpdatedSimulator));
69  };
70 } // namespace swift::misc::simulation
71 
73 
74 #endif // SWIFT_MISC_SIMULATION_DISTRIBUTORLISTPREFRENCES_H
Mix of the most commonly used mixin classes.
Definition: valueobject.h:114
Value object encapsulating information of software distributor.
Definition: distributor.h:33
Value object encapsulating a list of distributors.
const CSimulatorInfo & getLastUpdatedSimulator() const
Last updated simulator.
Simple hardcoded info about the corresponding simulator.
Definition: simulatorinfo.h:41
#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