refs #911, allow to enter id for airline and aircraft ICAO

This commit is contained in:
Klaus Basan
2017-03-22 17:19:17 +01:00
committed by Mathew Sutcliffe
parent 317b52a00b
commit cc1fd0e868
4 changed files with 75 additions and 7 deletions

View File

@@ -15,6 +15,8 @@
#include "blackgui/editors/validationindicator.h"
#include "blackgui/guiutility.h"
#include "blackgui/labelandicon.h"
#include "blackgui/guiapplication.h"
#include "blackcore/webdataservices.h"
#include "blackmisc/aviation/airlineicaocodelist.h"
#include "blackmisc/compare.h"
#include "blackmisc/icons.h"
@@ -39,13 +41,16 @@ namespace BlackGui
{
ui->setupUi(this);
ui->le_Updated->setReadOnly(true);
ui->le_Id->setReadOnly(true);
ui->le_Id->setValidator(new QIntValidator(0, 999999, ui->le_Id));
ui->lai_Id->set(CIcons::appAirlineIcao16(), "Id:");
ui->selector_AirlineDesignator->displayWithIcaoDescription(false);
connect(ui->selector_AirlineName, &CDbAirlineIcaoSelectorComponent::changedAirlineIcao, this, &CAirlineIcaoForm::setValue);
connect(ui->selector_AirlineDesignator, &CDbAirlineIcaoSelectorComponent::changedAirlineIcao, this, &CAirlineIcaoForm::setValue);
// Id
connect(ui->le_Id, &QLineEdit::returnPressed, this, &CAirlineIcaoForm::ps_idEntered);
// drag and drop
connect(ui->drop_DropData, &CDropSite::droppedValueObject, this, &CAirlineIcaoForm::ps_droppedCode);
ui->drop_DropData->setInfoText("<drop airline ICAO code>");
@@ -114,6 +119,7 @@ namespace BlackGui
void CAirlineIcaoForm::setReadOnly(bool readOnly)
{
ui->le_Id->setReadOnly(readOnly);
ui->selector_AirlineDesignator->setReadOnly(readOnly);
ui->selector_AirlineName->setReadOnly(readOnly);
ui->le_TelephonyDesignator->setReadOnly(readOnly);
@@ -127,6 +133,7 @@ namespace BlackGui
void CAirlineIcaoForm::setSelectOnly()
{
this->setReadOnly(true);
ui->le_Id->setReadOnly(false);
ui->selector_AirlineDesignator->setReadOnly(false);
ui->selector_AirlineName->setReadOnly(false);
ui->drop_DropData->setVisible(true);
@@ -134,7 +141,12 @@ namespace BlackGui
void CAirlineIcaoForm::clear()
{
setValue(CAirlineIcaoCode());
this->setValue(CAirlineIcaoCode());
}
void CAirlineIcaoForm::resetValue()
{
this->setValue(m_originalCode);
}
void CAirlineIcaoForm::ps_droppedCode(const BlackMisc::CVariant &variantDropped)
@@ -156,5 +168,23 @@ namespace BlackGui
}
this->setValue(icao);
}
void CAirlineIcaoForm::ps_idEntered()
{
if (!sGui || !sGui->hasWebDataServices())
{
ui->le_Id->undo();
return;
}
const int id = ui->le_Id->text().toInt();
const CAirlineIcaoCode icao = sGui->getWebDataServices()->getAirlineIcaoCodeForDbKey(id);
if (!icao.isLoadedFromDb())
{
ui->le_Id->undo();
return;
}
this->setValue(icao);
}
} // ns
} // ns