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();
std::cout << "FLIGHTPLAN " << callsign
<< flightPlan.getPrefixIcaoSuffix().toStdString() << " " << flightPlan.getOriginAirportIcao() << " "
<< flightPlan.getCombinedPrefixIcaoSuffix().toStdString() << " " << flightPlan.getOriginAirportIcao() << " "
<< flightPlan.getDestinationAirportIcao() << " " << flightPlan.getAlternateAirportIcao() << " "
<< flightPlan.getTakeoffTimePlannedHourMin().toStdString() << " " << flightPlan.getTakeoffTimeActualHourMin().toStdString() << " "
<< flightPlan.getEnrouteTime() << " " << flightPlan.getFuelTime() << " "

View File

@@ -597,7 +597,7 @@ namespace BlackCore
// const QString alt = flightPlan.getCruiseAltitude().asFpAltitudeString();
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.cruiseAltitude = cruiseAltTemp = toFSD(alt);
vatlibFP.departAirport = depAptTemp = toFSD(flightPlan.getOriginAirportIcao().asString());

View File

@@ -156,7 +156,7 @@ namespace BlackGui
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();
}
@@ -171,7 +171,7 @@ namespace BlackGui
void CFlightPlanComponent::prefillWithAircraftData(const CSimulatedAircraft &aircraft)
{
if (m_flightPlan.wasSentOrLoaded()) { return; }
if (m_sentFlightPlan.wasSentOrLoaded()) { return; }
// only override with valid values
if (CCallsign::isValidAircraftCallsign(aircraft.getCallsignAsString()))
@@ -189,7 +189,7 @@ namespace BlackGui
void CFlightPlanComponent::prefillWithUserData(const CUser &user)
{
if (m_flightPlan.wasSentOrLoaded()) { return; }
if (m_sentFlightPlan.wasSentOrLoaded()) { return; }
// only override with valid values
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 messages;
QString v;
const bool strict = ui->cb_StrictCheck->isChecked();
const bool vfr = this->isVfr();
const CStatusMessage::StatusSeverity severity = strict ? CStatusMessage::SeverityError : CStatusMessage::SeverityWarning;
@@ -246,6 +246,7 @@ namespace BlackGui
flightPlan.setFlightRule(rule);
// callsign
QString v;
v = ui->le_Callsign->text().trimmed().toUpper();
if (v.isEmpty())
{
@@ -267,12 +268,27 @@ namespace BlackGui
{
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);
}
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
v = ui->pte_Route->toPlainText().trimmed();
if (v.isEmpty())
@@ -418,7 +434,7 @@ namespace BlackGui
}
ui->le_LastSent->setText(lastSent);
this->showOverlayMessage(m, showOverlayMs);
m_flightPlan = flightPlan; // last valid FP
m_sentFlightPlan = flightPlan; // last valid FP
}
else
{
@@ -627,7 +643,7 @@ namespace BlackGui
void CFlightPlanComponent::buildPrefixIcaoSuffix()
{
ui->le_PrefixIcaoSuffix->setText(this->getPrefixIcaoSuffix());
ui->le_PrefixIcaoSuffix->setText(this->getCombinedPrefixIcaoSuffix());
}
void CFlightPlanComponent::prefixCheckBoxChanged()
@@ -673,13 +689,11 @@ namespace BlackGui
});
}
QString CFlightPlanComponent::getPrefixIcaoSuffix() const
QString CFlightPlanComponent::getPrefix() const
{
QString prefix;
if (ui->cb_Heavy->isChecked()) { prefix = QStringLiteral("H"); }
else if (ui->cb_Tcas->isChecked()) { prefix = QStringLiteral("T"); }
return CFlightPlan::concatPrefixIcaoSuffix(prefix, ui->le_AircraftType->text().toUpper().trimmed(), ui->le_EquipmentSuffix->text().trimmed().toUpper());
if (ui->cb_Heavy->isChecked()) { return QStringLiteral("H"); }
else if (ui->cb_Tcas->isChecked()) { return QStringLiteral("T"); }
return QStringLiteral("");
}
CAircraftIcaoCode CFlightPlanComponent::getAircraftIcaoCode() const
@@ -689,6 +703,16 @@ namespace BlackGui
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()
{
this->setCurrentWidget(ui->tb_EquipmentCodes);

View File

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