diff --git a/src/blackgui/editors/modelmappingform.cpp b/src/blackgui/editors/modelmappingform.cpp
index f9bb75a33..f1220a20a 100644
--- a/src/blackgui/editors/modelmappingform.cpp
+++ b/src/blackgui/editors/modelmappingform.cpp
@@ -12,6 +12,7 @@
#include "blackgui/editors/modelmappingform.h"
#include "blackgui/editors/validationindicator.h"
#include "blackgui/labelandicon.h"
+#include "blackgui/uppercasevalidator.h"
#include "blackmisc/icons.h"
#include "blackmisc/network/authenticateduser.h"
#include "blackmisc/stringutils.h"
@@ -37,8 +38,11 @@ namespace BlackGui
ui->setupUi(this);
ui->le_LastUpdated->setReadOnly(true);
ui->le_Id->setReadOnly(true);
-
+ ui->le_Parts->setPlaceholderText("Allowed: " + CAircraftModel::supportedParts());
ui->lai_Id->set(CIcons::appMappings16(), "Id:");
+ CUpperCaseValidator *uc = new CUpperCaseValidator(0, 5, ui->le_Parts);
+ uc->setAllowedCharacters(CAircraftModel::supportedParts());
+ ui->le_Parts->setValidator(uc);
connect(ui->le_CG, &QLineEdit::editingFinished, this, &CModelMappingForm::onCgEditFinished);
connect(ui->pb_Stash, &QPushButton::clicked, this, &CModelMappingForm::requestStash);
@@ -59,6 +63,7 @@ namespace BlackGui
model.setName(ui->le_Name->text());
model.setModelMode(ui->selector_ModelMode->getMode());
model.setCG(this->getCGFromUI());
+ model.setSupportedParts(ui->le_Parts->text().trimmed().toUpper());
return model;
}
@@ -90,6 +95,7 @@ namespace BlackGui
ui->le_Id->setText(model.getDbKeyAsString());
ui->le_Description->setText(model.getDescription());
ui->le_Name->setText(model.getName());
+ ui->le_Parts->setText(model.getSupportedParts());
ui->le_FileName->setText(model.getFileName());
ui->selector_ModelMode->setValue(model.getModelMode());
ui->selector_Simulator->setValue(model.getSimulator());
diff --git a/src/blackgui/editors/modelmappingform.ui b/src/blackgui/editors/modelmappingform.ui
index 15aebcefc..86899adbb 100644
--- a/src/blackgui/editors/modelmappingform.ui
+++ b/src/blackgui/editors/modelmappingform.ui
@@ -175,12 +175,6 @@
Qt::StrongFocus
-
- QFrame::StyledPanel
-
-
- QFrame::Raised
-
-
@@ -191,6 +185,9 @@
16777215
+
+ e.g. 3ft or 2.3m
+
-
@@ -200,13 +197,30 @@
- -
+
-
Model key
+ -
+
+
+ Parts:
+
+
+
+ -
+
+
+
+ 75
+ 16777215
+
+
+
+
@@ -241,6 +255,7 @@
le_Id
le_ModelKey
+ le_Parts
selector_Simulator
le_Name
le_Description
diff --git a/src/blackmisc/simulation/aircraftmodel.cpp b/src/blackmisc/simulation/aircraftmodel.cpp
index ab538acdb..0b83e7151 100644
--- a/src/blackmisc/simulation/aircraftmodel.cpp
+++ b/src/blackmisc/simulation/aircraftmodel.cpp
@@ -951,16 +951,9 @@ namespace BlackMisc
CDistributor::fromDatabaseJson(json, prefixDistributor));
if (!aircraftIcao.isLoadedFromDb() && idAircraftIcao >= 0) { aircraftIcao.setDbKey(idAircraftIcao); }
- if (!livery.isLoadedFromDb())
- {
- const int idLivery = json.value(prefix % u"idlivery").toInt(-1);
- if (idLivery >= 0) { livery.setDbKey(idLivery); }
- }
- if (!distributor.isLoadedFromDb())
- {
- const QString idDistributor = json.value(prefix % u"iddistributor").toString();
- if (!idDistributor.isEmpty()) { distributor.setDbKey(idDistributor); }
- }
+ if (!aircraftIcao.isLoadedFromDb() && idAircraftIcao >= 0) { aircraftIcao.setDbKey(idAircraftIcao); }
+ if (!livery.isLoadedFromDb() && idLivery >= 0) { livery.setDbKey(idLivery); }
+ if (!distributor.isLoadedFromDb() && !idDistributor.isEmpty()) { distributor.setDbKey(idDistributor); }
// store in temp.cache
if (!cachedAircraftIcao && aircraftIcao.isLoadedFromDb()) { aircraftIcaos[aircraftIcao.getDbKey()] = aircraftIcao; }