swift
dbairlinenameselectorcomponent.cpp
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 #include <QCompleter>
7 #include <QLineEdit>
8 #include <QString>
9 #include <Qt>
10 
11 #include "ui_dbairlinenameselectorcomponent.h"
12 
13 #include "core/webdataservices.h"
14 #include "gui/guiapplication.h"
17 
18 using namespace swift::core;
19 using namespace swift::gui;
20 using namespace swift::misc;
21 using namespace swift::misc::aviation;
22 using namespace swift::misc::db;
23 
24 namespace swift::gui::components
25 {
26  CDbAirlineNameSelectorComponent::CDbAirlineNameSelectorComponent(QWidget *parent)
28  {
29  ui->setupUi(this);
30  this->setFocusProxy(ui->le_AirlineName);
31  connect(ui->le_AirlineName, &QLineEdit::editingFinished, this,
32  &CDbAirlineNameSelectorComponent::ps_dataChanged);
33  }
34 
36 
38  {
39  if (!CDbAirlineIcaoSelectorBase::setAirlineIcao(icao)) { return false; }
40  const QString name(icao.getName());
41  ui->le_AirlineName->setText(name);
42  return true;
43  }
44 
45  void CDbAirlineNameSelectorComponent::clear() { ui->le_AirlineName->clear(); }
46 
47  void CDbAirlineNameSelectorComponent::setReadOnly(bool readOnly) { ui->le_AirlineName->setReadOnly(readOnly); }
48 
50  {
52  c->setCaseSensitivity(Qt::CaseInsensitive);
53  c->setCompletionMode(QCompleter::PopupCompletion);
54  c->setMaxVisibleItems(10);
55  const int w5chars = c->popup()->fontMetrics().size(Qt::TextSingleLine, "FooBa").width();
56  c->popup()->setMinimumWidth(w5chars * 10);
57  ui->le_AirlineName->setCompleter(c);
58  return c;
59  }
60 
61  void CDbAirlineNameSelectorComponent::ps_dataChanged()
62  {
63  if (!sGui) { return; }
64  QString s(ui->le_AirlineName->text());
65  if (s.isEmpty()) { return; }
66  int dbKey = CDatastoreUtility::extractIntegerKey(s);
67  if (dbKey >= 0)
68  {
70  this->setAirlineIcao(icao);
71  }
72  }
73 } // namespace swift::gui::components
CWebDataServices * getWebDataServices() const
Get the web data services.
swift::misc::aviation::CAirlineIcaoCode getAirlineIcaoCodeForDbKey(int key) const
ICAO code for id.
swift::misc::aviation::CAirlineIcaoCodeList getAirlineIcaoCodes() const
Airline ICAO codes.
virtual bool setAirlineIcao(const swift::misc::aviation::CAirlineIcaoCode &icao)
Current airline ICAO.
bool setAirlineIcao(const swift::misc::aviation::CAirlineIcaoCode &icao)
Current airline ICAO.
Value object for ICAO classification.
const QString & getName() const
Get name, e.g. "Lufthansa".
QStringList toNameCompleterStrings(bool sort=true) const
String list for completion by name.
SWIFT_GUI_EXPORT swift::gui::CGuiApplication * sGui
Single instance of GUI application object.
Backend services of the swift project, like dealing with the network or the simulators.
Definition: actionbind.cpp:7
High level reusable GUI components.
Definition: aboutdialog.cpp:14
GUI related classes.
Free functions in swift::misc.
void editingFinished()
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
CaseInsensitive
TextSingleLine
void setFocusProxy(QWidget *w)