diff --git a/src/blackgui/editors/aircrafticaoform.cpp b/src/blackgui/editors/aircrafticaoform.cpp index d5d894afc..c7fa3f1fd 100644 --- a/src/blackgui/editors/aircrafticaoform.cpp +++ b/src/blackgui/editors/aircrafticaoform.cpp @@ -10,6 +10,7 @@ #include "blackgui/guiutility.h" #include "blackmisc/aviation/aircrafticaocodelist.h" #include "aircrafticaoform.h" +#include "blackmisc/datastore.h" #include "ui_aircrafticaoform.h" using namespace BlackMisc; @@ -63,6 +64,22 @@ namespace BlackGui CAircraftIcaoCode CAircraftIcaoForm::getValue() const { CAircraftIcaoCode icao(this->ui->aircraft_Selector->getAircraftIcao()); + if (!icao.hasValidDbKey()) + { + // not based on DB yet, do we have a DB key + int k = this->getDbKeyFromGui(); + if (k >= 0) + { + // we got an id, we get the DB object for it + CAircraftIcaoCode fromDb(this->getAircraftIcaoCodeForDbKey(k)); + if (fromDb.getDesignator() == icao.getDesignator()) + { + // we replace by DB object + icao = fromDb; + } + } + } + QString manufacturer(this->ui->le_Manufacturer->text().trimmed().toUpper()); QString modelDescription(this->ui->le_ModelDescription->text()); QString wtc(ui->cb_Wtc->currentText().left(1)); @@ -149,5 +166,10 @@ namespace BlackGui this->setValue(icao); } + int CAircraftIcaoForm::getDbKeyFromGui() const + { + QString key(this->ui->le_Id->text().trimmed()); + return IDatastoreObjectWithIntegerKey::stringToDbKey(key); + } } // ns } // ns diff --git a/src/blackgui/editors/aircrafticaoform.h b/src/blackgui/editors/aircrafticaoform.h index ab373246b..0c560d629 100644 --- a/src/blackgui/editors/aircrafticaoform.h +++ b/src/blackgui/editors/aircrafticaoform.h @@ -74,8 +74,10 @@ namespace BlackGui private: QScopedPointer ui; - }; + //! Key from GUI + int getDbKeyFromGui() const; + }; } // ns } // ns diff --git a/src/blackgui/editors/airlineicaoform.cpp b/src/blackgui/editors/airlineicaoform.cpp index 30cde57e3..8a457976e 100644 --- a/src/blackgui/editors/airlineicaoform.cpp +++ b/src/blackgui/editors/airlineicaoform.cpp @@ -70,6 +70,12 @@ namespace BlackGui { CAirlineIcaoCode code(getValue()); CStatusMessageList msgs(code.validate()); + if (this->isReadOnly()) + { + // in readonly I cannot change the data anyway, so skip warnings + msgs.removeWarningsAndBelow(); + } + this->ui->val_Indicator->setState(msgs); return msgs; } diff --git a/src/blackgui/editors/distributorform.cpp b/src/blackgui/editors/distributorform.cpp index adcf11fa4..7434c36eb 100644 --- a/src/blackgui/editors/distributorform.cpp +++ b/src/blackgui/editors/distributorform.cpp @@ -67,6 +67,11 @@ namespace BlackGui // optional distributor msgs = distributor.validate(); } + if (this->isReadOnly()) + { + // in readonly I cannot change the data anyway, so skip warnings + msgs.removeWarningsAndBelow(); + } this->ui->val_Indicator->setState(msgs); return msgs; } diff --git a/src/blackgui/editors/liveryform.cpp b/src/blackgui/editors/liveryform.cpp index 8b50303d6..c0b532dd5 100644 --- a/src/blackgui/editors/liveryform.cpp +++ b/src/blackgui/editors/liveryform.cpp @@ -72,6 +72,11 @@ namespace BlackGui { msgs.push_back(this->ui->editor_AirlineIcao->validate()); } + if (this->isReadOnly()) + { + // in readonly I cannot change the data anyway, so skip warnings + msgs.removeWarningsAndBelow(); + } this->ui->val_Indicator->setState(msgs); return msgs; } @@ -91,6 +96,8 @@ namespace BlackGui this->m_readOnly = readOnly; this->ui->le_Code->setReadOnly(readOnly); this->ui->le_Description->setReadOnly(readOnly); + this->ui->color_Fuselage->setReadOnly(readOnly); + this->ui->color_Tail->setReadOnly(readOnly); } void CLiveryForm::setMappingMode() diff --git a/src/blackgui/editors/modelmappingform.cpp b/src/blackgui/editors/modelmappingform.cpp index 6f26d37a6..eab37f9fa 100644 --- a/src/blackgui/editors/modelmappingform.cpp +++ b/src/blackgui/editors/modelmappingform.cpp @@ -25,7 +25,6 @@ namespace BlackGui ui->le_LastUpdated->setReadOnly(true); ui->le_Id->setReadOnly(true); ui->lai_Id->set(CIcons::appMappings16(), "Id:"); - connect(ui->pb_Publish, &QPushButton::clicked, this, &CModelMappingForm::requestPublish); connect(ui->pb_Stash, &QPushButton::clicked, this, &CModelMappingForm::requestStash); } diff --git a/src/blackgui/editors/modelmappingform.h b/src/blackgui/editors/modelmappingform.h index 5b432461c..ed77d648c 100644 --- a/src/blackgui/editors/modelmappingform.h +++ b/src/blackgui/editors/modelmappingform.h @@ -53,15 +53,9 @@ namespace BlackGui //! Request validation void requestValidation(); - //! Request to publish (DB) - void requestPublish(); - //! Request stashing for model void requestStash(); - private slots: - //! - private: QScopedPointer ui; BlackMisc::Simulation::CAircraftModel m_originalModel; diff --git a/src/blackgui/editors/modelmappingform.ui b/src/blackgui/editors/modelmappingform.ui index 2b11ad6f5..c45052450 100644 --- a/src/blackgui/editors/modelmappingform.ui +++ b/src/blackgui/editors/modelmappingform.ui @@ -78,13 +78,6 @@ - - - - Publish - - - @@ -199,7 +192,6 @@ le_Name le_Description pb_Stash - pb_Publish le_LastUpdated