8 #include "ui_airportsmallcompleter.h"
18 using namespace swift::misc::aviation;
26 this->setFocusProxy(ui->le_Icao);
29 &CAirportSmallCompleter::onAirportsChanged);
30 connect(ui->le_Icao, &QLineEdit::editingFinished,
this, &CAirportSmallCompleter::onIcaoChanged);
32 connect(ui->pb_Dialog, &QPushButton::clicked,
this, &CAirportSmallCompleter::showAirportsDialog);
33 this->onAirportsChanged();
40 if (m_current == airport) {
return; }
57 if (ui->le_Icao->text() != airportCode.
asString()) { ui->le_Icao->setText(airportCode.
asString()); }
72 ui->le_Icao->setReadOnly(readOnly);
73 ui->pb_Dialog->setVisible(!readOnly);
88 void CAirportSmallCompleter::onIcaoChanged()
95 void CAirportSmallCompleter::onAirportsChanged()
99 ui->le_Icao->setCompleter(
new QCompleter(airports.
allIcaoCodes(
true), ui->le_Icao));
101 if (ui->le_Icao->completer()->popup())
103 ui->le_Icao->completer()->popup()->setObjectName(
"AirportSmallCompleter.ICAO");
104 ui->le_Icao->completer()->popup()->setMinimumWidth(75);
105 ui->le_Icao->completer()->setCaseSensitivity(Qt::CaseInsensitive);
112 if (CAirportIcaoCode::isValidIcaoDesignator(icao,
true))
120 void CAirportSmallCompleter::showAirportsDialog()
122 if (!m_airportsDialog)
124 m_airportsDialog.reset(
new CAirportDialog(
this));
125 m_airportsDialog->setModal(
true);
127 m_airportsDialog->setAirport(this->
getAirport());
128 const int rv = m_airportsDialog->exec();
129 if (rv != QDialog::Accepted) {
return; }
131 const CAirport airport = m_airportsDialog->getAirport();
132 if (airport.
isNull()) {
return; }
bool hasWebDataServices() const
Web data services available?
CWebDataServices * getWebDataServices() const
Get the web data services.
swift::misc::aviation::CAirport getAirportForIcaoDesignator(const QString &icao) const
Get airport for ICAO designator.
swift::misc::aviation::CAirportList getAirports() const
Get airports.
Smaller version of CAirportCompleter, using a CAirportDialog.
void setAirportIcaoCode(const swift::misc::aviation::CAirportIcaoCode &airportCode)
Set airport.
const swift::misc::aviation::CAirport & getAirport() const
Get airport.
void setReadOnly(bool readOnly)
Read only.
QString getIcaoText() const
The raw ICAO code text.
void clearIfInvalidCode(bool strictValidation)
Clear if code not valid.
bool isEmpty() const
Empty field.
swift::misc::aviation::CAirportIcaoCode getAirportIcaoCode() const
Get airport ICAO code.
void setAirport(const swift::misc::aviation::CAirport &airport)
Set airport.
virtual ~CAirportSmallCompleter()
Destructor.
void changedAirport(const swift::misc::aviation::CAirport &airport)
Airport has been changed.
Value object encapsulating information about an airpot.
virtual bool isNull() const
NULL airport?
bool hasValidIcaoCode() const
Valid ICAO code.
const CAirportIcaoCode & getIcao() const
Get ICAO code.
const QString & getIcaoAsString() const
Get ICAO code as string.
Value object encapsulating information of airport ICAO data.
bool hasValidIcaoCode(bool strict) const
Has valid code?
const QString & asString() const
Get code.
Value object for a list of airports.
QStringList allIcaoCodes(bool sorted) const
All ICAO codes.
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.
High level reusable GUI components.