6 #ifndef SWIFT_GUI_COMPONENTS_FLIGHTPLANCOMPONENT_H
7 #define SWIFT_GUI_COMPONENTS_FLIGHTPLANCOMPONENT_H
10 #include <QListWidget>
11 #include <QNetworkReply>
13 #include <QScopedPointer>
14 #include <QStringList>
20 #include "misc/aviation/comnavequipment.h"
22 #include "misc/aviation/ssrequipment.h"
36 class CFlightPlanComponent;
40 namespace FlightPlanSettings
46 static const char *
key() {
return "flightplan/remarkshistory"; }
51 static const QString name(
"FP remarks history");
60 static const char *
key() {
return "flightplan/remarkshistoryadd"; }
65 static const QString name(
"FP remarks history (add)");
71 class CStringListDialog;
72 class CAltitudeDialog;
73 class CSimBriefDownloadDialog;
97 static const QStringList &getLogCategories();
100 static constexpr std::chrono::milliseconds OverlayTimeout { 5000 };
101 QScopedPointer<Ui::CFlightPlanComponent> ui;
102 CAltitudeDialog *m_altitudeDialog =
nullptr;
103 CStringListDialog *m_fpRemarksDialog =
nullptr;
104 CSimBriefDownloadDialog *m_simBriefDialog =
nullptr;
105 QMenu *m_navComEquipmentMenu =
nullptr;
106 QMenu *m_ssrEquipmentMenu =
nullptr;
126 struct WakeTurbulenceEntry
132 const QList<WakeTurbulenceEntry> m_wakeTurbulenceCategories = {
143 static const QString &defaultIcao()
145 static const QString d(
"ICAO");
150 static const QString &defaultTime()
152 static const QString t(
"00:00");
160 void prefillWithOwnAircraftData();
169 void initCompleters();
172 QString getDefaultFilename(
bool load);
175 void currentTextChangedToBuildRemarks(
const QString &text)
177 this->buildRemarksString();
182 void syncVoiceComboBoxes(
const QString &text);
185 void sendFlightPlan();
188 void resetFlightPlan();
194 void loadTemplateFromDisk();
200 bool saveFPToDisk(
const QString &fileName);
203 void saveTemplateToDisk();
206 void clearTemplate();
209 QString getTemplateName()
const;
212 void setSelcalInOwnAircraft();
215 void loadFlightPlanFromNetwork();
218 void buildRemarksString();
221 void copyRemarksConfirmed() { this->copyRemarks(
true); }
224 void copyRemarks(
bool confirm =
true);
227 void currentTabGenerator();
230 void swiftWebDataRead();
233 void aircraftTypeChanged();
236 void syncWithSimulator();
242 void showEquipmentCodesTab();
251 bool overrideRemarks();
254 void updateDirectorySettings(
const QString &fileOrDirectory);
257 void altitudeDialog();
260 void remarksHistory();
263 void updateRemarksHistories();
266 void setRemarksUIValues(
const QString &remarks);
269 void loadFromSimBrief();
272 void handleSimBriefResponse(QNetworkReply *nwReplyPtr);
275 void setupNavComContextMenu();
278 void setupSsrContextMenu();
281 void updateNavComEquipmentFromSelection();
284 void updateSsrEquipmentFromSelection();
287 void updateNavComEquipmentUi();
290 void updateSsrEquipmentUi();
299 static QListWidget *getMenuEquipmentList(QMenu *menu);
303 static void updateListSelection(QMenu *menu,
const QStringList &enabledOptions);
306 static bool consolidateRemarks(QStringList &remarks,
const QString &newRemarks);
const swift::misc::aviation::CFlightPlan & getSentFlightPlan() const
Get sent flight plan.
Value object encapsulating information identifying a component of a modular distributed swift process...
Status messages, e.g. from Core -> GUI.
Value object for ICAO classification.
ICAO flightplan field 10a.
Value object for a flight plan.
FlightRules
Flight rules (VFR or IFR)
ICAO flightplan field 10b.
ICAO wake turbulence category.
Value object encapsulating information of a user.
Aircraft model (used by another pilot, my models on disk)
Comprehensive information of an aircraft.
High level reusable GUI components.
Base class for traits to be used as template argument to swift::misc::CSetting.
#define SWIFT_GUI_EXPORT
Export a class or function from the library.