refs #634, improved completers

* mostly to avoid roundtrips (set->changed signal->set again...)
* better sort for ICAO completer
This commit is contained in:
Klaus Basan
2016-04-11 19:34:23 +02:00
parent 95044e7854
commit d9e550beef
8 changed files with 41 additions and 14 deletions

View File

@@ -37,13 +37,12 @@ namespace BlackGui
CDbAirlineIcaoSelectorBase::~CDbAirlineIcaoSelectorBase()
{ }
void CDbAirlineIcaoSelectorBase::setAirlineIcao(const CAirlineIcaoCode &icao)
bool CDbAirlineIcaoSelectorBase::setAirlineIcao(const CAirlineIcaoCode &icao)
{
if (icao != m_currentIcao)
{
m_currentIcao = icao;
emit changedAirlineIcao(icao);
}
if (icao == m_currentIcao) { return false; }
m_currentIcao = icao;
emit changedAirlineIcao(icao);
return true;
}
bool CDbAirlineIcaoSelectorBase::setAirlineIcao(int key)

View File

@@ -38,7 +38,7 @@ namespace BlackGui
virtual ~CDbAirlineIcaoSelectorBase();
//! Current airline ICAO
virtual void setAirlineIcao(const BlackMisc::Aviation::CAirlineIcaoCode &icao);
virtual bool setAirlineIcao(const BlackMisc::Aviation::CAirlineIcaoCode &icao);
//! Current airline ICAO by key
bool setAirlineIcao(int key);

View File

@@ -44,12 +44,13 @@ namespace BlackGui
this->ui->le_Airline->setReadOnly(readOnly);
}
void CDbAirlineIcaoSelectorComponent::setAirlineIcao(const CAirlineIcaoCode &icao)
bool CDbAirlineIcaoSelectorComponent::setAirlineIcao(const CAirlineIcaoCode &icao)
{
CDbAirlineIcaoSelectorBase::setAirlineIcao(icao);
if (!CDbAirlineIcaoSelectorBase::setAirlineIcao(icao)) { return false; }
const QString icaoStr(icao.getVDesignator());
this->ui->le_Airline->setText(icaoStr);
ui->lbl_Description->setText(icao.getName());
return true;
}
void CDbAirlineIcaoSelectorComponent::withIcaoDescription(bool description)

View File

@@ -41,7 +41,7 @@ namespace BlackGui
//! \name Base class overrides
//! @{
virtual void setReadOnly(bool readOnly) override;
virtual void setAirlineIcao(const BlackMisc::Aviation::CAirlineIcaoCode &icao) override;
virtual bool setAirlineIcao(const BlackMisc::Aviation::CAirlineIcaoCode &icao) override;
virtual void clear() override;
//! @}

View File

@@ -35,11 +35,12 @@ namespace BlackGui
// no inline destructor, read QScopedPointer Forward Declared Pointers
}
void CDbAirlineNameSelectorComponent::setAirlineIcao(const CAirlineIcaoCode &icao)
bool CDbAirlineNameSelectorComponent::setAirlineIcao(const CAirlineIcaoCode &icao)
{
CDbAirlineIcaoSelectorBase::setAirlineIcao(icao);
if (!CDbAirlineIcaoSelectorBase::setAirlineIcao(icao)) { return false; }
QString name(icao.getName());
this->ui->le_AirlineName->setText(name);
return true;
}
void CDbAirlineNameSelectorComponent::clear()

View File

@@ -40,7 +40,7 @@ namespace BlackGui
//! \name Base class overrides
//! @{
virtual void setReadOnly(bool readOnly) override;
virtual void setAirlineIcao(const BlackMisc::Aviation::CAirlineIcaoCode &icao) override;
virtual bool setAirlineIcao(const BlackMisc::Aviation::CAirlineIcaoCode &icao) override;
virtual void clear() override;
//! @}