12 #include "ui_aircraftmodelfilterbar.h"
23 using namespace swift::misc::simulation;
24 using namespace swift::misc::db;
31 CAircraftModelFilterBar::CAircraftModelFilterBar(
QWidget *parent)
36 ui->comp_SimulatorSelector->setMode(CSimulatorSelector::CheckBoxes);
37 ui->comp_SimulatorSelector->setNoSelectionMeansAll(
true);
38 ui->comp_SimulatorSelector->setRememberSelection(
false);
39 ui->comp_SimulatorSelector->checkAll();
41 ui->comp_DistributorSelector->withDistributorDescription(
false);
45 ui->le_AircraftIcao->setValidator(ucv);
46 ui->le_AirlineIcao->setValidator(ucv);
47 ui->le_ModelString->setValidator(ucv);
48 ui->le_AircraftManufacturer->setValidator(ucv);
49 ui->le_LiveryCode->setValidator(ucv);
58 if (!myself) {
return; }
59 this->connectTriggerFilterSignals();
69 CAircraftModel::ModelModeFilter mf = CAircraftModel::All;
70 if (ui->cbt_IncludeExclude->checkState() ==
Qt::Checked) { mf = CAircraftModel::Include; }
71 else if (ui->cbt_IncludeExclude->checkState() ==
Qt::Unchecked) { mf = CAircraftModel::Exclude; }
73 DbKeyStateFilter dbf = swift::misc::db::All;
74 if (ui->cbt_Db->checkState() ==
Qt::Checked) { dbf = swift::misc::db::Valid; }
75 else if (ui->cbt_Db->checkState() ==
Qt::Unchecked) { dbf = swift::misc::db::Invalid; }
77 return std::make_unique<CAircraftModelFilter>(
78 convertDbId(ui->le_Id->text()), ui->le_ModelString->text(), ui->le_ModelDescription->text(), mf, dbf,
79 ui->cbt_Military->checkState(), ui->cbt_ColorLiveries->checkState(), ui->le_AircraftIcao->text(),
80 ui->le_AircraftManufacturer->text(), ui->le_AirlineIcao->text(), ui->le_AirlineName->text(),
81 ui->le_LiveryCode->text(), ui->le_FileName->text(), ui->comp_CombinedType->getCombinedType(),
82 ui->comp_SimulatorSelector->getValue(), ui->comp_DistributorSelector->getDistributor());
87 ui->filter_Buttons->onRowCountChanged(count, withFilter);
92 ui->le_ModelString->clear();
93 ui->le_ModelDescription->clear();
94 ui->le_AircraftIcao->clear();
95 ui->le_AircraftManufacturer->clear();
96 ui->le_AirlineIcao->clear();
97 ui->le_AirlineName->clear();
98 ui->le_LiveryCode->clear();
99 ui->le_FileName->clear();
100 ui->comp_SimulatorSelector->checkAll();
101 ui->comp_DistributorSelector->clear();
102 ui->comp_CombinedType->clear();
109 void CAircraftModelFilterBar::onSimulatorSelectionChanged(
const CSimulatorInfo &info)
115 void CAircraftModelFilterBar::onDistributorChanged(
const CDistributor &distributor)
117 Q_UNUSED(distributor);
121 void CAircraftModelFilterBar::onCombinedTypeChanged(
const QString &combinedType)
123 Q_UNUSED(combinedType);
127 void CAircraftModelFilterBar::onCheckBoxChanged(
bool state)
133 void CAircraftModelFilterBar::connectTriggerFilterSignals()
150 connect(ui->comp_SimulatorSelector, &CSimulatorSelector::changed,
this,
151 &CAircraftModelFilterBar::onSimulatorSelectionChanged);
152 connect(ui->comp_DistributorSelector, &CDbDistributorSelectorComponent::changedDistributor,
this,
153 &CAircraftModelFilterBar::onDistributorChanged);
154 connect(ui->comp_CombinedType, &CAircraftCombinedTypeSelector::changedCombinedType,
this,
155 &CAircraftModelFilterBar::onCombinedTypeChanged);
Filter bar for aircraft models.
std::unique_ptr< models::IModelFilter< swift::misc::simulation::CAircraftModelList > > createModelFilter() const
Get the filter, this is the filter itself, not its widget or dialog.
void clearForm()
Clear the filter form.
void displayCount(bool show)
Show count.
void onRowCountChanged(int count, bool withFilter)
Row count has been changed.
~CAircraftModelFilterBar()
Destructor.
Value object encapsulating information of software distributor.
Simple hardcoded info about the corresponding simulator.
High level reusable GUI components.
Filter to search data sets.
Models to be used with views, mainly QTableView.
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)