swift
situationform.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2017 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_EDITORS_SITUATIONSFORM_H
7 #define SWIFT_GUI_EDITORS_SITUATIONSFORM_H
8 
9 #include <QScopedPointer>
10 
11 #include "gui/editors/form.h"
12 #include "gui/swiftguiexport.h"
14 #include "misc/statusmessagelist.h"
15 
16 namespace Ui
17 {
18  class CSituationForm;
19 }
20 namespace swift::gui::editors
21 {
26  {
27  Q_OBJECT
28 
29  public:
31  explicit CSituationForm(QWidget *parent = nullptr);
32 
34  virtual ~CSituationForm() override;
35 
37  void setSituation(const swift::misc::aviation::CAircraftSituation &situation);
38 
40  swift::misc::aviation::CAircraftSituation getSituation() const;
41 
44  virtual void setReadOnly(bool readonly) override;
45  virtual void setSelectOnly() override;
46  virtual swift::misc::CStatusMessageList validate(bool nested = false) const override;
48 
50  void showSetButton(bool visible);
51 
52  signals:
55 
56  private:
57  static constexpr int RoundDigits = 6;
58 
60  swift::misc::physical_quantities::CAngle getBankAngle() const;
61 
63  double getBankAngleDegrees() const;
64 
66  swift::misc::physical_quantities::CAngle getPitchAngle() const;
67 
69  double getPitchAngleDegrees() const;
70 
72  swift::misc::physical_quantities::CAngle getHeadingAngle() const;
73 
75  double getHeadingAngleDegrees() const;
76 
78  swift::misc::physical_quantities::CPressure getBarometricPressureMsl() const;
79 
81  swift::misc::physical_quantities::CSpeed getGroundSpeed() const;
82 
84  double getBarometricPressureMslMillibar() const;
85 
88  void bankSliderChanged(int value);
89  void pitchSliderChanged(int value);
90  void headingSliderChanged(int value);
91  void pressureSliderChanged(int value);
92  void bankEntered();
93  void resetBank();
94  void pitchEntered();
95  void resetPitch();
96  void headingEntered();
97  void resetHeading();
98  void pressureEntered();
99  void resetPressure();
100  void presetOwnAircraftSituation();
102 
104  void onCoordinateChanged();
105 
106  QScopedPointer<Ui::CSituationForm> ui;
107  };
108 } // namespace swift::gui::editors
109 #endif // SWIFT_GUI_EDITORS_SITUATIONSFORM_H
Form base class.
Definition: form.h:27
void changeAircraftSituation()
Aircraft situation to be changed.
Status messages, e.g. from Core -> GUI.
Value object encapsulating information of an aircraft's situation.
Physical unit angle (radians, degrees)
Definition: angle.h:23
#define SWIFT_GUI_EXPORT
Export a class or function from the library.