diff --git a/src/blackgui/filters/aircrafticaofilterbar.cpp b/src/blackgui/filters/aircrafticaofilterbar.cpp index 5dd500887..32ea856fe 100644 --- a/src/blackgui/filters/aircrafticaofilterbar.cpp +++ b/src/blackgui/filters/aircrafticaofilterbar.cpp @@ -61,6 +61,7 @@ namespace BlackGui void CAircraftIcaoFilterBar::filter(const CAircraftIcaoCode &icao) { + this->clearForm(); bool filter = false; if (icao.hasDesignator()) { @@ -74,13 +75,22 @@ namespace BlackGui } if (icao.hasModelDescription()) { - ui->le_Manufacturer->setText("*" + icao.getModelDescription() + "*"); + ui->le_Description->setText("*" + icao.getModelDescription() + "*"); filter = true; } if (filter) { ui->filter_Buttons->clickButton(CFilterBarButtons::Filter); } + else + { + ui->filter_Buttons->clickButton(CFilterBarButtons::RemoveFilter); + } + } + + void CAircraftIcaoFilterBar::hideDescriptionField(bool hide) + { + ui->le_Description->setVisible(!hide); } void CAircraftIcaoFilterBar::onRowCountChanged(int count, bool withFilter) diff --git a/src/blackgui/filters/aircrafticaofilterbar.h b/src/blackgui/filters/aircrafticaofilterbar.h index d3bef8b7f..a7941e857 100644 --- a/src/blackgui/filters/aircrafticaofilterbar.h +++ b/src/blackgui/filters/aircrafticaofilterbar.h @@ -58,6 +58,9 @@ namespace BlackGui //! Filter by ICAO object as default values void filter(const BlackMisc::Aviation::CAircraftIcaoCode &icao); + //! Hide the description + void hideDescriptionField(bool hide); + public slots: //! \copydoc CFilterWidget::onRowCountChanged virtual void onRowCountChanged(int count, bool withFilter) override; diff --git a/src/blackgui/filters/liveryfilterbar.cpp b/src/blackgui/filters/liveryfilterbar.cpp index 3e6a324d4..607476588 100644 --- a/src/blackgui/filters/liveryfilterbar.cpp +++ b/src/blackgui/filters/liveryfilterbar.cpp @@ -74,13 +74,39 @@ namespace BlackGui void CLiveryFilterBar::filter(const CLivery &livery) { + this->clearForm(); + bool filter = false; if (livery.hasCombinedCode()) { ui->le_LiveryCode->setText(livery.getCombinedCode()); + filter = true; } - else if (livery.hasValidAirlineDesignator()) + if (livery.hasValidAirlineDesignator()) { ui->le_AirlineIcaoCode->setText(livery.getAirlineIcaoCodeDesignator()); + filter = true; + } + if (livery.isColorLivery()) + { + ui->color_Fuselage->setColor(livery.getColorFuselage()); + ui->color_Tail->setColor(livery.getColorTail()); + filter = true; + } + if (filter) + { + ui->filter_Buttons->clickButton(CFilterBarButtons::Filter); + } + else + { + ui->filter_Buttons->clickButton(CFilterBarButtons::RemoveFilter); + } + } + + void CLiveryFilterBar::filter(const CAirlineIcaoCode &airlineIcao) + { + if (airlineIcao.hasValidDesignator()) + { + ui->le_AirlineIcaoCode->setText(airlineIcao.getDesignator()); } else { diff --git a/src/blackgui/filters/liveryfilterbar.h b/src/blackgui/filters/liveryfilterbar.h index 78266109b..c99f315ce 100644 --- a/src/blackgui/filters/liveryfilterbar.h +++ b/src/blackgui/filters/liveryfilterbar.h @@ -32,7 +32,6 @@ namespace BlackMisc } } namespace Ui { class CLiveryFilterBar; } - namespace BlackGui { namespace Filters @@ -56,9 +55,12 @@ namespace BlackGui //! \copydoc Models::IModelFilterProvider::createModelFilter virtual std::unique_ptr> createModelFilter() const override; - //! Filter by livery as default values + //! Filter by livery values void filter(const BlackMisc::Aviation::CLivery &livery); + //! Filter by airline values + void filter(const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcao); + public slots: //! \copydoc CFilterWidget::onRowCountChanged virtual void onRowCountChanged(int count, bool withFilter) override; @@ -77,7 +79,6 @@ namespace BlackGui private: QScopedPointer ui; }; - } // ns } // ns