From 9de1d91bb2cd59188b415e9b88efc481982dcd8c Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Fri, 15 Jan 2016 02:22:10 +0100 Subject: [PATCH] Fixes issues found during testing refs #568 * upper case in filters * validation of distributor (made distributor mandatory) * country change triggers filter --- .../components/dbcountryselectorcomponent.cpp | 3 +++ src/blackgui/editors/distributorform.cpp | 7 +------ src/blackgui/filters/airlineicaofilterbar.cpp | 13 +++++++++++++ src/blackgui/filters/airlineicaofilterbar.h | 4 ++++ 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/blackgui/components/dbcountryselectorcomponent.cpp b/src/blackgui/components/dbcountryselectorcomponent.cpp index 1e6c04698..ed8b3abdc 100644 --- a/src/blackgui/components/dbcountryselectorcomponent.cpp +++ b/src/blackgui/components/dbcountryselectorcomponent.cpp @@ -10,6 +10,7 @@ #include "dbcountryselectorcomponent.h" #include "ui_dbcountryselectorcomponent.h" #include "blackgui/guiutility.h" +#include "blackgui/uppercasevalidator.h" #include using namespace BlackGui; @@ -32,6 +33,8 @@ namespace BlackGui connect(ui->le_CountryName, &QLineEdit::returnPressed, this, &CDbCountrySelectorComponent::ps_dataChanged); connect(ui->le_CountryIso, &QLineEdit::editingFinished, this, &CDbCountrySelectorComponent::ps_dataChanged); connect(ui->le_CountryName, &QLineEdit::returnPressed, this, &CDbCountrySelectorComponent::ps_dataChanged); + + this->ui->le_CountryIso->setValidator(new CUpperCaseValidator(this)); } CDbCountrySelectorComponent::~CDbCountrySelectorComponent() diff --git a/src/blackgui/editors/distributorform.cpp b/src/blackgui/editors/distributorform.cpp index 540e9f913..954017464 100644 --- a/src/blackgui/editors/distributorform.cpp +++ b/src/blackgui/editors/distributorform.cpp @@ -61,12 +61,7 @@ namespace BlackGui CStatusMessageList CDistributorForm::validate() const { CDistributor distributor(getValue()); - CStatusMessageList msgs; - if (!distributor.getDbKey().isEmpty()) - { - // optional distributor - msgs = distributor.validate(); - } + CStatusMessageList msgs(distributor.validate()); if (this->isReadOnly()) { // in readonly I cannot change the data anyway, so skip warnings diff --git a/src/blackgui/filters/airlineicaofilterbar.cpp b/src/blackgui/filters/airlineicaofilterbar.cpp index 2202784c2..3766e4210 100644 --- a/src/blackgui/filters/airlineicaofilterbar.cpp +++ b/src/blackgui/filters/airlineicaofilterbar.cpp @@ -9,10 +9,12 @@ #include "airlineicaofilterbar.h" #include "ui_airlineicaofilterbar.h" +#include "blackgui/uppercasevalidator.h" using namespace BlackMisc; using namespace BlackMisc::Aviation; using namespace BlackGui::Models; +using namespace BlackGui::Components; namespace BlackGui { @@ -27,6 +29,9 @@ namespace BlackGui connect(ui->le_Designator, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter); connect(ui->le_Name, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter); + connect(ui->country_Selector, &CDbCountrySelectorComponent::countryChanged, this, &CAirlineIcaoFilterBar::ps_CountryChanged); + + ui->le_Designator->setValidator(new CUpperCaseValidator(this)); } CAirlineIcaoFilterBar::~CAirlineIcaoFilterBar() { } @@ -73,6 +78,14 @@ namespace BlackGui this->ui->filter_Buttons->onRowCountChanged(count, withFilter); } + void CAirlineIcaoFilterBar::ps_CountryChanged(const CCountry &country) + { + if (country.hasIsoCode()) + { + this->ui->filter_Buttons->clickButton(CFilterBarButtons::Filter); + } + } + void CAirlineIcaoFilterBar::clearForm() { this->ui->le_Designator->clear(); diff --git a/src/blackgui/filters/airlineicaofilterbar.h b/src/blackgui/filters/airlineicaofilterbar.h index 86fe56420..4d95484eb 100644 --- a/src/blackgui/filters/airlineicaofilterbar.h +++ b/src/blackgui/filters/airlineicaofilterbar.h @@ -55,6 +55,10 @@ namespace BlackGui //! \copydoc CFilterWidget::onRowCountChanged virtual void onRowCountChanged(int count, bool withFilter) override; + private slots: + //! Country has been changed + void ps_CountryChanged(const BlackMisc::CCountry &country); + protected: //! Clear form virtual void clearForm() override;