diff --git a/src/blackgui/components/callsigncompleter.cpp b/src/blackgui/components/callsigncompleter.cpp index b91b14056..39cbc632e 100644 --- a/src/blackgui/components/callsigncompleter.cpp +++ b/src/blackgui/components/callsigncompleter.cpp @@ -47,13 +47,19 @@ namespace BlackGui CCallsignCompleter::~CCallsignCompleter() { } - BlackMisc::Aviation::CCallsign CCallsignCompleter::getCallsign() const + CCallsign CCallsignCompleter::getCallsign(bool onlyKnownCallsign) const { const QString csString = ui->le_Callsign->text().trimmed().toUpper(); - if (!this->isValidKnownCallsign(csString)) { return CCallsign(); } + const bool valid = onlyKnownCallsign ? this->isValidKnownCallsign(csString) : CCallsign::isValidAircraftCallsign(csString); + if (!valid) { return CCallsign(); } return CCallsign(csString, CCallsign::Aircraft); } + void CCallsignCompleter::setCallsign(const CCallsign &cs) + { + ui->le_Callsign->setText(cs.asString()); + } + QString CCallsignCompleter::getRawCallsignString() const { return ui->le_Callsign->text(); @@ -65,6 +71,13 @@ namespace BlackGui return this->isValidKnownCallsign(csString); } + void CCallsignCompleter::setReadOnly(bool readOnly) + { + if (ui->le_Callsign->isReadOnly() == readOnly) { return; } + ui->le_Callsign->setReadOnly(readOnly); + this->setStyleSheet(this->styleSheet()); + } + void CCallsignCompleter::updateCallsignsFromContext() { if (!sGui || sGui->isShuttingDown()) { return; } diff --git a/src/blackgui/components/callsigncompleter.h b/src/blackgui/components/callsigncompleter.h index 8e3ad04df..aaa4b4620 100644 --- a/src/blackgui/components/callsigncompleter.h +++ b/src/blackgui/components/callsigncompleter.h @@ -42,7 +42,10 @@ namespace BlackGui virtual ~CCallsignCompleter(); //! Get the entered callsign - BlackMisc::Aviation::CCallsign getCallsign() const; + BlackMisc::Aviation::CCallsign getCallsign(bool onlyKnownCallsign = true) const; + + //! Prefill wit callsign + void setCallsign(const BlackMisc::Aviation::CCallsign &cs); //! String as entered QString getRawCallsignString() const; @@ -50,6 +53,9 @@ namespace BlackGui //! Is valid callsign? bool hasValidCallsign() const; + //! Set read only + void setReadOnly(bool readOnly); + signals: //! Callsign entered void validCallsignEntered();