swift
aircraftmodelstringcompleter.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_COMPLETER_AIRCRAFTMODELSTRINGCOMPLETER_H
7 #define SWIFT_GUI_COMPLETER_AIRCRAFTMODELSTRINGCOMPLETER_H
8 
9 #include <QCompleter>
10 #include <QFlags>
11 #include <QFrame>
12 #include <QScopedPointer>
13 
14 #include "gui/swiftguiexport.h"
17 
18 namespace Ui
19 {
20  class CAircraftModelStringCompleter;
21 }
22 namespace swift::gui::components
23 {
28  {
29  Q_OBJECT
30 
31  public:
34  {
35  None = 0,
36  DB = 1 << 0,
37  ModelSet = 1 << 1,
38  OwnModels = 1 << 2
39  };
40  Q_DECLARE_FLAGS(CompleterSource, CompleterSourceFlag)
41 
42 
43  explicit CAircraftModelStringCompleter(QWidget *parent = nullptr);
44 
46  virtual ~CAircraftModelStringCompleter() override;
47 
49  QString getModelString() const;
50 
52  void showSourceSelection(bool show);
53 
55  void setText(const QString &completersString);
56 
58  void setModel(const swift::misc::simulation::CAircraftModel &model);
59 
61  void setSourceVisible(CompleterSource source, bool visible);
62 
64  void selectSource(CompleterSourceFlag source);
65 
67  bool setSimulator(const swift::misc::simulation::CSimulatorInfo &simulator);
68 
70  swift::misc::simulation::CSimulatorInfo getSimulator() const;
71 
73  void clear();
74 
75  signals:
78 
79  private:
81  void setCompleter(bool simChanged);
82 
84  void initGui();
85 
87  void onTextChanged();
88 
90  void onSimulatorConnected(int status);
91 
93  void onSwiftModelDataRead();
94 
95  private:
96  QScopedPointer<Ui::CAircraftModelStringCompleter> ui;
97  // model set completer data are fetched from context
98  swift::misc::simulation::data::CModelCaches m_modelCaches { false, this };
99  swift::misc::simulation::CSimulatorInfo m_currentSimulator;
100  CompleterSourceFlag m_currentDataSource = None;
101  };
102 } // namespace swift::gui::components
103 
104 #endif // SWIFT_GUI_COMPLETER_AIRCRAFTMODELSTRINGCOMPLETER_H
Aircraft model (used by another pilot, my models on disk)
Definition: aircraftmodel.h:71
Simple hardcoded info about the corresponding simulator.
Definition: simulatorinfo.h:41
Bundle of caches for all simulators.
Definition: modelcaches.h:339
High level reusable GUI components.
Definition: aboutdialog.cpp:13
#define SWIFT_GUI_EXPORT
Export a class or function from the library.