swift
dbaircrafticaoselectorcomponent.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_DBAIRCRAFTICAOSELECTORCOMPONENT_H
7 #define SWIFT_GUI_COMPONENTS_DBAIRCRAFTICAOSELECTORCOMPONENT_H
8 
9 #include <QFrame>
10 #include <QObject>
11 #include <QScopedPointer>
12 #include <QString>
13 
14 #include "gui/dropbase.h"
15 #include "gui/swiftguiexport.h"
18 
19 class QCompleter;
20 class QDragEnterEvent;
21 class QDragLeaveEvent;
22 class QDragMoveEvent;
23 class QDropEvent;
24 
25 namespace Ui
26 {
27  class CDbAircraftIcaoSelectorComponent;
28 }
29 namespace swift::gui::components
30 {
35  {
36  Q_OBJECT
37 
38  public:
40  enum Display
41  {
42  DisplayIcaoAndId,
43  DisplayCompleterString
44  };
45 
47  explicit CDbAircraftIcaoSelectorComponent(QWidget *parent = nullptr);
48 
50  virtual ~CDbAircraftIcaoSelectorComponent() override;
51 
54  bool setAircraftIcao(const swift::misc::aviation::CAircraftIcaoCode &icao);
55 
58  bool setAircraftIcao(int key);
59 
61  swift::misc::aviation::CAircraftIcaoCode getAircraftIcao() const;
62 
64  QString getRawDesignator() const;
65 
67  void setReadOnly(bool readOnly);
68 
70  void displayWithIcaoDescription(bool description);
71 
73  void displayMode(Display mode) { m_display = mode; }
74 
76  bool isSet() const;
77 
79  void clear();
80 
81  signals:
84 
85  protected:
87  virtual void dragEnterEvent(QDragEnterEvent *event) override;
88 
90  virtual void dragMoveEvent(QDragMoveEvent *event) override;
91 
93  virtual void dragLeaveEvent(QDragLeaveEvent *event) override;
94 
96  virtual void dropEvent(QDropEvent *event) override;
97 
98  private:
100  void onCodesRead(swift::misc::network::CEntityFlags::Entity entity,
101  swift::misc::network::CEntityFlags::ReadState readState, int count);
102 
104  void onCompleterActivated(const QString &icaoString);
105 
107  void onDataChanged();
108 
111  const QStringList &completerStrings();
112 
113  QScopedPointer<Ui::CDbAircraftIcaoSelectorComponent> ui;
114  QScopedPointer<QCompleter> m_completerIcaoDescription;
116  Display m_display = DisplayIcaoAndId;
117  QStringList m_completerStrings;
118  };
119 } // namespace swift::gui::components
120 #endif // SWIFT_GUI_COMPONENTS_DBAIRCRAFTICAOSELECTORCOMPONENT_H
Utilities for dropping swift value objects.
Definition: dropbase.h:19
void changedAircraftIcao(const swift::misc::aviation::CAircraftIcaoCode &icao)
ICAO was changed.
void displayMode(Display mode)
How to display string in text field.
Value object for ICAO classification.
High level reusable GUI components.
Definition: aboutdialog.cpp:13
#define SWIFT_GUI_EXPORT
Export a class or function from the library.