diff --git a/src/blackgui/components/flightplancomponent.cpp b/src/blackgui/components/flightplancomponent.cpp index 6105d1b7f..4127e49b9 100644 --- a/src/blackgui/components/flightplancomponent.cpp +++ b/src/blackgui/components/flightplancomponent.cpp @@ -66,11 +66,27 @@ namespace BlackGui CFlightPlanComponent::~CFlightPlanComponent() { } + void CFlightPlanComponent::loginDataSet() + { + if (!this->getIContextOwnAircraft()) { return; } + this->prefillWithAircraftData(this->getIContextOwnAircraft()->getOwnAircraft()); + } + void CFlightPlanComponent::prefillWithAircraftData(const BlackMisc::Aviation::CAircraft &ownAircraft) { - this->ui->le_Callsign->setText(ownAircraft.getCallsign().asString()); - this->ui->le_AircraftType->setText(ownAircraft.getIcaoInfo().getAircraftDesignator()); - this->ui->le_PilotsName->setText(ownAircraft.getPilot().getRealName()); + // only override with valid values + if (CCallsign::isValidCallsign(ownAircraft.getCallsignAsString())) + { + this->ui->le_Callsign->setText(ownAircraft.getCallsign().asString()); + } + if (CAircraftIcao::isValidDesignator(ownAircraft.getIcaoInfo().getAircraftDesignator())) + { + this->ui->le_AircraftType->setText(ownAircraft.getIcaoInfo().getAircraftDesignator()); + } + if (ownAircraft.hasValidRealName()) + { + this->ui->le_PilotsName->setText(ownAircraft.getPilot().getRealName()); + } } void CFlightPlanComponent::fillWithFlightPlanData(const BlackMisc::Aviation::CFlightPlan &flightPlan) @@ -281,6 +297,8 @@ namespace BlackGui void CFlightPlanComponent::ps_resetFlightPlan() { + Q_ASSERT(this->getIContextNetwork()); + Q_ASSERT(this->getIContextOwnAircraft()); if (this->getIContextNetwork()) { this->prefillWithAircraftData(this->getIContextOwnAircraft()->getOwnAircraft()); @@ -336,12 +354,9 @@ namespace BlackGui { QString rem; QString v = this->ui->cb_VoiceCapabilities->currentText().toUpper(); - if (v.contains("TEXT")) - rem.append("/T/ "); - else if (v.contains("VOICE")) - rem.append("/V/ "); - else if (v.contains("RECEIVE")) - rem.append("/R/ "); + if (v.contains("TEXT")) { rem.append("/T/ "); } + else if (v.contains("VOICE")) { rem.append("/V/ "); } + else if (v.contains("RECEIVE")) { rem.append("/R/ "); } v = this->ui->le_AirlineOperator->text().trimmed(); if (!v.isEmpty()) rem.append("OPR/").append(v).append(" "); @@ -350,44 +365,28 @@ namespace BlackGui if (!v.isEmpty()) rem.append("REG/").append(v).append(" "); v = this->ui->cb_PilotRating->currentText().toUpper(); - if (v.contains("P1")) - rem.append("PR/P1 "); - else if (v.contains("P2")) - rem.append("PR/P2 "); - else if (v.contains("P3")) - rem.append("PR/P3 "); - else if (v.contains("P4")) - rem.append("PR/P4 "); - else if (v.contains("P5")) - rem.append("PR/P5 "); + if (v.contains("P1")) { rem.append("PR/P1 "); } + else if (v.contains("P2")) { rem.append("PR/P2 "); } + else if (v.contains("P3")) { rem.append("PR/P3 "); } + else if (v.contains("P4")) { rem.append("PR/P4 "); } + else if (v.contains("P5")) { rem.append("PR/P5 "); } v = this->ui->cb_RequiredNavigationPerformance->currentText().toUpper(); - if (v.contains("10")) - rem.append("RNP10 "); - else if (v.contains("4")) - rem.append("RNP4 "); + if (v.contains("10")) { rem.append("RNP10 "); } + else if (v.contains("4")) { rem.append("RNP4 "); } v = this->ui->cb_NavigationEquipment->currentText().toUpper(); - if (v.contains("VORS")) - rem.append("NAV/VORNDB "); - else if (v.contains("SIDS")) - rem.append("NAV/GPSRNAV "); - if (v.contains("DEFAULT")) - rem.append("NAV/GPS "); - else if (v.contains("OCEANIC")) - rem.append("NAV/GPSOCEANIC "); + if (v.contains("VORS")) { rem.append("NAV/VORNDB "); } + else if (v.contains("SIDS")) { rem.append("NAV/GPSRNAV "); } + if (v.contains("DEFAULT")) { rem.append("NAV/GPS "); } + else if (v.contains("OCEANIC")) { rem.append("NAV/GPSOCEANIC "); } v = this->ui->cb_PerformanceCategory->currentText().toUpper(); - if (v.startsWith("A")) - rem.append("PER/A "); - else if (v.startsWith("B")) - rem.append("PER/B "); - else if (v.startsWith("C")) - rem.append("PER/C "); - else if (v.startsWith("D")) - rem.append("PER/D "); - else if (v.startsWith("E")) - rem.append("PER/E "); + if (v.startsWith("A")) { rem.append("PER/A "); } + else if (v.startsWith("B")) { rem.append("PER/B "); } + else if (v.startsWith("C")) { rem.append("PER/C "); } + else if (v.startsWith("D")) { rem.append("PER/D "); } + else if (v.startsWith("E")) { rem.append("PER/E "); } if (this->ui->frp_SelcalCode->hasValidCode()) { @@ -395,11 +394,10 @@ namespace BlackGui rem.append(" "); } - if (this->ui->cb_NoSidsStarts->isChecked()) - rem.append("NO SID/STAR "); + if (this->ui->cb_NoSidsStarts->isChecked()) { rem.append("NO SID/STAR "); } v = this->ui->pte_AdditionalRemarks->toPlainText().trimmed(); - if (!v.isEmpty()) rem.append(v); + if (!v.isEmpty()) { rem.append(v); } rem = rem.simplified().trimmed(); this->ui->pte_RemarksGenerated->setPlainText(rem); diff --git a/src/blackgui/components/flightplancomponent.h b/src/blackgui/components/flightplancomponent.h index d56893e76..f19f36644 100644 --- a/src/blackgui/components/flightplancomponent.h +++ b/src/blackgui/components/flightplancomponent.h @@ -39,6 +39,9 @@ namespace BlackGui ~CFlightPlanComponent(); public slots: + //! Login data were set + void loginDataSet(); + //! Prefill with aircraft data void prefillWithAircraftData(const BlackMisc::Aviation::CAircraft &ownAircraft); diff --git a/src/swiftgui_standard/mainwindow_aircraft.cpp b/src/swiftgui_standard/mainwindow_aircraft.cpp index dc8306c8d..50aa7c165 100644 --- a/src/swiftgui_standard/mainwindow_aircraft.cpp +++ b/src/swiftgui_standard/mainwindow_aircraft.cpp @@ -27,7 +27,6 @@ bool MainWindow::ps_reloadOwnAircraft() if (loadedAircraft != this->m_ownAircraft) { this->m_ownAircraft = loadedAircraft; - this->ui->comp_MainInfoArea->getFlightPlanComponent()->prefillWithAircraftData(this->m_ownAircraft); changed = true; } return changed;