Ref T219, some FP renamings and fix to set prefix/postfix in FP value object

This commit is contained in:
Klaus Basan
2018-01-07 03:24:14 +01:00
parent c2c6ea3ca4
commit 3dc1c69653
4 changed files with 56 additions and 22 deletions

View File

@@ -511,7 +511,7 @@ namespace BlackSample
{ {
const QString rules = flightPlan.getFlightRulesAsString(); const QString rules = flightPlan.getFlightRulesAsString();
std::cout << "FLIGHTPLAN " << callsign std::cout << "FLIGHTPLAN " << callsign
<< flightPlan.getPrefixIcaoSuffix().toStdString() << " " << flightPlan.getOriginAirportIcao() << " " << flightPlan.getCombinedPrefixIcaoSuffix().toStdString() << " " << flightPlan.getOriginAirportIcao() << " "
<< flightPlan.getDestinationAirportIcao() << " " << flightPlan.getAlternateAirportIcao() << " " << flightPlan.getDestinationAirportIcao() << " " << flightPlan.getAlternateAirportIcao() << " "
<< flightPlan.getTakeoffTimePlannedHourMin().toStdString() << " " << flightPlan.getTakeoffTimeActualHourMin().toStdString() << " " << flightPlan.getTakeoffTimePlannedHourMin().toStdString() << " " << flightPlan.getTakeoffTimeActualHourMin().toStdString() << " "
<< flightPlan.getEnrouteTime() << " " << flightPlan.getFuelTime() << " " << flightPlan.getEnrouteTime() << " " << flightPlan.getFuelTime() << " "

View File

@@ -597,7 +597,7 @@ namespace BlackCore
// const QString alt = flightPlan.getCruiseAltitude().asFpAltitudeString(); // const QString alt = flightPlan.getCruiseAltitude().asFpAltitudeString();
QByteArray acTypeTemp, altAptTemp, cruiseAltTemp, depAptTemp, destAptTemp, routeTemp, remarksTemp; QByteArray acTypeTemp, altAptTemp, cruiseAltTemp, depAptTemp, destAptTemp, routeTemp, remarksTemp;
vatlibFP.aircraftType = acTypeTemp = toFSD(flightPlan.getPrefixIcaoSuffix()); vatlibFP.aircraftType = acTypeTemp = toFSD(flightPlan.getCombinedPrefixIcaoSuffix());
vatlibFP.alternateAirport = altAptTemp = toFSD(flightPlan.getAlternateAirportIcao().asString()); vatlibFP.alternateAirport = altAptTemp = toFSD(flightPlan.getAlternateAirportIcao().asString());
vatlibFP.cruiseAltitude = cruiseAltTemp = toFSD(alt); vatlibFP.cruiseAltitude = cruiseAltTemp = toFSD(alt);
vatlibFP.departAirport = depAptTemp = toFSD(flightPlan.getOriginAirportIcao().asString()); vatlibFP.departAirport = depAptTemp = toFSD(flightPlan.getOriginAirportIcao().asString());

View File

@@ -156,7 +156,7 @@ namespace BlackGui
void CFlightPlanComponent::loginDataSet() void CFlightPlanComponent::loginDataSet()
{ {
if (m_flightPlan.wasSentOrLoaded()) { return; } // when loaded or sent do not override if (m_sentFlightPlan.wasSentOrLoaded()) { return; } // when loaded or sent do not override
this->prefillWithOwnAircraftData(); this->prefillWithOwnAircraftData();
} }
@@ -171,7 +171,7 @@ namespace BlackGui
void CFlightPlanComponent::prefillWithAircraftData(const CSimulatedAircraft &aircraft) void CFlightPlanComponent::prefillWithAircraftData(const CSimulatedAircraft &aircraft)
{ {
if (m_flightPlan.wasSentOrLoaded()) { return; } if (m_sentFlightPlan.wasSentOrLoaded()) { return; }
// only override with valid values // only override with valid values
if (CCallsign::isValidAircraftCallsign(aircraft.getCallsignAsString())) if (CCallsign::isValidAircraftCallsign(aircraft.getCallsignAsString()))
@@ -189,7 +189,7 @@ namespace BlackGui
void CFlightPlanComponent::prefillWithUserData(const CUser &user) void CFlightPlanComponent::prefillWithUserData(const CUser &user)
{ {
if (m_flightPlan.wasSentOrLoaded()) { return; } if (m_sentFlightPlan.wasSentOrLoaded()) { return; }
// only override with valid values // only override with valid values
if (user.hasRealName()) if (user.hasRealName())
@@ -228,15 +228,15 @@ namespace BlackGui
} }
} }
CFlightPlan CFlightPlanComponent::getFlightPlan() const const CLogCategoryList &CFlightPlanComponent::getLogCategories()
{ {
return m_flightPlan; static const CLogCategoryList cats { CLogCategory::flightPlan(), CLogCategory::guiComponent() };
return cats;
} }
CStatusMessageList CFlightPlanComponent::validateAndInitializeFlightPlan(CFlightPlan &flightPlan) CStatusMessageList CFlightPlanComponent::validateAndInitializeFlightPlan(CFlightPlan &flightPlan)
{ {
CStatusMessageList messages; CStatusMessageList messages;
QString v;
const bool strict = ui->cb_StrictCheck->isChecked(); const bool strict = ui->cb_StrictCheck->isChecked();
const bool vfr = this->isVfr(); const bool vfr = this->isVfr();
const CStatusMessage::StatusSeverity severity = strict ? CStatusMessage::SeverityError : CStatusMessage::SeverityWarning; const CStatusMessage::StatusSeverity severity = strict ? CStatusMessage::SeverityError : CStatusMessage::SeverityWarning;
@@ -246,6 +246,7 @@ namespace BlackGui
flightPlan.setFlightRule(rule); flightPlan.setFlightRule(rule);
// callsign // callsign
QString v;
v = ui->le_Callsign->text().trimmed().toUpper(); v = ui->le_Callsign->text().trimmed().toUpper();
if (v.isEmpty()) if (v.isEmpty())
{ {
@@ -267,12 +268,27 @@ namespace BlackGui
{ {
messages.push_back(CStatusMessage(this).validationError("Invalid aircraft ICAO code '%1'") << v); messages.push_back(CStatusMessage(this).validationError("Invalid aircraft ICAO code '%1'") << v);
} }
else if (sApp && sApp->hasWebDataServices() && !sApp->getWebDataServices()->containsAircraftIcaoDesignator(v)) else if (sApp && sApp->hasWebDataServices() && sApp->getWebDataServices()->hasDbAircraftData() && !sApp->getWebDataServices()->containsAircraftIcaoDesignator(v))
{ {
messages.push_back(CStatusMessage(this).validationWarning("Are you sure '%1' is a valid type?") << v); messages.push_back(CStatusMessage(this).validationWarning("Are you sure '%1' is a valid type?") << v);
} }
flightPlan.setAircraftIcao(this->getAircraftIcaoCode()); flightPlan.setAircraftIcao(this->getAircraftIcaoCode());
// prefix / equipment code
v = this->getPrefix();
if (!v.isEmpty() && !CFlightPlan::prefixCodes().contains(v))
{
messages.push_back(CStatusMessage(this).validation(severity, "Invalid prefix"));
}
flightPlan.setPrefix(v);
v = this->getEquipmentSuffix();
if (!v.isEmpty() && !CFlightPlan::equipmentCodes().contains(v))
{
messages.push_back(CStatusMessage(this).validation(severity, "Invalid equipment code"));
}
flightPlan.setEquipmentSuffix(v);
// route // route
v = ui->pte_Route->toPlainText().trimmed(); v = ui->pte_Route->toPlainText().trimmed();
if (v.isEmpty()) if (v.isEmpty())
@@ -418,7 +434,7 @@ namespace BlackGui
} }
ui->le_LastSent->setText(lastSent); ui->le_LastSent->setText(lastSent);
this->showOverlayMessage(m, showOverlayMs); this->showOverlayMessage(m, showOverlayMs);
m_flightPlan = flightPlan; // last valid FP m_sentFlightPlan = flightPlan; // last valid FP
} }
else else
{ {
@@ -627,7 +643,7 @@ namespace BlackGui
void CFlightPlanComponent::buildPrefixIcaoSuffix() void CFlightPlanComponent::buildPrefixIcaoSuffix()
{ {
ui->le_PrefixIcaoSuffix->setText(this->getPrefixIcaoSuffix()); ui->le_PrefixIcaoSuffix->setText(this->getCombinedPrefixIcaoSuffix());
} }
void CFlightPlanComponent::prefixCheckBoxChanged() void CFlightPlanComponent::prefixCheckBoxChanged()
@@ -673,13 +689,11 @@ namespace BlackGui
}); });
} }
QString CFlightPlanComponent::getPrefixIcaoSuffix() const QString CFlightPlanComponent::getPrefix() const
{ {
QString prefix; if (ui->cb_Heavy->isChecked()) { return QStringLiteral("H"); }
if (ui->cb_Heavy->isChecked()) { prefix = QStringLiteral("H"); } else if (ui->cb_Tcas->isChecked()) { return QStringLiteral("T"); }
else if (ui->cb_Tcas->isChecked()) { prefix = QStringLiteral("T"); } return QStringLiteral("");
return CFlightPlan::concatPrefixIcaoSuffix(prefix, ui->le_AircraftType->text().toUpper().trimmed(), ui->le_EquipmentSuffix->text().trimmed().toUpper());
} }
CAircraftIcaoCode CFlightPlanComponent::getAircraftIcaoCode() const CAircraftIcaoCode CFlightPlanComponent::getAircraftIcaoCode() const
@@ -689,6 +703,16 @@ namespace BlackGui
return sApp->getWebDataServices()->getAircraftIcaoCodeForDesignator(designator); return sApp->getWebDataServices()->getAircraftIcaoCodeForDesignator(designator);
} }
QString CFlightPlanComponent::getEquipmentSuffix() const
{
return ui->le_EquipmentSuffix->text().trimmed().toUpper();
}
QString CFlightPlanComponent::getCombinedPrefixIcaoSuffix() const
{
return CFlightPlan::concatPrefixIcaoSuffix(this->getPrefix(), this->getAircraftIcaoCode().getDesignator(), this->getEquipmentSuffix());
}
void CFlightPlanComponent::showEquipmentCodesTab() void CFlightPlanComponent::showEquipmentCodesTab()
{ {
this->setCurrentWidget(ui->tb_EquipmentCodes); this->setCurrentWidget(ui->tb_EquipmentCodes);

View File

@@ -22,6 +22,7 @@
#include "blackmisc/datacache.h" #include "blackmisc/datacache.h"
#include "blackmisc/identifier.h" #include "blackmisc/identifier.h"
#include "blackmisc/statusmessagelist.h" #include "blackmisc/statusmessagelist.h"
#include "blackmisc/logcategorylist.h"
#include <QObject> #include <QObject>
#include <QScopedPointer> #include <QScopedPointer>
@@ -53,12 +54,15 @@ namespace BlackGui
//! Prefill with aircraft dara //! Prefill with aircraft dara
void fillWithFlightPlanData(const BlackMisc::Aviation::CFlightPlan &flightPlan); void fillWithFlightPlanData(const BlackMisc::Aviation::CFlightPlan &flightPlan);
//! Get this flight plan //! Get sent flight plan
BlackMisc::Aviation::CFlightPlan getFlightPlan() const; const BlackMisc::Aviation::CFlightPlan &getSentFlightPlan() const { return m_sentFlightPlan; }
//! Log.categories
static const BlackMisc::CLogCategoryList &getLogCategories();
private: private:
QScopedPointer<Ui::CFlightPlanComponent> ui; QScopedPointer<Ui::CFlightPlanComponent> ui;
BlackMisc::Aviation::CFlightPlan m_flightPlan; //!< My flight plan BlackMisc::Aviation::CFlightPlan m_sentFlightPlan; //!< My flight plan
BlackMisc::Simulation::CAircraftModel m_model; //!< currently used model BlackMisc::Simulation::CAircraftModel m_model; //!< currently used model
BlackMisc::CIdentifier m_identifier { "FlightPlanComponent", this }; //!< Flightplan identifier BlackMisc::CIdentifier m_identifier { "FlightPlanComponent", this }; //!< Flightplan identifier
BlackMisc::CDataReadOnly<BlackMisc::Simulation::Data::TLastModel> m_lastAircraftModel { this }; //!< recently used aircraft model BlackMisc::CDataReadOnly<BlackMisc::Simulation::Data::TLastModel> m_lastAircraftModel { this }; //!< recently used aircraft model
@@ -144,12 +148,18 @@ namespace BlackGui
//! Aircraft type changed //! Aircraft type changed
void aircraftTypeChanged(); void aircraftTypeChanged();
//! Something like "H/B737/F" //! Get prefix
QString getPrefixIcaoSuffix() const; QString getPrefix() const;
//! Aircraft type as ICAO code //! Aircraft type as ICAO code
BlackMisc::Aviation::CAircraftIcaoCode getAircraftIcaoCode() const; BlackMisc::Aviation::CAircraftIcaoCode getAircraftIcaoCode() const;
//! Get equipment code (1 char)
QString getEquipmentSuffix() const;
//! Something like "H/B737/F"
QString getCombinedPrefixIcaoSuffix() const;
//! Show tab of equipment codes //! Show tab of equipment codes
void showEquipmentCodesTab(); void showEquipmentCodesTab();