diff --git a/src/blackgui/editors/fsdsetupform.cpp b/src/blackgui/editors/fsdsetupform.cpp
index 11b307687..27a7af76e 100644
--- a/src/blackgui/editors/fsdsetupform.cpp
+++ b/src/blackgui/editors/fsdsetupform.cpp
@@ -44,6 +44,7 @@ namespace BlackGui
ui->cb_GndFlagSend->isChecked(), ui->cb_GndFlagReceive->isChecked(),
ui->cb_FastPositionSend->isChecked(), ui->cb_FastPositionReceive->isChecked()
);
+ s.setForce3LetterAirlineCodes(ui->cb_3LetterAirlineICAO->isChecked());
return s;
}
@@ -62,6 +63,7 @@ namespace BlackGui
ui->cb_AircraftPartsSend->setChecked(d & CFsdSetup::SendAircraftParts);
ui->cb_FastPositionReceive->setChecked(d & CFsdSetup::ReceiveInterimPositions);
ui->cb_FastPositionSend->setChecked(d & CFsdSetup::SendInterimPositions);
+ ui->cb_3LetterAirlineICAO->setChecked(setup.force3LetterAirlineCodes());
}
bool CFsdSetupForm::isFsdSetupEnabled() const
@@ -84,12 +86,8 @@ namespace BlackGui
{
ui->le_TextCodec->setReadOnly(readonly);
ui->pb_SetDefaults->setEnabled(!readonly);
- CGuiUtility::checkBoxReadOnly(ui->cb_AircraftPartsReceive, readonly);
- CGuiUtility::checkBoxReadOnly(ui->cb_AircraftPartsSend, readonly);
- CGuiUtility::checkBoxReadOnly(ui->cb_FastPositionReceive, readonly);
- CGuiUtility::checkBoxReadOnly(ui->cb_FastPositionSend, readonly);
- CGuiUtility::checkBoxReadOnly(ui->cb_GndFlagReceive, readonly);
- CGuiUtility::checkBoxReadOnly(ui->cb_GndFlagSend, readonly);
+ CGuiUtility::checkBoxesReadOnly(this, readonly);
+ CGuiUtility::checkBoxReadOnly(ui->cb_Override, false); // always editable
if (readonly && ui->cb_Override->isChecked())
{
diff --git a/src/blackgui/editors/fsdsetupform.ui b/src/blackgui/editors/fsdsetupform.ui
index 0895b99aa..11c4e6a6b 100644
--- a/src/blackgui/editors/fsdsetupform.ui
+++ b/src/blackgui/editors/fsdsetupform.ui
@@ -6,7 +6,7 @@
0
0
- 255
+ 248
82
@@ -130,6 +130,16 @@
+ -
+
+
+ force 3 letter airline ICAO code
+
+
+ 3 letter airline
+
+
+
@@ -142,6 +152,7 @@
cb_FastPositionSend
cb_FastPositionReceive
le_TextCodec
+ cb_3LetterAirlineICAO
diff --git a/src/blackmisc/network/fsdsetup.cpp b/src/blackmisc/network/fsdsetup.cpp
index cfea08908..2b17fe2c6 100644
--- a/src/blackmisc/network/fsdsetup.cpp
+++ b/src/blackmisc/network/fsdsetup.cpp
@@ -45,13 +45,15 @@ namespace BlackMisc
QString CFsdSetup::sendReceiveDetailsToString(SendReceiveDetails details)
{
- static const QString ds("Send parts; %1 gnd: %2 interim: %3 Receive parts: %4 gnd: %5 interim: %6");
+ static const QString ds("Send parts; %1 gnd: %2 interim: %3 Receive parts: %4 gnd: %5 interim: %6 3letter: %7");
return ds.arg(boolToYesNo(details.testFlag(SendAircraftParts)),
boolToYesNo(details.testFlag(SendGndFlag)),
boolToYesNo(details.testFlag(SendInterimPositions)),
boolToYesNo(details.testFlag(ReceiveAircraftParts)),
boolToYesNo(details.testFlag(ReceiveGndFlag)),
- boolToYesNo(details.testFlag(ReceiveInterimPositions)));
+ boolToYesNo(details.testFlag(ReceiveInterimPositions)),
+ boolToYesNo(details.testFlag(Force3LetterAirlineICAO))
+ );
}
void CFsdSetup::setSendReceiveDetails(bool partsSend, bool partsReceive, bool gndSend, bool gndReceive, bool interimSend, bool interimReceive)
@@ -66,9 +68,16 @@ namespace BlackMisc
this->setSendReceiveDetails(s);
}
+ void CFsdSetup::setForce3LetterAirlineCodes(bool force)
+ {
+ SendReceiveDetails d = this->getSendReceiveDetails();
+ d.setFlag(Force3LetterAirlineICAO, force);
+ this->setSendReceiveDetails(d);
+ }
+
const CFsdSetup &CFsdSetup::vatsimStandard()
{
- static const CFsdSetup s(AllParts);
+ static const CFsdSetup s(VATSIMDefault);
return s;
}
diff --git a/src/blackmisc/network/fsdsetup.h b/src/blackmisc/network/fsdsetup.h
index e7ff3204b..36f400a98 100644
--- a/src/blackmisc/network/fsdsetup.h
+++ b/src/blackmisc/network/fsdsetup.h
@@ -46,13 +46,15 @@ namespace BlackMisc
ReceiveAircraftParts = 1 << 3, //!< aircraft parts in
ReceiveInterimPositions = 1 << 4, //!< fast position updates in
ReceiveGndFlag = 1 << 5, //!< gnd.flag in (position)
+ Force3LetterAirlineICAO = 1 << 6, //!< force 3 letter airline ICAO code
AllSending = SendAircraftParts | SendInterimPositions | SendGndFlag, //!< all out
AllReceive = ReceiveAircraftParts | ReceiveInterimPositions | ReceiveGndFlag, //!< all in
All = AllReceive | AllSending, //!< all
AllParts = SendAircraftParts | ReceiveAircraftParts, //!< send/receive parts
AllSendingWithoutGnd = SendAircraftParts | SendInterimPositions, //!< all out, but no gnd.flag
AllReceiveWithoutGnd = ReceiveAircraftParts | ReceiveInterimPositions, //!< all in, but no gnd.flag
- AllWithoutGnd = AllReceiveWithoutGnd | AllSendingWithoutGnd //!< all, but no gnd.flag
+ AllWithoutGnd = AllReceiveWithoutGnd | AllSendingWithoutGnd, //!< all, but no gnd.flag
+ VATSIMDefault = AllParts | Force3LetterAirlineICAO
};
Q_DECLARE_FLAGS(SendReceiveDetails, SendReceiveDetailsFlag)
@@ -98,6 +100,11 @@ namespace BlackMisc
bool receiveInterimPositions() const { return this->getSendReceiveDetails().testFlag(ReceiveInterimPositions); }
//! @}
+ //! Airline codes @{
+ bool force3LetterAirlineCodes() const { return this->getSendReceiveDetails().testFlag(Force3LetterAirlineICAO); }
+ void setForce3LetterAirlineCodes(bool force);
+ //! @}
+
//! Validate, provide details about issues
CStatusMessageList validate() const;