mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-20 12:35:43 +08:00
refs #195, refs#212, flightplan widget (completely encapsulated) for FP handling
This commit is contained in:
@@ -8,13 +8,11 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
|||||||
TARGET = blackgui
|
TARGET = blackgui
|
||||||
TEMPLATE = lib
|
TEMPLATE = lib
|
||||||
CONFIG += staticlib
|
CONFIG += staticlib
|
||||||
CONFIG += blackmisc
|
CONFIG += blackmisc blacksim blackcore
|
||||||
|
|
||||||
INCLUDEPATH += ..
|
INCLUDEPATH += ..
|
||||||
DEPENDPATH += . ..
|
DEPENDPATH += . ..
|
||||||
|
|
||||||
LIBS += -L../../lib -lblackmisc
|
|
||||||
|
|
||||||
# PRECOMPILED_HEADER = stdpch.h
|
# PRECOMPILED_HEADER = stdpch.h
|
||||||
precompile_header:!isEmpty(PRECOMPILED_HEADER) {
|
precompile_header:!isEmpty(PRECOMPILED_HEADER) {
|
||||||
DEFINES += USING_PCH
|
DEFINES += USING_PCH
|
||||||
@@ -22,14 +20,15 @@ precompile_header:!isEmpty(PRECOMPILED_HEADER) {
|
|||||||
|
|
||||||
DEFINES += LOG_IN_FILE
|
DEFINES += LOG_IN_FILE
|
||||||
|
|
||||||
win32:!win32-g++*: PRE_TARGETDEPS += ../../lib/blackmisc.lib
|
win32:!win32-g++*: PRE_TARGETDEPS += ../../lib/blackmisc.lib ../../lib/blacksim.lib ../../lib/blackcore.lib
|
||||||
else: PRE_TARGETDEPS += ../../lib/libblackmisc.a
|
else: PRE_TARGETDEPS += ../../lib/libblackmisc.a ../../lib/libblacksim.a ../../lib/libblackcore.a
|
||||||
|
|
||||||
HEADERS += *.h
|
HEADERS += *.h
|
||||||
SOURCES += *.cpp
|
SOURCES += *.cpp
|
||||||
|
FORMS += *.ui
|
||||||
|
RESOURCES += blackgui.qrc
|
||||||
|
|
||||||
DESTDIR = ../../lib
|
DESTDIR = ../../lib
|
||||||
OTHER_FILES +=
|
OTHER_FILES +=
|
||||||
|
|
||||||
RESOURCES += blackgui.qrc
|
|
||||||
|
|
||||||
include (../../libraries.pri)
|
include (../../libraries.pri)
|
||||||
|
|||||||
314
src/blackgui/flightplancomponent.cpp
Normal file
314
src/blackgui/flightplancomponent.cpp
Normal file
@@ -0,0 +1,314 @@
|
|||||||
|
#include "flightplancomponent.h"
|
||||||
|
#include "ui_flightplancomponent.h"
|
||||||
|
|
||||||
|
using namespace BlackMisc;
|
||||||
|
using namespace BlackMisc::Aviation;
|
||||||
|
|
||||||
|
namespace BlackGui
|
||||||
|
{
|
||||||
|
CFlightPlanComponent::CFlightPlanComponent(QWidget *parent) :
|
||||||
|
QTabWidget(parent), CRuntimeBasedComponent(nullptr, false), ui(new Ui::CFlightPlanComponent)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
connect(this->ui->pb_Send, &QPushButton::pressed, this, &CFlightPlanComponent::sendFlightPlan);
|
||||||
|
connect(this->ui->pb_Load, &QPushButton::pressed, this, &CFlightPlanComponent::loadFlightPlan);
|
||||||
|
connect(this->ui->pb_Reset, &QPushButton::pressed, this, &CFlightPlanComponent::resetFlightPlan);
|
||||||
|
|
||||||
|
bool c;
|
||||||
|
c = connect(this->ui->cb_VoiceCapabilities, SIGNAL(currentIndexChanged(int)), this, SLOT(buildRemarkString()));
|
||||||
|
Q_ASSERT(c);
|
||||||
|
c = connect(this->ui->cb_NavigationEquipment, SIGNAL(currentIndexChanged(int)), this, SLOT(buildRemarkString()));
|
||||||
|
Q_ASSERT(c);
|
||||||
|
c = connect(this->ui->cb_PerformanceCategory, SIGNAL(currentIndexChanged(int)), this, SLOT(buildRemarkString()));
|
||||||
|
Q_ASSERT(c);
|
||||||
|
c = connect(this->ui->cb_PilotRating, SIGNAL(currentIndexChanged(int)), this, SLOT(buildRemarkString()));
|
||||||
|
Q_ASSERT(c);
|
||||||
|
c = connect(this->ui->cb_RequiredNavigationPerformance, SIGNAL(currentIndexChanged(int)), this, SLOT(buildRemarkString()));
|
||||||
|
Q_ASSERT(c);
|
||||||
|
c = connect(this->ui->cb_NoSidsStarts, SIGNAL(toggled(bool)), this, SLOT(buildRemarkString()));
|
||||||
|
Q_ASSERT(c);
|
||||||
|
c = connect(this->ui->le_AircraftRegistration, SIGNAL(textChanged(QString)), this, SLOT(buildRemarkString()));
|
||||||
|
Q_ASSERT(c);
|
||||||
|
c = connect(this->ui->le_AirlineOperator, SIGNAL(textChanged(QString)), this, SLOT(buildRemarkString()));
|
||||||
|
Q_ASSERT(c);
|
||||||
|
|
||||||
|
connect(this->ui->pte_AdditionalRemarks, &QPlainTextEdit::textChanged, this, &CFlightPlanComponent::buildRemarkString);
|
||||||
|
connect(this->ui->frp_SelcalCode, &CSelcalCodeSelector::valueChanged, this, &CFlightPlanComponent::buildRemarkString);
|
||||||
|
connect(this->ui->pb_CopyOver, &QPushButton::pressed, this, &CFlightPlanComponent::copyRemarks);
|
||||||
|
connect(this->ui->pb_RemarksGenerator, &QPushButton::clicked, this, &CFlightPlanComponent::currentTabGenerator);
|
||||||
|
|
||||||
|
this->ui->frp_SelcalCode->resetSelcalCodes(true);
|
||||||
|
this->resetFlightPlan();
|
||||||
|
this->buildRemarkString();
|
||||||
|
}
|
||||||
|
|
||||||
|
CFlightPlanComponent::~CFlightPlanComponent()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CFlightPlanComponent::prefillWithAircraftData(const BlackMisc::Aviation::CAircraft &aircraftData)
|
||||||
|
{
|
||||||
|
this->ui->le_Callsign->setText(aircraftData.getCallsign().asString());
|
||||||
|
this->ui->le_AircraftType->setText(aircraftData.getIcaoInfo().getAircraftDesignator());
|
||||||
|
this->ui->le_PilotsName->setText(aircraftData.getPilot().getRealName());
|
||||||
|
}
|
||||||
|
|
||||||
|
void CFlightPlanComponent::prefillWithFlightPlanData(const BlackMisc::Aviation::CFlightPlan &flightPlan)
|
||||||
|
{
|
||||||
|
this->ui->le_AlternateAirport->setText(flightPlan.getAlternateAirportIcao().asString());
|
||||||
|
this->ui->le_DestinationAirport->setText(flightPlan.getAlternateAirportIcao().asString());
|
||||||
|
this->ui->le_OriginAirport->setText(flightPlan.getAlternateAirportIcao().asString());
|
||||||
|
this->ui->pte_Route->setPlainText(flightPlan.getRoute());
|
||||||
|
this->ui->pte_Remarks->setPlainText(flightPlan.getRemarks());
|
||||||
|
this->ui->le_TakeOffTimePlanned->setText(flightPlan.getTakeoffTimePlannedHourMin());
|
||||||
|
this->ui->le_FuelOnBoard->setText(flightPlan.getFuelTimeHourMin());
|
||||||
|
this->ui->le_EstimatedTimeEnroute->setText(flightPlan.getEnrouteTimeHourMin());
|
||||||
|
this->ui->le_CrusingAltitude->setText(flightPlan.getCruiseAltitude().toQString());
|
||||||
|
this->ui->le_CruiseTrueAirspeed->setText(flightPlan.getCruiseTrueAirspeed().valueRoundedWithUnit(BlackMisc::PhysicalQuantities::CSpeedUnit::kts(), 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
BlackMisc::CStatusMessageList CFlightPlanComponent::validateAndInitializeFlightPlan(BlackMisc::Aviation::CFlightPlan &flightPlan)
|
||||||
|
{
|
||||||
|
BlackMisc::CStatusMessageList messages;
|
||||||
|
QString v;
|
||||||
|
|
||||||
|
CFlightPlan::FlightRules rule;
|
||||||
|
if (this->ui->rb_TypeIfr->isChecked())
|
||||||
|
rule = CFlightPlan::IFR;
|
||||||
|
else if (this->ui->rb_TypeVfr->isChecked())
|
||||||
|
rule = CFlightPlan::VFR;
|
||||||
|
else if (this->ui->rb_TypeSvfr->isChecked())
|
||||||
|
rule = CFlightPlan::SVFR;
|
||||||
|
flightPlan.setFlightRule(rule);
|
||||||
|
|
||||||
|
v = ui->le_Callsign->text().trimmed();
|
||||||
|
if (v.isEmpty())
|
||||||
|
{
|
||||||
|
QString m = QString("Missing %1").arg(this->ui->lbl_Callsign->text());
|
||||||
|
messages.push_back(CStatusMessage::getValidationError(m));
|
||||||
|
}
|
||||||
|
|
||||||
|
v = ui->pte_Route->toPlainText().trimmed();
|
||||||
|
if (v.isEmpty())
|
||||||
|
{
|
||||||
|
QString m = QString("Missing %1").arg(this->ui->lbl_Route->text());
|
||||||
|
messages.push_back(CStatusMessage::getValidationError(m));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
flightPlan.setRoute(v);
|
||||||
|
|
||||||
|
v = ui->pte_Remarks->toPlainText().trimmed();
|
||||||
|
flightPlan.setRemarks(v);
|
||||||
|
|
||||||
|
v = ui->le_EstimatedTimeEnroute->text();
|
||||||
|
if (v.isEmpty() || v == defaultTime())
|
||||||
|
{
|
||||||
|
QString m = QString("Missing %1").arg(this->ui->lbl_EstimatedTimeEnroute->text());
|
||||||
|
messages.push_back(CStatusMessage::getValidationError(m));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
flightPlan.setEnrouteTime(v);
|
||||||
|
|
||||||
|
v = ui->le_FuelOnBoard->text();
|
||||||
|
if (v.isEmpty() || v == defaultTime())
|
||||||
|
{
|
||||||
|
QString m = QString("Missing %1").arg(this->ui->lbl_FuelOnBorad->text());
|
||||||
|
messages.push_back(CStatusMessage::getValidationError(m));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
flightPlan.setFuelTime(v);
|
||||||
|
|
||||||
|
v = ui->le_TakeOffTimePlanned->text();
|
||||||
|
if (v.isEmpty() || v == defaultTime())
|
||||||
|
{
|
||||||
|
QString m = QString("Missing %1").arg(this->ui->lbl_TakeOffTimePlanned->text());
|
||||||
|
messages.push_back(CStatusMessage::getValidationError(m));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
flightPlan.setTakeoffTimePlanned(v);
|
||||||
|
|
||||||
|
v = ui->le_CrusingAltitude->text().trimmed();
|
||||||
|
CAltitude cruisingAltitude(v);
|
||||||
|
if (v.isEmpty() || cruisingAltitude.isNull())
|
||||||
|
{
|
||||||
|
QString m = QString("Wrong %1").arg(this->ui->lbl_CrusingAltitude->text());
|
||||||
|
messages.push_back(CStatusMessage::getValidationError(m));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
flightPlan.setCruiseAltitude(cruisingAltitude);
|
||||||
|
|
||||||
|
v = this->ui->le_AlternateAirport->text();
|
||||||
|
if (v.isEmpty() || v.endsWith(defaultIcao(), Qt::CaseInsensitive))
|
||||||
|
{
|
||||||
|
QString m = QString("Missing %1").arg(this->ui->lbl_AlternateAirport->text());
|
||||||
|
messages.push_back(CStatusMessage::getValidationError(m));
|
||||||
|
flightPlan.setAlternateAirportIcao(defaultIcao());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
flightPlan.setAlternateAirportIcao(v);
|
||||||
|
|
||||||
|
v = this->ui->le_DestinationAirport->text();
|
||||||
|
if (v.isEmpty() || v.endsWith(defaultIcao(), Qt::CaseInsensitive))
|
||||||
|
{
|
||||||
|
QString m = QString("Missing %1").arg(this->ui->lbl_DestinationAirport->text());
|
||||||
|
messages.push_back(CStatusMessage::getValidationError(m));
|
||||||
|
flightPlan.setDestinationAirportIcao(defaultIcao());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
flightPlan.setDestinationAirportIcao(v);
|
||||||
|
|
||||||
|
v = this->ui->le_CruiseTrueAirspeed->text();
|
||||||
|
BlackMisc::PhysicalQuantities::CSpeed cruiseTAS;
|
||||||
|
cruiseTAS.parseFromString(v);
|
||||||
|
if (cruiseTAS.isNull())
|
||||||
|
{
|
||||||
|
QString m = QString("Wrong TAS, %1").arg(this->ui->lbl_CruiseTrueAirspeed->text());
|
||||||
|
messages.push_back(CStatusMessage::getValidationError(m));
|
||||||
|
flightPlan.setDestinationAirportIcao(defaultIcao());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
flightPlan.setCruiseTrueAirspeed(cruiseTAS);
|
||||||
|
|
||||||
|
|
||||||
|
v = this->ui->le_OriginAirport->text();
|
||||||
|
if (v.isEmpty() || v.endsWith(defaultIcao(), Qt::CaseInsensitive))
|
||||||
|
{
|
||||||
|
QString m = QString("Missing %1").arg(this->ui->lbl_OriginAirport->text());
|
||||||
|
messages.push_back(CStatusMessage::getValidationError(m));
|
||||||
|
flightPlan.setOriginAirportIcao(defaultIcao());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
flightPlan.setOriginAirportIcao(v);
|
||||||
|
|
||||||
|
return messages;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CFlightPlanComponent::sendFlightPlan()
|
||||||
|
{
|
||||||
|
CFlightPlan flightPlan;
|
||||||
|
CStatusMessageList messages = this->validateAndInitializeFlightPlan(flightPlan);
|
||||||
|
if (messages.isEmpty())
|
||||||
|
{
|
||||||
|
// no error, send if possible
|
||||||
|
if (this->getIContextNetwork()->isConnected())
|
||||||
|
this->getIContextNetwork()->sendFlightPlan(flightPlan);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CStatusMessage m = CStatusMessage::getErrorMessage("No errors, but not connected, cannot send flight plan", CStatusMessage::TypeTrafficNetwork);
|
||||||
|
this->getIContextApplication()->sendStatusMessage(m);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this->getIContextApplication()->sendStatusMessages(messages);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CFlightPlanComponent::resetFlightPlan()
|
||||||
|
{
|
||||||
|
if (this->getIContextNetwork())
|
||||||
|
{
|
||||||
|
this->prefillWithAircraftData(this->getIContextNetwork()->getOwnAircraft());
|
||||||
|
}
|
||||||
|
this->ui->le_AircraftRegistration->clear();
|
||||||
|
this->ui->le_AirlineOperator->clear();
|
||||||
|
this->ui->le_CrusingAltitude->setText("FL70");
|
||||||
|
this->ui->le_CruiseTrueAirspeed->setText("100 kts");
|
||||||
|
this->ui->pte_Remarks->clear();
|
||||||
|
this->ui->pte_Route->clear();
|
||||||
|
this->ui->le_AlternateAirport->setText(defaultIcao());
|
||||||
|
this->ui->le_DestinationAirport->setText(defaultIcao());
|
||||||
|
this->ui->le_OriginAirport->setText(defaultIcao());
|
||||||
|
this->ui->le_FuelOnBoard->setText(defaultTime());
|
||||||
|
this->ui->le_EstimatedTimeEnroute->setText(defaultTime());
|
||||||
|
this->ui->le_TakeOffTimePlanned->setText(QDateTime::currentDateTimeUtc().addSecs(30 * 60).toString("hh:mm"));
|
||||||
|
}
|
||||||
|
|
||||||
|
void CFlightPlanComponent::loadFlightPlan()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void CFlightPlanComponent::buildRemarkString()
|
||||||
|
{
|
||||||
|
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/ ");
|
||||||
|
|
||||||
|
v = this->ui->le_AirlineOperator->text().trimmed();
|
||||||
|
if (!v.isEmpty()) rem.append("OPR/").append(v).append(" ");
|
||||||
|
|
||||||
|
v = this->ui->le_AircraftRegistration->text().trimmed();
|
||||||
|
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 ");
|
||||||
|
|
||||||
|
v = this->ui->cb_RequiredNavigationPerformance->currentText().toUpper();
|
||||||
|
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 ");
|
||||||
|
|
||||||
|
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 ");
|
||||||
|
|
||||||
|
if (this->ui->frp_SelcalCode->hasValidCode())
|
||||||
|
{
|
||||||
|
rem.append("SEL/").append(this->ui->frp_SelcalCode->getSelcalCode());
|
||||||
|
rem.append(" ");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this->ui->cb_NoSidsStarts->isChecked())
|
||||||
|
rem.append("NO SID/STAR ");
|
||||||
|
|
||||||
|
v = this->ui->pte_AdditionalRemarks->toPlainText().trimmed();
|
||||||
|
if (!v.isEmpty()) rem.append(v);
|
||||||
|
|
||||||
|
rem = rem.simplified().trimmed();
|
||||||
|
this->ui->pte_RemarksGenerated->setPlainText(rem);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CFlightPlanComponent::copyRemarks()
|
||||||
|
{
|
||||||
|
this->ui->pte_Remarks->setPlainText(this->ui->pte_RemarksGenerated->toPlainText());
|
||||||
|
this->getIContextApplication()->sendStatusMessage(CStatusMessage::getInfoMessage("Copied remarks", CStatusMessage::TypeTrafficNetwork));
|
||||||
|
}
|
||||||
|
|
||||||
|
void CFlightPlanComponent::currentTabGenerator()
|
||||||
|
{
|
||||||
|
this->setCurrentWidget(this->ui->tb_RemarksGenerator);
|
||||||
|
}
|
||||||
|
}
|
||||||
65
src/blackgui/flightplancomponent.h
Normal file
65
src/blackgui/flightplancomponent.h
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
#ifndef BLACKGUI_FLIGHTPLANCOMPONENT_H
|
||||||
|
#define BLACKGUI_FLIGHTPLANCOMPONENT_H
|
||||||
|
|
||||||
|
#include "blackgui/runtimebasedcomponent.h"
|
||||||
|
#include "blackmisc/avaircraft.h"
|
||||||
|
#include "blackmisc/avflightplan.h"
|
||||||
|
|
||||||
|
#include <QTabWidget>
|
||||||
|
|
||||||
|
namespace Ui { class CFlightPlanComponent; }
|
||||||
|
namespace BlackGui
|
||||||
|
{
|
||||||
|
//! Flight plan widget
|
||||||
|
class CFlightPlanComponent : public QTabWidget, public CRuntimeBasedComponent
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
//! Constructor
|
||||||
|
explicit CFlightPlanComponent(QWidget *parent = nullptr);
|
||||||
|
|
||||||
|
//! Destructor
|
||||||
|
~CFlightPlanComponent();
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
//! Prefill with aircraft data
|
||||||
|
void prefillWithAircraftData(const BlackMisc::Aviation::CAircraft &aircraftData);
|
||||||
|
|
||||||
|
//! Prefill with aircraft dara
|
||||||
|
void prefillWithFlightPlanData(const BlackMisc::Aviation::CFlightPlan &flightPlan);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::CFlightPlanComponent *ui;
|
||||||
|
|
||||||
|
//! Validate, generates status messages
|
||||||
|
BlackMisc::CStatusMessageList validateAndInitializeFlightPlan(BlackMisc::Aviation::CFlightPlan &fligtPlan);
|
||||||
|
|
||||||
|
//! Default value for airport ICAO airports
|
||||||
|
static const QString &defaultIcao() { static QString d("ICAO"); return d; }
|
||||||
|
|
||||||
|
//! Default value for time
|
||||||
|
static const QString &defaultTime() { static QString t("00:00"); return t; }
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
//! Send flightplan
|
||||||
|
void sendFlightPlan();
|
||||||
|
|
||||||
|
//! Reset Flightplan
|
||||||
|
void resetFlightPlan();
|
||||||
|
|
||||||
|
//! Load Flightplan
|
||||||
|
void loadFlightPlan();
|
||||||
|
|
||||||
|
//! Remark
|
||||||
|
void buildRemarkString();
|
||||||
|
|
||||||
|
//! Copy over
|
||||||
|
void copyRemarks();
|
||||||
|
|
||||||
|
//! Show generator tab page
|
||||||
|
void currentTabGenerator();
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
#endif // guard
|
||||||
715
src/blackgui/flightplancomponent.ui
Normal file
715
src/blackgui/flightplancomponent.ui
Normal file
@@ -0,0 +1,715 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>CFlightPlanComponent</class>
|
||||||
|
<widget class="QTabWidget" name="CFlightPlanComponent">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>555</width>
|
||||||
|
<height>477</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>TabWidget</string>
|
||||||
|
</property>
|
||||||
|
<property name="currentIndex">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="tb_FlightPlanMainTab">
|
||||||
|
<attribute name="title">
|
||||||
|
<string>Flight plan</string>
|
||||||
|
</attribute>
|
||||||
|
<layout class="QVBoxLayout" name="vl_MainTab">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<layout class="QGridLayout" name="gl_FlightPlan">
|
||||||
|
<item row="7" column="1">
|
||||||
|
<widget class="QLineEdit" name="le_EstimatedTimeEnroute">
|
||||||
|
<property name="inputMask">
|
||||||
|
<string>99:99</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>00:00</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2">
|
||||||
|
<widget class="QLabel" name="lbl_Aircraft_Type">
|
||||||
|
<property name="text">
|
||||||
|
<string>3. Aircraft type</string>
|
||||||
|
</property>
|
||||||
|
<property name="scaledContents">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="3">
|
||||||
|
<widget class="QLineEdit" name="le_CruiseTrueAirspeed">
|
||||||
|
<property name="text">
|
||||||
|
<string>0 kts</string>
|
||||||
|
</property>
|
||||||
|
<property name="maxLength">
|
||||||
|
<number>40</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0" rowspan="4">
|
||||||
|
<widget class="QGroupBox" name="gb_Type">
|
||||||
|
<property name="title">
|
||||||
|
<string>1. Type</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="rb_TypeVfr">
|
||||||
|
<property name="text">
|
||||||
|
<string>VFR</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="rb_TypeSvfr">
|
||||||
|
<property name="text">
|
||||||
|
<string>SVFR</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="rb_TypeIfr">
|
||||||
|
<property name="text">
|
||||||
|
<string>IFR</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="1">
|
||||||
|
<widget class="QLabel" name="lbl_EstimatedTimeEnroute">
|
||||||
|
<property name="text">
|
||||||
|
<string>10. Estimated time enroute</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLabel" name="lbl_OriginAirport">
|
||||||
|
<property name="text">
|
||||||
|
<string>5. Departure airport</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="10" column="3">
|
||||||
|
<widget class="QPushButton" name="pb_Send">
|
||||||
|
<property name="text">
|
||||||
|
<string>Send plan</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="3">
|
||||||
|
<widget class="QLabel" name="lbl_CrusingAltitude">
|
||||||
|
<property name="text">
|
||||||
|
<string>7. Cruising altitude</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0" colspan="4">
|
||||||
|
<widget class="QPlainTextEdit" name="pte_Route"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLineEdit" name="le_Callsign">
|
||||||
|
<property name="inputMask">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="maxLength">
|
||||||
|
<number>40</number>
|
||||||
|
</property>
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="1" colspan="3">
|
||||||
|
<widget class="QPlainTextEdit" name="pte_Remarks"/>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="2">
|
||||||
|
<widget class="QLineEdit" name="le_FuelOnBoard">
|
||||||
|
<property name="inputMask">
|
||||||
|
<string>99:99</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>00:00</string>
|
||||||
|
</property>
|
||||||
|
<property name="maxLength">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="0">
|
||||||
|
<widget class="QLineEdit" name="le_DestinationAirport">
|
||||||
|
<property name="inputMask">
|
||||||
|
<string>>AAAA</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>ICAO</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="2">
|
||||||
|
<widget class="QLabel" name="lbl_TakeOffTimePlanned">
|
||||||
|
<property name="text">
|
||||||
|
<string>6. Departure time</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="9" column="3">
|
||||||
|
<widget class="QLineEdit" name="le_PilotsHomebase"/>
|
||||||
|
</item>
|
||||||
|
<item row="9" column="1" colspan="2">
|
||||||
|
<widget class="QLineEdit" name="le_PilotsName">
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="9" column="0">
|
||||||
|
<widget class="QLabel" name="lbl_PilotsNameAndHomebase">
|
||||||
|
<property name="text">
|
||||||
|
<string>14. Pilots name / homebase</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="3">
|
||||||
|
<widget class="QLineEdit" name="le_CrusingAltitude">
|
||||||
|
<property name="maxLength">
|
||||||
|
<number>40</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="0">
|
||||||
|
<widget class="QLabel" name="lbl_DestinationAirport">
|
||||||
|
<property name="text">
|
||||||
|
<string>9.Destination airport</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLabel" name="lbl_Callsign">
|
||||||
|
<property name="text">
|
||||||
|
<string>2. Callsign</string>
|
||||||
|
</property>
|
||||||
|
<property name="scaledContents">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="3">
|
||||||
|
<widget class="QLabel" name="lbl_CruiseTrueAirspeed">
|
||||||
|
<property name="text">
|
||||||
|
<string>4. True airspeed</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0" colspan="4">
|
||||||
|
<widget class="QLabel" name="lbl_Route">
|
||||||
|
<property name="text">
|
||||||
|
<string>8. Route</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="3">
|
||||||
|
<widget class="QLabel" name="lbl_AlternateAirport">
|
||||||
|
<property name="text">
|
||||||
|
<string>13. Alternate airport</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="2">
|
||||||
|
<widget class="QLabel" name="lbl_FuelOnBorad">
|
||||||
|
<property name="text">
|
||||||
|
<string>12. Fuel on board</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="3">
|
||||||
|
<widget class="QLineEdit" name="le_AlternateAirport">
|
||||||
|
<property name="inputMask">
|
||||||
|
<string>>AAAA</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>ICAO</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QLineEdit" name="le_OriginAirport">
|
||||||
|
<property name="inputMask">
|
||||||
|
<string>>AAAA</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>ICAO</string>
|
||||||
|
</property>
|
||||||
|
<property name="maxLength">
|
||||||
|
<number>4</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="2">
|
||||||
|
<widget class="QLineEdit" name="le_AircraftType"/>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="2">
|
||||||
|
<widget class="QLineEdit" name="le_TakeOffTimePlanned">
|
||||||
|
<property name="inputMask">
|
||||||
|
<string>99:99</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>00:00</string>
|
||||||
|
</property>
|
||||||
|
<property name="maxLength">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="0">
|
||||||
|
<layout class="QGridLayout" name="gl_Remarks">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="lbl_Remarks">
|
||||||
|
<property name="text">
|
||||||
|
<string>11. Remarks</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<spacer name="vs_Remarks">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QPushButton" name="pb_RemarksGenerator">
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QPushButton {
|
||||||
|
background-color: transparent;
|
||||||
|
border: none;
|
||||||
|
text-align: left;
|
||||||
|
text-decoration: underline;
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<property name="inputMethodHints">
|
||||||
|
<set>Qt::ImhNone</set>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Generator</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="10" column="1">
|
||||||
|
<widget class="QPushButton" name="pb_Reset">
|
||||||
|
<property name="text">
|
||||||
|
<string>Reset plan</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="10" column="2">
|
||||||
|
<widget class="QPushButton" name="pb_Load">
|
||||||
|
<property name="text">
|
||||||
|
<string>Load plan</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QWidget" name="tb_RemarksGenerator">
|
||||||
|
<attribute name="title">
|
||||||
|
<string>Remarks</string>
|
||||||
|
</attribute>
|
||||||
|
<layout class="QVBoxLayout" name="vl_RemarksGenerator">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<layout class="QGridLayout" name="gl_RemarksGenerator">
|
||||||
|
<item row="12" column="2">
|
||||||
|
<widget class="QFrame" name="fr_Buttons">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Raised</enum>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QPushButton" name="pb_Parse">
|
||||||
|
<property name="text">
|
||||||
|
<string>Parse</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2">
|
||||||
|
<widget class="QPushButton" name="pb_CopyOver">
|
||||||
|
<property name="text">
|
||||||
|
<string>Copy over</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="11" column="0">
|
||||||
|
<widget class="QLabel" name="lbl_RemarksGenerated">
|
||||||
|
<property name="text">
|
||||||
|
<string>Remarks</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0">
|
||||||
|
<widget class="QLabel" name="lbl_RequiredNavigationPerformance">
|
||||||
|
<property name="text">
|
||||||
|
<string>Required Navigation Performance</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="11" column="2">
|
||||||
|
<widget class="QPlainTextEdit" name="pte_RemarksGenerated">
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2">
|
||||||
|
<widget class="QLineEdit" name="le_AirlineOperator"/>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="2">
|
||||||
|
<widget class="QComboBox" name="cb_PilotRating">
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>P0 - unrated</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>P1</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>P2</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>P3</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>P4</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>P5</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="0">
|
||||||
|
<widget class="QLabel" name="lbl_PerformanceCategory">
|
||||||
|
<property name="text">
|
||||||
|
<string>Performance category</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="2">
|
||||||
|
<widget class="QComboBox" name="cb_RequiredNavigationPerformance">
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>VFR - not required</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>10 miles radius</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>4 miles radius</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="lbl_AircraftRegistration">
|
||||||
|
<property name="text">
|
||||||
|
<string>Aircraft registration</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="lbl_AirlineOperator">
|
||||||
|
<property name="text">
|
||||||
|
<string>Airline operator</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="0">
|
||||||
|
<widget class="QLabel" name="lbl_PilotRating">
|
||||||
|
<property name="text">
|
||||||
|
<string>Pilot rating</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="9" column="2">
|
||||||
|
<widget class="BlackGui::CSelcalCodeSelector" name="frp_SelcalCode">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Raised</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="lbl_NavigationEquipment">
|
||||||
|
<property name="text">
|
||||||
|
<string>Navigation equipment</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="10" column="2">
|
||||||
|
<widget class="QPlainTextEdit" name="pte_AdditionalRemarks"/>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="2">
|
||||||
|
<widget class="QComboBox" name="cb_VoiceCapabilities">
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Full voice</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Text only</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Receive voice</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="2">
|
||||||
|
<widget class="QLineEdit" name="le_AircraftRegistration"/>
|
||||||
|
</item>
|
||||||
|
<item row="9" column="0">
|
||||||
|
<widget class="QLabel" name="lbl_Selcal">
|
||||||
|
<property name="text">
|
||||||
|
<string>SELCAL</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="2">
|
||||||
|
<widget class="QComboBox" name="cb_PerformanceCategory">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Final Approach Speed</string>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>VFR - not required</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>A: below 91kts</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>B: 92-121kts</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>C: 122-142kts</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>D: 143kts or above</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="2">
|
||||||
|
<widget class="QComboBox" name="cb_NavigationEquipment">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>How will you be navigating?</string>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>VFR flying visually</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Direct VORs and NDBs</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Default GPS</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>GPS or FMC capable of SIDs/STARs</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>GPS oceantic certified</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="10" column="0">
|
||||||
|
<widget class="QLabel" name="lbl_AdditionalRemarks">
|
||||||
|
<property name="text">
|
||||||
|
<string>Additional remarks</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="0">
|
||||||
|
<widget class="QLabel" name="lbl_VoiceCapabilities">
|
||||||
|
<property name="text">
|
||||||
|
<string>Voice capabilities</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="2">
|
||||||
|
<widget class="QCheckBox" name="cb_NoSidsStarts">
|
||||||
|
<property name="text">
|
||||||
|
<string>no SIDs / STARs</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="lbl_SidsStars">
|
||||||
|
<property name="text">
|
||||||
|
<string>SIDs / STARs</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
<customwidgets>
|
||||||
|
<customwidget>
|
||||||
|
<class>BlackGui::CSelcalCodeSelector</class>
|
||||||
|
<extends>QFrame</extends>
|
||||||
|
<header>blackgui/selcalcodeselector.h</header>
|
||||||
|
<container>1</container>
|
||||||
|
</customwidget>
|
||||||
|
</customwidgets>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
||||||
Reference in New Issue
Block a user