6 #include <QJsonDocument>
7 #include <QJsonParseError>
10 #include "ui_aircraftpartsform.h"
19 using namespace swift::misc::aviation;
21 namespace swift::gui::editors
26 connect(ui->pb_AircraftPartsLightsOn, &QPushButton::pressed,
this, &CAircraftPartsForm::setAllLights);
27 connect(ui->pb_AircraftPartsLightsOff, &QPushButton::pressed,
this, &CAircraftPartsForm::setAllLights);
28 connect(ui->pb_AircraftPartsEnginesOn, &QPushButton::pressed,
this, &CAircraftPartsForm::setAllEngines);
29 connect(ui->pb_AircraftPartsEnginesOff, &QPushButton::pressed,
this, &CAircraftPartsForm::setAllEngines);
30 connect(ui->pb_AircraftPartsUiToJson, &QPushButton::pressed,
this, &CAircraftPartsForm::guiToJson);
31 connect(ui->pb_Set, &QPushButton::pressed,
this,
39 CGuiUtility::childrenSetEnabled<QPushButton>(
this, !readonly);
57 const QString jsonParts = ui->te_AircraftPartsJson->toPlainText().trimmed();
59 if (jsonParts.isEmpty())
64 QJsonParseError jsonError;
65 QJsonDocument jsonDoc(QJsonDocument::fromJson(jsonParts.toUtf8(), &jsonError));
66 if (jsonError.error != QJsonParseError::NoError)
86 this->partsToGui(parts);
94 void CAircraftPartsForm::setAllLights()
96 const bool on = (QObject::sender() == ui->pb_AircraftPartsLightsOn);
97 ui->cb_AircraftPartsLightsStrobe->setChecked(on);
98 ui->cb_AircraftPartsLightsLanding->setChecked(on);
99 ui->cb_AircraftPartsLightsTaxi->setChecked(on);
100 ui->cb_AircraftPartsLightsBeacon->setChecked(on);
101 ui->cb_AircraftPartsLightsNav->setChecked(on);
102 ui->cb_AircraftPartsLightsLogo->setChecked(on);
105 void CAircraftPartsForm::setAllEngines()
107 const bool on = (QObject::sender() == ui->pb_AircraftPartsEnginesOn);
108 ui->cb_AircraftPartsEngine1->setChecked(on);
109 ui->cb_AircraftPartsEngine2->setChecked(on);
110 ui->cb_AircraftPartsEngine3->setChecked(on);
111 ui->cb_AircraftPartsEngine4->setChecked(on);
112 ui->cb_AircraftPartsEngine5->setChecked(on);
113 ui->cb_AircraftPartsEngine6->setChecked(on);
119 ui->cb_AircraftPartsLightsStrobe->isChecked(), ui->cb_AircraftPartsLightsLanding->isChecked(),
120 ui->cb_AircraftPartsLightsTaxi->isChecked(), ui->cb_AircraftPartsLightsBeacon->isChecked(),
121 ui->cb_AircraftPartsLightsNav->isChecked(), ui->cb_AircraftPartsLightsLogo->isChecked());
123 { ui->cb_AircraftPartsEngine1->isChecked(), ui->cb_AircraftPartsEngine2->isChecked(),
124 ui->cb_AircraftPartsEngine3->isChecked(), ui->cb_AircraftPartsEngine4->isChecked(),
125 ui->cb_AircraftPartsEngine5->isChecked(), ui->cb_AircraftPartsEngine6->isChecked() });
127 lights, ui->cb_AircraftPartsGearDown->isChecked(), ui->sb_AircraftPartsFlapsPercentage->value(),
128 ui->cb_AircraftPartsSpoilers->isChecked(), engines, ui->cb_AircraftPartsIsOnGround->isChecked());
134 ui->cb_AircraftPartsGearDown->setChecked(parts.
isGearDown());
135 ui->cb_AircraftPartsIsOnGround->setChecked(parts.
isOnGround());
136 ui->cb_AircraftPartsSpoilers->setChecked(parts.
isSpoilersOut());
137 ui->sb_AircraftPartsFlapsPercentage->setValue(parts.
getFlapsPercent());
140 ui->cb_AircraftPartsLightsBeacon->setChecked(lights.
isBeaconOn());
141 ui->cb_AircraftPartsLightsLanding->setChecked(lights.
isLandingOn());
142 ui->cb_AircraftPartsLightsLogo->setChecked(lights.
isLogoOn());
143 ui->cb_AircraftPartsLightsNav->setChecked(lights.
isNavOn());
144 ui->cb_AircraftPartsLightsStrobe->setChecked(lights.
isStrobeOn());
145 ui->cb_AircraftPartsLightsTaxi->setChecked(lights.
isTaxiOn());
148 ui->cb_AircraftPartsEngine1->setChecked(engines.
isEngineOn(1));
149 ui->cb_AircraftPartsEngine2->setChecked(engines.
isEngineOn(2));
150 ui->cb_AircraftPartsEngine3->setChecked(engines.
isEngineOn(3));
151 ui->cb_AircraftPartsEngine4->setChecked(engines.
isEngineOn(4));
152 ui->cb_AircraftPartsEngine5->setChecked(engines.
isEngineOn(5));
153 ui->cb_AircraftPartsEngine6->setChecked(engines.
isEngineOn(6));
156 void CAircraftPartsForm::guiToJson()
158 const QJsonDocument json(guiToAircraftParts().toJson());
159 const QString j(json.toJson(QJsonDocument::Indented));
160 ui->te_AircraftPartsJson->setText(j);
static void checkBoxesReadOnly(QWidget *parent, bool readOnly)
Pseudo readonly state for checkboxes of widget.
Thrown when a convertFromJson method encounters an unrecoverable error in JSON data.
Class for emitting a log message.
static void preformatted(const CStatusMessage &statusMessage)
Sends a verbatim, preformatted message to the log.
Derived & validationError(const char16_t(&format)[N])
Set the severity to error, providing a format string, and adding the validation category.
Status messages, e.g. from Core -> GUI.
Value object encapsulating a list of aircraft engines.
bool isEngineOn(int engineNumber) const
Engine number 1..x on?
Value object encapsulating information about aircraft's lights.
bool isLandingOn() const
Landing lights on?
bool isBeaconOn() const
Beacon lights on?
bool isNavOn() const
Nac lights on?
bool isLogoOn() const
Logo lights on?
bool isTaxiOn() const
Taxi lights on?
bool isStrobeOn() const
Strobes lights on?
Value object encapsulating information of aircraft's parts.
bool isGearDown() const
Is gear down?
CAircraftLights getLights() const
Get aircraft lights.
bool isSpoilersOut() const
Are spoilers out?
bool isOnGround() const
Is aircraft on ground?
int getFlapsPercent() const
Get flaps position in percent.
CAircraftEngineList getEngines() const
Get engines.
Free functions in swift::misc.