swift
aircrafticaofilterbar.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_FILTERS_AIRCRAFTICAOFILTERBAR_H
7 #define SWIFT_GUI_FILTERS_AIRCRAFTICAOFILTERBAR_H
8 
9 #include <memory>
10 
11 #include <QObject>
12 #include <QScopedPointer>
13 
15 #include "gui/models/modelfilter.h"
16 #include "gui/swiftguiexport.h"
17 
18 namespace Ui
19 {
20  class CAircraftIcaoFilterBar;
21 }
22 namespace swift::misc::aviation
23 {
24  class CAircraftIcaoCode;
25  class CAircraftIcaoCodeList;
26 } // namespace swift::misc::aviation
27 namespace swift::gui::filters
28 {
33  public CFilterWidget,
34  public models::IModelFilterProvider<swift::misc::aviation::CAircraftIcaoCodeList>
35  {
36  Q_OBJECT
37 
38  public:
40  explicit CAircraftIcaoFilterBar(QWidget *parent = nullptr);
41 
43  virtual ~CAircraftIcaoFilterBar() override;
44 
46  std::unique_ptr<swift::gui::models::IModelFilter<swift::misc::aviation::CAircraftIcaoCodeList>>
47  createModelFilter() const override;
48 
50  void filter(const swift::misc::aviation::CAircraftIcaoCode &icao);
51 
53  void hideDescriptionField(bool hide);
54 
55  public slots:
57  virtual void onRowCountChanged(int count, bool withFilter) override;
58 
59  protected:
61  void clearForm() override;
62 
63  private:
64  QScopedPointer<Ui::CAircraftIcaoFilterBar> ui;
65  bool m_hasCompleters = false;
66 
68  void initCompleters();
69  };
70 } // namespace swift::gui::filters
71 
72 #endif // SWIFT_GUI_FILTERS_AIRCRAFTICAOFILTERBAR_H
Base for filter dialog.
Definition: filterwidget.h:21
Model filter interface for those who can generate such a filter (e.g. a widget or dialog)
Definition: modelfilter.h:61
Value object for ICAO classification.
Filter to search data sets.
#define SWIFT_GUI_EXPORT
Export a class or function from the library.