swift
viewupdatesettings.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_GUI_SETTINGS_VIEWUPDATESETTINGS_H
7 #define SWIFT_GUI_SETTINGS_VIEWUPDATESETTINGS_H
8 
9 #include <QMap>
10 #include <QMetaType>
11 #include <QString>
12 
13 #include "gui/swiftguiexport.h"
14 #include "misc/pq/time.h"
15 #include "misc/propertyindex.h"
16 #include "misc/settingscache.h"
17 #include "misc/variant.h"
18 
19 SWIFT_DECLARE_VALUEOBJECT_MIXINS(swift::gui::settings, CViewUpdateSettings)
20 
21 namespace swift::gui::settings
22 {
25  {
26  public:
29  {
30  IndexAtc = swift::misc::CPropertyIndexRef::GlobalIndexCViewUpdateSettings,
31  IndexAircraft,
32  IndexRendering,
33  IndexUser
34  };
35 
38 
40  void reset();
41 
43  const swift::misc::physical_quantities::CTime &getAtcUpdateTime() const { return m_updateAtc; }
44 
46  void setAtcUpdateTime(const swift::misc::physical_quantities::CTime &time) { this->m_updateAtc = time; }
47 
49  const swift::misc::physical_quantities::CTime &getAircraftUpdateTime() const { return m_updateAircraft; }
50 
53  {
54  this->m_updateAircraft = time;
55  }
56 
58  const swift::misc::physical_quantities::CTime &getUserUpdateTime() const { return m_updateUser; }
59 
61  void setUserUpdateTime(const swift::misc::physical_quantities::CTime &time) { this->m_updateUser = time; }
62 
64  const swift::misc::physical_quantities::CTime &getRenderingUpdateTime() const { return m_updateRendering; }
65 
68  {
69  this->m_updateRendering = time;
70  }
71 
73  bool isValid() const;
74 
76  QString convertToQString(bool i18n = false) const;
77 
79  QVariant propertyByIndex(swift::misc::CPropertyIndexRef index) const;
80 
82  void setPropertyByIndex(swift::misc::CPropertyIndexRef index, const QVariant &variant);
83 
84  private:
86  swift::misc::physical_quantities::CTime m_updateAircraft { 10.0,
88  swift::misc::physical_quantities::CTime m_updateRendering { 10.0,
91 
93  CViewUpdateSettings,
94  SWIFT_METAMEMBER(updateAtc),
95  SWIFT_METAMEMBER(updateAircraft),
96  SWIFT_METAMEMBER(updateRendering),
97  SWIFT_METAMEMBER(updateUser));
98  };
99 
101  struct TViewUpdateSettings : public swift::misc::TSettingTrait<CViewUpdateSettings>
102  {
104  static const char *key() { return "guiviewupdate"; }
105 
107  static const QString &humanReadable()
108  {
109  static const QString name("View update");
110  return name;
111  }
112 
114  static bool isValid(const CViewUpdateSettings &settings, QString &) { return settings.isValid(); }
115  };
116 } // namespace swift::gui::settings
117 
120 
121 #endif // SWIFT_GUI_SETTINGS_VIEWUPDATESETTINGS_H
Settings about view update rates.
void setAircraftUpdateTime(const swift::misc::physical_quantities::CTime &time)
Set time.
const swift::misc::physical_quantities::CTime & getRenderingUpdateTime() const
Get time.
void setRenderingUpdateTime(const swift::misc::physical_quantities::CTime &time)
Set time.
const swift::misc::physical_quantities::CTime & getUserUpdateTime() const
Get time.
void setUserUpdateTime(const swift::misc::physical_quantities::CTime &time)
Set time.
const swift::misc::physical_quantities::CTime & getAircraftUpdateTime() const
Get time.
void setAtcUpdateTime(const swift::misc::physical_quantities::CTime &time)
Set time.
const swift::misc::physical_quantities::CTime & getAtcUpdateTime() const
Get time.
Generic ordered container with value semantics.
Definition: collection.h:107
Non-owning reference to a CPropertyIndex with a subset of its features.
Mix of the most commonly used mixin classes.
Definition: valueobject.h:114
static CTimeUnit s()
Second s.
Definition: units.h:954
#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
Trait for settings about update rates.
static bool isValid(const CViewUpdateSettings &settings, QString &)
Validator function. Return true if the argument is valid, false otherwise. Default implementation jus...
static const char * key()
Key string of the value. Reimplemented in derived class.
static const QString & humanReadable()
Optional human readable name.
Base class for traits to be used as template argument to swift::misc::CSetting.
#define SWIFT_GUI_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