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);
50 ui->le_Id->setValidator(
new QIntValidator(ui->le_Id));
56 QPointer<CAircraftModelFilterBar> myself(
this);
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();
103 ui->cbt_IncludeExclude->setCheckState(Qt::PartiallyChecked);
104 ui->cbt_Db->setCheckState(Qt::PartiallyChecked);
105 ui->cbt_Military->setCheckState(Qt::PartiallyChecked);
106 ui->cbt_ColorLiveries->setCheckState(Qt::PartiallyChecked);
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()
145 connect(ui->cbt_Db, &QCheckBox::clicked,
this, &CAircraftModelFilterBar::onCheckBoxChanged);
146 connect(ui->cbt_IncludeExclude, &QCheckBox::clicked,
this, &CAircraftModelFilterBar::onCheckBoxChanged);
147 connect(ui->cbt_Military, &QCheckBox::clicked,
this, &CAircraftModelFilterBar::onCheckBoxChanged);
148 connect(ui->cbt_ColorLiveries, &QCheckBox::clicked,
this, &CAircraftModelFilterBar::onCheckBoxChanged);
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.
virtual std::unique_ptr< models::IModelFilter< swift::misc::simulation::CAircraftModelList > > createModelFilter() const
Get the filter, this is the filter itself, not its widget or dialog.
virtual void clearForm()
Clear the filter form.
void displayCount(bool show)
Show count.
virtual void onRowCountChanged(int count, bool withFilter)
Row count has been changed.
virtual ~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.
auto singleShot(int msec, QObject *target, F &&task)
Starts a single-shot timer which will call a task in the thread of the given object when it times out...