mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-27 19:25:49 +08:00
Ref T75, filter aircraft ICAO by id
This commit is contained in:
@@ -36,10 +36,11 @@ namespace BlackGui
|
|||||||
connect(ui->le_Designator, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
connect(ui->le_Designator, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
||||||
connect(ui->le_Manufacturer, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
connect(ui->le_Manufacturer, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
||||||
connect(ui->le_Description, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
connect(ui->le_Description, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
||||||
|
connect(ui->le_Id, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
||||||
|
|
||||||
CUpperCaseValidator *ucv = new CUpperCaseValidator(this);
|
ui->le_Designator->setValidator(new CUpperCaseValidator(ui->le_Designator));
|
||||||
ui->le_Designator->setValidator(ucv);
|
ui->le_Manufacturer->setValidator(new CUpperCaseValidator(ui->le_Manufacturer));
|
||||||
ui->le_Manufacturer->setValidator(ucv);
|
ui->le_Id->setValidator(new QIntValidator(ui->le_Id));
|
||||||
|
|
||||||
// reset form
|
// reset form
|
||||||
this->clearForm();
|
this->clearForm();
|
||||||
@@ -51,6 +52,7 @@ namespace BlackGui
|
|||||||
std::unique_ptr<BlackGui::Models::IModelFilter<CAircraftIcaoCodeList> > CAircraftIcaoFilterBar::createModelFilter() const
|
std::unique_ptr<BlackGui::Models::IModelFilter<CAircraftIcaoCodeList> > CAircraftIcaoFilterBar::createModelFilter() const
|
||||||
{
|
{
|
||||||
return std::make_unique<CAircraftIcaoFilter>(
|
return std::make_unique<CAircraftIcaoFilter>(
|
||||||
|
convertDbId(ui->le_Id->text()),
|
||||||
ui->le_Designator->text(),
|
ui->le_Designator->text(),
|
||||||
ui->le_Manufacturer->text(),
|
ui->le_Manufacturer->text(),
|
||||||
ui->le_Description->text(),
|
ui->le_Description->text(),
|
||||||
@@ -99,6 +101,7 @@ namespace BlackGui
|
|||||||
|
|
||||||
void CAircraftIcaoFilterBar::clearForm()
|
void CAircraftIcaoFilterBar::clearForm()
|
||||||
{
|
{
|
||||||
|
ui->le_Id->clear();
|
||||||
ui->le_Designator->clear();
|
ui->le_Designator->clear();
|
||||||
ui->le_Manufacturer->clear();
|
ui->le_Manufacturer->clear();
|
||||||
ui->le_Description->clear();
|
ui->le_Description->clear();
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>574</width>
|
<width>602</width>
|
||||||
<height>44</height>
|
<height>48</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
@@ -121,7 +121,58 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0" colspan="5">
|
<item row="1" column="0">
|
||||||
|
<widget class="QWidget" name="wi_Id" native="true">
|
||||||
|
<layout class="QHBoxLayout" name="hl_DbId">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="lbl_Id">
|
||||||
|
<property name="text">
|
||||||
|
<string>Id:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="le_Id">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>50</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="placeholderText">
|
||||||
|
<string>id</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="hs_Id">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="2" colspan="3">
|
||||||
<widget class="BlackGui::Components::CAircraftCombinedTypeSelector" name="combinedType_Selector">
|
<widget class="BlackGui::Components::CAircraftCombinedTypeSelector" name="combinedType_Selector">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
@@ -137,21 +188,28 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLabel" name="lbl_Combined">
|
||||||
|
<property name="text">
|
||||||
|
<string>Combined:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
<customwidget>
|
|
||||||
<class>BlackGui::Components::CAircraftCombinedTypeSelector</class>
|
|
||||||
<extends>QFrame</extends>
|
|
||||||
<header>blackgui/components/aircraftcombinedtypeselector.h</header>
|
|
||||||
<container>1</container>
|
|
||||||
</customwidget>
|
|
||||||
<customwidget>
|
<customwidget>
|
||||||
<class>BlackGui::Filters::CFilterBarButtons</class>
|
<class>BlackGui::Filters::CFilterBarButtons</class>
|
||||||
<extends>QFrame</extends>
|
<extends>QFrame</extends>
|
||||||
<header>blackgui/filters/filterbarbuttons.h</header>
|
<header>blackgui/filters/filterbarbuttons.h</header>
|
||||||
<container>1</container>
|
<container>1</container>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>BlackGui::Components::CAircraftCombinedTypeSelector</class>
|
||||||
|
<extends>QFrame</extends>
|
||||||
|
<header>blackgui/components/aircraftcombinedtypeselector.h</header>
|
||||||
|
<container>1</container>
|
||||||
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<tabstops>
|
<tabstops>
|
||||||
<tabstop>le_Designator</tabstop>
|
<tabstop>le_Designator</tabstop>
|
||||||
|
|||||||
@@ -17,12 +17,14 @@ namespace BlackGui
|
|||||||
namespace Models
|
namespace Models
|
||||||
{
|
{
|
||||||
CAircraftIcaoFilter::CAircraftIcaoFilter(
|
CAircraftIcaoFilter::CAircraftIcaoFilter(
|
||||||
|
int id,
|
||||||
const QString &designator, const QString &name,
|
const QString &designator, const QString &name,
|
||||||
const QString &description, const QString &combinedType) :
|
const QString &description, const QString &combinedType) :
|
||||||
|
m_id(id),
|
||||||
m_designator(designator.trimmed().toUpper()), m_manufacturer(name.trimmed()),
|
m_designator(designator.trimmed().toUpper()), m_manufacturer(name.trimmed()),
|
||||||
m_description(description.trimmed()), m_combinedType(combinedType.trimmed().toUpper())
|
m_description(description.trimmed()), m_combinedType(combinedType.trimmed().toUpper())
|
||||||
{
|
{
|
||||||
this->m_valid = !(this->m_combinedType.isEmpty() && this->m_designator.isEmpty() &&
|
this->m_valid = !(this->m_id < 0 && this->m_combinedType.isEmpty() && this->m_designator.isEmpty() &&
|
||||||
this->m_description.isEmpty() && this->m_manufacturer.isEmpty());
|
this->m_description.isEmpty() && this->m_manufacturer.isEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,6 +36,16 @@ namespace BlackGui
|
|||||||
|
|
||||||
for (const CAircraftIcaoCode &icao : inContainer)
|
for (const CAircraftIcaoCode &icao : inContainer)
|
||||||
{
|
{
|
||||||
|
if (m_id >= 0)
|
||||||
|
{
|
||||||
|
// search only for id
|
||||||
|
if (icao.isLoadedFromDb() && icao.getDbKey() == m_id)
|
||||||
|
{
|
||||||
|
outContainer.push_back(icao);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (!m_designator.isEmpty())
|
if (!m_designator.isEmpty())
|
||||||
{
|
{
|
||||||
if (!this->stringMatchesFilterExpression(icao.getDesignator(), m_designator)) { continue; }
|
if (!this->stringMatchesFilterExpression(icao.getDesignator(), m_designator)) { continue; }
|
||||||
|
|||||||
@@ -29,7 +29,8 @@ namespace BlackGui
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
//! Constructor
|
//! Constructor
|
||||||
CAircraftIcaoFilter(const QString &designator,
|
CAircraftIcaoFilter(int id,
|
||||||
|
const QString &designator,
|
||||||
const QString &manufacturer,
|
const QString &manufacturer,
|
||||||
const QString &description,
|
const QString &description,
|
||||||
const QString &combinedType);
|
const QString &combinedType);
|
||||||
@@ -38,6 +39,7 @@ namespace BlackGui
|
|||||||
virtual BlackMisc::Aviation::CAircraftIcaoCodeList filter(const BlackMisc::Aviation::CAircraftIcaoCodeList &inContainer) const override;
|
virtual BlackMisc::Aviation::CAircraftIcaoCodeList filter(const BlackMisc::Aviation::CAircraftIcaoCodeList &inContainer) const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
int m_id = -1;
|
||||||
QString m_designator;
|
QString m_designator;
|
||||||
QString m_manufacturer;
|
QString m_manufacturer;
|
||||||
QString m_description;
|
QString m_description;
|
||||||
|
|||||||
Reference in New Issue
Block a user