swift
simulatorselector.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_GUI_COMPONENTS_SIMULATORSELECTOR_H
7 #define SWIFT_GUI_COMPONENTS_SIMULATORSELECTOR_H
8 
9 #include <QFrame>
10 #include <QObject>
11 #include <QScopedPointer>
12 
13 #include "gui/swiftguiexport.h"
14 #include "misc/digestsignal.h"
17 
18 namespace Ui
19 {
20  class CSimulatorSelector;
21 }
22 namespace swift::gui::components
23 {
27  class SWIFT_GUI_EXPORT CSimulatorSelector : public QFrame
28  {
29  Q_OBJECT
30 
31  public:
33  enum Mode
34  {
37  ComboBox
38  };
39 
41  explicit CSimulatorSelector(QWidget *parent = nullptr);
42 
44  virtual ~CSimulatorSelector() override;
45 
47  void setMode(Mode mode, bool forced = false);
48 
50  Mode getMode() { return m_mode; }
51 
53  void setNoSelectionMeansAll(bool v) { m_noSelectionMeansAll = v; }
54 
57 
59  void setValue(const swift::misc::simulation::CSimulatorInfo &simulator);
60 
62  void setToLastSelection();
63 
65  void setToConnectedSimulator(bool makeReadOnly = true);
66 
68  void setToConnectedSimulator(int deferredMs, bool makeReadOnly = true);
69 
71  void setFsxP3DOnly();
72 
74  void enableFG(bool enabled);
75 
77  void checkAll();
78 
80  void uncheckAll();
81 
83  bool isUnselected() const;
84 
86  bool areAllSelected() const;
87 
89  void setLeftMargin(int margin);
90 
92  void setRememberSelection(bool remember) { m_rememberSelection = remember; }
93 
95  void setRememberSelectionAndSetToLastSelection();
96 
98  bool isRememberingSelection() const { return m_rememberSelection; }
99 
101  void clear();
102 
104  bool isSingleSelection() const;
105 
107  void setReadOnly(bool readOnly);
108 
109  signals:
112 
113  private:
115  void radioButtonChanged(bool checked);
116 
118  void checkBoxChanged(bool checked);
119 
121  void comboBoxChanged(const QString &value);
122 
124  void rememberSelection();
125 
127  void changedLastSelection();
128 
130  void changedLastSelectionRb();
131 
133  void changedLastSelectionCb();
134 
136  void triggerSetToLastSelection();
137 
139  void emitChangedSignal();
140 
142  void addComboxBoxValues();
143 
144  QScopedPointer<Ui::CSimulatorSelector> ui;
145  Mode m_mode = CheckBoxes;
146  bool m_noSelectionMeansAll = false;
147  bool m_rememberSelection = false;
148  misc::CDigestSignal m_digestButtonsChanged { this, &CSimulatorSelector::emitChangedSignal,
149  std::chrono::milliseconds(250), 3 };
151  this, &CSimulatorSelector::changedLastSelectionRb
152  };
154  this, &CSimulatorSelector::changedLastSelectionCb
155  };
156  };
157 } // namespace swift::gui::components
158 
159 #endif // SWIFT_GUI_COMPONENTS_SIMULATORSELECTOR_H
Select simulator (as radio buttons or checkboxes)
bool isRememberingSelection() const
Is rembering selection?
void setRememberSelection(bool remember)
Remember selection.
void changed(const swift::misc::simulation::CSimulatorInfo &simulator)
Value has been changed.
void setNoSelectionMeansAll(bool v)
No selection treated same as all selected (filters)
Receive 1..n signals, collect them over time, and resend afer n milliseconds.
Definition: digestsignal.h:18
Simple hardcoded info about the corresponding simulator.
Definition: simulatorinfo.h:41
High level reusable GUI components.
Definition: aboutdialog.cpp:13
#define SWIFT_GUI_EXPORT
Export a class or function from the library.