mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-05-05 01:35:45 +08:00
refs #768, some improvements of the filter
* allow to filter by airline only (livery filter) * allow to hide description field * set colors in livery filter
This commit is contained in:
@@ -61,6 +61,7 @@ namespace BlackGui
|
|||||||
|
|
||||||
void CAircraftIcaoFilterBar::filter(const CAircraftIcaoCode &icao)
|
void CAircraftIcaoFilterBar::filter(const CAircraftIcaoCode &icao)
|
||||||
{
|
{
|
||||||
|
this->clearForm();
|
||||||
bool filter = false;
|
bool filter = false;
|
||||||
if (icao.hasDesignator())
|
if (icao.hasDesignator())
|
||||||
{
|
{
|
||||||
@@ -74,13 +75,22 @@ namespace BlackGui
|
|||||||
}
|
}
|
||||||
if (icao.hasModelDescription())
|
if (icao.hasModelDescription())
|
||||||
{
|
{
|
||||||
ui->le_Manufacturer->setText("*" + icao.getModelDescription() + "*");
|
ui->le_Description->setText("*" + icao.getModelDescription() + "*");
|
||||||
filter = true;
|
filter = true;
|
||||||
}
|
}
|
||||||
if (filter)
|
if (filter)
|
||||||
{
|
{
|
||||||
ui->filter_Buttons->clickButton(CFilterBarButtons::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)
|
void CAircraftIcaoFilterBar::onRowCountChanged(int count, bool withFilter)
|
||||||
|
|||||||
@@ -58,6 +58,9 @@ namespace BlackGui
|
|||||||
//! Filter by ICAO object as default values
|
//! Filter by ICAO object as default values
|
||||||
void filter(const BlackMisc::Aviation::CAircraftIcaoCode &icao);
|
void filter(const BlackMisc::Aviation::CAircraftIcaoCode &icao);
|
||||||
|
|
||||||
|
//! Hide the description
|
||||||
|
void hideDescriptionField(bool hide);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
//! \copydoc CFilterWidget::onRowCountChanged
|
//! \copydoc CFilterWidget::onRowCountChanged
|
||||||
virtual void onRowCountChanged(int count, bool withFilter) override;
|
virtual void onRowCountChanged(int count, bool withFilter) override;
|
||||||
|
|||||||
@@ -74,13 +74,39 @@ namespace BlackGui
|
|||||||
|
|
||||||
void CLiveryFilterBar::filter(const CLivery &livery)
|
void CLiveryFilterBar::filter(const CLivery &livery)
|
||||||
{
|
{
|
||||||
|
this->clearForm();
|
||||||
|
bool filter = false;
|
||||||
if (livery.hasCombinedCode())
|
if (livery.hasCombinedCode())
|
||||||
{
|
{
|
||||||
ui->le_LiveryCode->setText(livery.getCombinedCode());
|
ui->le_LiveryCode->setText(livery.getCombinedCode());
|
||||||
|
filter = true;
|
||||||
}
|
}
|
||||||
else if (livery.hasValidAirlineDesignator())
|
if (livery.hasValidAirlineDesignator())
|
||||||
{
|
{
|
||||||
ui->le_AirlineIcaoCode->setText(livery.getAirlineIcaoCodeDesignator());
|
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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ namespace BlackMisc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
namespace Ui { class CLiveryFilterBar; }
|
namespace Ui { class CLiveryFilterBar; }
|
||||||
|
|
||||||
namespace BlackGui
|
namespace BlackGui
|
||||||
{
|
{
|
||||||
namespace Filters
|
namespace Filters
|
||||||
@@ -56,9 +55,12 @@ namespace BlackGui
|
|||||||
//! \copydoc Models::IModelFilterProvider::createModelFilter
|
//! \copydoc Models::IModelFilterProvider::createModelFilter
|
||||||
virtual std::unique_ptr<BlackGui::Models::IModelFilter<BlackMisc::Aviation::CLiveryList>> createModelFilter() const override;
|
virtual std::unique_ptr<BlackGui::Models::IModelFilter<BlackMisc::Aviation::CLiveryList>> createModelFilter() const override;
|
||||||
|
|
||||||
//! Filter by livery as default values
|
//! Filter by livery values
|
||||||
void filter(const BlackMisc::Aviation::CLivery &livery);
|
void filter(const BlackMisc::Aviation::CLivery &livery);
|
||||||
|
|
||||||
|
//! Filter by airline values
|
||||||
|
void filter(const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcao);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
//! \copydoc CFilterWidget::onRowCountChanged
|
//! \copydoc CFilterWidget::onRowCountChanged
|
||||||
virtual void onRowCountChanged(int count, bool withFilter) override;
|
virtual void onRowCountChanged(int count, bool withFilter) override;
|
||||||
@@ -77,7 +79,6 @@ namespace BlackGui
|
|||||||
private:
|
private:
|
||||||
QScopedPointer<Ui::CLiveryFilterBar> ui;
|
QScopedPointer<Ui::CLiveryFilterBar> ui;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // ns
|
} // ns
|
||||||
} // ns
|
} // ns
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user